to semi-colon.
(FILENAME_EQ): New macro, for comparing file names.
(add_member_decl, add_global_decl, add_member_defn): Use
FILENAME_EQ.
(process_file): Don't assume that fread always reads as many bytes
as it was told to (DOS-style CR-LF text files fail this logic).
(open_file): Allocate enough space for path->path plus the file
name and the slash.
* etags.c (iswhite): Redefined not to consider '\0' as white
space, and use it throughout in place of isspace, thus preventing a
potential signed char to int conversion problem.
(MSDOS): #undefine befere redefining
2000-02-04 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
* etags.c (many functions): Add prototypes.
around image definitions and prototypes.
(gamma_correct) [WINDOWSNT]: New prototype.
* w32term.c (x_make_frame_visible): Replace call to
input_poll_signal with poll_for_input.
* window.c [WINDOWSNT]: Include w32term.h.
* xdisp.c [WINDOWSNT]: Include w32term.h.
* makefile.nt: Add dependencies on w32gui.h.
(OBJ1): Include atimer.obj.
($(BLD)\atimer.obj): New dependency rule.
* w32.c (sigmask): New function (does nothing).
(sigunblock): Ditto.
* frame.c [WINDOWSNT]: Include w32term.h.
* w32gui.h (struct W32FontStruct): Add ascent and descent slots.
* lread.c (syms_of_lread): Fix literal newlines.
* emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
the string constant limit (2048 bytes) in MSVC.
(main): Ditto.
* etags.c [MSDOS]: Set MSDOS to 1 if #defined, 0 otherwise.
(get_compressor_from_suffix, process_file): Use MSDOS in if clause.
(etags_strchr, etags_strrchr): Use const char * and int as arguments.
(getenv, getcwd): Only declare them if necessary.
(EMACS_NAME): New constant macro.
(print_version): Use it.
(P_) [__STDC__]: Macro for defining function prototypes.
(all functions): Made them static.
2000-01-18 Fabrice Popineau <Fabrice.Popineau@supelec.fr>
* etags.c [WINDOWSNT]: #include <direct.h>
2000-01-18 Martin Buchholz <martin@xemacs.org>
* etags.c: Prototypes and static for all the functions.
* etags.c (_GNU_SOURCE): Define only if undefined.
(get_scheme): Declaration deleted.
(main): error was called with an integer as second arg, instead of
a char pointer.
(canonicalize_filename): Bug removed.
1999-11-18 Dave Love <d.love@dl.ac.uk>
* etags.c (C_entries): Rename label `intoken', avoiding K&R
lossage from name clash with macro.
back to 1997-06-04. Please look at Changelog for details. Main changes
are:
- lots of code cleanups and optimizations
- --globals is used not only for C-like languages
- new option --ignore-case-regex
- understands "operator" in C++
- support DOS file names by handling e.g. foo.cgz as if it were foo.c.gz.
- Fortran: no tags for "procedure"
- new option --declarations
- regular expressions can be read from a file
- regular expressions can be bound to a given language
- Ada and Python languages added
- my and local variables recognised in Perl
- "(defstruct (foo", "(defun (operator" and similar Lisp constructs
- interface in Java
* b2m.c, emacsclient.c, emacsserver.c, fakemail.c, make-docfile.c,
movemail.c, pop.c:
Do not include <stdlib.h>, as <config.h> does this now.
* b2m.c, emacsserver.c, etags.c, profile.c:
Include <config.h> before any system include files.
* emacsclient.c, emacsserver.c, fakemail.c, movemail.c, pop.c,
test-distrib.c:
(read, write, open, close): Do not undef.
* getopt.c, getopt1.c: Adopt glibc 2.1.2, with the following fix:
(const): Do not define if HAVE_CONFIG_H; that's config.h's job.
* getopt.h: Adopt glibc 2.1.2.
instead of using "pop" on Unix and "pop3" on Windows NT. "pop3"
has been the standard service name since RFC 1340 was published in
July 1992, so I think it's safe to start using it by default.
'>' any lines starting with "From " read from the POP server, but
leave the code in place, wrapped in #ifdef
MOVEMAIL_QUOTE_POP_FROM_LINES, in case we have to restore it later
because it turns out that something is depending on it. Change
suggested by Paul Eggert <eggert@twinsun.com>.
Convert the character \037 (^_) at the beginning of a line into
the character '^' followed by the character '_', because otherwise
Emacs can't parse the resulting file as a valid BABYL file.
Change suggested by Paul Eggert <eggert@twinsun.com>.
Kerberos V5 for movemail, including detection of V4 and V5 header
files and libraries.
Include <string.h> when STDC_HEADERS is defined, to get
declarations of string functions.
[KERBEROS5] (socket_connection): Support the current MIT Kerberos
V5 API rather than the old one.
[KERBEROS] (socket_connection): Change a constant name from
SOCKET_ERROR to POP_SOCKET_ERROR to avoid a namespace conflict
with a constant in a header file.
(movemail.exe): Depend upon and link with getopt files.
(obj): Include new source files.
(FACE_SUPPORT, MOUSE_SUPPORT, FLOAT_SUPPORT, WINNT_SUPPORT): Define.
(lisp): Include new and reorganized elisp files.
New function new_pfnote will be used for "optimised tags", but
it depends on a constant that disables it for now.
New possibility of tagging global variables in C/C++/ObjC/Java
is enabled by default. Tags of member variables is disabled
by default. Options --(no-)members and --(no-)globals control them.
New symbol table entries for "import", "package" and "friend".
(Postscript_suffixes): .ps is Postscript.
(lang_names): Add Postscript.
(Postscript_functions): New function.
(TEX_decode_env): Close minor memory leak.
(just_read_file): Correct the char number of the tag.
since this causes some shells to generate the empty string when IFS is $nl.
(printlogline): Use SOH (octal code 1), not CR, since some PC-based shells
mishandle CR.
(struct linebuffer): New member `len' is the length of the string.
(find_entries, Pascal_functions, TeX_functions, TEX_getit):
Use it instead of strlen.
(TEX_getit): Declare and define unconditionally as static.
(TeX_functions): Use if instead of #if TeX_named_tokens.
(add_regex): Set RE_INTERVALS flag for regex compilation.
(substitute): Code cleanup.
(readline_internal): Code cleanup, set new member `len'.
(readline): Bug corrected.
* etags.c (xnew): Add support for debugging with chkmalloc.
(error): Use this instead of printf whenever possible.
(main): Only call xnew after having initialised progname.
(substitute): Bad memory corruption error corrected.
* etags.c (add_regex): Undo previous change.
(relative_filename): Small memory leak closed.
(absolute_filename): Cleaned up the code, possibly closing a bug.
(absolute_dirname): Always return a newly allocated string.
declarations.
(popmail, pop_retr): Since popmail always passes mbx_write and mbf
into pop_retr, there's no reason to pass in mbx_write, and the
file argument can be declared FILE * explicitly. This fixes a
compilation problem on systems with 64-bit pointers.
message when movemail is compiled without POP support.
(main, popmail): Add the optional "-p" argument, which causes
movemail to leave mail in the inbox after copying it into the
output file.
(Copyright, Help, Id): New variables, for above.
(rlog): Use -q option with cvs log, to avoid useless chatter.
Treat logs of "Initial revision" (RCS) or "file F was initially added
on branch B." (CVS) as if they said "New file.", for consistency with
change log entries.
Remove a redundant inclusion of <stdio.h>.
(MAIL_USE_MAILLOCK): New macro, conditionally defined.
(main): Add variable spool_name.
Support the usage of maillock and mailunlock to
lock and unlock mailboxes.
(mail_spool_name): New function.
particular cases involving function declarations that failed.
* etags.c (pfnote, fatal, error): Callers using a NULL pointer
must cast it to (char *) because we have no prototypes.
(make_C_tag): Macro deleted, new function.
(C_entries): Calls to make_C_tag macro changed to call function.
* etags.c (grow_linebuffer): New function.
(GROW_LINEBUFFER): Macro deleted. All callers changed.
(make_tag): Macro renamed to make_C_tag. All callers changed.
(<stdlib.h>, <string.h>) [STDC_HEADERS]: New #include's.
(Prolog_functions): prolog_skip_comment was called with wrong
number of arguments.
(xrealloc): fatal was called with wrong number of arguments
* etags.c (print_help): Print the bug reporting address.
(main): Use return as the last instruction, instead of exit.
* etags.c (main): Don't open the tags file in cxref mode.
Include signal.h.
(xmalloc, fatal, error): New functions.
(delete_socket, handle_signals): New functions.
(progname, socket_name): New variables.
[HAVE_SOCKETS] (main): Call handle_signals; set the new variables.
change-log-time-zone-rule is non-nil, instead of traditional Unix date
format.
(datearg): When computing default from ChangeLog, handle ISO format dates
in addition to old-fashioned dates from Emacs 19.31 and earlier. Don't
worry about hh:mm:ss since the resolution is now by day. Use emtpy
datearg, not empty rlog_options, to decide whether to pass "$datearg"
option to $rlog.
(logTZ): New variable, set to TZ specified by change-log-time-zone-rule.
(month_data): Remove `mo'; no longer needed.
(rlog_options): Use -zLT for localltime output, if `rlog' supports it.
(extractTZ): Use UTC if the zone is t.
Match `revision' line of rlog output more accurately.
Add -c, -v options.
Macro SOCKET_ERROR undefined.
Don't declare h_errno.
[!WINDOWSNT]: Define macros recv and send.
[!WINDOWSNT] (POP_SERVICE): Change to pop3.
(pop_open) [WINDOWSNT]: Initialize trash_started.
(have_winsock) [WINDOWSNT]: New variable.
(socket_connection) [WINDOWSNT]: Initialize winsock.
(socket_connection): Use closesocket instead of close.
(getline): Use recv instead of read.
(fullwrite): Use send instead of write.
(pop_trash): Use closesocket instead of close.
(pop_trash) [WINDOWSNT]: Cleanup winsock.
Check if being called recursively by sendline.
(fork, syswait, DISABLE_DIRECT_ACCESS) [WINDOWSNT]: Macros defined.
[WINDOWSNT]: Include locking.h.
(main): Update usage message. Use IS_DIRECTORY_SEP.
(main) [DISABLE_DIRECT_ACCESS]: Don't check access if defined.
(main) [WINDOWSNT]: Invoke locking instead of flock.
(main) [MAIL_USE_SYSTEM_LOCK && WINDOWSNT]: Emulate ftruncate.
(main) [MAIL_USE_POP]: Pass password to popmail if used.
Include winsock.h; don't include unix inet headers.
(popmail): Add password argument and pass it to pop_open.
Open output file in binary mode.
letter isn't an alphabetic character.
(main) [DOS_NT]: Use binary mode on redirected `stdout'.
(process_file) [DOS_NT]: Convert all slashes to forward style.
(absolute_filename) [DOS_NT]: Emit error message for relative
paths with a drive letter.
(absolute_filename) [DOS_NT]: Handle absolute pathnames with
DOS/NT drive letters which try to reference the parent of the root.
(absolute_dirname) [DOS_NT]: Convert all slashes to forward style.
info, and don't record undo info for the conversion.
* etags.c: Prolog language totaly rewritten.
(Prolog_functions): Rewritten from scratch.
(skip_comment, prolog_getit): Removed.
(prolog_skip_comment): New function, like old skip_comment.
(prolog_pred, prolog_atom, prolog_white): New functions.
(erlang_func, erlang_attributes): Forward declarations added.
(erlang_atom): Check if backslash ends line inside quoted atom.
* etags.c (absolutefn): DOS_NT version corrected.
(main): Append "/" to the dir name only if not already there.
(print_help): Explain the absolute/relative file name issue.
* etags.c: New Languange Erlang added.
(Erlang_functions, erlang_func, erlang_attribute, erlang_atom,
erlang_white): New functions.
(Erlang_suffixes): New suffix list.
(lang_names): Erlang entry added.
(prolog_getit): Accepts headers spanning several lines.
Always name tags.
(Prolog_functions): Removed incorrect compensation for
newline characters.
(readline_internal): Zero-terminate last line.
(gperf): Added keywords for Objective C and GNU macros.
(sym_type): Added values to account for Objective C and GNU macros.
(begtk): The '@' character can start a token.
(objdef, methodlen, objtag): New variables for Objective C.
(consider_token, C_entries): Added code for Objective C.
(plain_C_suffixes): Add .m and .lm for Objective C.
(Yacc_suffixes): Add .ym for Objective yacc.
(GROW_LINEBUFFER): New macro.
(consider_token, C_entries, Pascal_functions): Use the new macro.
(consider_token): Take one more argument. Caller changed.
(consider_token): Use the hashing function to spot GNU macros.
(C_entries): Consider // as a comment start even in plain C for
the sake of Objective C parsing.
(pfnote): Don't make a tag for ctags if there is no name.
(getit, Asm_labels, Perl_functions, Pascal_functions, L_getit,
get_scheme, prolog_getit): Name the tag in ctags mode.
(pfnote): Truncate ctags lines to 50 chars, like it worked once.
(Perl_interpreters): Accept "@PERL@" as an interpreter.
(suggest_asking_for_help): New function.
(main, get_language_from_name): Use suggest_asking_for_help.
(main): Let get_language_from_name make language existence check.
(streq, strneq): Check the arguments #if DEBUG.
get_lang_from_suffix): New functions.
(get_language): Function deleted.
(lang_entry): Two members added to struct.
(lang_names): Reflect the new layout of lang_entry.
(print_language_names, main, find_entries): Use the new functions.
(find_entries): Look at the first line for #! if no language.
(C_entries): Invalidate the token when funcdef is reset.
(Perl_functions): New function.
(lang_suffixes): .pl and .pm are Perl suffixes.
(substitute): Remove some wrong and some useless code related with
escape `\` character in regexp replacement string.
(TEX_defenv): Added part, appendix, entry, index. Removed typeout.
(lang_suffixes): New suffixes: .hpp for C++; .f90 for Fortran;
.bib, .ltx, .TeX for TeX (.bbl, .dtx removed); .ml for Lisp;
.prolog for prolog (.pl removed).
(massage_name, etags_getcwd): Use lowcase instead of tolower.
(regex.h): Don't include it if REGEX_IN_LIBC is defined.
(C_entries, find_entries): Added comments about memory leakage.
(add_node): Dead code removed.
(add_node): Correctly compare node file names.
(Pascal_functions): Correctly allocate and free memory for tline.
(pfnote): Put the definition of fp in the innermost block.
(NODE): `named' member removed.
(pfnote, free_tree, put_entries, total_size_of_entries): Do not
use the `named' member, check whether `name' is NULL instead.
(pfnote): `named' argument removed, all callers changed.
(getit, Asm_labels, Pascal_functions, L_getit, get_scheme,
TeX_functions, TEX_getit, prolog_getit): Useless string allocation
removed from pfnote call, some code cleanup.
(relative_filename): Free temporary space allocated by concat.
(lowcase): new macro.
(tail, Fortran_functions, Pascal_functions): use new macro lowcase.
(lang_suffixes): new suffix ".pc" for Pro*C files.
(consider_token): don't tag all tokens beginning with DEFUN & Co..
(tail): look for the end of the token when comparing.
(takeprec): since now tail behaves differently, use strneq.
(make-docfile.exe,hexl.exe,wakeup.exe,etags.exe): Don't depend upon LIBS.
(DOC): Use del instead of rm.
(DOC) [WINDOWS95]: Use DOC.
(clean): Handle MSVC aux files.
(config.h,paths.h): Use $(CP) instead of cp.
(config.h): Use $(CONFIG_H)
(make-docfile.obj): Depend upon config.h.
Clean up comments.