]> code.delx.au - gnu-emacs/blobdiff - lib-src/ChangeLog
Entry corrected.
[gnu-emacs] / lib-src / ChangeLog
index 04ffd8a2d7d6f57bc1a5bad01a686af594878d7d..691b5584d6de927518f271b9f0cd04ee66d50511 100644 (file)
@@ -1,3 +1,715 @@
+2003-01-06  Kim F. Storm  <storm@cua.dk>
+
+       * pop.c (__P): Renamed from _P to avoid problems on Cygwin.
+       All uses changed.
+
+2002-12-18  Andrew Innes  <andrewi@gnu.org>
+
+       * makefile.w32-in ($(DOC)): Use -o and -a options to make-docfile,
+       because GNU make doesn't append when using >> redirection.
+
+2002-12-12  Jonathan Kamens  <jik@kamens.brookline.ma.us>
+
+       * b2m.pl: Make sure every message ends with a blank line, because
+       some mbox parsers require a blank line before "From " lines.
+
+2002-12-08  Richard M. Stallman  <rms@gnu.org>
+
+       * getopt.c: Do include libintl.h if HAVE_LIBINTL_H.
+       (_): Test only HAVE_LIBINTL_H to decide what to do.
+
+2002-12-05  Richard M. Stallman  <rms@gnu.org>
+
+       * getopt.c: Comment out include of libintl.h or gettext.h.
+
+2002-12-04  Richard M. Stallman  <rms@gnu.org>
+
+       * Update getopt from gnulib version; changes described below.
+
+       * getopt1.c: Conditionally find getopt.h.
+       [_LIBC] (getopt_long, getopt_long_only): Do libc_hidden_def.
+
+       * getopt.c (const): Move outside !HAVE_CONFIG_H conditional.
+       (libintl.h): Include this if _LIBC.  Otherwise include gettext.h.
+       (wchar.h): Include, maybe.                   
+       (attribute_hidden): Define if not defind.
+       (__getopt_initialized): Use attribute_hidden.
+       (__libc_argc, __libc_argv): Renamed from original_argc, etc.
+       (__getopt_nonoption_flags, nonoption_flags_max_len, nonoption_flags_len):
+       Conditional on USE_NONOPTION_FLAGS.
+       (SWAP_FLAGS): New definitions.
+       (exchange): Test USE_NONOPTION_FLAGS.
+       (_getopt_initialize): Test USE_NONOPTION_FLAGS.
+       (_getopt_internal): Error if argc < 1.  New local var print_errors.
+       Improve test for ambiguous long option.
+       Add LIBIO support for error message output.
+       (NONOPTION_P): Test USE_NONOPTION_FLAGS.
+
+       * getopt.h: Maybe include ctype.h.
+       Treat __cplusplus like __STDC__.
+       (decls): Use __ in arg names.
+
+2002-12-02  Stephen Eglen  <stephen@gnu.org>
+
+       * emacsclient.c (main): Tell user how to start server within Emacs
+       if socket could not be found.
+
+2002-12-02  Richard M. Stallman  <rms@gnu.org>
+
+       * emacsclient.c (main): Test HAVE_GETCWD rather than BSD_SYSTEM.
+
+2002-11-19  Ben Key  <bkey1@tampabay.rr.com>
+
+       * makefile.w32-in: Fixed a bug that caused the documentation for
+       the built in function play-sound-internal not to be included in
+       /etc/DOC.
+
+2002-11-18  Dave Love  <fx@gnu.org>
+
+       * update-game-score.c: Include unistd.h, string.h, stdlib.h,
+       fcntl.h, stdarg.h conditionally.
+       (_GNU_SOURCE, __attribute__): Don't define.
+       (optarg, optind, opterr): Declare.
+       (lose, lose_syserr): Use NO_RETURN.
+       (get_user_id): Use P_.
+
+2002-11-17  Richard M. Stallman  <rms@gnu.org>
+
+       * Makefile.in (${archlibdir}): Ignore errors operating on $(gamedir).
+
+2002-11-14  Dave Love  <fx@gnu.org>
+
+       * movemail.c (pop_retr): Declare comment.
+
+       * make-docfile.c (read_c_string_or_comment): Declare msgno.
+
+       * Makefile.in (YACC): Deleted.
+
+2002-10-19  Andreas Schwab  <schwab@suse.de>
+
+       * Makefile.in (${archlibdir}): Always create $(gamedir).
+       (update-game-score): Pass $(gamedir) as HAVE_SHARED_GAME_DIR.
+
+2002-10-04  Juanma Barranquero  <lektu@terra.es>
+
+       * makefile.w32-in (lisp): Load devanagari.el, not .elc.
+
+2002-09-30  Markus Rost  <rost@math.ohio-state.edu>
+
+       * emacsclient.c (main): Remove reference to SERVER_HOME_DIR
+       completely.
+
+2002-09-27  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * emacsclient.c: Remove SYSV support.
+       (eval, display): New vars.
+       (longopts): Add --eval and --display.
+       (decode_options): Add -e and -d processing.
+       (print_help_and_exit): Update the usage string.
+       (main): Add support for --eval and --display.
+       (main): Always use /tmp and non-qualified hostname.
+
+2002-09-25  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * emacsserver.c: Remove.
+
+2002-09-17  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * emacsclient.c (quote_file_name): Quote \n.
+       (main): Print a final \n when needed.
+
+2002-09-03  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c (regex_tag_multiline, readline): Never pass pfnote a
+       string that cannot be freed.
+
+2002-08-30  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c (consider_token, C_entries): Switch to C++ parsing when
+       auto-detection is enabled and the `::' qualifier is met.
+       (consider_token, C_entries): Several bugs corrected that tagged
+       some declarations even though --declarations was not used.
+       (plainc): New macro.
+       (C_entries): Use it.
+       (C_entries): Several cosmetic changes.
+       (C_entries): Invalidate the token is some cases.
+
+2002-08-29  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c (C_entries): Corrected a problem with const C++ funcs.
+       (ignoreindent): Renamed from noindentypedefs.
+       (cjava, cplpl): They are now macros instead of local vars.
+
+2002-08-28  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c (HTML_labels): Tag ID= also.
+
+2002-08-27  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c (Ada_funcs): Do not tag "use type Xxxx;".
+
+       * etags.c: (HTML_labels): New language HTML.
+       (etags_strcasecmp): Like BSD's, for compatibility.
+       (strcaseeq): Make it into a macro.
+
+       * etags.c (make_tag): Never generate null length tag names.
+       (linebuffer_init): Renamed from initbuffer.  All callers changed.
+       (pattern): Structure renamed to `regexp', member regex renamed to
+       pattern.
+       (node_st): Member pat renamed to regex.
+       (pattern); New member force_explicit_name, for future use.  Now
+       always set to true, cannot be reset.
+       (add_regex, regex_tag_multiline, readline): Use it.
+       (main): Free some global structures.
+       (fdesc): New member `written'.
+       (readline, process_file): Initialise it.
+       (put_entries): Set it.
+       (main): Use it to create entries for files without tags.
+       (total_size_of_entries): Do not count invalid tags.
+
+2002-08-19  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * make-docfile.c (scan_keyword_or_put_char, write_c_args): Use `fn'
+       for the function name in the usage info.
+
+2002-07-31  Colin Walters  <walters@gnu.org>
+
+       * update-game-score.c (P_): New macro.  Use it for all prototypes.
+       (lose): Don't use varargs.
+       (lose_syserr): New function.
+
+       * update-game-score.c: Change all functions to K&R style.
+
+2002-07-30  Andreas Schwab  <schwab@suse.de>
+
+       * Makefile.in (localstatedir): New variable.
+
+2002-07-29  Jonathan Kamens  <jik@kamens.brookline.ma.us>
+
+       * b2m.pl: Fix regexp for finding return address fields.
+
+2002-07-15  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * make-docfile.c (scan_c_file): Warn about missing `usage' info.
+
+2002-07-05  Jonathan Kamens <jik@kamens.brookline.ma.us>
+
+       * b2m.pl: Obey the rmail file and use the unpruned header properly.
+
+2002-06-26  Pavel Jan\e,Bm\e(Bk  <Pavel@Janik.cz>
+
+       * b2m.pl: New file.
+
+2002-06-21  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c: (F_getit, Fortran_functions, Ada_getit, Asm_labels)
+       (Python_functions, PHP_functions, PHP_functions, PHP_functions)
+       (PHP_functions, PHP_functions, Cobol_paragraphs)
+       (Makefile_targets, Postscript_functions, Texinfo_nodes)
+       (prolog_pr, erlang_func, erlang_attribute)
+       (Perl_functions, Perl_functions, Pascal_functions)
+       (TeX_commands, get_tag): Use make_tag instead of pfnote.
+       (get_tag): Prototype changed, all callers changed.
+
+2002-06-20  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c: Implement implicit tag names, that is, unnamed tags
+       whose name is automatically deduced by etags.el.  The advantage is
+       that there is no explicit tag name in most tags, so the size of
+       the tags file is reduced, yet find-tag is able to do a match as
+       accurate as with named tags.  See the comment in make_tag for
+       details.
+       (make_tag): New function (was the disabled function new_pfnote).
+       (make_C_tag): Use it.
+
+2002-06-19  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c (add_regex): Invalid regexp modifiers are ignored.
+       (Makefile_targets): Tag variables unless --no-globals.
+       (LOOP_ON_INPUT_LINES): Serious bug corrected.
+
+2002-06-13  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c (erlang_atom, erlang_attribute): Bugs corrected.
+       (invalidate_nodes): Bug corrected.
+       (print_help): Better help for regexps.
+
+2002-06-13  Juanma Barranquero  <lektu@terra.es>
+
+       * makefile.w32-in (lisp): Add international/ucs-tables.elc and
+       font-core.elc.
+
+2002-06-12  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c: New multi-line regexp and new regexp syntax.
+       (arg_type): at_icregexp label removed (obsolete).
+       (pattern): New member multi_line for multi-line regexps.
+       (filebuf): A global buffer containing the whole file as a string
+       for multi-line regexp matching.
+       (need_filebuf): Global flag raised if multi-line regexps used.
+       (print_help): Document new regexp modifiers, remove references to
+       obsolete option --ignore-case-regexp.
+       (main): Do not set regexp syntax and translation table here.
+       (main): Treat -c option as a backward compatibility hack.
+       (main, find_entries): Init and free filebuf.
+       (find_entries): Call regex_tag_multiline after the regular parser.
+       (scan_separators): Check for untermintaed regexp and return NULL.
+       (analyse_regex, add_regex): Remove the ignore_case argument, which
+       is now a modifier to the regexp.  All callers changed.
+       (add_regex): Manage the regexp modifiers.
+       (regex_tag_multiline): New function.  Reads from filebuf.
+       (readline_internal): If necessary, copy the whole file into filebuf.
+       (readline): Skip multi-line regexps, leave them to regex_tag_multiline.
+
+2002-06-11  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c (add_regex): Better check for null regexps.
+       (readline): Check for regex matching null string.
+       (find_entries): Reorganisation.
+
+2002-06-07  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c (scan_separators): Support all character escape
+       sequences supported by Gcc.
+       (find_entries): Rewind unconditionally.
+       (find_entries): Do not call language functions directly, now calls
+       itself.
+       (find_entries): Do general initialisations here.
+       (CNL_SAVE_DEFINEDEF, C_entries, LOOP_ON_INPUT_LINES, F_getit)
+       (Ada_getit, Pascal_functions, Pascal_functions)
+       (prolog_skip_comment): Do not do them here.
+       (readline_internal): Increment lineno here.
+       (readline): Conditionally undo readline_internal increment.
+       (readline): Do not return a value.
+
+2002-06-06  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c New option --parse-stdin=FILE.
+       (enum arg_type): New label at_stdin.
+       (STDIN): New constant.
+       (parsing_stdin): New flag.
+       (longopts): New option --parse-stdin=NAME.
+       (print_help): Document it.
+       (main): Handle it.
+       (process_file): Split into process_file and process_file_name.
+       (process_file_name): New function.
+
+       * etags.c Improvements and bug squashing in TeX handling.
+       (TeX_commands): Skip comments.
+       (TEX_defenv): Now contains more contructs.
+       (TEX_cmt): Make it a static char and move it before TeX_commands.
+       (TeX_commands): Shorten the tag to the brace after the name.
+       (TeX_commands): Names now include the initial backslash.
+       (TeX_commands): Names do not include numeric args #n.
+       (TeX_commands): Correct line char number in tags.
+       (TEX_tabent, TEX_token): Deleted.
+       (TeX_commands, TEX_decode_env): Streamlined.
+
+2002-06-05  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c (main): Avoid a buffer overrun with sprintf.
+
+2002-05-30  Richard M. Stallman  <rms@gnu.org>
+
+       * Makefile.in (LIBS_MAIL): Renamed from LIB_MAIL.
+       (LIBS_MOVE): Renamed from MOVE_LIBS.
+
+2002-05-26  Paul Eggert  <eggert@twinsun.com>
+
+       Reinstate the following change from 2002-03-22, which was
+       inadvertently lost on 2002-04-13.
+
+       * etags.c (main): Use `sort -o TAGFILE TAGFILE' instead of
+       `sort TAGFILE -o TAGFILE', as POSIX 1003.1-2001 disallows
+       the latter usage.
+
+2002-05-17  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * pop.c (socket_connection): Move the code to resolve the POP
+       host right before trying to connect with it.
+
+2002-04-28  Colin Walters  <walters@verbum.org>
+
+       * Makefile.in (${archlibdir}): Don't conditionalize on
+       HAVE_SHARED_GAME_DIR.  Instead, test at installation time whether
+       or not we have access to the specified game user.
+
+       * update-game-score.c (SCORE_FILE_PREFIX): Delete.
+       (main): New argument -d, for specifying directory.
+       (usage): Document.
+       (get_user_id): Compute.
+       (get_home_dir): Deleted.
+       (get_prefix): New function, taken from main.
+       (main): Check whether or not we are running setuid.  Move prefix
+       computation to get_prefix.  Don't call getpwent; we don't need to
+       any more.  Instead, move it to get_user_id().
+
+2002-04-24  Pavel Jan\e,Bm\e(Bk  <Pavel@Janik.cz>
+
+       * ebrowse.c (skip_initializer): Return void.
+
+2002-04-23  Colin Walters  <walters@verbum.org>
+
+       * update-game-score.c (read_score) [HAVE_GETDELIM]: Trim trailing
+       space.
+
+2002-04-22  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c: (last_node): Make it a global variable.
+       (process_file): Print the tags from the nodes as soon as
+       possible, and delete the nodes.  This brings down the memory
+       occupancy as etags to almost the same level as when the #line
+       directives were not parsed.
+       (free_fdesc): New function.
+       (find_entries): Use it.
+       (invalidate_nodes): In etags mode, do not just mark the nodes as
+       invalid, do delete them.
+
+2002-04-21  Gerd Moellmann  <gerd@gnu.org>
+
+       * ebrowse.c (add_declarator): Test *CLS instead of CLS.
+
+2002-04-16  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * update-game-score.c: Move config.h before the other headers, to
+       avoid compiler warnings.
+
+2002-04-16  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c (find_entries): Bug fix in list management.
+
+2002-04-15  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c (get_language_from_filename): Add one argument.
+       (strcaseeq): New function.
+       (get_language_from_filename): Use it to do a case insenstitive
+       comparison if called with appropriate args.
+       (find_entries): Try with case insensitive match.
+       (process_file): Bug fixed.
+
+2002-04-13  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c (find_entries): Delete tags previously obtained from
+       file xxx.c's #line directives when parsing file xxx.y.  This is
+       generally done for automatically generated files containing
+       #line directives.  This handles the case when xxx.y is tagged
+       before xxx.c, and the entries of xxx.c pointing to xxx.y should
+       be discarded.
+       (language): Added the metasource member.  Initializers changed.
+       (invalidate_nodes): New function.
+       (readline): Discard lines after having found a #line
+       directive pointing to an already tagged file.  This handles the
+       case when xxx.y is tagged before xxx.c, and the entries of
+       xxx.c pointing to xxx.y should be discarded.
+       (fdesc): New structure for keeping track of input files.
+       (fdesc): Remove `file' member (a string) and use instead a pointer
+       to a file description structure.
+       (curfile, curfiledir, curtagfname, curlang, nocharno)
+       (forced_lang): Global variables removed in favor of fdhead and
+       curfdp, pointers to file description strucures.
+       (longopts, main, print_help): Use the CTAGS conditional to include
+       or exclude options that work on etags or ctags only.
+       (process_file, find_entries, pfnote, add_node, put_entries)
+       (readline): Use fdhead and curfdp.
+       (process_file, find_entries): Do not take an arg string, all
+       callers changed.
+
+       * etags.c (longopts, print_help, main): Test CTAGS to disallow
+       options that are not right for either etags or ctags.
+
+       * etags.c (number_len, total_size_of_entries): Define them also
+       in CTAGS mode, because gcc does not compile all refs away.
+
+2002-04-14  Colin Walters  <walters@debian.org>
+
+       * update-game-score.c (lock_file): If the lock file is older than
+       an hour, delete it.  Reset attempts to zero if we have to break
+       the lock.
+
+2002-04-14  Andreas Schwab  <schwab@suse.de>
+
+       * update-game-score.c (read_score): Fix type of second parameter
+       of getdelim to be of type size_t instead of int.  Use 0 instead of
+       ESUCCES.
+
+2002-04-10  Colin Walters  <walters@verbum.org>
+
+       * update-game-score.c: (toplevel): Include stdarg.h.
+       (MAX_DATA_LEN, MAX_SCORES): New.
+       (SCORE_FILE_PREFIX): If HAVE_SHARED_GAME_DIR is not defined,
+       default to ~/.emacs.d/games.
+       (get_user_id): Don't zero uid in the case where we can't get the
+       username.
+       (lose): New function.
+       (main): Actually use `max', and default it to MAX_SCORES.
+       Correctly handle new default for SCORE_FILE_PREFIX.  Use `lose'
+       function.
+       (read_score): Handle the case of reading unamelen characters, then
+       finishing.  Use mktemp if mkstemp isn't available.
+       (lock_file, unlock_file): Delete unused versions.
+       (lock_file): Always sleep, even if we unlinked the lock file.
+
+       * Makefile.in (gamedir, gameuser): New variables.
+       (toplevel, UTILITIES): Add update-game-score.
+       (${archlibdir}): Handle HAVE_SHARED_GAME_DIR.
+
+2002-04-07  Colin Walters  <walters@verbum.org>
+
+       * update-game-score.c (SCORE_FILE_PREFIX): Don't hardcode.
+       (get_user_id): Take struct passwd as an argument.
+       (get_home_dir): New function.
+       (main): Read in user information here.  Discover home directory if
+       necessary.
+       (read_score): Trim newline only in `getline' case.
+
+2002-04-05  Colin Walters  <walters@debian.org>
+
+       * update-game-score.c (toplevel): Include pwd.h.
+       (struct score_entry): Add username field.
+       (push_score): Use it.
+       (get_user_id): New function.
+       (main): Don't malloc excessively.
+       (main): Use username field.
+       (read_score): Read it.
+       (push_score): Handle it.
+       (write_scores) Write it.
+       (read_score): Handle arbitrary length data.
+
+2002-03-30  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * ebrowse.c (add_declarator): Fix the first call to add_member_defn.
+
+2002-03-29  Gerd Moellmann  <gerd@gnu.org>
+
+       * ebrowse.c (add_declarator, skip_initializer): New functions.
+       (declaration): Use them.
+
+2002-03-28  Jason Rumney  <jasonr@gnu.org>
+
+       * makefile.w32-in (lisp): Move backquote.elc into emacs-lisp.
+
+2002-03-27  Colin Walters  <walters@debian.org>
+
+       * update-game-score.c: New file.
+
+2002-03-22  Paul Eggert  <eggert@twinsun.com>
+
+       * etags.c (main): Use `sort -o TAGFILE TAGFILE' instead of
+       `sort TAGFILE -o TAGFILE', as POSIX 1003.1-2001 disallows
+       the latter usage.
+
+2002-03-12  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c (Python_functions): Skip spaces at beginning of lines.
+       (Python_functions, PHP_functions): Name tags, for ctags' sake.
+       (TeX_commands): Name tags.  Correction of old disabled code.
+
+       * etags.c (curfiledir, curtagfname): New global variables.
+       (process_file): Initialise them.
+       (readline): Canonicalize the name found in #line directive.
+
+2002-03-06  Jason Rumney  <jasonr@gnu.org>
+
+       * etags.c (put_entries): Use #if !CTAGS, to fix link error on
+       compilers that don't optimize out dead code.
+
+2002-03-05  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c: Honour #line directives.
+       (no_line_directive): New global var; set it for old behaviour.
+       (main): Remove some #ifdef in the getopt switch.
+       (add_node, put_entries): Code added to merge different chunks of
+       nodes referring to the same file.  Currently the tags are just
+       appended, without any check for duplicates.
+       (Perl_functions): Do not special case ctags.
+       (readline): Identify #line directives and do the right thing.
+       (nocharno, invalidcharno): New global vars.
+       (process_file): Reset nocharno.
+       (readline): Set nocharno.
+       (pfnote): Read nocharno and maybe put invalidcharno in node.
+       (total_size_of_entries, put_entries): Use invalidcharno.
+
+       * etags.c: Keep the whole tag table in memory, even in etags mode.
+       (main): Call put_entries here even in CTAGS mode.
+       (main, process_file): Check the return values of fclose and pclose.
+       (process_file): Do not call put_entries after parsing each file.
+       (process_file): Canonicalise file names even for ctags.
+       (process_file): Set curfile here...
+       (find_entries): ... not here any more.
+       (add_node): In etags mode, build a linked list of entries (on
+       right pointer) for each file, and link the first entry of each
+       file on left nodes.
+       (put_entries): Print here the name of the file.
+       (put_entries): Print the entries starting from the first file.
+       (number_len, total_size_of_entries): Define these only in etags
+       mode, make the second work only on the right nodes.
+
+       * etags.c: Make all global variables static.
+
+2002-02-25  Juanma Barranquero  <lektu@terra.es>
+
+       * makefile.w32-in (lisp): Add missing backslash.
+
+2002-02-24  Jason Rumney  <jasonr@gnu.org>
+
+       * makefile.w32-in (WINNT_SUPPORT, MOUSE_SUPPORT, lisp): Revert to
+       using .elc files.
+       (lisp): Sync with list in src/Makefile.in
+       (VMS_SUPPORT, MSDOS_SUPPORT): Define, so DOC files can be shared.
+
+2002-02-10  Paul Eggert  <eggert@twinsun.com>
+
+       * rcs-checkin: Use `sort -k 2', not `sort +1', as POSIX 1003.1-2001
+       disallows the old syntax.
+
+2002-02-03  Paul Eggert  <eggert@twinsun.com>
+
+       * rcs2log(Copyright): Update to 2002.
+       (AWK, TMPDIR): Work around portability problem in broken shells that
+       don't understand `: ${VAR=val}'.
+       (SORT_K_OPTIONS): New var, for hosts that conform to POSIX 1003.1-2001.
+       Prefer the new -k option to the traditional +M -N option.
+
+2002-01-01  Pavel Jan\e,Bm\e(Bk  <Pavel@Janik.cz>
+
+       * b2m.c (main): Parenthesize assignment when used as truth value
+       to prevent gcc warnings.
+
+       * fakemail.c: Include <config.h>.
+
+2001-12-29  Pavel Jan\e,Bm\e(Bk  <Pavel@Janik.cz>
+
+       * cvtmail.c, emacsclient.c, emacsserver.c, pop.c, sorted-doc.c,
+       * yow.c: Include <config.h>.
+
+2001-12-21  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c (Perl_functions): Tag packages and use them in sub tags.
+       (get_tag): Return a pointer to the tag that is found.
+
+       * etags.c (LOOKING_AT): Use !intoken instead of iswhite.
+       (F_takeprec): Renamed from takeprec.  All callers changed.
+       (F_getit): Renamed from getit.  All callers changed.
+       (nocase_tail): Renamed from tail.  All callers changed.
+       (Ada_getit): Renamed from adagetit.  All callers changed.
+       (L_getit): Simplified by using get_tag.
+       (Perl_functions, Postscript_functions, erlang_attribute): Use the
+       modified LOOKING_AT.
+       (notinname): Removed '[' and added ')' to the recognised chars.
+       (LOOKING_AT, get_tag, PHP_functions): Use notinname.
+       (Ada_getit, Ada_funcs, Python_functions, Scheme_functions):
+       Clarified, using strneq or notinname.
+       (L_isdef, L_isquote): Removed.
+       (Lisp_functions, L_getit): Clarified.
+
+       * etags.c: (P_): Renamed to __P for consistency with config.h.
+       [HAVE_CONFIG_H]: Let config.h deal with __P.
+       [__STDC__] [!HAVE_CONFIG_H]: Define PTR as in config.h.
+       [!__STDC__] [!HAVE_CONFIG_H]: Do not undefine static, because
+       gperf code needs it.
+       [HAVE_CONFIG_H] [!PTR]: Define PTR (for use with Xemacs).
+       [HAVE_CONFIG_H] [!__P]: Define __P (for use with Xemacs).
+       (xmalloc, xrealloc): Use PTR instead of long *.
+       (bool): Make it a define, not a typedef, for C++ compilers.
+       (pattern): Members renamed to avoid name clash in some C++ compilers.
+       (get_language_from_langname): Use const argument.
+
+2001-12-22  Pavel Jan\e,Bm\e(Bk  <Pavel@Janik.cz>
+
+       * makefile.nt, makefile.w32-in: Remove mocklisp files.
+
+2001-12-19  Pavel Jan\e,Bm\e(Bk  <Pavel@Janik.cz>
+
+       * emacsserver.c: Conditionally include config.h.
+
+       * fakemail.c: Likewise.
+
+       * emacsclient.c: Include "config.h", not <../src/config.h>.
+       (main): Parenthesize assignment when used as truth value to
+       prevent gcc warnings.
+
+       * ebrowse.c: Include stdlib.h and string.h conditionally.
+
+2001-12-18  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * yow.c (main): Use time_t, not long, to avoid a compiler warning.
+
+2001-12-18  Pavel Jan\e,Bm\e(Bk  <Pavel@Janik.cz>
+
+       * test-distrib.c: Fix previous change.
+
+2001-12-18  Dave Love  <fx@gnu.org>
+
+       * test-distrib.c: Conditionally include fcntl.h.
+
+       * fakemail.c: Include "config.h", not <../src/config.h>.
+       (_XOPEN_SOURCE): Define as 500.
+
+       * emacsserver.c: Include "config.h", not <../src/config.h>.
+
+       * cvtmail.c: Include config.h, stdlib.h.
+       (xmalloc, xrealloc, skip_to_lf sysfail): Prototype.
+
+       * yow.c: Conditionally include various headers.  Use "epaths.h",
+       not <../src/epaths.h>.
+       (malloc, realloc) [!HAVE_STDLIB_H]: Prototype.
+
+2001-12-12  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c (PHP_functions): New function for parsing PHP.
+       (LOOKING_AT): New macro.
+       (Perl_functions, Python_functions, PHP_functions)
+       (Scheme_functions, Texinfo_nodes): Use it.
+       (Perl_functions): Use strneq.
+       (prolog_pred): Renamed to prolog_pr.
+       (prolog_pr): Recognise Prolog rules in addition to predicates.
+       [ETAGS_REGEXPS] [!HAVE_CONFIG_H] [__CYGWIN__]: Prevent
+       unmodified compile, as Cygwin's regex.h is incompatible with us.
+       [!HAVE_CONFIG_H] [!__STDC__]: #define const as the empty string.
+
+2001-12-11  Richard M. Stallman  <rms@gnu.org>
+
+       * Makefile.in (clean): Don't delete ../etc/DOC*.
+
+2001-12-11  Pavel Jan\e,Bm\e(Bk  <Pavel@Janik.cz>
+
+       * COPYING: Moved back.
+
+2001-11-30  Andrew Innes  <andrewi@gnu.org>
+
+       * makefile.w32-in (FACE_SUPPORT):
+       (MOUSE_SUPPORT):
+       (FLOAT_SUPPORT):
+       (WINNT_SUPPORT):
+       (lisp): Reference .el files instead of .elc files, to simplify
+       bootstrapping.
+       ($(DOC)): Change dependency to just `make-docfile'.
+
+2001-11-29  Pavel Jan\e,Bm\e(Bk  <Pavel@Janik.cz>
+
+       * COPYING: Removed.
+
+2001-11-28  Paul Eggert  <eggert@twinsun.com>
+
+       * rcs2log (Copyright): Add '(C)' as per coding guidelines.
+
+       The following changes are derived from suggestions by Bob Chapman
+       <rechapman@compuserve.com>.
+
+       * rcs2log (printlogline): Also allow tab and newline to separate
+       '(function):' from the rest of a comment.
+       (reformat the sorted log entries): Require date and author to
+       match the clumpname.
+
+2001-11-16  Gerd Moellmann  <gerd@gnu.org>
+
+       * ebrowse.c (matching_regexp): Escape '\\'.
+
+2001-11-15  Pavel Jan\e,Bm\e(Bk  <Pavel@Janik.cz>
+
+       * Makefile.in: Add support for --program-prefix, --program-suffix
+       and --program-transform-name options.
+
 2001-11-03  Richard M. Stallman  <rms@gnu.org>
 
        * cvtmail.c (xrealloc): Always pass two args to `fatal'.
 2001-10-09  Gerd Moellmann  <gerd@gnu.org>
 
        * emacsserver.c (main): Cast geteuid in sprintf to int.
-       From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
 
-       * emacsclient.c (main): Cast isdigit() argument to unsigned char.
-       From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
+       * emacsclient.c (main): Cast isdigit argument to unsigned char.
 
 2001-10-07  Pavel Jan\e,Bm\e(Bk  <Pavel@Janik.cz>
 
 2001-10-05  Gerd Moellmann  <gerd@gnu.org>
 
        * Branch for 21.1.
-       
+
 2001-10-01  Alexander Zhuckov  <zuav@int.spb.ru>
 
        * ebrowse.c (struct alias): Add two new struct members: NAMESP and
        (check_namespace): New function.
        (find_namespace): Add parameter CONTEXT.
        (check_namespace_alias): New function.
-       (register_namespace_alias): Change type of parameter
-       OLD_NAME. Search for already defined alias in
-       NAMESPACE_ALIAS_TABLE.
+       (register_namespace_alias): Change type of parameter OLD_NAME.
+       Search for already defined alias in NAMESPACE_ALIAS_TABLE.
        (check_namespace): New function.
        (enter_namespace): Call find_namespace with CONTEXT parameter.
        (match_qualified_namespace_alias): New function.
-       (parse_qualified_ident_or_type): Fixed typo in comment. While
-       parsing qualified ident or type update namespace context and
+       (parse_qualified_ident_or_type): Fixed typo in comment.
+       While parsing qualified ident or type update namespace context and
        restore it on exit.
        (parse_qualified_param_ident_or_type): Fixed typo in comment.
        (globals): Changed handling of namespace aliases.
 
        * rcs2log (Help, mainline code): Add new option -L FILE.
        (Copyright): Update year.
-       (LANG, LANGUAGE, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES,
-       LC_NUMERIC, LC_TIME): New shell vars, to make sure we live in the
+       (LANG, LANGUAGE, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES)
+       (LC_NUMERIC, LC_TIME): New shell vars, to make sure we live in the
        C locale.
        (mainline code): Handle nonstandard -u option differently, by
        transforming it to standard form.  Check for "Working file: ", not
        "Working file:".  Allow file names with spaces.
        (SOH, rlogfile): New shell vars.
-       (rlogout): Remove.  Its old functionality is mostly migrated to 
+       (rlogout): Remove.  Its old functionality is mostly migrated to
        rlogfile.
 
        Append ';;' to the last arm of every case statement, for
        portability to ancient broken BSD shells.
 
-       (logins): Fix bug; was not being computed at all, lowering
-       performance.
+       (logins): Fix bug; was not being computed at all, lowering performance.
        (pository): New var.  This fixes some bugs where repositories are
        remote, or have trailing slashes.
-        (authors): $llogout is never an empty shell var, so don't worry
+       (authors): $llogout is never an empty shell var, so don't worry
        about that possibility.
-       (printlogline, mainline code): Fix bug with SOH's being put into 
+       (printlogline, mainline code): Fix bug with SOH's being put into
        the output.
-       
+
 2001-09-01  Eli Zaretskii  <eliz@is.elta.co.il>
 
        * ebrowse.c (SEEK_END): #define if not defined by system headers.
 
 2001-05-08  Gerd Moellmann  <gerd@gnu.org>
 
-       * ebrowse.c (enter_namespace): Fix reallocation of
-       namespace_stack.
+       * ebrowse.c (enter_namespace): Fix reallocation of namespace_stack.
 
 2001-05-03  Gerd Moellmann  <gerd@gnu.org>
 
        (struct tok): Revisited.
        (cstack, nestlev, instruct): New struct and macros.
        (pushclass_above, popclass_above, write_classname): New functions
-       for dealing with nested class names, inspired by Mykola Dzyuba.
+       for dealing with nested class names.
        (consider_token, make_C_tag, C_entries): Many changes for dealing
        with arbitrarily nested structures.
        (etags_getcwd): #if MSDOS, not #ifdef MSDOS!
        (xrnew): Change the synopsis.
        (typedefs_or_cplusplus): Renamed from typedefs_and_cplusplus.
        (grow_linebuffer): Don't call xrnew when not needed.
-       (token): buffer renamed to line.
+       (token): Buffer renamed to line.
        (C_entries): Three calls to inibuffer moved here from main.
        (C_entries): Removed all references to var methodlen, delete it.
        (linebuffer_setlen): Was grow_buffer, now also sets len.
        * etags.c (get_language_from_langname): Renamed from
        get_language_from_name.
        (get_language_from_filename): Renamed from
-       get_language_from_suffix.  Now first looks for the complete file
-       name.
+       get_language_from_suffix.  Now first looks for the complete file name.
        (language): New member char **filenames.
        (Makefile_filenames): List of possible filenames for makefiles.
        (lang_names): Added a NULL member for every entry, added an entry
        for makefiles.
-       (Makefile_targets): New function, inspired by Assar Westerlund
-       <assar@sics.se>.
+       (Makefile_targets): New function.
        (Texinfo_nodes): Renamed from Texinfo_fuctions and made
        it conformant to the style of the rest of the code.
 
 
 2001-01-02  Gerd Moellmann  <gerd@gnu.org>
 
-       * ebrowse.c (yyerror): Changed to take two arguments.  Prototype
-       added.  Callers changed.
+       * ebrowse.c (yyerror): Changed to take two arguments.
+       Prototype added.  Callers changed.
 
 2001-01-02  Eli Zaretskii  <eliz@is.elta.co.il>
 
 
 2000-07-14  Gerd Moellmann  <gerd@gnu.org>
 
-       * ebrowse.c (xrealloc, xmalloc): Renamed from yrealloc and
-       ymalloc.
+       * ebrowse.c (xrealloc, xmalloc): Renamed from yrealloc and ymalloc.
 
        * etags.c (xmalloc, xrealloc): Make externally visible, for use
        by alloca.o.
 
-       * Makefile.in (alloca.o): Add -Demacs so that alloca will use
-       xmalloc.
+       * Makefile.in (alloca.o): Add -Demacs so that alloca will use xmalloc.
 
 2000-07-10  Gerd Moellmann  <gerd@gnu.org>
 
 
 2000-05-02  Eli Zaretskii  <eliz@is.elta.co.il>
 
-       * ebrowse.c (PATH_LIST_SEPARATOR) [__MSDOS__ || WINDOWSNT]: Define
-       to semi-colon.
+       * ebrowse.c (PATH_LIST_SEPARATOR) [__MSDOS__ || WINDOWSNT]:
+       Define to semi-colon.
        (FILENAME_EQ): New macro, for comparing file names.
-       (add_member_decl, add_global_decl, add_member_defn): Use
-       FILENAME_EQ.
+       (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
 2000-01-28  Eric Hanchrow <offby1@blarg.net>
 
        * emacsclient.c (socket_status): New function.
-       (main): if $LOGNAME or $USER exist and differ from our euid, look
+       (main): If $LOGNAME or $USER exist and differ from our euid, look
        for a socket based on the UID associated with the name.
 
 2000-01-12  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
 
        * etags.c (_GNU_SOURCE): Define only if undefined.
        (get_scheme): Declaration deleted.
-       (main): error was called with an integer as second arg, instead of
+       (main): Error was called with an integer as second arg, instead of
        a char pointer.
        (canonicalize_filename): Bug removed.
 
        (C_stab_entry): Added if, for, while, switch, return as
        st_C_ignore.  This makes it simpler to work when cblev!=0.
 
-       * etags.c (C_entries): tag member function declarations when
+       * etags.c (C_entries): Tag member function declarations when
        --declarations is used.
 
        * etags.c (C_entries, consider_token): C++ `operator' now is
        * etags.c (init): Cosmetic change: NULL --> '\0'.
        (erlang_attribute): Bug corrected (uninitialized variable).
        (filename_is_absolute): New function replaces absolutefn macro and
-       corrects a bug.  All callers changed.
+       corrects a bug.  All callers changed.
        (canonicalize_filename): New function.
        (process_file, etags_getcwd, absolute_dirname): Use it.
        (relative_filename, absolute_filename): Removed var shadowing.
        (C_entries, Pascal_functions): Add fake initializations to keep
-       compilers quiet.
+       compilers quiet.
        (TeX_functions, Prolog_functions, Erlang_functions): Cleanup.
 
        * etags.c (xrnew): New macro.  All callers of xrealloc changed.
        (language): New typedef (was struct lang_entry).
        (curlang): New global variable.
-       (node): typedef renamed from NODE.
+       (node): Typedef renamed from NODE.
        (linebuffer): New typedef (was struct linebuffer).
        (pattern): New typedef (was struct pattern).  Some members added.
        Now used as element of a linked list.
        (patterns, num_patterns): Global variables deleted.
        (p_head): New global variable.
        (forced_lang):  New global variable (replaces lang_func).
-       (get_language_from_name, get_language_from_interpreter,
-       get_language_from_suffix): Semantics changed.  All callers changed.
+       (get_language_from_name, get_language_from_interpreter)
+       (get_language_from_suffix): Semantics changed.  All callers changed.
        (last_node): New global variable.
-       (free_tree, add_node, put_entries, total_size_of_entries): Change
-       name of local vars to avoid clashes with typedef node.
+       (free_tree, add_node, put_entries, total_size_of_entries):
+       Change name of local vars to avoid clashes with typedef node.
        (number_len): Rewritten for elegance.
        (token): New typedef replaces TOKEN.
        (analyse_regex, add_regex): Rewritten for new functionality.
        (free_patterns): New function called from main and add_regex.
        (initbuffer, readline_internal, readline, grow_linebuffer):
-       Change name of local vars to avoid clashes with typedef
-       linebuffer.
+       Change name of local vars to avoid clashes with typedef linebuffer.
        (readline): Rewritten for new functionality.
 
        * etags.c: (Scheme_suffixes): New suffix ".ss".
 
        * etags.c (print_help): Some messages clarified.
        (LOOP_ON_INPUT_LINES): New macro.
-       (just_read_file, Fortran_functions, Asm_labels, Perl_functions,
-       Python_functions, Cobol_paragraphs, Pascal_functions,
-       Lisp_functions, Postscript_functions, Scheme_functions,
-       TeX_functions, Prolog_functions, Erlang_functions): Use it.
-       (Cobol_paragraphs, Postscript_functions, TeX_functions,
-       Prolog_functions, Erlang_functions): Use a local variable instead
+       (just_read_file, Fortran_functions, Asm_labels, Perl_functions)
+       (Python_functions, Cobol_paragraphs, Pascal_functions)
+       (Lisp_functions, Postscript_functions, Scheme_functions)
+       (TeX_functions, Prolog_functions, Erlang_functions): Use it.
+       (Cobol_paragraphs, Postscript_functions, TeX_functions)
+       (Prolog_functions, Erlang_functions): Use a local variable instead
        of the global variable dbp.
        (Pascal_functions, L_isquote, Scheme_functions): Use GNU coding
        standard indentation.
 
-       * etags.c (Python_suffixes, lang_names, Python_functions): Python
-       support.
+       * etags.c (Python_suffixes, lang_names, Python_functions):
+       Python support.
        (skip_spaces, skip_non_spaces): Utility functions.
-       (find_entries, takeprec, getit, Fortran_functions, Perl_functions,
-       Python_functions, L_getit, Lisp_functions, Scheme_functions,
-       prolog_pred, erlanf_func, erlang_attribute): Use them.
+       (find_entries, takeprec, getit, Fortran_functions, Perl_functions)
+       (Python_functions, L_getit, Lisp_functions, Scheme_functions)
+       (prolog_pred, erlanf_func, erlang_attribute): Use them.
        (eat_white): Deleted.
 
        * etags.c (CHAR, init): Keep into account non US-ASCII
@@ -2431,7 +3132,7 @@ Tue Jul  1 01:09:07 1997  Geoff Voelker  <voelker@cs.washington.edu>
        (readline_internal): Discard possible \r before \n here.
        (C_entries): Do not deal with \r here: undo previous fix.
 
-1995-01-09  Francesco Potorti`  (pot at fly)
+1995-01-09  Francesco Potorti`  (pot@fly)
 
        * b2m.c (concat, xmalloc, xrealloc, readline, xnew): Four new
        functions and a macro that allow the program to work on input
@@ -3066,7 +3767,7 @@ Tue Jul  1 01:09:07 1997  Geoff Voelker  <voelker@cs.washington.edu>
 
        * fakemail.c (put_line): Don't break the line if it all fits.
 
-1994-02-14  Francesco Potorti`  (pot at fly)
+1994-02-14  Francesco Potorti`  (pot@fly)
 
        * etags.c (absolute_pathnames, cwd): added global vars.
        (longopts, print_help, main, process_file): put absolute filenames
@@ -3300,7 +4001,7 @@ Tue Jul  1 01:09:07 1997  Geoff Voelker  <voelker@cs.washington.edu>
        By default, look for *,v files as well as RCS/*,v files.
        Use $TMPDIR (default /tmp) instead of /tmp.
 
-1993-09-20  Francesco Potorti`  (pot at fly)
+1993-09-20  Francesco Potorti`  (pot@fly)
 
        * etags.c (C_entries): is_func is initialised here instead of in
        consider_token for the sake of the yacc rules section.
@@ -4140,14 +4841,14 @@ Tue Jul  1 01:09:07 1997  Geoff Voelker  <voelker@cs.washington.edu>
        that is off by default -- normally don't unlink the mail spool
        file, just empty it.  Pass creat mode 0600, not 0666.
 
-1992-02-07  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+1992-02-07  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
 
        * Makefile (../arch-lib): Depend on ${EXECUTABLES}.
        (all): Instead of here.
        (install): Don't use the -s option, since people need symbols to
        debug code.
 
-1992-01-19  (Eric Youngdale at youngdale@v6550c.nrl.navy.mil)
+1992-01-19  Eric Youngdale  (youngdale@v6550c.nrl.navy.mil)
 
        * etags-vmslib.c (fn_exp): Add type cast.
 
@@ -4155,17 +4856,17 @@ Tue Jul  1 01:09:07 1997  Geoff Voelker  <voelker@cs.washington.edu>
 
        * movemail.c: Changes in comments.
 
-1992-01-13  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+1992-01-13  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
 
        * Makefile: Make the distclean target erase the DOC files from
        ../share-lib and the executables from ../arch-lib.
 
-1992-01-09  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+1992-01-09  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
 
        * emacsclient.c: #include <sys/stat.h>
        (main): Do declare statbfr.
 
-1991-12-21  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+1991-12-21  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 
        * emacsserver.c, emacsclient.c [BSD]: Use either /tmp or ~
        for the socket, depending on SERVER_HOME_DIR.
@@ -4181,7 +4882,7 @@ Tue Jul  1 01:09:07 1997  Geoff Voelker  <voelker@cs.washington.edu>
        * aixcc.lex: New file.  Not officially part of Emacs.
        * Makefile: Rules for that.
 
-1991-12-04  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+1991-12-04  Jim Blandy  (jimb@pogo.gnu.ai.mit.edu)
 
        * yow.c (main): Rename all references to PATH_EXEC to PATH_DATA.
 
@@ -4197,31 +4898,31 @@ Tue Jul  1 01:09:07 1997  Geoff Voelker  <voelker@cs.washington.edu>
        Collect these names and emit include tags for them after processing
        all the argument files.
 
-1991-07-30  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+1991-07-30  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 
        * wakeup.c: Terminate if parent goes away.
 
-1991-07-18  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+1991-07-18  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 
        * etags.c (C_entries): Process token before handling end of line.
        When inner loops reach end of line, just back up.
        Let the real end of line processing happen in just one place.
        (consider_token):  Likewise.
 
-1991-04-11  Jim Blandy  (jimb at geech.gnu.ai.mit.edu)
+1991-04-11  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
 
        * etags.c (TEX_mode): Skip comments while scanning the text to see
        which escape character this file uses.
 
-1991-03-29  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+1991-03-29  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 
        * emacsserver.c [USG]: Terminate if msgrcv fails.
 
-1991-03-03  Richard Stallman  (rms at mole.ai.mit.edu)
+1991-03-03  Richard Stallman  (rms@mole.ai.mit.edu)
 
        * emacsserver.c [BSD]: Check for errors on stdin after scanf.
 
-1991-01-25  Jim Blandy  (jimb at churchy.ai.mit.edu)
+1991-01-25  Jim Blandy  (jimb@churchy.ai.mit.edu)
 
        * make-docfile: Find the arguments to a C function correctly,
        by not ignoring the character that read_c_string returns.  Don't
@@ -4229,132 +4930,132 @@ Tue Jul  1 01:09:07 1997  Geoff Voelker  <voelker@cs.washington.edu>
        or UNEVALLED arguments, since they're a figment of the docstring's
        imagination.
 
-1991-01-14  Jim Blandy  (jimb at churchy.ai.mit.edu)
+1991-01-14  Jim Blandy  (jimb@churchy.ai.mit.edu)
 
        * make-docfile: Read the .elc files generated by the new byte
        compiler.
 
-1990-12-31  Richard Stallman  (rms at mole.ai.mit.edu)
+1990-12-31  Richard Stallman  (rms@mole.ai.mit.edu)
 
        * refcard.tex: Use cm fonts, not am, in multi-column mode.
 
-1990-11-29  Richard Stallman  (rms at mole.ai.mit.edu)
+1990-11-29  Richard Stallman  (rms@mole.ai.mit.edu)
 
        * movemail.c (mbx_delimit_begin): Put space before `unseen'.
 
-1990-11-27  Richard Stallman  (rms at mole.ai.mit.edu)
+1990-11-27  Richard Stallman  (rms@mole.ai.mit.edu)
 
        * Makefile (install*): No need to install wakeup.
 
-1990-11-26  Richard Stallman  (rms at mole.ai.mit.edu)
+1990-11-26  Richard Stallman  (rms@mole.ai.mit.edu)
 
        * Makefile (install*): Install emacsclient like etags.
 
-1990-11-13  Richard Stallman  (rms at mole.ai.mit.edu)
+1990-11-13  Richard Stallman  (rms@mole.ai.mit.edu)
 
        * movemail.c (error): Handle 3 args.
        (main): Don't check input access if using pop.
 
-1990-10-16  Richard Stallman  (rms at mole.ai.mit.edu)
+1990-10-16  Richard Stallman  (rms@mole.ai.mit.edu)
 
        * etags.c (find_entries): Check for numbers after Scheme suffix.
 
-1990-10-14  Richard Stallman  (rms at mole.ai.mit.edu)
+1990-10-14  Richard Stallman  (rms@mole.ai.mit.edu)
 
        * termcap.dat (vt200-80): Fix ke and ks to frob flag 1.
 
-1990-10-09  Richard Stallman  (rms at mole.ai.mit.edu)
+1990-10-09  Richard Stallman  (rms@mole.ai.mit.edu)
 
        * Makefile (nemacstool, xvetool): New targets.
 
-1990-09-26  Richard Stallman  (rms at mole.ai.mit.edu)
+1990-09-26  Richard Stallman  (rms@mole.ai.mit.edu)
 
        * emacsclient.c: Include errno.h and define related variables.
 
-1990-09-23  Richard Stallman  (rms at mole.ai.mit.edu)
+1990-09-23  Richard Stallman  (rms@mole.ai.mit.edu)
 
        * emacsclient.c: Change usage message.
 
-1990-08-30  David Lawrence  (tale at pogo.ai.mit.edu)
+1990-08-30  David Lawrence  (tale@pogo.ai.mit.edu)
 
        * emacs.1:  Add break before -nw option.
 
-1990-08-19  David J. MacKenzie  (djm at apple-gunkies)
+1990-08-19  David J. MacKenzie  (djm@apple-gunkies)
 
        * qsort.c: Replace with GNU version.
 
-1990-08-14  David J. MacKenzie  (djm at apple-gunkies)
+1990-08-14  David J. MacKenzie  (djm@apple-gunkies)
 
        * wakeup.c: New program replacing loadst.c.
 
-1990-08-14  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1990-08-14  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * emacsclient.c [USG]: Pass msgsnd only 4 args.
 
-1990-08-09  David J. MacKenzie  (djm at pogo.ai.mit.edu)
+1990-08-09  David J. MacKenzie  (djm@pogo.ai.mit.edu)
 
        * etags.c: Rename `flag' variables for what they do instead of
        which option character sets them.
 
-1990-05-28  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1990-05-28  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * loadst.c (main): Conditional to get load average on Apollo.
 
-1990-05-22  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+1990-05-22  Joseph Arceneaux  (jla@churchy.ai.mit.edu)
 
        * emacsserver.c: Set the permission on the socket to 0600.
 
-1990-03-27  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1990-03-27  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * emacsclient.c [BSD]: Print clean message for failing getwd.
 
-1990-03-20  David Lawrence  (tale at pogo.ai.mit.edu)
+1990-03-20  David Lawrence  (tale@pogo.ai.mit.edu)
 
        * getdate.y: Use the getdate.y from GNU tar for timer.
 
-1990-03-18  Jim Kingdon  (kingdon at pogo.ai.mit.edu)
+1990-03-18  Jim Kingdon  (kingdon@pogo.ai.mit.edu)
 
        * emacsclient.c (main): Don't put brackets around "filename" in
        usage message.  It isn't optional.
 
-1990-03-14  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+1990-03-14  Joseph Arceneaux  (jla@churchy.ai.mit.edu)
 
        * etags.c (getit):  Recognize '$' as beginning identifiers.
 
-1990-02-22  David Lawrence  (tale at pogo.ai.mit.edu)
+1990-02-22  David Lawrence  (tale@pogo.ai.mit.edu)
 
        * emacsserver.c: Renamed from server.c.
        * Makefile: Reference emacsserver rather than server.
        * MACHINES: Doc fix for new emacsserver name.
 
-1990-01-25  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1990-01-25  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * emacsclient.c: Print program name in error messages.
 
-1990-01-19  David Lawrence  (tale at cocoa-puffs)
+1990-01-19  David Lawrence  (tale@cocoa-puffs)
 
        * timer.c, getdate.y (new files) and Makefile:
          Sub-process support for run-at-time in timer.el.
          Doesn't yet work correctly for USG.
 
-1990-01-10  Jim Kingdon  (kingdon at pogo)
+1990-01-10  Jim Kingdon  (kingdon@pogo)
 
        * MACHINES: Add HP 300 running BSD.
 
-1990-01-02  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1990-01-02  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * yow.c: Dynamically allocate buffer; skip header before random
        choice to avoid bias toward first item.
 
-1989-12-24  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-12-24  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * etags.c (readline): Separate out init of `pend'.
 
-1989-12-17  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-12-17  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * etags.c: Undo changes relating to isgoodhdr.
 
-1989-12-16  Mosur Mohan  (rms at sugar-bombs.ai.mit.edu)
+1989-12-16  Mosur Mohan  (rms@sugar-bombs.ai.mit.edu)
 
        * etags.c (isgoodhdr): New macro.
        (_gdh, notgdh): New variable used by that.
@@ -4367,63 +5068,63 @@ Tue Jul  1 01:09:07 1997  Geoff Voelker  <voelker@cs.washington.edu>
 
        * etags.c (PAS_funcs): One arg to pfnote was missing.
 
-1989-12-05  Joseph Arceneaux  (jla at spiff)
+1989-12-05  Joseph Arceneaux  (jla@spiff)
 
        * MACHINES: Change for the ULTRIX entry.
 
-1989-11-21  Joseph Arceneaux  (jla at spiff)
+1989-11-21  Joseph Arceneaux  (jla@spiff)
 
        * etags.c (process_file): If file is not regular, return.
 
-1989-11-06  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-11-06  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * loadst.c (main): Handle FIXUP_KERNEL_SYMBOL_ADDR.
 
-1989-10-30  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-10-30  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * loadst.c (load_average): If HAVE_GETLOADAVG, use getloadavg.
        (main): If HAVE_GETLOADAVG, don't call `nlist'.
 
-1989-10-25  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-10-25  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * etags.c (consider_token): Allow any number of typespec keywords
        after `typedef', before new type name.
        (enum sym_type): Add st_C_typespec.
        (C_create_stab): Put typespec kwds in table.
 
-1989-08-27  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+1989-08-27  Richard Stallman  (rms@apple-gunkies.ai.mit.edu)
 
        * etags.c (main): Don't depend on name invoked by.
        If CTAGS is not defined, assume it is ETAGS.
 
-1989-07-31  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-07-31  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * etags.c (L_funcs): Allow package name in define construct,
        as in (foo::defmumble name-defined ...).
 
-1989-07-30  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-07-30  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * etags.c (find_entries): Stupid bug testing for C filename suffixes.
 
        * Makefile (yow): Depends on ../src/paths.h.
 
-1989-07-04  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+1989-07-04  Richard Stallman  (rms@apple-gunkies.ai.mit.edu)
 
        * etags.c: Fix compilation by moving Pascal after Fortran.
 
-1989-06-15  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-06-15  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * movemail.c [USG]: Define F_OK, etc., if not found in header.
 
-1989-05-27  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-05-27  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * hexl.c: New file, supports hexl-mode.
 
-1989-05-14  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-05-14  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * movemail.c: New compilation flag MAIL_USE_MMDF.
 
-1989-05-08  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-05-08  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * emacsclient.c: Use BSD code whenever HAVE_SOCKETS.
        * server.c: Likewise.
@@ -4431,80 +5132,80 @@ Tue Jul  1 01:09:07 1997  Geoff Voelker  <voelker@cs.washington.edu>
        * make-docfile.c (scan_c_file): Output argument names at end of string.
        (write_c_args): New subroutine.
 
-1989-04-27  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-04-27  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * movemail.c: Report failure of flock.
 
-1989-04-19  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-04-19  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * etags.c (find_entries): Allow multi-letter extensions for fortran.
 
-1989-04-18  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-04-18  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * loadst.c: on bsd4.3, use gettimeofday instead of CPUSTATES.
 
-1989-03-15  Jeff Peck  (rms at sugar-bombs.ai.mit.edu)
+1989-03-15  Jeff Peck  (rms@sugar-bombs.ai.mit.edu)
 
        * emacstool.c: setenv IN_EMACSTOOL=t, TERM=sun, TERMCAP=.
 
        * emacsstool.1: update to document environment variables.
 
-1989-02-21  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-02-21  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * etags.c (PAS_funcs): New function by Mosur Mohan.
 
        * movemail.c: On sysv, include unistd.h.
 
-1989-02-18  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-02-18  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * b2m.c: New file.
 
-1989-02-15  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-02-15  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * etags.c: Prolog support from Sunichirou Sugou
 
-1989-02-03  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-02-03  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * Makefile (clean): New target.
 
-1989-01-25  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-01-25  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * fakemail.c (put_line): Break header lines at 79 cols.
 
-1989-01-19  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-01-19  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * etags.c: Greatly rewritten by Sam Kendall for C++ support and for
        multiple tags per line.
 
-1989-01-03  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1989-01-03  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * movemail.c: Check access before doing real work.
        Check that outfile is in a writable directory.
        On fatal error, delete the lock file.
 
-1988-12-31  Richard Mlynarik  (mly at rice-chex.ai.mit.edu)
+1988-12-31  Richard Mlynarik  (mly@rice-chex.ai.mit.edu)
 
         * env.c:  Add decl for my-index
         * etags.c (file-entries): .oak => scheme
 
-1988-12-30  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1988-12-30  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * movemail.c: Use `access' to check input and output files.
 
-1988-12-28  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1988-12-28  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * emacsclient.c (main): Ignore all of CWD before first slash.
 
-1988-12-27  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1988-12-27  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * etags.c (readline): Double linebuffer->size outside the xrealloc.
 
-1988-12-22  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1988-12-22  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * server.c, emacsclient.c: Don't try to use gid_t; it isn't defined.
        * server.c: chmod the socket to 0700.
 
-1988-12-09  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1988-12-09  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * fakemail.c (main): Let env var FAKEMAILER override pgm to run.
        (add_field): Delete comments and turn `<', `>' to spaces
@@ -4512,7 +5213,7 @@ Tue Jul  1 01:09:07 1997  Geoff Voelker  <voelker@cs.washington.edu>
        (USE_FAKEMAIL): New customization macro says to make fakemail
        not be a no-op even on a BSD system.
 
-1988-12-01  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1988-12-01  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * etags.c (consider_token): Skip comments just like whitespace.
        Notice `struct', etc. and set strtag for those tokens.
@@ -4523,68 +5224,68 @@ Tue Jul  1 01:09:07 1997  Geoff Voelker  <voelker@cs.washington.edu>
        (main): New option `T' sets tflag and strflag.
        Set both of them by default if eflags.
 
-1988-11-30  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1988-11-30  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * movemail.c: Do fsync before closing output.
 
-1988-11-29  Richard Mlynarik  (mly at pickled-brain.ai.mit.edu)
+1988-11-29  Richard Mlynarik  (mly@pickled-brain.ai.mit.edu)
 
         * movemail.c:  Better error message when can't create tempname.
         This file needs a great deal of extra error-checking and lucid reporting...
 
-1988-11-16  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1988-11-16  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * etags.c: Support assembler code for .s and .a files.
        (getit): Allow underscore in a tag.
 
-1988-11-15  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1988-11-15  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * movemail.c: Close output and check errors before deleting input.
 
-1988-10-01  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+1988-10-01  Richard Stallman  (rms@apple-gunkies.ai.mit.edu)
 
        * emacsclient.c [SYSVIPC]: Compute cwd only once; decide properly
        whether to prefix it.  Handle line number args.
 
-1988-09-24  Richard Stallman  (rms at gluteus.ai.mit.edu)
+1988-09-24  Richard Stallman  (rms@gluteus.ai.mit.edu)
 
        * etags.c (main): default setting of eflag was backwards.
 
-1988-09-23  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1988-09-23  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * etags.c: New option -i.  -f renamed -o.
        `-' as input file means read input file names from stdin.
        -i spec'd or input file named TAGS means the input file is another
        tag table; output an "include" line for it.
 
-1988-09-19  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1988-09-19  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * Makefile: New vars DESTDIR, BINDIR, LIBDIR, MANDIR, MANEXT.
        New targets install, install.sysv, install.xenix.
        This makefile is now responsible for installing executables
        and documentation from this directory into system directories.
 
-1988-09-16  Richard Stallman  (rms at corn-chex.ai.mit.edu)
+1988-09-16  Richard Stallman  (rms@corn-chex.ai.mit.edu)
 
        * server.c, emacsclient.c (main): Compute socket name from euid.
 
-1988-08-04  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1988-08-04  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * emacsclient.c: Args like +DIGITS are passed through unchanged.
 
-1988-07-12  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1988-07-12  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * server.c: If both BSD and HAVE_SYSVIPC, use the latter.
        * emacsclient.c: Likewise.
        In the HAVE_SYSVIPC alternative, if BSD, use getwd instead of getcwd.
 
-1988-06-23  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1988-06-23  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * etags.c: Handle `typedef struct foo {' (price@mcc.com).
        (istoken) New string-comparison macro.
        (consider_token): New arg `level'.  New state `tag_ok' in `tydef'.
 
-1988-06-14  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1988-06-14  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * etags.c: Changes for VMS.
        Always define ETAGS on VMS.
@@ -4596,51 +5297,51 @@ Tue Jul  1 01:09:07 1997  Geoff Voelker  <voelker@cs.washington.edu>
 
        * etags-vmslib.c (system): Undefine this; VMS now provides it.
 
-1988-06-08  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+1988-06-08  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
        * loadst.c: Prevent multiple-def errors on BSD and BSD4_3
        around include of param.h.  (Like fns.c.)
 
-1988-05-16  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+1988-05-16  Richard Stallman  (rms@frosted-flakes.ai.mit.edu)
 
        * loadst.c (load_average): Move load-average code to this new fn.
        Add conditionals to compute load ave on UMAX.
 
-1988-05-14  Richard Stallman  (rms at lucky-charms.ai.mit.edu)
+1988-05-14  Richard Stallman  (rms@lucky-charms.ai.mit.edu)
 
        * loadst.c: Change DK_HEADER_FILE to DKSTAT_HEADER_FILE
        with opposite sense.
 
-1988-05-13  Chris Hanson  (cph at kleph)
+1988-05-13  Chris Hanson  (cph@kleph)
 
        * emacsclient.c: Delete references to unused variable `out'.  This
        caused a bus error when used under hp-ux.
 
-1988-05-06  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+1988-05-06  Richard Stallman  (rms@frosted-flakes.ai.mit.edu)
 
        * loadst.c: Control dk.h conditional with DK_HEADER_FILE.
 
-1988-05-04  Richard Stallman  (rms at rice-krispies.ai.mit.edu)
+1988-05-04  Richard Stallman  (rms@rice-krispies.ai.mit.edu)
 
        * etags.c (find_entries): `.t' or `.sch' means scheme code.
 
-1988-04-29  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+1988-04-29  Richard Stallman  (rms@frosted-flakes.ai.mit.edu)
 
        * loadst.c: Add BSD4_3 conditional for file dk.h instead of dkstat.h.
 
-1988-04-28  Richard Stallman  (rms at frosted-flakes.ai.mit.edu)
+1988-04-28  Richard Stallman  (rms@frosted-flakes.ai.mit.edu)
 
        * movemail.c: #undef close, since config can #define it on V.3.
        * emacsclient.c, fakemail.c, loadst.c, server.c: likewise.
 
-1988-04-26  Richard Stallman  (rms at lucky-charms.ai.mit.edu)
+1988-04-26  Richard Stallman  (rms@lucky-charms.ai.mit.edu)
 
        * etags.c (TEX_mode, etc.): Remove superfluous backslashes from
        invalid escape sequences such as `\{'.
 
        * loadst.c: Add `sequent' conditional for file dk.h.
 
-1988-03-20  Richard M. Stallman  (rms at wilson)
+1988-03-20  Richard M. Stallman  (rms@wilson)
 
        * server.c [not BSD and not HAVE_SYSVIPC]: fix error message.
 
@@ -4650,7 +5351,7 @@ Tue Jul  1 01:09:07 1997  Geoff Voelker  <voelker@cs.washington.edu>
 ;; coding: iso-2022-7bit
 ;; End:
 
-    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001
+    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002
        Free Software Foundation, Inc.
   Copying and distribution of this file, with or without modification,
   are permitted provided the copyright notice and this notice are preserved.