/[mailutils]/mailutils/mh/repl.c
ViewVC logotype

Diff of /mailutils/mh/repl.c

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

revision 1.6 by gray, Mon Jan 13 15:09:35 2003 UTC revision 1.7 by gray, Wed Jan 15 17:31:56 2003 UTC
# Line 76  struct mh_option mh_option[] = { Line 76  struct mh_option mh_option[] = {
76    {"width",   1,  'w', MH_OPT_ARG, "number"},    {"width",   1,  'w', MH_OPT_ARG, "number"},
77    {"draftfolder", 6, 'd', MH_OPT_ARG, "folder"},    {"draftfolder", 6, 'd', MH_OPT_ARG, "folder"},
78    {"nodraftfolder", 3, ARG_NODRAFTFOLDER, },    {"nodraftfolder", 3, ARG_NODRAFTFOLDER, },
79      {"draftmessage", 6, 'm' },
80    {"editor", 1, 'e', MH_OPT_ARG, "program"},    {"editor", 1, 'e', MH_OPT_ARG, "program"},
81    {"noedit", 3, ARG_NOEDIT, },    {"noedit", 3, ARG_NOEDIT, },
82    {"fcc", 1, ARG_FCC, MH_OPT_ARG, "folder"},    {"fcc", 1, ARG_FCC, MH_OPT_ARG, "folder"},
# Line 101  static char *format_str = Line 102  static char *format_str =
102    
103  static mh_format_t format;  static mh_format_t format;
104  static int width = 80;  static int width = 80;
105  static char *draft_folder;  
106  static char *draft_file;  struct mh_whatnow_env wh_env = { 0 };
107    static int initial_edit = 1;
108  static mh_msgset_t msgset;  static mh_msgset_t msgset;
109  static mailbox_t mbox;  static mailbox_t mbox;
110  static int build_only = 0; /* --build flag */  static int build_only = 0; /* --build flag */
# Line 117  decode_cc_flag (const char *opt, const c Line 119  decode_cc_flag (const char *opt, const c
119        mh_error (_("%s %s is unknown"), opt, arg);        mh_error (_("%s %s is unknown"), opt, arg);
120        exit (1);        exit (1);
121      }      }
122      return 0; /* never reached */
123  }  }
124    
125  static int  static int
# Line 125  opt_handler (int key, char *arg, void *u Line 128  opt_handler (int key, char *arg, void *u
128    switch (key)    switch (key)
129      {      {
130      case 'b':      case 'b':
131        case ARG_NOWHATNOWPROC:
132        build_only = 1;        build_only = 1;
133        break;        break;
134                
# Line 137  opt_handler (int key, char *arg, void *u Line 141  opt_handler (int key, char *arg, void *u
141        break;        break;
142                    
143      case 'd':      case 'd':
144        draft_folder = arg;        wh_env.draftfolder = arg;
145          break;
146          
147        case 'e':
148          wh_env.editor = arg;
149        break;        break;
150                
151      case '+':      case '+':
# Line 149  opt_handler (int key, char *arg, void *u Line 157  opt_handler (int key, char *arg, void *u
157        mh_read_formfile (arg, &format_str);        mh_read_formfile (arg, &format_str);
158        break;        break;
159    
160        case 'm':
161          wh_env.draftmessage = arg;
162          break;
163          
164      case 'w':      case 'w':
165        width = strtoul (arg, NULL, 0);        width = strtoul (arg, NULL, 0);
166        if (!width)        if (!width)
# Line 159  opt_handler (int key, char *arg, void *u Line 171  opt_handler (int key, char *arg, void *u
171        break;        break;
172    
173      case ARG_NODRAFTFOLDER:      case ARG_NODRAFTFOLDER:
174        draft_folder = NULL;        wh_env.draftfolder = NULL;
175        break;        break;
176    
177        case ARG_NOEDIT:
178          initial_edit = 0;
179          break;
180          
181      case ARG_QUERY:      case ARG_QUERY:
182        query_mode = is_true (arg);        query_mode = is_true (arg);
183        break;        break;
184                
185      case 'a':      case 'a':
     case 'm':  
     case 'e':  
     case ARG_NOEDIT:  
186      case ARG_FCC:      case ARG_FCC:
187      case ARG_FILTER:      case ARG_FILTER:
188      case ARG_INPLACE:      case ARG_INPLACE:
# Line 193  make_draft () Line 206  make_draft ()
206  #define bufsize sizeof(buffer)  #define bufsize sizeof(buffer)
207    
208    /* FIXME: first check if the draft exists */    /* FIXME: first check if the draft exists */
209    fp = fopen (draft_file, "w+");    fp = fopen (wh_env.file, "w+");
210    if (!fp)    if (!fp)
211      {      {
212        mh_error (_("cannot open draft file %s: %s"),        mh_error (_("cannot open draft file %s: %s"),
213                  draft_file, strerror (errno));                  wh_env.file, strerror (errno));
214        exit (1);        exit (1);
215      }      }
216        
# Line 213  make_draft () Line 226  make_draft ()
226    mh_format (&format, msg, msgset.list[0], buffer, bufsize);    mh_format (&format, msg, msgset.list[0], buffer, bufsize);
227    fprintf (fp, "%s", buffer);    fprintf (fp, "%s", buffer);
228    fclose (fp);    fclose (fp);
229    
230      {
231        url_t url;
232        size_t num;
233        char *msgname, *p;
234        
235        mailbox_get_url (mbox, &url);
236        mh_message_number (msg, &num);
237        asprintf (&msgname, "%s/%lu", url_to_string (url), (unsigned long) num);
238        p = strchr (msgname, ':');
239        if (!p)
240          wh_env.msg = msgname;
241        else
242          {
243            wh_env.msg = strdup (p+1);
244            free (msgname);
245          }
246      }
247  }  }
248    
249  int  int
# Line 231  main (int argc, char **argv) Line 262  main (int argc, char **argv)
262        exit (1);        exit (1);
263      }      }
264    
265    if (!draft_folder)    if (!wh_env.draftfolder)
266      draft_folder = mh_global_profile_get ("Draft-Folder", mu_path_folder_dir);      wh_env.draftfolder = mh_global_profile_get ("Draft-Folder",
267                                                    mu_path_folder_dir);
268        
269    mbox = mh_open_folder (current_folder, 0);    mbox = mh_open_folder (current_folder, 0);
270    mh_msgset_parse (mbox, &msgset, argc - index, argv + index, "cur");    mh_msgset_parse (mbox, &msgset, argc - index, argv + index, "cur");
# Line 242  main (int argc, char **argv) Line 274  main (int argc, char **argv)
274        return 1;        return 1;
275      }      }
276        
277    draft_file = mh_expand_name (draft_folder, "reply", 0);    wh_env.file = mh_expand_name (wh_env.draftfolder, "reply", 0);
278        
279    make_draft ();    make_draft ();
280      
281    return 0;    /* Exit immediately if --build is given */
282      if (build_only)
283        return 0;
284    
285      return mh_whatnow (&wh_env, initial_edit);
286  }  }

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

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