Mercurial > emacs
annotate lib-src/b2m.c @ 109108:5842e8fabe06
Convert some prototypes to standard C.
* lib-src/make-docfile.c (xmalloc, xrealloc, concat, readline, fatal):
* lib-src/b2m.c (scan_file, scan_lisp_file, scan_c_file): Convert to
standard C prototypes.
* src/term.c (term_clear_mouse_face, Fidentity):
* src/syssignal.h (signal_handler_t):
* src/lisp.h (memory_warnings):
* src/coding.h (preferred_coding_system):
* src/cm.h (evalcost):
* src/blockinput.h (reinvoke_input_signal): Convert to standard C prototypes.
| author | Dan Nicolaescu <dann@ics.uci.edu> |
|---|---|
| date | Fri, 02 Jul 2010 15:18:28 -0700 |
| parents | 5048b64c7cf0 |
| children | 52b76722152a |
| rev | line source |
|---|---|
| 440 | 1 /* |
| 2 * b2m - a filter for Babyl -> Unix mail files | |
| 42260 | 3 * The copyright on this file has been disclaimed. |
| 440 | 4 * |
| 5 * usage: b2m < babyl > mailbox | |
| 6 * | |
| 7 * I find this useful whenever I have to use a | |
| 8 * system which - shock horror! - doesn't run | |
|
40067
5c3937ee7017
Properly spell the name of Emacs.
Pavel Jan?k <Pavel@Janik.cz>
parents:
37163
diff
changeset
|
9 * GNU Emacs. At least now I can read all my |
|
5c3937ee7017
Properly spell the name of Emacs.
Pavel Jan?k <Pavel@Janik.cz>
parents:
37163
diff
changeset
|
10 * GNU Emacs Babyl format mail files! |
| 440 | 11 * |
| 12 * it's not much but it's free! | |
| 13 * | |
| 14 * Ed Wilkinson | |
| 15 * E.Wilkinson@massey.ac.nz | |
| 16 * Mon Nov 7 15:54:06 PDT 1988 | |
| 17 */ | |
| 18 | |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
19 /* Made conformant to the GNU coding standards January, 1995 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
20 by Francesco Potorti` <pot@cnuce.cnr.it>. */ |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
21 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
22 #ifdef HAVE_CONFIG_H |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
23 #include <config.h> |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
24 /* On some systems, Emacs defines static as nothing for the sake |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
25 of unexec. We don't want that here since we don't use unexec. */ |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
26 #undef static |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
27 #endif |
| 440 | 28 |
|
26083
134b57acef68
Add support for large files. Merge glibc 2.1.2.
Paul Eggert <eggert@twinsun.com>
parents:
21386
diff
changeset
|
29 #include <stdio.h> |
|
134b57acef68
Add support for large files. Merge glibc 2.1.2.
Paul Eggert <eggert@twinsun.com>
parents:
21386
diff
changeset
|
30 #include <time.h> |
|
134b57acef68
Add support for large files. Merge glibc 2.1.2.
Paul Eggert <eggert@twinsun.com>
parents:
21386
diff
changeset
|
31 #include <sys/types.h> |
|
134b57acef68
Add support for large files. Merge glibc 2.1.2.
Paul Eggert <eggert@twinsun.com>
parents:
21386
diff
changeset
|
32 #include <getopt.h> |
|
134b57acef68
Add support for large files. Merge glibc 2.1.2.
Paul Eggert <eggert@twinsun.com>
parents:
21386
diff
changeset
|
33 #ifdef MSDOS |
|
134b57acef68
Add support for large files. Merge glibc 2.1.2.
Paul Eggert <eggert@twinsun.com>
parents:
21386
diff
changeset
|
34 #include <fcntl.h> |
|
21386
49b24e54a5fa
Include <stdlib.h> if available.
Andreas Schwab <schwab@suse.de>
parents:
21354
diff
changeset
|
35 #endif |
|
49b24e54a5fa
Include <stdlib.h> if available.
Andreas Schwab <schwab@suse.de>
parents:
21354
diff
changeset
|
36 |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
37 #undef TRUE |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
38 #define TRUE 1 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
39 #undef FALSE |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
40 #define FALSE 0 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
41 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
42 #define streq(s,t) (strcmp (s, t) == 0) |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
43 #define strneq(s,t,n) (strncmp (s, t, n) == 0) |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
44 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
45 typedef int logical; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
46 |
|
69790
1e68e7f3b824
* lib-src/b2m.c (main): Don't include <limits.h>.
Paul Eggert <eggert@twinsun.com>
parents:
69697
diff
changeset
|
47 #define TM_YEAR_BASE 1900 |
|
1e68e7f3b824
* lib-src/b2m.c (main): Don't include <limits.h>.
Paul Eggert <eggert@twinsun.com>
parents:
69697
diff
changeset
|
48 |
|
1e68e7f3b824
* lib-src/b2m.c (main): Don't include <limits.h>.
Paul Eggert <eggert@twinsun.com>
parents:
69697
diff
changeset
|
49 /* Nonzero if TM_YEAR is a struct tm's tm_year value that causes |
|
1e68e7f3b824
* lib-src/b2m.c (main): Don't include <limits.h>.
Paul Eggert <eggert@twinsun.com>
parents:
69697
diff
changeset
|
50 asctime to have well-defined behavior. */ |
|
1e68e7f3b824
* lib-src/b2m.c (main): Don't include <limits.h>.
Paul Eggert <eggert@twinsun.com>
parents:
69697
diff
changeset
|
51 #ifndef TM_YEAR_IN_ASCTIME_RANGE |
|
69697
e112ec9aa49b
* b2m.c: Include <limits.h>.
Paul Eggert <eggert@twinsun.com>
parents:
55408
diff
changeset
|
52 # define TM_YEAR_IN_ASCTIME_RANGE(tm_year) \ |
|
69790
1e68e7f3b824
* lib-src/b2m.c (main): Don't include <limits.h>.
Paul Eggert <eggert@twinsun.com>
parents:
69697
diff
changeset
|
53 (1000 - TM_YEAR_BASE <= (tm_year) && (tm_year) <= 9999 - TM_YEAR_BASE) |
|
69697
e112ec9aa49b
* b2m.c: Include <limits.h>.
Paul Eggert <eggert@twinsun.com>
parents:
55408
diff
changeset
|
54 #endif |
|
e112ec9aa49b
* b2m.c: Include <limits.h>.
Paul Eggert <eggert@twinsun.com>
parents:
55408
diff
changeset
|
55 |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
56 /* |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
57 * A `struct linebuffer' is a structure which holds a line of text. |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
58 * `readline' reads a line from a stream into a linebuffer and works |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
59 * regardless of the length of the line. |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
60 */ |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
61 struct linebuffer |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
62 { |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
63 long size; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
64 char *buffer; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
65 }; |
|
8957
4dffbc5d5dc7
(from, labels, data): Use MAX_DATA_LEN as length.
Richard M. Stallman <rms@gnu.org>
parents:
7528
diff
changeset
|
66 |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
67 extern char *strtok(); |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
68 |
|
109108
5842e8fabe06
Convert some prototypes to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103774
diff
changeset
|
69 long *xmalloc (unsigned int size); |
|
5842e8fabe06
Convert some prototypes to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103774
diff
changeset
|
70 long *xrealloc (char *ptr, unsigned int size); |
|
5842e8fabe06
Convert some prototypes to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103774
diff
changeset
|
71 char *concat (char *s1, char *s2, char *s3); |
|
5842e8fabe06
Convert some prototypes to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103774
diff
changeset
|
72 long readline (struct linebuffer *linebuffer, register FILE *stream); |
|
5842e8fabe06
Convert some prototypes to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103774
diff
changeset
|
73 void fatal (char *message); |
| 440 | 74 |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
75 /* |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
76 * xnew -- allocate storage. SYNOPSIS: Type *xnew (int n, Type); |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
77 */ |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
78 #define xnew(n, Type) ((Type *) xmalloc ((n) * sizeof (Type))) |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
79 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
80 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
81 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
82 char *progname; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
83 |
| 20328 | 84 struct option longopts[] = |
| 85 { | |
| 86 { "help", no_argument, NULL, 'h' }, | |
| 87 { "version", no_argument, NULL, 'V' }, | |
| 88 { 0 } | |
| 89 }; | |
| 90 | |
| 91 extern int optind; | |
| 92 | |
|
21386
49b24e54a5fa
Include <stdlib.h> if available.
Andreas Schwab <schwab@suse.de>
parents:
21354
diff
changeset
|
93 int |
|
2101
df8249aa4901
* b2m.c (main): Don't exit upon reading a blank line.
Jim Blandy <jimb@redhat.com>
parents:
998
diff
changeset
|
94 main (argc, argv) |
|
df8249aa4901
* b2m.c (main): Don't exit upon reading a blank line.
Jim Blandy <jimb@redhat.com>
parents:
998
diff
changeset
|
95 int argc; |
|
df8249aa4901
* b2m.c (main): Don't exit upon reading a blank line.
Jim Blandy <jimb@redhat.com>
parents:
998
diff
changeset
|
96 char **argv; |
| 440 | 97 { |
|
103774
5048b64c7cf0
* b2m.c (main): Ensure that each message ends in two newlines.
Chong Yidong <cyd@stupidchicken.com>
parents:
69790
diff
changeset
|
98 logical labels_saved, printing, header, first, last_was_blank_line; |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
99 time_t ltoday; |
|
69697
e112ec9aa49b
* b2m.c: Include <limits.h>.
Paul Eggert <eggert@twinsun.com>
parents:
55408
diff
changeset
|
100 struct tm *tm; |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
101 char *labels, *p, *today; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
102 struct linebuffer data; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
103 |
|
5448
18de002e47dd
(main) [MSDOS]: Open all files as binary.
Richard M. Stallman <rms@gnu.org>
parents:
4696
diff
changeset
|
104 #ifdef MSDOS |
|
6215
226d490216f7
Clean up indentation and whitespace.
Richard M. Stallman <rms@gnu.org>
parents:
6214
diff
changeset
|
105 _fmode = O_BINARY; /* all of files are treated as binary files */ |
|
14968
1351c75bc3d6
(main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents:
14850
diff
changeset
|
106 #if __DJGPP__ > 1 |
|
1351c75bc3d6
(main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents:
14850
diff
changeset
|
107 if (!isatty (fileno (stdout))) |
|
1351c75bc3d6
(main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents:
14850
diff
changeset
|
108 setmode (fileno (stdout), O_BINARY); |
|
1351c75bc3d6
(main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents:
14850
diff
changeset
|
109 if (!isatty (fileno (stdin))) |
|
1351c75bc3d6
(main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents:
14850
diff
changeset
|
110 setmode (fileno (stdin), O_BINARY); |
|
1351c75bc3d6
(main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents:
14850
diff
changeset
|
111 #else /* not __DJGPP__ > 1 */ |
|
5448
18de002e47dd
(main) [MSDOS]: Open all files as binary.
Richard M. Stallman <rms@gnu.org>
parents:
4696
diff
changeset
|
112 (stdout)->_flag &= ~_IOTEXT; |
|
18de002e47dd
(main) [MSDOS]: Open all files as binary.
Richard M. Stallman <rms@gnu.org>
parents:
4696
diff
changeset
|
113 (stdin)->_flag &= ~_IOTEXT; |
|
14968
1351c75bc3d6
(main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents:
14850
diff
changeset
|
114 #endif /* not __DJGPP__ > 1 */ |
|
5448
18de002e47dd
(main) [MSDOS]: Open all files as binary.
Richard M. Stallman <rms@gnu.org>
parents:
4696
diff
changeset
|
115 #endif |
|
14850
13d38dfedb51
(main): Initialize progname variable before using it.
Richard M. Stallman <rms@gnu.org>
parents:
11674
diff
changeset
|
116 progname = argv[0]; |
|
13d38dfedb51
(main): Initialize progname variable before using it.
Richard M. Stallman <rms@gnu.org>
parents:
11674
diff
changeset
|
117 |
| 20328 | 118 while (1) |
| 119 { | |
| 120 int opt = getopt_long (argc, argv, "hV", longopts, 0); | |
| 121 if (opt == EOF) | |
| 122 break; | |
| 123 | |
| 124 switch (opt) | |
| 125 { | |
| 126 case 'V': | |
| 127 printf ("%s (GNU Emacs %s)\n", "b2m", VERSION); | |
| 128 puts ("b2m is in the public domain."); | |
|
55408
1c425ce93ce9
(GOOD, BAD): Delete macros. Throughout,
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
52401
diff
changeset
|
129 exit (EXIT_SUCCESS); |
| 20328 | 130 |
| 131 case 'h': | |
| 132 fprintf (stderr, "Usage: %s <babylmailbox >unixmailbox\n", progname); | |
|
55408
1c425ce93ce9
(GOOD, BAD): Delete macros. Throughout,
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
52401
diff
changeset
|
133 exit (EXIT_SUCCESS); |
| 20328 | 134 } |
| 135 } | |
| 136 | |
| 137 if (optind != argc) | |
|
6173
cbf3383981cb
(main): Change delimiter from "^L" to "^_^L".
Karl Heuer <kwzh@gnu.org>
parents:
5448
diff
changeset
|
138 { |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
139 fprintf (stderr, "Usage: %s <babylmailbox >unixmailbox\n", progname); |
|
55408
1c425ce93ce9
(GOOD, BAD): Delete macros. Throughout,
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
52401
diff
changeset
|
140 exit (EXIT_SUCCESS); |
|
6173
cbf3383981cb
(main): Change delimiter from "^L" to "^_^L".
Karl Heuer <kwzh@gnu.org>
parents:
5448
diff
changeset
|
141 } |
| 20328 | 142 |
|
103774
5048b64c7cf0
* b2m.c (main): Ensure that each message ends in two newlines.
Chong Yidong <cyd@stupidchicken.com>
parents:
69790
diff
changeset
|
143 labels_saved = printing = header = last_was_blank_line = FALSE; |
|
5048b64c7cf0
* b2m.c (main): Ensure that each message ends in two newlines.
Chong Yidong <cyd@stupidchicken.com>
parents:
69790
diff
changeset
|
144 first = TRUE; |
|
6215
226d490216f7
Clean up indentation and whitespace.
Richard M. Stallman <rms@gnu.org>
parents:
6214
diff
changeset
|
145 ltoday = time (0); |
|
69697
e112ec9aa49b
* b2m.c: Include <limits.h>.
Paul Eggert <eggert@twinsun.com>
parents:
55408
diff
changeset
|
146 /* Convert to a string, checking for out-of-range time stamps. |
|
e112ec9aa49b
* b2m.c: Include <limits.h>.
Paul Eggert <eggert@twinsun.com>
parents:
55408
diff
changeset
|
147 Don't use 'ctime', as that might dump core if the hardware clock |
|
e112ec9aa49b
* b2m.c: Include <limits.h>.
Paul Eggert <eggert@twinsun.com>
parents:
55408
diff
changeset
|
148 is set to a bizarre value. */ |
|
e112ec9aa49b
* b2m.c: Include <limits.h>.
Paul Eggert <eggert@twinsun.com>
parents:
55408
diff
changeset
|
149 tm = localtime (<oday); |
|
69790
1e68e7f3b824
* lib-src/b2m.c (main): Don't include <limits.h>.
Paul Eggert <eggert@twinsun.com>
parents:
69697
diff
changeset
|
150 if (! (tm && TM_YEAR_IN_ASCTIME_RANGE (tm->tm_year) |
|
1e68e7f3b824
* lib-src/b2m.c (main): Don't include <limits.h>.
Paul Eggert <eggert@twinsun.com>
parents:
69697
diff
changeset
|
151 && (today = asctime (tm)))) |
|
69697
e112ec9aa49b
* b2m.c: Include <limits.h>.
Paul Eggert <eggert@twinsun.com>
parents:
55408
diff
changeset
|
152 fatal ("current time is out of range"); |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
153 data.size = 200; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
154 data.buffer = xnew (200, char); |
| 440 | 155 |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
156 if (readline (&data, stdin) == 0 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
157 || !strneq (data.buffer, "BABYL OPTIONS:", 14)) |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
158 fatal ("standard input is not a Babyl mailfile."); |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
159 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
160 while (readline (&data, stdin) > 0) |
|
6215
226d490216f7
Clean up indentation and whitespace.
Richard M. Stallman <rms@gnu.org>
parents:
6214
diff
changeset
|
161 { |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
162 if (streq (data.buffer, "*** EOOH ***") && !printing) |
|
6215
226d490216f7
Clean up indentation and whitespace.
Richard M. Stallman <rms@gnu.org>
parents:
6214
diff
changeset
|
163 { |
|
226d490216f7
Clean up indentation and whitespace.
Richard M. Stallman <rms@gnu.org>
parents:
6214
diff
changeset
|
164 printing = header = TRUE; |
|
14850
13d38dfedb51
(main): Initialize progname variable before using it.
Richard M. Stallman <rms@gnu.org>
parents:
11674
diff
changeset
|
165 printf ("From \"Babyl to mail by %s\" %s", progname, today); |
|
6215
226d490216f7
Clean up indentation and whitespace.
Richard M. Stallman <rms@gnu.org>
parents:
6214
diff
changeset
|
166 continue; |
|
226d490216f7
Clean up indentation and whitespace.
Richard M. Stallman <rms@gnu.org>
parents:
6214
diff
changeset
|
167 } |
|
6173
cbf3383981cb
(main): Change delimiter from "^L" to "^_^L".
Karl Heuer <kwzh@gnu.org>
parents:
5448
diff
changeset
|
168 |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
169 if (data.buffer[0] == '\037') |
|
6215
226d490216f7
Clean up indentation and whitespace.
Richard M. Stallman <rms@gnu.org>
parents:
6214
diff
changeset
|
170 { |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
171 if (data.buffer[1] == '\0') |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
172 continue; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
173 else if (data.buffer[1] == '\f') |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
174 { |
|
103774
5048b64c7cf0
* b2m.c (main): Ensure that each message ends in two newlines.
Chong Yidong <cyd@stupidchicken.com>
parents:
69790
diff
changeset
|
175 if (first) |
|
5048b64c7cf0
* b2m.c (main): Ensure that each message ends in two newlines.
Chong Yidong <cyd@stupidchicken.com>
parents:
69790
diff
changeset
|
176 first = FALSE; |
|
5048b64c7cf0
* b2m.c (main): Ensure that each message ends in two newlines.
Chong Yidong <cyd@stupidchicken.com>
parents:
69790
diff
changeset
|
177 else if (! last_was_blank_line) |
|
5048b64c7cf0
* b2m.c (main): Ensure that each message ends in two newlines.
Chong Yidong <cyd@stupidchicken.com>
parents:
69790
diff
changeset
|
178 puts(""); |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
179 /* Save labels. */ |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
180 readline (&data, stdin); |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
181 p = strtok (data.buffer, " ,\r\n\t"); |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
182 labels = "X-Babyl-Labels: "; |
| 440 | 183 |
|
42471
4234f54994ef
(main): Parenthesize assignment when used as truth value to prevent gcc
Pavel Jan?k <Pavel@Janik.cz>
parents:
42260
diff
changeset
|
184 while ((p = strtok (NULL, " ,\r\n\t"))) |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
185 labels = concat (labels, p, ", "); |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
186 |
|
11423
a096f82d87d9
(main): Check for trailing ", " before trying to delete it.
Karl Heuer <kwzh@gnu.org>
parents:
10370
diff
changeset
|
187 p = &labels[strlen (labels) - 2]; |
|
a096f82d87d9
(main): Check for trailing ", " before trying to delete it.
Karl Heuer <kwzh@gnu.org>
parents:
10370
diff
changeset
|
188 if (*p == ',') |
|
a096f82d87d9
(main): Check for trailing ", " before trying to delete it.
Karl Heuer <kwzh@gnu.org>
parents:
10370
diff
changeset
|
189 *p = '\0'; |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
190 printing = header = FALSE; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
191 labels_saved = TRUE; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
192 continue; |
|
6215
226d490216f7
Clean up indentation and whitespace.
Richard M. Stallman <rms@gnu.org>
parents:
6214
diff
changeset
|
193 } |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
194 } |
| 440 | 195 |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
196 if ((data.buffer[0] == '\0') && header) |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
197 { |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
198 header = FALSE; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
199 if (labels_saved) |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
200 puts (labels); |
|
6215
226d490216f7
Clean up indentation and whitespace.
Richard M. Stallman <rms@gnu.org>
parents:
6214
diff
changeset
|
201 } |
| 440 | 202 |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
203 if (printing) |
|
103774
5048b64c7cf0
* b2m.c (main): Ensure that each message ends in two newlines.
Chong Yidong <cyd@stupidchicken.com>
parents:
69790
diff
changeset
|
204 { |
|
5048b64c7cf0
* b2m.c (main): Ensure that each message ends in two newlines.
Chong Yidong <cyd@stupidchicken.com>
parents:
69790
diff
changeset
|
205 puts (data.buffer); |
|
5048b64c7cf0
* b2m.c (main): Ensure that each message ends in two newlines.
Chong Yidong <cyd@stupidchicken.com>
parents:
69790
diff
changeset
|
206 if (data.buffer[0] == '\0') |
|
5048b64c7cf0
* b2m.c (main): Ensure that each message ends in two newlines.
Chong Yidong <cyd@stupidchicken.com>
parents:
69790
diff
changeset
|
207 last_was_blank_line = TRUE; |
|
5048b64c7cf0
* b2m.c (main): Ensure that each message ends in two newlines.
Chong Yidong <cyd@stupidchicken.com>
parents:
69790
diff
changeset
|
208 else |
|
5048b64c7cf0
* b2m.c (main): Ensure that each message ends in two newlines.
Chong Yidong <cyd@stupidchicken.com>
parents:
69790
diff
changeset
|
209 last_was_blank_line = FALSE; |
|
5048b64c7cf0
* b2m.c (main): Ensure that each message ends in two newlines.
Chong Yidong <cyd@stupidchicken.com>
parents:
69790
diff
changeset
|
210 } |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
211 } |
|
37163
e563147d81e5
(main): Always return a value.
Gerd Moellmann <gerd@gnu.org>
parents:
26083
diff
changeset
|
212 |
|
55408
1c425ce93ce9
(GOOD, BAD): Delete macros. Throughout,
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
52401
diff
changeset
|
213 return EXIT_SUCCESS; |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
214 } |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
215 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
216 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
217 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
218 /* |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
219 * Return a newly-allocated string whose contents |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
220 * concatenate those of s1, s2, s3. |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
221 */ |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
222 char * |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
223 concat (s1, s2, s3) |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
224 char *s1, *s2, *s3; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
225 { |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
226 int len1 = strlen (s1), len2 = strlen (s2), len3 = strlen (s3); |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
227 char *result = xnew (len1 + len2 + len3 + 1, char); |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
228 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
229 strcpy (result, s1); |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
230 strcpy (result + len1, s2); |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
231 strcpy (result + len1 + len2, s3); |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
232 result[len1 + len2 + len3] = '\0'; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
233 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
234 return result; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
235 } |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
236 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
237 /* |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
238 * Read a line of text from `stream' into `linebuffer'. |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
239 * Return the number of characters read from `stream', |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
240 * which is the length of the line including the newline, if any. |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
241 */ |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
242 long |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
243 readline (linebuffer, stream) |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
244 struct linebuffer *linebuffer; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
245 register FILE *stream; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
246 { |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
247 char *buffer = linebuffer->buffer; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
248 register char *p = linebuffer->buffer; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
249 register char *pend; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
250 int chars_deleted; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
251 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
252 pend = p + linebuffer->size; /* Separate to avoid 386/IX compiler bug. */ |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
253 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
254 while (1) |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
255 { |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
256 register int c = getc (stream); |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
257 if (p == pend) |
|
6215
226d490216f7
Clean up indentation and whitespace.
Richard M. Stallman <rms@gnu.org>
parents:
6214
diff
changeset
|
258 { |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
259 linebuffer->size *= 2; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
260 buffer = (char *) xrealloc (buffer, linebuffer->size); |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
261 p += buffer - linebuffer->buffer; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
262 pend = buffer + linebuffer->size; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
263 linebuffer->buffer = buffer; |
|
6215
226d490216f7
Clean up indentation and whitespace.
Richard M. Stallman <rms@gnu.org>
parents:
6214
diff
changeset
|
264 } |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
265 if (c == EOF) |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
266 { |
|
18238
1f3d8941aba2
(readline): Terminate buffer properly when EOF seen.
Karl Heuer <kwzh@gnu.org>
parents:
14968
diff
changeset
|
267 *p = '\0'; |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
268 chars_deleted = 0; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
269 break; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
270 } |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
271 if (c == '\n') |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
272 { |
|
18238
1f3d8941aba2
(readline): Terminate buffer properly when EOF seen.
Karl Heuer <kwzh@gnu.org>
parents:
14968
diff
changeset
|
273 if (p > buffer && p[-1] == '\r') |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
274 { |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
275 *--p = '\0'; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
276 chars_deleted = 2; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
277 } |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
278 else |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
279 { |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
280 *p = '\0'; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
281 chars_deleted = 1; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
282 } |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
283 break; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
284 } |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
285 *p++ = c; |
| 440 | 286 } |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
287 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
288 return (p - buffer + chars_deleted); |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
289 } |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
290 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
291 /* |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
292 * Like malloc but get fatal error if memory is exhausted. |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
293 */ |
|
11674
754722efad75
(xmalloc, xrealloc): Declare them long *.
Richard M. Stallman <rms@gnu.org>
parents:
11423
diff
changeset
|
294 long * |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
295 xmalloc (size) |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
296 unsigned int size; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
297 { |
|
11674
754722efad75
(xmalloc, xrealloc): Declare them long *.
Richard M. Stallman <rms@gnu.org>
parents:
11423
diff
changeset
|
298 long *result = (long *) malloc (size); |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
299 if (result == NULL) |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
300 fatal ("virtual memory exhausted"); |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
301 return result; |
| 440 | 302 } |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
303 |
|
11674
754722efad75
(xmalloc, xrealloc): Declare them long *.
Richard M. Stallman <rms@gnu.org>
parents:
11423
diff
changeset
|
304 long * |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
305 xrealloc (ptr, size) |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
306 char *ptr; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
307 unsigned int size; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
308 { |
|
11674
754722efad75
(xmalloc, xrealloc): Declare them long *.
Richard M. Stallman <rms@gnu.org>
parents:
11423
diff
changeset
|
309 long *result = (long *) realloc (ptr, size); |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
310 if (result == NULL) |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
311 fatal ("virtual memory exhausted"); |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
312 return result; |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
313 } |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
314 |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
315 void |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
316 fatal (message) |
|
21354
f998f239f77b
(fatal): Declare the arg.
Richard M. Stallman <rms@gnu.org>
parents:
20328
diff
changeset
|
317 char *message; |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
318 { |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
319 fprintf (stderr, "%s: %s\n", progname, message); |
|
55408
1c425ce93ce9
(GOOD, BAD): Delete macros. Throughout,
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
52401
diff
changeset
|
320 exit (EXIT_FAILURE); |
|
10370
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
321 } |
|
4b1c8dc724e6
(concat, xmalloc, xrealloc, readline, xnew): Four new
Richard M. Stallman <rms@gnu.org>
parents:
9491
diff
changeset
|
322 |
| 52401 | 323 /* arch-tag: 5a3ad2af-a802-408f-83cc-e7cf5e98653e |
| 324 (do not change this comment) */ | |
|
55408
1c425ce93ce9
(GOOD, BAD): Delete macros. Throughout,
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
52401
diff
changeset
|
325 |
|
1c425ce93ce9
(GOOD, BAD): Delete macros. Throughout,
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
52401
diff
changeset
|
326 /* b2m.c ends here */ |
