/[mailutils]/mailutils/mail/util.c
ViewVC logotype

Diff of /mailutils/mail/util.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.38 by alainm, Wed Mar 13 16:00:58 2002 UTC revision 1.39 by gray, Thu Mar 14 09:46:34 2002 UTC
# Line 83  util_do_command (const char *c, ...) Line 83  util_do_command (const char *c, ...)
83    char **argv = NULL;    char **argv = NULL;
84    int status = 0;    int status = 0;
85    function_t *command;    function_t *command;
86      int exec = 1;
87    char *cmd = NULL;    char *cmd = NULL;
88    va_list ap;    va_list ap;
89    static const char *delim = "=";    static const char *delim = "=";
# Line 95  util_do_command (const char *c, ...) Line 96  util_do_command (const char *c, ...)
96    
97    if (cmd)    if (cmd)
98      {      {
       struct mail_command_entry entry;  
   
99        /*  Ignore comments */        /*  Ignore comments */
100        if (cmd[0] == '#') {        if (cmd[0] == '#')
101          free (cmd);          {
102          return 0;            free (cmd);
103        }            return 0;
104            }
105    
106        /* Hitting return i.e. no command, is equivalent to next        /* Hitting return i.e. no command, is equivalent to next
107           according to the POSIX spec.  */           according to the POSIX spec.  */
108        if (cmd[0] == '\0') {        if (cmd[0] == '\0')
109          free (cmd);          {
110          cmd = strdup ("next");            free (cmd);
111        }            cmd = strdup ("next");
112            }
113    
114        if (argcv_get (cmd, delim, NULL, &argc, &argv) == 0)        if (argcv_get (cmd, delim, NULL, &argc, &argv) == 0)
115          {          {
116              struct mail_command_entry entry;
117    
118            entry = util_find_entry (mail_command_table, argv[0]);            entry = util_find_entry (mail_command_table, argv[0]);
119              command = entry.func;
120            /* Make sure we are not in any if/else */            /* Make sure we are not in any if/else */
121            if (! (if_cond () == 0 && (entry.flags & EF_FLOW) == 0))            exec = !(if_cond () == 0 && (entry.flags & EF_FLOW) == 0);
             command = entry.func;  
122          }          }
123        free (cmd);        free (cmd);
124      }      }
# Line 125  util_do_command (const char *c, ...) Line 126  util_do_command (const char *c, ...)
126      command = util_command_get ("quit");      command = util_command_get ("quit");
127    
128    if (command != NULL)    if (command != NULL)
129      status = command (argc, argv);      {
130          if (exec)
131            status = command (argc, argv);
132        }
133    else    else
134      {      {
135        util_error("Unknown command: %s", argv[0]);        util_error ("Unknown command: %s", argv[0]);
136        status = 1;        status = 1;
137      }      }
138    

Legend:
Removed from v.1.38  
changed lines
  Added in v.1.39

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26