--- ./po/cat-id-tbl.c Wed Jul 17 17:58:24 1996 +++ ../id-utils-3.2/./po/cat-id-tbl.c Wed Feb 2 11:11:46 2000 @@ -29,12 +29,9 @@ {"can't read entire language map file `%s'", 20}, {"\ C language:\n\ - -k,--keep=CHARS Allow CHARS in single-token strings, keep the \ -result\n\ - -i,--ignore=CHARS Allow CHARS in single-token strings, toss the \ -result\n\ - -u,--strip-underscore Strip a leading underscore from single-token \ -strings\n", 21}, + -k,--keep=CHARS Allow CHARS in single-token strings, keep the result\n\ + -i,--ignore=CHARS Allow CHARS in single-token strings, toss the result\n\ + -u,--strip-underscore Strip a leading underscore from single-token strings\n", 21}, {"junk: `%c'", 22}, {"junk: `\\%03o'", 23}, {"\ @@ -46,10 +43,8 @@ -n,--no-cpp Don't handle C pre-processor directives\n", 24}, {"\ Text language:\n\ - -i,--include=CHAR-CLASS Treat characters of CHAR-CLASS as token \ -constituents\n\ - -x,--exclude=CHAR-CLASS Treat characters of CHAR-CLASS as token \ -delimiters\n", 25}, + -i,--include=CHAR-CLASS Treat characters of CHAR-CLASS as token constituents\n\ + -x,--exclude=CHAR-CLASS Treat characters of CHAR-CLASS as token delimiters\n", 25}, {"can't read directory `%s' (`.' from `%s')", 26}, {"notice: `%s' was a %s, but is now a %s!", 27}, {"file", 28}, @@ -106,26 +101,21 @@ -w, --word match PATTERN as a delimited word\n\ -s, --substring match PATTERN as a substring\n\ Note: If PATTERN contains extended regular expression meta-\n\ - characters, it is interpreted as a regular expression \ -substring.\n\ + characters, it is interpreted as a regular expression substring.\n\ Otherwise, PATTERN is interpreted as a literal word.\n\ \n\ -k, --key=STYLE STYLE is one of `token', `pattern' or `none'\n\ - -R, --result=STYLE STYLE is one of `filenames', `grep', `edit' or \ -`none'\n\ + -R, --result=STYLE STYLE is one of `filenames', `grep', `edit' or `none'\n\ -S, --separator=STYLE STYLE is one of `braces', `space' or `newline' and\n\ - only applies to file names when \ -`--result=filenames'\n\ - The above STYLE options control how query results are \ -presented.\n\ + only applies to file names when `--result=filenames'\n\ + The above STYLE options control how query results are presented.\n\ Defaults are --key=token --result=filenames --separator=%s\n\ \n\ -F, --frequency=FREQ find tokens that occur FREQ times, where FREQ\n\ - is a range expressed as `N..M'. If N is omitted, \ -it\n\ - defaults to 1, if M is omitted it defaults to \ -MAX_USHRT\n\ + is a range expressed as `N..M'. If N is omitted, it\n\ + defaults to 1, if M is omitted it defaults to MAX_USHRT\n\ -a, --ambiguous=LEN find tokens whose names are ambiguous for LEN chars\n\ + -v, --vi_output cause the output to allow simple vi cut/paste of files \n\ \n\ -x, --hex only find numbers expressed as hexadecimal\n\ -d, --decimal only find numbers expressed as decimal\n\ @@ -149,12 +139,10 @@ Build an identifier database.\n\ -o, --output=OUTFILE file name of ID database output\n\ -f, --file=OUTFILE synonym for --output\n\ - -i, --include=LANGS include languages in LANGS (default: \"C C++ \ -asm\")\n\ + -i, --include=LANGS include languages in LANGS (default: \"C C++ asm\")\n\ -x, --exclude=LANGS exclude languages in LANGS\n\ -l, --lang-option=L:OPT pass OPT as a default for language L (see below)\n\ - -m, --lang-map=MAPFILE use MAPFILE to map file names onto source \ -language\n\ + -m, --lang-map=MAPFILE use MAPFILE to map file names onto source language\n\ -d, --default-lang=LANG make LANG the default source language\n\ -p, --prune=NAMES exclude the named files and/or directories\n\ -v, --verbose report per file statistics\n\ @@ -189,12 +177,10 @@ {"level %d: %ld/%ld = %.0f%%\n", 88}, {"\ Print all tokens found in a source file.\n\ - -i, --include=LANGS include languages in LANGS (default: \"C C++ \ -asm\")\n\ + -i, --include=LANGS include languages in LANGS (default: \"C C++ asm\")\n\ -x, --exclude=LANGS exclude languages in LANGS\n\ -l, --lang-option=L:OPT pass OPT as a default for language L (see below)\n\ - -m, --lang-map=MAPFILE use MAPFILE to map file names onto source \ -language\n\ + -m, --lang-map=MAPFILE use MAPFILE to map file names onto source language\n\ -d, --default-lang=LANG make LANG the default source language\n\ -p, --prune=NAMES exclude the named files and/or directories\n\ --help display this help and exit\n\ --- ./po/id-utils.pot Tue Aug 6 23:24:27 1996 +++ ../id-utils-3.2/./po/id-utils.pot Wed Feb 2 11:32:59 2000 @@ -1,21 +1,12 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR , YEAR. -# -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 1996-08-06 23:24-0400\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: ENCODING\n" +"Date: 2000-02-02 11:32:58-0500\n" +"From: David Kaelbling,DER-2008,,508-520-7826 \n" +"Content-Type: text/plain; charset=\n" +"Xgettext-Options: --default-domain=id-utils --directory=.. --add-comments --keyword=_ --keyword=N_ --files-from=./POTFILES.in\n" +"Files: libidu/hash.c libidu/idfile.c libidu/idread.c libidu/idwrite.c libidu/scanners.c libidu/walker.c libidu/xnls.h lib/getopt.c src/fid.c src/fnid.c src/lid.c src/mkid.c src/xtokid.c\n" #: libidu/hash.c:52 -#, c-format msgid "can't allocate %ld bytes for hash table: memory exhausted" msgstr "" @@ -24,7 +15,6 @@ msgstr "" #: libidu/hash.c:249 -#, c-format msgid "Rehash=%d, " msgstr "" @@ -37,95 +27,78 @@ msgstr "" #: libidu/idread.c:45 src/mkid.c:386 src/xtokid.c:214 -#, c-format msgid "can't open `%s'" msgstr "" #: libidu/idread.c:64 -#, c-format msgid "`%s' is not an ID file! (bad magic #)" msgstr "" #: libidu/idread.c:66 -#, c-format msgid "`%s' is version %d, but I only grok version %d" msgstr "" #: libidu/idread.c:186 -#, c-format msgid "unsupported size in io_read (): %d" msgstr "" #: libidu/idread.c:194 libidu/idwrite.c:167 -#, c-format msgid "unknown I/O type: %d" msgstr "" #: libidu/idwrite.c:156 -#, c-format msgid "unsupported size in io_write (): %d" msgstr "" -#: libidu/scanners.c:93 -#, c-format +#: libidu/scanners.c:94 msgid "unrecognized language: `%s'" msgstr "" -#: libidu/scanners.c:139 +#: libidu/scanners.c:140 msgid "can't allocate language args obstack: memory exhausted" msgstr "" -#: libidu/scanners.c:193 libidu/scanners.c:262 +#: libidu/scanners.c:194 libidu/scanners.c:263 msgid "can't allocate language args: memory exhausted" msgstr "" -#: libidu/scanners.c:201 -#, c-format +#: libidu/scanners.c:202 msgid "language name expected following `%s' in file `%s'" msgstr "" -#: libidu/scanners.c:256 -#, c-format +#: libidu/scanners.c:257 msgid "can't open language map file `%s'" msgstr "" -#: libidu/scanners.c:258 -#, c-format +#: libidu/scanners.c:259 msgid "can't get size of map file `%s'" msgstr "" -#: libidu/scanners.c:268 -#, c-format +#: libidu/scanners.c:269 msgid "can't read language map file `%s'" msgstr "" -#: libidu/scanners.c:271 -#, c-format +#: libidu/scanners.c:272 msgid "can't read entire language map file `%s'" msgstr "" -#: libidu/scanners.c:412 +#: libidu/scanners.c:413 msgid "" "C language:\n" -" -k,--keep=CHARS Allow CHARS in single-token strings, keep the " -"result\n" -" -i,--ignore=CHARS Allow CHARS in single-token strings, toss the " -"result\n" -" -u,--strip-underscore Strip a leading underscore from single-token " -"strings\n" +" -k,--keep=CHARS Allow CHARS in single-token strings, keep the result\n" +" -i,--ignore=CHARS Allow CHARS in single-token strings, toss the result\n" +" -u,--strip-underscore Strip a leading underscore from single-token strings\n" msgstr "" -#: libidu/scanners.c:681 libidu/scanners.c:986 libidu/scanners.c:1190 -#, c-format +#: libidu/scanners.c:682 libidu/scanners.c:987 libidu/scanners.c:1191 msgid "junk: `%c'" msgstr "" -#: libidu/scanners.c:683 libidu/scanners.c:988 libidu/scanners.c:1192 -#, c-format +#: libidu/scanners.c:684 libidu/scanners.c:989 libidu/scanners.c:1193 msgid "junk: `\\%03o'" msgstr "" -#: libidu/scanners.c:787 +#: libidu/scanners.c:788 msgid "" "Assembly language:\n" " -c,--comment=CHARS Any of CHARS starts a comment until end-of-line\n" @@ -135,22 +108,18 @@ " -n,--no-cpp Don't handle C pre-processor directives\n" msgstr "" -#: libidu/scanners.c:1092 +#: libidu/scanners.c:1093 msgid "" "Text language:\n" -" -i,--include=CHAR-CLASS Treat characters of CHAR-CLASS as token " -"constituents\n" -" -x,--exclude=CHAR-CLASS Treat characters of CHAR-CLASS as token " -"delimiters\n" +" -i,--include=CHAR-CLASS Treat characters of CHAR-CLASS as token constituents\n" +" -x,--exclude=CHAR-CLASS Treat characters of CHAR-CLASS as token delimiters\n" msgstr "" #: libidu/walker.c:103 -#, c-format msgid "can't read directory `%s' (`.' from `%s')" msgstr "" #: libidu/walker.c:170 -#, c-format msgid "notice: `%s' was a %s, but is now a %s!" msgstr "" @@ -163,12 +132,10 @@ msgstr "" #: libidu/walker.c:291 -#, c-format msgid "warning: `%s' and `%s' are the same file, but yield different scans!" msgstr "" #: libidu/walker.c:385 -#, c-format msgid "notice: scan parameters changed for `%s'" msgstr "" @@ -177,80 +144,65 @@ msgstr "" #: libidu/walker.c:637 -#, c-format msgid "can't chdir to `%s'" msgstr "" #: libidu/walker.c:642 -#, c-format msgid "can't chdir to `%s' from `%s'" msgstr "" #: libidu/walker.c:696 -#, c-format msgid "can't lstat `%s' from `%s'" msgstr "" #: libidu/walker.c:704 -#, c-format msgid "can't stat `%s' from `%s'" msgstr "" #: lib/getopt.c:527 -#, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "" #: lib/getopt.c:550 -#, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "" +#. +option or -option #: lib/getopt.c:555 -#, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "" #: lib/getopt.c:570 -#, c-format msgid "%s: option `%s' requires an argument\n" msgstr "" -#. --option #: lib/getopt.c:598 -#, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "" #. +option or -option #: lib/getopt.c:602 -#, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "" #. 1003.2 specifies the format of this message. #: lib/getopt.c:627 -#, c-format msgid "%s: illegal option -- %c\n" msgstr "" #: lib/getopt.c:630 -#, c-format msgid "%s: invalid option -- %c\n" msgstr "" #: lib/getopt.c:666 -#, c-format msgid "%s: option requires an argument -- %c\n" msgstr "" -#: src/fid.c:70 src/fnid.c:49 src/lid.c:237 src/mkid.c:120 src/xtokid.c:43 -#, c-format +#: src/fid.c:70 src/fnid.c:49 src/lid.c:241 src/mkid.c:120 src/xtokid.c:43 msgid "Try `%s --help' for more information.\n" msgstr "" #: src/fid.c:78 -#, c-format msgid "Usage: %s [OPTION] FILENAME [FILENAME2]\n" msgstr "" @@ -272,22 +224,19 @@ msgid "too many file name arguments" msgstr "" -#: src/fid.c:153 src/fnid.c:147 src/lid.c:410 +#: src/fid.c:153 src/fnid.c:147 src/lid.c:419 msgid "can't locate `ID'" msgstr "" #: src/fid.c:235 -#, c-format msgid "`%s' is ambiguous" msgstr "" #: src/fid.c:241 -#, c-format msgid "`%s' not found" msgstr "" #: src/fnid.c:66 -#, c-format msgid "Usage: %s [OPTION]... [PATTERN]...\n" msgstr "" @@ -301,13 +250,11 @@ " --version output version information and exit\n" msgstr "" -#: src/lid.c:245 -#, c-format +#: src/lid.c:249 msgid "Usage: %s [OPTION]... PATTERN...\n" msgstr "" -#: src/lid.c:249 -#, c-format +#: src/lid.c:253 msgid "" "Query ID database and report results.\n" "By default, output consists of multiple lines, each line containing the\n" @@ -321,26 +268,21 @@ " -w, --word match PATTERN as a delimited word\n" " -s, --substring match PATTERN as a substring\n" " Note: If PATTERN contains extended regular expression meta-\n" -" characters, it is interpreted as a regular expression " -"substring.\n" +" characters, it is interpreted as a regular expression substring.\n" " Otherwise, PATTERN is interpreted as a literal word.\n" "\n" " -k, --key=STYLE STYLE is one of `token', `pattern' or `none'\n" -" -R, --result=STYLE STYLE is one of `filenames', `grep', `edit' or " -"`none'\n" +" -R, --result=STYLE STYLE is one of `filenames', `grep', `edit' or `none'\n" " -S, --separator=STYLE STYLE is one of `braces', `space' or `newline' and\n" -" only applies to file names when " -"`--result=filenames'\n" -" The above STYLE options control how query results are " -"presented.\n" +" only applies to file names when `--result=filenames'\n" +" The above STYLE options control how query results are presented.\n" " Defaults are --key=token --result=filenames --separator=%s\n" "\n" " -F, --frequency=FREQ find tokens that occur FREQ times, where FREQ\n" -" is a range expressed as `N..M'. If N is omitted, " -"it\n" -" defaults to 1, if M is omitted it defaults to " -"MAX_USHRT\n" +" is a range expressed as `N..M'. If N is omitted, it\n" +" defaults to 1, if M is omitted it defaults to MAX_USHRT\n" " -a, --ambiguous=LEN find tokens whose names are ambiguous for LEN chars\n" +" -v, --vi_output cause the output to allow simple vi cut/paste of files \n" "\n" " -x, --hex only find numbers expressed as hexadecimal\n" " -d, --decimal only find numbers expressed as decimal\n" @@ -351,53 +293,48 @@ " --version output version information and exit\n" msgstr "" -#: src/lid.c:285 +#: src/lid.c:290 msgid "braces" msgstr "" -#: src/lid.c:285 +#: src/lid.c:290 msgid "space" msgstr "" -#: src/lid.c:351 +#: src/lid.c:356 msgid "notice: use of `-e' is deprecated, use `-r' instead" msgstr "" -#: src/lid.c:431 -#, c-format +#: src/lid.c:440 msgid "All identifiers are non-ambiguous within the first %d characters\n" msgstr "" -#: src/lid.c:466 -#, c-format +#: src/lid.c:475 msgid "invalid `--key' style: `%s'" msgstr "" -#: src/lid.c:478 -#, c-format +#: src/lid.c:487 msgid "invalid `--result' style: `%s'" msgstr "" #. FIXME: i18n of responses -#: src/lid.c:634 +#: src/lid.c:650 msgid "edit? [y1-9^S/nq] " msgstr "" -#: src/lid.c:703 +#: src/lid.c:719 msgid "can't fork" msgstr "" -#: src/lid.c:721 -#, c-format +#: src/lid.c:737 msgid "can't exec `%s'" msgstr "" -#: src/lid.c:851 +#: src/lid.c:867 msgid "can't match regular-expression: memory exhausted" msgstr "" #: src/mkid.c:145 src/xtokid.c:64 -#, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "" @@ -406,12 +343,10 @@ "Build an identifier database.\n" " -o, --output=OUTFILE file name of ID database output\n" " -f, --file=OUTFILE synonym for --output\n" -" -i, --include=LANGS include languages in LANGS (default: \"C C++ " -"asm\")\n" +" -i, --include=LANGS include languages in LANGS (default: \"C C++ asm\")\n" " -x, --exclude=LANGS exclude languages in LANGS\n" " -l, --lang-option=L:OPT pass OPT as a default for language L (see below)\n" -" -m, --lang-map=MAPFILE use MAPFILE to map file names onto source " -"language\n" +" -m, --lang-map=MAPFILE use MAPFILE to map file names onto source language\n" " -d, --default-lang=LANG make LANG the default source language\n" " -p, --prune=NAMES exclude the named files and/or directories\n" " -v, --verbose report per file statistics\n" @@ -428,77 +363,62 @@ msgstr "" #: src/mkid.c:311 -#, c-format msgid "can't create `%s' in `%s'" msgstr "" #: src/mkid.c:315 -#, c-format msgid "can't modify `%s'" msgstr "" #: src/mkid.c:368 -#, c-format msgid "can't stat `%s'" msgstr "" #: src/mkid.c:435 -#, c-format msgid " new = %d/%d" msgstr "" #: src/mkid.c:444 -#, c-format msgid "Name=%ld, " msgstr "" #: src/mkid.c:445 -#, c-format msgid "Number=%ld, " msgstr "" #: src/mkid.c:446 -#, c-format msgid "String=%ld, " msgstr "" #: src/mkid.c:447 -#, c-format msgid "Literal=%ld, " msgstr "" #: src/mkid.c:448 -#, c-format msgid "Comment=%ld\n" msgstr "" #: src/mkid.c:450 -#, c-format msgid "Files=%d, " msgstr "" #: src/mkid.c:451 -#, c-format msgid "Tokens=%ld, " msgstr "" #: src/mkid.c:452 -#, c-format msgid "Bytes=%ld Kb, " msgstr "" #: src/mkid.c:453 -#, c-format msgid "Heap=%ld+%ld Kb, " msgstr "" #: src/mkid.c:455 -#, c-format msgid "Output=%ld (%ld tok, %ld hit)\n" msgstr "" #: src/mkid.c:458 -#, c-format msgid ", Freq=%ld/%ld=%.2f\n" msgstr "" @@ -507,12 +427,10 @@ msgstr "" #: src/mkid.c:487 -#, c-format msgid "Writing `%s'...\n" msgstr "" #: src/mkid.c:490 -#, c-format msgid "can't create `%s'" msgstr "" @@ -523,12 +441,10 @@ #: src/xtokid.c:68 msgid "" "Print all tokens found in a source file.\n" -" -i, --include=LANGS include languages in LANGS (default: \"C C++ " -"asm\")\n" +" -i, --include=LANGS include languages in LANGS (default: \"C C++ asm\")\n" " -x, --exclude=LANGS exclude languages in LANGS\n" " -l, --lang-option=L:OPT pass OPT as a default for language L (see below)\n" -" -m, --lang-map=MAPFILE use MAPFILE to map file names onto source " -"language\n" +" -m, --lang-map=MAPFILE use MAPFILE to map file names onto source language\n" " -d, --default-lang=LANG make LANG the default source language\n" " -p, --prune=NAMES exclude the named files and/or directories\n" " --help display this help and exit\n" --- ./src/lid.c Tue Aug 6 22:43:28 1996 +++ ../id-utils-3.2/./src/lid.c Mon Jan 31 17:19:23 2000 @@ -165,6 +165,10 @@ int radix_flag = radix_all; +/* vi_flag to print out - cut/paste for vi? */ + +int vi_flag = 0; + /* If nonzero, ignore differences in alphabetic case while matching. */ int ignore_case_flag = 0; @@ -273,6 +277,7 @@ is a range expressed as `N..M'. If N is omitted, it\n\ defaults to 1, if M is omitted it defaults to MAX_USHRT\n\ -a, --ambiguous=LEN find tokens whose names are ambiguous for LEN chars\n\ + -v, --vi_output cause the output to allow simple vi cut/paste of files \n\ \n\ -x, --hex only find numbers expressed as hexadecimal\n\ -d, --decimal only find numbers expressed as decimal\n\ @@ -301,7 +306,7 @@ for (;;) { - int optc = getopt_long (argc, argv, "f:F:a:k:R:S:ilrwsxdo", + int optc = getopt_long (argc, argv, "f:F:a:k:R:S:ilrwsxdov", long_options, (int *) 0); if (optc < 0) break; @@ -371,6 +376,10 @@ radix_flag |= radix_oct; break; + case 'v': + vi_flag = 1; + break; + default: usage (); } @@ -563,7 +572,10 @@ maybe_relative_file_name (file_name, *flinkv++, cw_dlink); gid_FILE = fopen (file_name, "r"); if (gid_FILE == 0) - error (0, errno, "can't open `%s'", file_name); + { + error (0, errno, "can't open `%s'", file_name); + continue; + } line_number = 0; while (fgets (&line[1], sizeof (line), gid_FILE)) @@ -579,7 +591,11 @@ } else if (!word_match (name, line)) continue; - printf ("%s:%d:%s", file_name, line_number, &line[1]); + + if (vi_flag) + printf ("+%d %s:%s", line_number, file_name, &line[1]); + else + printf ("%s:%d:%s", file_name, line_number, &line[1]); } fclose (gid_FILE); } --- ./lisp/elisp-comp Mon Aug 7 18:39:31 1995 +++ ../id-utils-3.2/./lisp/elisp-comp Mon Jan 31 17:19:23 2000 @@ -28,6 +28,8 @@ if test $# = 0; then echo 1>&2 "No files given to $0" else + cp id-utils.orig id-utils.elc + chmod 755 id-utils.elc tempdir=elc.$$ mkdir $tempdir cp $* $tempdir @@ -34,8 +36,6 @@ cd $tempdir echo "(setq load-path (cons nil load-path))" > script - emacs -batch -l script -f batch-byte-compile *.el - mv *.elc .. cd .. rm -fr $tempdir --- ./libidu/id-lang.map Wed May 29 15:19:41 1996 +++ ../id-utils-3.2/./libidu/id-lang.map Wed Feb 2 11:37:36 2000 @@ -40,6 +40,7 @@ *.hh C++ *.hpp C++ *.hxx C++ +*.h++ C++ *.l C *.lex C @@ -51,6 +52,7 @@ *.cc C++ *.cpp C++ *.cxx C++ +*.c++ C++ ChangeLog* Cdoc --- ./libidu/idfile.c Tue Jul 9 00:19:08 1996 +++ ../id-utils-3.2/./libidu/idfile.c Mon Jan 31 17:19:23 2000 @@ -85,7 +85,7 @@ if (stat (file_name_buffer, &statb) != 0) return NULL; } - while (!((statb.st_ino == rootb.st_ino) || + while (!((statb.st_ino == rootb.st_ino) && (statb.st_dev == rootb.st_dev))); return NULL; } --- ./libidu/scanners.c Wed Jul 17 17:45:52 1996 +++ ../id-utils-3.2/./libidu/scanners.c Wed Feb 2 11:32:41 2000 @@ -65,6 +65,7 @@ struct language languages_0[] = { { "C", parse_args_c, get_token_c, help_me_c }, + { "C++", parse_args_c, get_token_c, help_me_c }, { "asm", parse_args_asm, get_token_asm, help_me_asm }, { "text", parse_args_text, get_token_text, help_me_text }, }; @@ -906,7 +907,7 @@ || strequ (id_0, "define") || strequ (id_0, "undef")) goto next; - while (c != '\n') + while (c != '\n' && !ISEOF(c)) c = getc (in_FILE); new_line = 1; goto top;