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.
(DOC): Place DOC strings in DOC-X.
(config.h, paths.h): New source location.
(all): Use COMPAT_LIB in library list.
Use DEL_TREE instead of delnode.
(etags.exe): Use $(LINK) instead of link32.
(now obsolescent) -n login fullname mailaddr option.
Don't omit path from repository root when logging CVS files.
Add -R option for recursive rlog.
(AWK): New environment variable (default `awk') for name of awk program.
(output_authors, tab, loginFullnameMailaddrs, recursive): New variables.
Quote authors and fullnames correctly.
savetok.valid. Mark token as valid when it is initialised.
(make_tag): Make token only if token is valid and reset validity.
(CNL_SAVE_DEFINEDEF): Test for savetok.valid instead of token_saved.
(TOKEN): Added a new member: valid.
(C_entries): Do not allocate a new space for each token found by
consider_token. Let make_tag do that instead.
(make_tag): Since now TOKEN has memory of where it is taken from,
this new macro substitutes both make_tag_from_new_lb and
make_tag_from_oth_lb. All callers changed.
(TOKEN): Add linepos and buffer members.
(main): Initialise token_str.
(lang_extensions): Recognise .c++ and .h++ as C++ file suffixes.
(token_str): New global variable used by C_entries.
of fixed length static buffers in many places.
* etags.c (FILEPOS, GET_CHARNO, GET_FILEPOS, max, LINENO): Deleted.
(append_to_tagfile, typedefs, typedefs_and_cplusplus,
constantypedefs, update, vgrind_style, no_warnings,
cxref_style, cplusplus, noindentypedefs): Were int, now logical.
(permit_duplicates): Was a var, now a #define.
(filename_lb): Was global, now local to main.
(main): Open the tag file when in cxref mode.
Use a BUFSIZ size buffer for making the shell commands.
Look at the return value from the system routine.
Exit when cannot open the tag file.
(process_file): Open the file and pass the FILE* to find_entries.
(find_entries): Now void, because does not open the file itself.
(pfnote): Recovering from lack of memory does not work. Removed.
Use savenstr and simplify the code.
(free_tree): Only free the name space if node is named.
(structtag): Now a pointer, not a fixed length array of chars.
(consider_token): Don't take a token as argument. Use savenstr
when saving a tag in structtag. Callers changed.
(TOKEN): Structure changed. Now used only in C_entries.
(TOKEN_SAVED_P, SAVE_TOKEN, RESTORE_TOKEN): Deleted.
(C_entries): nameb and savenameb deleted. Use dinamic allocation.
(pfcnt): Deleted. Users updated.
(getit, Asm_labels, Pascal_functions, L_getit, get_scheme,
TEX_getit, prolog_getit): Use dinamic allocation for storing
the tag instead of a fixed size buffer.
language functions, because many compilers are buggy.
(etags_getcwd): Fix the previous fix on the #else branch.
(readline_internal): Discard possible \r before \n here.
(C_entries): Do not deal with \r here: undo previous fix.
functions and a macro that allow the program to work on input
lines of whatever length. Copied from etags.c.
(fatal): Print a fatal error message and exit.
(main): Use the new functions. Fixed a bug that made a \037 char
appear at the end of the output.
(main): If socket/mqueue name is in home dir, add in the host name.
Rename .emacs_server to .emacs-server-....
[!HAVE_SYSVIPC] (main): Fix error message diction.
is compiled if this is defined. The new functions and variables
added #ifdef ETAGS_REGEXP are not listed in this ChangeLog.
[VMS]: All VMS specific code previously contained in
etags-vmslib.c is now included here, modified for dealing with
language and regex options intermixed with filenames.
(header_file): Global variable deleted.
(Lang_Function): New typedef. All language parser functions
changed to this new type.
(string_numeric_p, substr, prestr): Functions deleted.
(readline_internal): Does the job that readline did previously.
(longopts): --language and --regex options added.
(lang_names, lang_extensions, lang_func, print_language_names):
New structures, variables and functions for choosing languages.
(print_help): Help strings updated. Calls print_language_names.
(argument_type, ARGUMENT): Typedefs for dealing with language and
regex options intermixed with filenames.
(main): Changed the way of dealing with arguments on the command
line to deal with language and regex options intermixed with
filenames.
(get_language, default_C_entries, Cplusplus_entries,
Cstar_entries, Yacc_entries, just_read_file): New functions.
(find_entries): Use the new method for choosing the language.
(Pascal_functions): Allow intermixing of comment styles.
(prolog_getit, skip_comment): Rewritten for speed.
(readline): Rewritten to deal with regexps.
fails, store the fact that we've searched it and don't search it
again after reading more data.
(getline): When determining whether or not it's necessary
to grow the input buffer, take into account the null that's stored
at the end of already-read input in the buffer.
(consider_token): Comment out "EXFUN". Use "DEFUN" instead of "DEF".
(consider_token): set funcdef to fignore when a DEFUN is met.
(C_entries): Now we can use Tom Hageman patch for extern "C".
defined, and if HAVE_CONFIG_H isn't defined, define
MAIL_USE_POP always (so that this file can be included in
other programs besides emacs).
Only declare h_errno if HAVE_H_ERRNO isn't defined or
HAVE_CONFIG_H isn't defined.
(find_crlf, getline): Instead of using strstr, use a
custom function for finding CRLF.
(my_strstr): Function deleted.
Don't include string.h or strings.h.
Include des.h before krb.h.
Do declare my_strstr.
(getline): Really use my_strstr.
Leave one empty place in server->buffer,
and put a null at the end of the data in it.
(C_entries): Recognise #define inside a struct.
(C_entries): ANSI tells that preprocessor commands do not have to
start on the first column.
(print_help): Documentation corrected for -d and -D.
(white, endtk): ANSI tells the vertical tab is a separator.
(mbx_delimit_end, mbx_delimit_begin): Check for errors.
(mbx_write): Check for errors and for From line.
(pop_retr, popmail): Use subroutines in pop.c to do the real work.
(get_errmsg, multiline, getline, putline, pop_stat, pop_command)
(pop_init): Functions deleted.
print advice to run it, if it has anything significant to do.
And only if MOVEMAIL_NEEDS_BLESSING.
(blessmail): Use emacs, not temacs.
(configuration): Renamed from configname.
Makefile.in is now generated from it, and then preprocessed.
Change comments to C syntax.
Include config.h.
(LIBS_SYSTEM, LIBS_MACHINE): Define as empty if not defined.
(LOADLIBES): Define from LIBS_SYSTEM and LIBS_MACHINE.
(PF_funcs, Asm_funcs, L_funcs, PAS_funcs, TEX_funcs,
Scheme_funcs, prolog_funcs): renamed to Fortran_functions,
Asm_labels, Lisp_functions, Pascal_functions, Scheme_functions,
TeX_functions, Prolog_functions.
(inf): no more a global variable.
(C_entries): take 2nd parameter `inf' instead of using the global one.
(find_entries): added the cp1 var for optimisation.
(find_entries): added more suffixes for assembler files.
(Asm_funcs): Now finds labels even without an ending colon.
the indesc open was moved inside a fork.
Handle MAIL_USE_LOCKF.
(MAIL_USE_SYSTEM_LOCK): New conditional macro.
Define it if either MAIL_USE_FLOCK or MAIL_USE_LOCKF.
(main): don't allow the use of -t and -T in etags mode.
(print_help): don't show options enabled by default.
(print_version): show the emacs version number if VERSION is #defined.
(find_entries): add "ss" as suffix for Chez Scheme.
(relative_filename, absolute_filename, absolute_dirname):
functions added to compute filenames in tags files.
(process_file): filenames in tags file are relative to the
directory where the tags file is (useful with the -o option).
(main): initialise the outfiledir var.
(TYPEDST): added the `tignore' value.
(C_entries): corrected various small bugs.
(longopts, print_help, main, process_file): put absolute filenames
in the tag file if the -A --absolute-pathnames option is used.
(print_help): alfabetically order the options.
(malloc, realloc, strcpy, strncpy, strcmp): remove extern declar.
(schedule): Don't return a value.
(sigcatch): Reestablish the handler first.
(getevent): Always call notify at the end.
(notify): Defer alarms around the whole body of function.
(main): Don't request SIGIO, and don't handle it.
Loop calling getevent.
(sigcatch): Delete code to handle SIGIO.
If defer_alarms is set, don't call notify, just set alarm_deferred.
(getevent): Use read, not getchar. Handle EINTR and EAGAIN.
Set defer_alarms around realloc and schedule.
If alarm_deferred gets set, call notify.
Likewise if this event is the only pending event.
Make buf and buf_size global variables.
Don't malloc buf if it is already non-zero.
(schedule): Just exit if run out of memory.
Return the number of events.
(signal) [_CX_UX]: Add #undef.
(write_c_args): Take new arg FUNC. Make output look like lisp call
prototypes: (function ARG1 ARG2), upcasing arg names.
(scan_c_file): Pass BUF to write_c_args for FUNC arg.
stab_type, add_keyword, C_reate_stab, C_create_stabs): deleted.
Use gperf generated hash table instead of linked list.
(C_stab_entry, hash, in_word_set, get_C_stab, C_symtype): added.
Mostly code generated by gperf.
(consider_token): removed unused parameter `lp'.
(PF_funcs, getit): allow subroutine and similar declarations
to span multiple lines.
(C_entries): check for newline if inchar to avoid bus errors.
(process_file, find_entries): distinguish among nonexistent
and not regular file.
* etags.c: (C_entries): Keep track of ()-parenthesis level so that
functions returning a pointer to a function, a la `signal', can be
parsed. This also required new state `fstartlist' to `FUNCST'.
(SAVE_TOKEN, RESTORE_TOKEN, TOKEN_SAVED_P): 1-deep token save stack.
(C_entries, CNL): use it to isolate preprocessor directive processing
from the other state engines.
(begtk): add '~', for C++ class destructors.
directory. Only chmod and chgrp files that we installed, which
excludes ${INSTALLABLE_SCRIPTS}. They go in ${bindir}.
(INSTALLFLAGS): Deleted definition, since it is an unused variable now.
* etags.c (C_entries): is_func is initialised here instead of in
consider_token for the sake of the yacc rules section.
(C_entries): Now class, struct, enum, union and typedef produce
named tags.
(L_funcs): the (foo::defmumble stuff now should work.
(consider_token): function returned random value--corrected.
(C_entries): corrected == versus = typo.
* etags.c (FINCST): added the fignore status. Means we are
after the parameter list and before the open curly brace.
Allows correct parsing of C++ constructors.
(C_entries, consider_token): make use of fignore.
(consider_token): reset funcdef when next_token_is_func: when in
ctags mode makes DEFVAR and others work better.
(L_isquote): function that recognises the "(quote" string.
(L_getit): ignore quoting via "'" or "(quote". Useful for defalias.
(main): now calls xnew instead of alloca for portability.
(../src/config.h): included only if HAVE_CONFIG_H.
(const): void definition removed--config.h takes care of it.
(consider_token): DEFUNs now treated like funcs in ctags mode.
(LEVEL_OK_FOR_FUNCDEF): removed.
(C_entries): optimized the test that used LEVEL_OK_FOR_FUNCDEF.
(C_entries): removed a piece of useless code.
(C_entries): making typedef tags is delayed until a semicolon
is met. This handles "typedef int X, Y, Z;" correctly.
* Makefile.in (YACC): New variable.
(lib-src/Makefile.in): Edit YACC into the makefile.
* Makefile.in (YACC): New variable, to be set by top-level Makefile.
work.
* Makefile.in (srcdir, VPATH): Get this value from the top-level
Makefile.
(INSTALLABLES): Split this into two lists - INSTALLABLES and
INSTALLABLE_SCRIPTS.
(INSTALLABLE_SCRIPTS): New list.
(EXECUTABLES): Include INSTALLABLE_SCRIPTS.
(${archlibdir}): The scripts to be installed live in the source
tree, not in the object tree.
(test-distrib): Note that the data file lives in the source tree,
not the object tree.
(GETOPTDEPS): Note that getopt.h lives in the source tree.
(all other targets): Change references to source files to use
${srcdir}, except for config.h, which lives in the object dir.
(timer.o): Note that this depends on ../src/config.h.
* make-docfile.c (main): Add a -d option, to tell it where to find
the source files.
* test-distrib.c (main): Take the name of the distribution file to
test from the command line.
users to set.
* Makefile.in (CFLAGS): Put this in the "things configure might
edit" section, and have it default to -g.
(ALL_CFLAGS): New variable, set to all the flags which should be
passed to compilations. Replace all other uses of CFLAGS with
ALL_CFLAGS.
(.c.o): New rule, to pass ALL_CFLAGS to compilations.
* Makefile.in (DEFS): Remove this; it's always just going to be
"-DHAVE_CONFIG_H -Demacs".
* Makefile.in (ALLOCA): New variable, whose value we should
inherit from the top-level makefile.
(etags, ctags): Include ALLOCA in the list of object files that
these executables depend on and link.
work.
* Makefile.in (srcdir): Get this value from the top-level
Makefile.
(INSTALLABLES): Split this into two lists - INSTALLABLES and
INSTALLABLE_SCRIPTS.
(INSTALLABLE_SCRIPTS): New list.
(EXECUTABLES): Include INSTALLABLE_SCRIPTS.
(${archlibdir}): The scripts to be installed live in the source
tree, not in the object tree.
(test-distrib): Note that the data file lives in the source tree,
not the object tree.
(GETOPTDEPS): Note that getopt.h lives in the source tree.
(all other targets): Change references to source files to use
${srcdir}, except for config.h, which lives in the object dir.
(timer.o): Note that this depends on ../src/config.h.
it to /[\/]/. This should work on all Posix-compliant awks.
It's slightly wrong with traditional (Unix version 7) awk, since it
also allows \, but that's a minor problem compared to awk syntax errors.
(c_ext): no more a synonim for c_ext&C_PLPL because of YACC.
(find_entries): consistently use streq when reasonable.
(find_entries): a .y file is a yacc file.
(get_C_stab): c_ext becomes c_ext&C_PLPL.
(C_entries): logical cplpl means c_ext&C_PLPL.
(C_entries): logical yacc_rules means we are after the first %%.
(C_entries): added logic for yacc files.
(C_entries): ':' case moved to the second switch.
(C_entries): do not examine token if structdef==scolonseen.
(consider_token): structtag set to null string for enum.
(GET_COOKIE): and related macros removed.
(logical): is now int, no more a char.
(reg): define deleted.
(isgood, _gd, notgd): deleted.
(gotone): deleted.
(TOKEN): member linestart removed.
(linepos, prev_linepos, lb1): deleted.
(main): call initbuffer on lbs array instead of lb1.
(init): removed the initialisation of the logical _gd array;
(find_entries): a .sa suffix means assembler file.
(C_create_stab): "auto", "void", "extern", "static" are st_C_typespec.
All C state machines rewritten.
(C_entries): complete rewrite.
(condider_token): complete rewrite.
(getline): deleted.
(C_entries): Added the quotednl logical variable.
Used for parsing of #define's spanning multiple lines.
(C_entries): Save the definedef status even when a
newline is met inside a string.
Unfortunately this requires putting a carriage return in the source code.
Don't assume that rlog will tolerate times like `10:10:60';
RCS 5.7 won't allow this.
to the current process. Print error messages if either of the
fcntl's fails.
* timer.c (sigcatch): Declare this to return SIGTYPE (defined in
../src/config.h), not void.
(bindir, libdir): Use it instead of `prefix'.
* Makefile.in (CFLAGS): #define HAVE_CONFIG_H, too.
* Makefile.in (libdir): Default to ${prefix}/lib.
(archlibdir): Adjusted to match.
* Makefile.in (distclean): Don't delete backup or autosave files.
(extraclean): Like realclean, but does delete backup and autosave
files.
* Makefile.in (realclean): Ignore errors from rm.
* Makefile.in (distclean): Don't bother to delete ../arch-lib;
that doesn't exist anymore.
* Makefile.in (prefix, bindir, libdir, srcdir): New variables, as
described in the top-level Makefile.
(UTILITIES): Add make-path to the list of utility programs.
(../arch-lib): Replaced by the ${archlibdir} target, which places
the executables in their permanent home.
(install, install.sysv, install.xenix): Consolidated into one
target which should work under all circumstances, modulo a few
ignored error messages.
can indicate that it depends on ../src/config.h.
* Makefile.in (CONFIG_CFLAGS): Let the configure script edit this
instead of CFLAGS.
(CFLAGS): Add -Demacs and -I../src to CONFIG_CFLAGS to produce this.