char *tmpfil;
m_getfld_state_t gstate = 0;
-#ifdef LOCALE
- setlocale(LC_ALL, "");
-#endif
- invo_name = r1bindex (argv[0], '/');
-
- /* read user profile/context */
- context_read();
+ if (nmh_init(argv[0], 2)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
while (state == FLDPLUS) {
fieldsz = sizeof field;
state = m_getfld (&gstate, name, field, &fieldsz, in);
- printf ("%s", field);
- fprintf (out, "%s", field);
+ fputs(field, stdout);
+ fputs(field, out);
}
} else {
/* Else, get value of header field */
if (killp || erasep) {
tcsetattr(0, TCSADRAIN, &tio);
}
- unlink (tmpfil);
+ (void) m_unlink (tmpfil);
done (1);
}
if (i != 0 || (field[0] != '\n' && field[0] != 0)) {
do {
if (field[0] != ' ' && field[0] != '\t')
putc (' ', out);
- fprintf (out, "%s", field);
+ fputs(field, out);
} while (i == 1
&& (i = getln (field, sizeof(field))) >= 0);
if (i == -1)
break;
fprintf (out, "--------\n");
if (field[0] == 0 || !prepend)
- printf ("--------\n");
+ puts("--------");
if (field[0]) {
if (prepend && body) {
printf ("\n--------Enter initial text\n\n");
break;
if (buffer[0] == 0)
break;
- fprintf (out, "%s", buffer);
+ fputs(buffer, out);
}
}
do {
- fprintf (out, "%s", field);
+ fputs(field, out);
if (!rapid && !sigint)
- printf ("%s", field);
+ fputs(field, stdout);
} while (state == BODY &&
(fieldsz = sizeof field,
state = m_getfld (&gstate, name, field, &fieldsz, in)));
break;
if (field[0] == 0)
break;
- fprintf (out, "%s", field);
+ fputs(field, out);
}
break;
m_getfld_state_destroy (&gstate);
if (body)
- printf ("--------\n");
+ puts("--------");
fflush (stdout);
fclose (in);
cpydata (fdi, fdo, tmpfil, drft);
close (fdi);
close (fdo);
- unlink (tmpfil);
+ (void) m_unlink (tmpfil);
context_save (); /* save the context file */
done (0);
{
int c;
char *cp;
+ static int quoting = 0;
- cp = buffer;
- *cp = 0;
+ *buffer = 0;
switch (setjmp (sigenv)) {
case OK:
return NOTOK;
}
+ cp = buffer;
+ *cp = 0;
+
for (;;) {
switch (c = getchar ()) {
case EOF:
+ quoting = 0;
clearerr (stdin);
longjmp (sigenv, DONE);
case '\n':
- if (cp[-1] == QUOTE) {
- cp[-1] = c;
+ if (quoting) {
+ *(cp - 1) = c;
+ quoting = 0;
wtuser = 0;
return 1;
}
return 0;
default:
+ if (c == QUOTE) {
+ quoting = 1;
+ } else {
+ quoting = 0;
+ }
if (cp < buffer + n)
*cp++ = c;
*cp = 0;