From: Juanma Barranquero Date: Fri, 8 Oct 2010 10:14:47 +0000 (+0200) Subject: Merge changes from emacs-23 branch. X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~438^2~46^2~125 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4628bef1eea0f60e846fe6b6591725aa92952de9;p=emacs.git Merge changes from emacs-23 branch. --- 4628bef1eea0f60e846fe6b6591725aa92952de9 diff --cc doc/misc/ChangeLog index 2971701b1f2,238cec8e82b..b06cfe1394b --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@@ -1,223 -1,15 +1,231 @@@ + 2010-10-08 Glenn Morris + + * cl.texi (Organization, Installation, Old CL Compatibility): + Deprecate cl-compat for new code. - -2010-10-07 Glenn Morris ++ (Usage, Installation): Remove outdated information. + + * eudc.texi (CCSO PH/QI, LDAP Requirements): Remove old information. + +2010-10-07 Katsumi Yamaoka + + * gnus.texi (Gravatars): Document gnus-gravatar-too-ugly. + +2010-10-06 Julien Danjou + + * sieve.texi (Manage Sieve API): Document sieve-manage-authenticate. + + * message.texi (PGP Compatibility): Remove reference to gpg-2comp, + broken link. + + * gnus-faq.texi (FAQ 8-3): Remove references to my.gnus.org. + + * gnus.texi (Comparing Mail Back Ends): Remove broken link and allusion + to ReiserFS. + + * gnus-faq.texi (FAQ 5-5): Fix Flyspell URL. + (FAQ 7-1): Fix getmail URL. + +2010-10-06 Daiki Ueno + + * epa.texi (Caching Passphrases): New section. + 2010-10-06 Glenn Morris - * cl.texi (Usage, Installation): Remove outdated information. + * Makefile.in (SHELL): Set it. + (info): Move the mkdir dependency to the individual info files. + (mostlyclean): Tidy up. + (clean): Only delete the specific dvi and pdf files. + (maintainer-clean): Be more restrictive in what we delete. + ($(infodir)): Add parallel build workaround. + +2010-10-04 Lars Magne Ingebrigtsen + + * gnus.texi (Misc Article): Document gnus-widen-article-window. + +2010-10-03 Julien Danjou + + * emacs-mime.texi (Display Customization): Update + mm-inline-large-images documentation and add documentation for + mm-inline-large-images-proportion. + +2010-10-03 Michael Albinus + + * tramp.texi (Frequently Asked Questions): Mention + remote-file-name-inhibit-cache. + +2010-10-02 Lars Magne Ingebrigtsen + + * gnus.texi (Splitting Mail): Fix @xref syntax. + (Splitting Mail): Really fix the @ref syntax. + +2010-10-01 Lars Magne Ingebrigtsen + + * gnus.texi (Splitting Mail): Mention the new fancy splitting + function. + (Article Hiding): Add google banner example. Suggested by Benjamin + Xu. + +2010-09-30 Teodor Zlatanov + + * gnus.texi (Spam Package Configuration Examples, SpamOracle): Remove + nnimap-split-rule from examples. + +2010-09-30 Lars Magne Ingebrigtsen + + * gnus.texi (Mail Source Specifiers): Remove webmail.el mentions. + (NNTP): Document nntp-server-list-active-group. Suggested by Barry + Fishman. + (Client-Side IMAP Splitting): Add nnimap-split-fancy. + +2010-09-30 Julien Danjou + + * gnus.texi (Gravatars): Fix documentation about + gnu-gravatar-properties. + +2010-09-29 Daiki Ueno + + * epa.texi (Bug Reports): New section. + +2010-09-29 Glenn Morris + + * Makefile.in (top_srcdir): Remove unused variable. + +2010-09-29 Lars Magne Ingebrigtsen + + * gnus.texi (Using IMAP): Remove the @acronyms from the headings. + (Client-Side IMAP Splitting): Document 'default. + +2010-09-27 Lars Magne Ingebrigtsen + + * gnus.texi (Customizing the IMAP Connection): Document + nnimap-fetch-partial-articles. + +2010-09-26 Lars Magne Ingebrigtsen + + * gnus-news.texi: Mention nnimap-inbox. + + * gnus.texi (Picons): Document gnus-picon-inhibit-top-level-domains. + +2010-09-26 Julien Danjou + + * gnus.texi (Oort Gnus): Remove mention of ssl.el. + +2010-09-26 Lars Magne Ingebrigtsen + + * gnus.texi (Security): Remove gpg.el mention. + +2010-09-26 Andreas Seltenreich + + * gnus.texi (Browse Foreign Server): New variable + gnus-browse-subscribe-newsgroup-method. + + * gnus-news.texi: Mention it. + +2010-09-26 Lars Magne Ingebrigtsen + + * gnus.texi (NoCeM): Removed. + (Startup Variables): No jingle. + +2010-09-25 Ulrich Mueller + + * woman.texi (Interface Options): xz compression is now supported. + +2010-09-25 Lars Magne Ingebrigtsen + + * gnus.texi (Article Commands): Document gnus-fetch-partial-articles. + (Unavailable Servers): Document gnus-server-copy-server. + (Using IMAP): Document the new nnimap. + +2010-09-25 Julien Danjou + + * gnus.texi (Customizing Articles): Remove gnus-treat-translate. + +2010-09-24 Glenn Morris + + * url.texi (Disk Caching): Tweak previous change. + +2010-09-24 Julien Danjou + + * url.texi (Disk Caching): Mention url-cache-expire-time, + url-cache-expired, and url-fetch-from-cache. + +2010-09-24 Julien Danjou + + * gnus.texi: Add Gravatars. + +2010-09-23 Lars Magne Ingebrigtsen + + * gnus.texi (Startup Variables): Mention gnus-use-backend-marks. + +2010-09-21 Lars Magne Ingebrigtsen + + * gnus.texi (Expunging mailboxes): Update name of the expunging + command. + +2010-09-20 Katsumi Yamaoka + + * emacs-mime.texi (rfc2047): Update description for + rfc2047-encode-parameter. + +2010-09-13 Michael Albinus + + * tramp.texi (Inline methods): Remove "ssh1_old", "ssh2_old" and + "fish" methods. + (External methods): Remove "scp1_old" and "scp2_old" methods. + +2010-09-09 Michael Albinus + + * tramp.texi: Remove Japanese manual. Fix typo. + + * trampver.texi: Update release number. Remove japanesemanual. + +2010-09-09 Glenn Morris + + * org.texi: Restore clobbered changes (copyright years, untabify). + +2010-09-04 Julien Danjou (tiny change) + + * gnus.texi (Adaptive Scoring): Fix typo. + +2010-09-03 Lars Magne Ingebrigtsen + + * gnus.texi (Article Display): Document gnus-html-show-images. + +2010-09-02 Jan Djärv + + * cl.texi (Basic Setf): Remove x-get-cut-buffer and x-get-cutbuffer. + +2010-09-01 Lars Magne Ingebrigtsen + + * gnus.texi (HTML): Document gnus-max-image-proportion. + +2010-08-31 Lars Magne Ingebrigtsen + + * gnus.texi (HTML): Document gnus-blocked-images. + + * message.texi (Wide Reply): Document message-prune-recipient-rules. + +2010-08-30 Lars Magne Ingebrigtsen + + * gnus.texi (Summary Mail Commands): Note that only the addresses from + the first message are used for wide replies. + (Changing Servers): Remove documentation on gnus-change-server and + friends, since it's been removed. + +2010-08-29 Lars Magne Ingebrigtsen + + * gnus.texi (Drafts): Mention B DEL. + +2010-08-29 Tim Landscheidt (tiny change) + + * gnus.texi (Delayed Articles): Mention that the Date header is the + original one, even if you delay. + +2010-08-29 Lars Magne Ingebrigtsen + + * gnus.texi (Asynchronous Fetching): Document + gnus-async-post-fetch-function. + (HTML): Made into its own section. 2010-08-26 Michael Albinus diff --cc lib-src/ChangeLog index 6d5bf6c4e5b,11da74f63b0..50528a4508c --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@@ -1,335 -1,8 +1,340 @@@ -2010-10-01 Glenn Morris ++2010-10-08 Glenn Morris + + * emacsclient.c (set_local_socket) [DARWIN_OS]: Try as a fall-back + DARWIN_USER_TEMP_DIR. (Bug#3992) + +2010-10-03 Dan Nicolaescu + + * test-distrib.c (cool_read): + * movemail.c (main, concat): + * make-docfile.c (scan_file, write_c_args): + * emacsclient.c (get_server_config): Fix -Wconversion warning. + (egetenv): Move conditional definition earlier. + (progname): Use const. + * sorted-doc.c (xstrdup): Use const. + + * Makefile.in: Remove ^L, old makes choke on it. + +2010-10-02 Wolfgang Schnerring (tiny change) + + * emacsclient.c (main): Return EXIT_FAILURE if Emacs sends us an + error string (Bug#6963). + +2010-10-02 Juanma Barranquero + + * makefile.w32-in (tags): Remove target. + +2010-10-01 Eli Zaretskii + + * makefile.w32-in (tags, TAGS): New targets. + +2010-09-30 Juanma Barranquero + + * emacsclient.c (get_server_config): Don't read Emacs pid from + the authentication file. + +2010-09-29 Juanma Barranquero + + * makefile.w32-in (../src/config.h): Remove target, it is stale. + + * emacsclient.c (main): Remove unused variables. + (start_daemon_and_retry_set_socket): Use EXIT_FAILURE. + +2010-09-25 Ulrich Mueller + + * etags.c (compressors, print_language_names): Support xz compression. + +2010-08-11 Jan Djärv + + * fakemail.c: Include stdlib.h for getenv. Remove declaration of + popen, fclose and pclose. + (my_name, fatal, error, put_line): Use const char*. + (main): Remove extern getenv, mail_program_name is const char*. + + * update-game-score.c (get_prefix, write_scores, main): Use const char*. + + * sorted-doc.c (error, fatal, states): Use const char *. + + * pop.h (pop_multi_first): Use const char *. + (_ARGS): Remove. + + * pop.c (pop_multi_first, socket_connection, sendline): Use const char*. + + * movemail.c (fatal, error, concat): Use const char *. + + * make-docfile.c (error, fatal, scan_c_file, scan_lisp_file): Use + const char *. + + * etags.c (compressor, language, Ada_suffix, Ada_help, Asm_suffixes) + (Asm_help, default_C_suffixes, default_C_help, Cplusplus_suffixes) + (Cplusplus_help, Cjava_suffixes, Cobol_suffixes, Cstar_suffixes) + (Erlang_suffixes, Erlang_help, Forth_suffixes, Forth_help) + (Fortran_suffixes, Fortran_help, HTML_suffixes, HTML_help) + (Lisp_suffixes, Lisp_help, Lua_suffixes, Lua_help) + (Makefile_filenames, Makefile_help, Objc_suffixes, Objc_help) + (Pascal_suffixes, Pascal_help, Perl_suffixes, Perl_interpreters) + (Perl_help, PHP_suffixes, PHP_help, plain_C_suffixses, PS_suffixes) + (PS_help, Prolog_suffixes, Prolog_help, Python_suffixes, Python_help) + (Scheme_suffixes, Scheme_help, TeX_suffixes, TeX_help, Texinfo_suffixes) + (Texinfo_help, Yacc_suffixes, Yacc_help, auto_help, none_help) + (no_lang_help, print_language_names) + (get_language_from_interpreter, get_language_from_filename) + (init, make_tag, struct C_stab_entry, write_classname, TEX_defenv) + (TEX_decode_env, nocase_tail, savestr, savenstr, fatal, pfatal) + (concat): Use const char*. + + * emacsclient.c (message, sock_err_message, send_to_emacs) + (quote_argument, set_local_socket) + (start_daemon_and_retry_set_socket): Use const char*. + + * ebrowse.c (struct member): filename, def_filename is const. + (struct sym): filename, sfilename is const. + (struct kw): name is const. + (add_sym, yyerror, token_string, insert_keyword, main): Use const char*. + + * b2m.c (concat, fatal): Use const char*. + (main): Don't assign labels a string literal. + +2010-08-07 Juanma Barranquero + + * ebrowse.c (usage, version, mark_virtual): + Remove duplicate declarations. + +2010-08-06 Dan Nicolaescu + + * emacsclient.c: Move socket related #includes together with the + rest of the #includes. Move WINDOWSNT includes closer together. + (HAVE_CONFIG_H): Remove. + (NO_RETURN): Remove, defined in config.h. + (main): Convert definition to standard C. + +2010-07-29 Juanma Barranquero + + * make-docfile.c (write_c_args): Warn for old-style empty arglist (). + +2010-07-25 Juanma Barranquero + + * emacsclient.c (getcwd): Fix previous change: make getcwd + conditional on HAVE_GETCWD and declare with the correct POSIX + profile (for some reason MinGW headers define its 2nd arg as int, + not size_t; but getcwd is not used on Windows nonetheless). + +2010-07-25 Juanma Barranquero + + * emacsclient.c (getcwd, w32_getenv): + * ntlib.h (getlogin, getuid, getegid, getgid): Fix prototypes. + +2010-07-24 Dan Nicolaescu + + * update-game-score.c (usage): Add NO_RETURN specifier. + * movemail.c (fatal, pfatal_with_name, pfatal_and_delete): + * make-docfile.c (fatal): + * hexl.c (usage): + * fakemail.c (fatal): + * etags.c (fatal, suggest_asking_for_help, pfatal): + * emacsclient.c (fatal): + * b2m.c (fatal): Likewise. + +2010-07-23 Juanma Barranquero + + * make-docfile.c (write_c_args): Correctly handle prefixes of "defalt". + +2010-07-20 Juanma Barranquero + + * emacsclient.c (get_current_dir_name, w32_get_resource) + (w32_getenv, w32_set_user_model_id, w32_window_app, w32_execvp) + (close_winsock, initialize_sockets, w32_find_emacs_process) + (w32_give_focus): + * ntlib.c (getlogin, getuid, getgid, getegid): + Convert definitions to standard C. + +2010-07-12 Andreas Schwab + + * Makefile.in (C_WARNINGS_SWITCH, PROFILING_CFLAGS) + (PROFILING_LDFLAGS): Set from substitution. + (BASE_CFLAGS): Add ${C_WARNINGS_SWITCH}. + (ALL_CFLAGS, CPP_CFLAGS): Add ${PROFILING_CFLAGS}. + (LINK_CFLAGS): Add ${PROFILING_LDFLAGS}. + +2010-07-12 Eli Zaretskii + + * makefile.w32-in (lisp2): Change hebrew.el to hebrew.elc (see + 2010-07-12T05:25:46Z!handa@etlken). + +2010-07-11 Andreas Schwab + + * emacsclient.c (set_local_socket): Use strchr, strrchr instead of + index, rindex. + * movemail.c (mail_spool_name, popmail): Likewise. + * pop.c (pop_list): Likewise. + +2010-07-11 Eli Zaretskii + + * makefile.w32-in (obj): Add menu.o, bidi.o, w32uniscribe.o, + and unexw32.o. (Bug#6603) + +2010-07-10 Eli Zaretskii + + * Makefile.in ($(DESTDIR)${archlibdir}): Convert spaces to TABs. + +2010-07-09 Andreas Schwab + + * make-docfile.c (write_c_args): Restructure scanning loop. + +2010-07-09 Dan Nicolaescu + + * make-docfile.c (write_c_args): Deal with type names in DEFUN + arguments. + +2010-07-08 Dan Nicolaescu + + * update-game-score.c (P_): Remove macro. + * ebrowse.c: Remove include guards. + (P_): Remove macro. + +2010-07-07 Andreas Schwab + + * ebrowse.c (add_sym, make_namespace): Replace bcopy, bzero by + memcpy, memmove, memset. + * pop.c (pop_retrieve, socket_connection, pop_getline): Likewise. + +2010-07-06 Andreas Schwab + + * movemail.c: Add MAIL_USE_POP around prototypes. + Include if HAVE_STRING_H. + (strerror): Only declare if !HAVE_STRERROR. + (fatal): Make static. + (error): Likewise. + (pfatal_with_name): Likewise. + (pfatal_and_delete): Likewise. + (concat): Likewise. + (xmalloc): Likewise. + (popmail): Likewise. + (pop_retr): Likewise. + (mbx_write): Likewise. + (mbx_delimit_begin): Likewise. + (mbx_delimit_end): Likewise. + +2010-07-04 Dan Nicolaescu + + * fakemail.c (action): Convert function definitions to standard C. + (add_a_stream): + * test-distrib.c (cool_read): + (main): Likewise. + +2010-07-03 Andreas Schwab + + * sorted-doc.c (cmpdoc): Fix signature. + (qsort_compare): Delete. + (main): Remove cast. + +2010-07-03 Juanma Barranquero + + * ebrowse.c (match_qualified_namespace_alias): Check for null pointer. + +2010-07-03 Juanma Barranquero + + Fix prototype warnings. + + * ebrowse.c (match_qualified_namespace_alias): + Pass sym* to find_namespace, not link*. + + * emacsclient.c (send_to_emacs, quote_argument): Arg s is HSOCKET. + + * sorted-doc.c (qsort_compare): New typedef. + (main): Use it to cast cmpdoc. + +2010-07-03 Dan Nicolaescu + + * update-game-score.c: Convert function definitions to standard C. + * sorted-doc.c: + * profile.c: + * pop.c: + * movemail.c: + * make-docfile.c: + * hexl.c: + * fakemail.c: + * etags.c: + * ebrowse.c: + * digest-doc.c: + * b2m.c: Likewise. + +2010-07-02 Dan Nicolaescu + + * make-docfile.c (xmalloc, xrealloc, concat, readline, fatal): + * b2m.c (scan_file, scan_lisp_file, scan_c_file): Convert to + standard C prototypes. + +2010-07-02 Jan Djärv + + * ebrowse.c: Remove P_ and __P. + * etags.c: + * movemail.c: + * pop.c: + * update-game-score.c: Likewise. + +2010-06-24 Juanma Barranquero + + * movemail.c (error): Avoid warning when there are no args. + +2010-06-11 Juanma Barranquero + + * makefile.w32-in (lisp2): Fix references to vc/vc-hooks.elc + and vc/ediff-hook.elc. + +2010-06-06 Dan Nicolaescu + + * ntlib.h: Remove code dealing with BSTRING. + +2010-05-29 Chong Yidong + + * emacsclient.c (longopts, decode_options, print_help_and_exit): + New arg `-parent-id'. + (main): Send parent-id to Emacs. + +2010-05-27 Glenn Morris + + * Makefile.in (distclean): No more Makefile.c. + +2010-05-22 Jan Djärv + + * Makefile.in (STAMP_INST_SCRIPTS, STAMP_SCRIPS): New (Bug #6246). + (all): Depend onSTAMP_INST_SCRIPTS, STAMP_SCRIPS (Bug #6246). + (stamp-rcs2log, stamp-rcs-checkin, stamp-grep-changelog, stamp-vcdiff): + New rules (Bug #6246). + (clean): Remove stamp-* (Bug #6246). + +2010-05-12 Glenn Morris + + * Makefile.in (INSTALLABLES): Remove @LIB_SRC_EXTRA_INSTALLABLES@. + +2010-05-11 Glenn Morris + + * Makefile.in (.m.o): Remove, there are no .m files. + (BASE_CFLAGS): New variable. + (ALL_CFLAGS, LINK_CFLAGS, CPP_CFLAGS): Use $BASE_CFLAGS. + (check): Update the message. + (update-game-score${EXEEXT}): Do not use $MOVE_FLAGS. + + * Makefile.in: Convert comments to makefile format. + + * Makefile.in (LIBS_SYSTEM) [MSDOS]: Do not reset. + (config.h) [MSDOS]: Do not include. + +2010-05-10 Glenn Morris + + * Makefile.in (LIBS_SYSTEM): Set with configure, not cpp. + (LIBS_SYSTEM) [MSDOS]: Reset with MSDOS_LIBS_SYSTEM. + (NOT_C_CODE): Remove, no longer used. + (config.h) [!MSDOS]: No longer include. + (LOADLIBES): Use LIBS_SYSTEM as a variable. + + * Makefile.in (BLESSMAIL_TARGET): Set with configure, not cpp. + +2010-05-08 Glenn Morris + + * Makefile.in (THIS_IS_MAKEFILE): Remove, unused. + 2010-05-07 Chong Yidong * Version 23.2 released. diff --cc lisp/ChangeLog index 43589198bea,95a8287f005..9dfd7d289fd --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@@ -1,427 -1,49 +1,473 @@@ + 2010-10-08 Glenn Morris + + * emacs-lisp/cl-compat.el, emacs-lisp/lmenu.el: Move to obsolete/. + + * emacs-lisp/shadow.el (lisp-shadow): Change prefix. + (shadows-compare-text-p): Make it an obsolete alias for... + (load-path-shadows-compare-text): ... new name. + (find-emacs-lisp-shadows): Update for above name change. + (load-path-shadows-same-file-or-nonexistent): New name for the old + shadow-same-file-or-nonexistent. + -2010-10-03 Chong Yidong ++2010-10-08 Chong Yidong + + * minibuffer.el (completion--some, completion--do-completion) + (minibuffer-complete-and-exit, minibuffer-completion-help) + (completion-basic-try-completion) + (completion-basic-all-completions) + (completion-pcm--find-all-completions): Use lexical-let to + avoid some false matches in variable completion (Bug#7056) + -2010-10-03 Olof Ohlsson Sax (tiny change) ++2010-10-08 Olof Ohlsson Sax (tiny change) + + * vc-svn.el (vc-svn-merge-news): Use --non-interactive. (Bug#7152) + -2010-10-03 Leo ++2010-10-08 Leo + + * dnd.el (dnd-get-local-file-name): If MUST-EXIST is non-nil, only + return non-nil if the file exists (Bug#7090). + -2010-09-30 Stefan Monnier ++2010-10-08 Stefan Monnier + + * minibuffer.el (completion--replace): + Better preserve markers (bug#7138). + -2010-09-29 Juanma Barranquero ++2010-10-08 Juanma Barranquero + + * server.el (server-process-filter): Doc fix. + -2010-09-27 Drew Adams ++2010-10-08 Drew Adams + + * dired.el (dired-save-positions): Doc fix. (Bug#7119) + -2010-09-27 Andreas Schwab ++2010-10-08 Andreas Schwab + + * Makefile.in (ELCFILES): Update. + +2010-10-08 Glenn Morris + + * vc/ediff-wind.el (ediff-setup-control-frame): + * vc/ediff-ptch.el (ediff-default-backup-extension): + * vc/ediff-diff.el (ediff-shell, ediff-diff-options) + (ediff-exec-process): Remove system-types emx, windows-95. + + * net/browse-url.el (browse-url-xdg-open): Shell-quote url. (Bug#7166) + +2010-10-07 Chong Yidong + + * cus-edit.el (custom-variable, custom-face): Doc fix. + (custom-face-edit): Add value-create attribute. + (custom-face-edit-value-create) + (custom-face-edit-value-visibility-action): New functions. Hide + unused face attributes by default, and add a visibility toggle. + (custom-face-edit-deactivate): Show empty values with shadow face. + (custom-face-selected): Only use this for face specs with default + attributes. + (custom-face-value-create): Cleanup. + + * wid-edit.el (widget-checklist-value-create): Use dolist. + (widget-checklist-match-find): Make second arg optional. + +2010-10-07 Glenn Morris + + * hilit-chg.el (hilit-chg-get-diff-info, hilit-chg-get-diff-list-hk): + Prefix things. + + * emacs-lisp/shadow.el (shadow-font-lock-keywords) + (load-path-shadows-mode, list-load-path-shadows): Rename shadow-mode to + load-path-shadows-mode, update references. + (load-path-shadows-font-lock-keywords, load-path-shadows-find-file): + Rename variable and button. + (list-load-path-shadows): Update button caller. + +2010-10-07 Stefan Monnier + + * emacs-lisp/smie.el (smie-bnf-classify): New function. + (smie-bnf-precedence-table): Use it to remember the closers/openers. + (smie-merge-prec2s): Handle those new entries. + (smie-prec2-levels): Only set precedence to nil for actual + openers/closers. + * progmodes/octave-mod.el (octave-smie-op-levels): Remove dummy entry + that is now unnecessary. + +2010-10-07 Miles Bader + + * emacs-lisp/regexp-opt.el (regexp-opt): Add `symbols' mode. + +2010-10-07 Glenn Morris + + * mail/rmail.el (mail-sendmail-delimit-header, mail-header-end) + (mail-position-on-field): Remove declarations. + (mail-position-on-field): Autoload it. + (rmail-retry-failure): Replace use of mail-sendmail-delimit-header + and mail-header-end. Don't require sendmail. + + * emacs-lisp/shadow.el (shadow-font-lock-keywords): New variable. + (shadow-mode): New mode. + (shadow-find-file): New button. + (list-load-path-shadows): Use shadow-mode and buttons. + + * iimage.el (iimage-version): Remove. + (iimage-mode-image-search-path, iimage-mode-image-regex-alist): + Turn into defcustoms. + (iimage-mode-map): Give it a doc string. + + * calendar/appt.el (appt-activate): Give a warning rather than an error + if there is no diary-file. + +2010-10-06 Michael Albinus + + * net/tramp-sh.el (tramp-sh-file-name-handler-alist): + Use `tramp-handle-find-backup-file-name'. + +2010-10-06 Glenn Morris + + * font-core.el (font-lock-defaults-alist): Remove variable. + (font-lock-mode): Doc fix. + (font-lock-default-function): Do not consult font-lock-defaults-alist. + * font-lock.el (font-lock-refresh-defaults): Doc fix. + (font-lock-set-defaults): Doc fix. + Do not consult font-lock-defaults-alist. + + * hilit-chg.el (hilit-chg-get-diff-list-hk): Declare `e' for compiler. + + * emacs-lisp/cl.el: No longer provide cl-19. + +2010-10-05 Michael Albinus + + * net/tramp.el (tramp-handle-directory-files-and-attributes) + (tramp-handle-file-exists-p, tramp-handle-file-newer-than-file-p): + New defuns, taken from tramp-smb.el. + (tramp-coding-system-change-eol-conversion) + (tramp-set-process-query-on-exit-flag): Removed. + + * net/tramp-compat.el (top): Do not check for byte-compiler + objects. + (tramp-compat-coding-system-change-eol-conversion) + (tramp-compat-set-process-query-on-exit-flag): New defuns, taken + from tramp.el. + + * net/tramp-gvfs.el: + * net/tramp-gw.el: Replace `tramp-set-process-query-on-exit-flag' + by `tramp-compat-set-process-query-on-exit-flag'. + + * net/tramp-imap.el (tramp-imap-file-name-handler-alist): Use + `tramp-handle-directory-files-and-attributes', + `tramp-handle-file-exists-p' and + `tramp-handle-file-newer-than-file-p'. + (tramp-imap-handle-file-exists-p) + (tramp-imap-handle-file-executable-p) + (tramp-imap-handle-file-readable-p) + (tramp-imap-handle-directory-files-and-attributes) + (tramp-imap-handle-file-newer-than-file-p): Removed. + + * net/tramp-sh.el: Replace `tramp-set-process-query-on-exit-flag' + by `tramp-compat-set-process-query-on-exit-flag' and + `tramp-coding-system-change-eol-conversion' by + `tramp-compat-coding-system-change-eol-conversion'. + + * net/tramp-smb.el (tramp-smb-file-name-handler-alist): Use + `tramp-handle-directory-files-and-attributes', + `tramp-handle-file-exists-p' and + `tramp-handle-file-newer-than-file-p'. + (tramp-smb-handle-directory-files-and-attributes) + (tramp-smb-handle-file-exists-p) + (tramp-smb-handle-file-newer-than-file-p): Removed. + (tramp-smb-maybe-open-connection): Replace + `tramp-set-process-query-on-exit-flag' by + `tramp-compat-set-process-query-on-exit-flag'. + +2010-10-05 Glenn Morris + + * obsolete/rnews.el, obsolete/rnewspost.el: Remove files. + +2010-10-04 Michael Albinus + + Continue reorganization of load dependencies. (Bug#7156) + + * net/tramp.el (tramp-handle-file-local-copy-hook) + (tramp-delete-temp-file-function): Move down. + (tramp-exists-file-name-handler): Move up. + (tramp-register-file-name-handlers): Simplify autoload. + (tramp-handle-write-region-hook, tramp-handle-directory-file-name) + (tramp-handle-directory-files, tramp-handle-dired-uncache) + (tramp-handle-file-modes, tramp-handle-file-name-as-directory) + (tramp-handle-file-name-completion) + (tramp-handle-file-name-directory) + (tramp-handle-file-name-nondirectory, tramp-handle-file-regular-p) + (tramp-handle-file-remote-p, tramp-handle-file-symlink-p) + (tramp-handle-find-backup-file-name) + (tramp-handle-insert-file-contents, tramp-handle-load) + (tramp-handle-substitute-in-file-name) + (tramp-handle-unhandled-file-name-directory) + (tramp-mode-string-to-int, tramp-local-host-p) + (tramp-make-tramp-temp-file): Moved from tramp-sh.el. + + * net/tramp-gvfs.el (top): + * net/tramp-smb.el (top): Do not require 'tramp-sh. + + * net/tramp-sh.el (all): Move several objects to tramp.el, see + there. Rename `tramp-handle-*' to `tramp-sh-handle-*'. + +2010-10-04 Glenn Morris + + * calendar/appt.el (appt-add): Ensure reminders are enabled. + (appt-activate): Give status messages. + +2010-10-03 Teodor Zlatanov + + * net/gnutls.el: Improve docs. Remove starttls and ssl emulation. + Provide only `open-gnutls-stream' (formerly `open-ssl-stream') and + `gnutls-negotiate' (formerly `starttls-negotiate'). Remove + trivial wrapper `starttls-open-stream'. + +2010-10-03 Dan Nicolaescu + + Make 'g' (AKA revert-buffer) rerun the VC log, log-incoming and + log-outgoing commands. + * vc/vc.el (vc-log-internal-common): Add a new argument and use it + to create a buffer local revert-buffer-function variable. + (vc-print-log-internal, vc-log-incoming, vc-log-outgoing): Pass a + revert-buffer-function lambda. + +2010-10-03 Teodor Zlatanov + + * net/gnutls.el (starttls-negotiate): Use the plist interface to + `gnutls-boot'. Make TYPE the only required parameter. Allow + TRUSTFILES and KEYFILES to be lists. + (open-ssl-stream): Use it. + +2010-10-03 Glenn Morris + + * subr.el (directory-sep-char): Remove obsolete variable. + * net/tramp-compat.el: Don't mess about with the byte-compiler unless + it is "necessary". + + * vc/vc-hooks.el (vc-header-alist): Remove obsolete variable. + * vc/vc.el (vc-static-header-alist): Doc fix. + * vc/vc-cvs.el (vc-cvs-header): + * vc/vc-rcs.el (vc-rcs-header): + * vc/vc-sccs.el (vc-sccs-header): + * vc/vc-svn.el (vc-svn-header): Do not consult vc-header-alist. + * obsolete/vc-mcvs.el (vc-mcvs-header): + * progmodes/cperl-mode.el (cperl-mode): Only set vc-header-alist + on XEmacs. + +2010-10-03 Chong Yidong + + * emacs-lisp/bytecomp.el (byte-compile-from-buffer): Remove + obsolete use of binary-overwrite-mode (Bug#7001). + +2010-10-03 Glenn Morris + + * obsolete/x-menu.el: Remove file, obsolete since 21.1 + + * textmodes/rst.el (rst-font-lock-keywords-function): + Drop Emacs 20 code. + + * textmodes/artist.el (artist-replace-char): Drop Emacs 20 code. + + * printing.el: Drop Emacs 20 code. + + * calendar/appt.el (appt-delete): Don't autoload it (you can't use it + without having used appt.el already). + + * subr.el (make-local-hook): Remove function obsolete since 21.1. + * progmodes/cc-mode.el (make-local-hook): Don't do cc-bytecomp stuff. + (c-basic-common-init, c-font-lock-init): Only call make-local-hook on + XEmacs. + * progmodes/cc-styles.el (make-local-hook): Don't do cc-bytecomp stuff. + (c-make-styles-buffer-local): Only call make-local-hook on XEmacs. + + * ps-def.el (leading-code-private-22, charset-bytes, charset-id) + (charset-width, find-charset-region, chars-in-region, forward-point) + (encode-coding-string, coding-system-p, ccl-execute-on-string) + (define-ccl-program, multibyte-string-p, string-make-multibyte): + Remove compatibility cruft (none of these are used by ps*.el). + +2010-10-03 Kevin Rodgers + + * subr.el (booleanp): Return t instead of a list (Bug#7086). + +2010-10-03 Chong Yidong + + * server.el (server-process-filter, server-return-error): Give + emacsclient time to shut down after receiving an error string. + +2010-10-02 Michael Albinus + + * files.el (remote-file-name-inhibit-cache): New defcustom. + + * time.el (display-time-file-nonempty-p): Use + `remote-file-name-inhibit-cache'. + + * net/tramp.el (tramp-completion-reread-directory-timeout): Fix + docstring. + + * net/tramp-cache.el (tramp-cache-inhibit-cache): Remove. + (tramp-get-file-property): Replace `tramp-cache-inhibit-cache' by + `remote-file-name-inhibit-cache'. Check also for an integer + value. Add/increase counter when `tramp-verbose' >= 10. + (tramp-set-file-property): Add/increase counter when + `tramp-verbose' >= 10. + + * net/tramp-cmds.el (tramp-cleanup-all-connections) + (tramp-cleanup-all-buffers): Set tramp-autoload cookie. + (tramp-bug): Set tramp-autoload cookie. Report all interned + tramp-* variables. Report also `remote-file-name-inhibit-cache'. + (tramp-reporter-dump-variable): Fix docstring. Mask non-7bit + characters only in strings. + + * net/tramp-compat.el (remote-file-name-inhibit-cache): Define due + to backward compatibility. + + * net/tramp-sh.el (tramp-handle-verify-visited-file-modtime) + (tramp-handle-file-name-all-completions) + (tramp-handle-vc-registered): Use + `remote-file-name-inhibit-cache'. + (tramp-open-connection-setup-interactive-shell): Call + `tramp-cleanup-connection' directly. + +2010-10-02 Glenn Morris + + * emacs-lisp/checkdoc.el (checkdoc-minor-keymap): Remove obsolete alias. + + * subr.el (char-bytes): Remove obsolete function. + + * isearch.el (isearch-return-char): Remove obsolete function. + + * mouse.el: No longer provide mldrag. + (mldrag-drag-mode-line, mldrag-drag-vertical-line): + Remove obsolete aliases. + + * comint.el (comint-kill-output): Remove obsolete alias. + + * composite.el (decompose-composite-char): Remove obsolete function. + * ps-def.el (decompose-composite-char): Remove unused function. + + * iswitchb.el (iswitchb-default-keybindings): Remove obsolete function. + + * outline.el (outline-visible): Remove obsolete function. + + * term/pc-win.el (x-frob-font-slant, x-frob-font-weight): + * faces.el (internal-find-face, internal-get-face) + (frame-update-faces, frame-update-face-colors) + (x-frob-font-weight, x-frob-font-slant) + (internal-frob-font-weight, internal-frob-font-slant) + (x-make-font-bold, x-make-font-demibold, x-make-font-unbold) + (x-make-font-italic, x-make-font-oblique, x-make-font-unitalic) + (x-make-font-bold-italic): Remove functions and aliases, obsolete + since Emacs 21.1. + * emulation/viper-util.el (viper-get-face): + * obsolete/lucid.el (find-face, get-face): Use facep. + * vc/ediff-init.el (ediff-valid-color-p, ediff-get-face): + Remove unused functions. + * vc/ediff-util.el (ediff-submit-report): Doc fix. + + * emacs-lisp/bytecomp.el (byte-compile-file): Use kill-emacs-hook to + delete tempfile if interrupted during compilation. + +2010-10-01 Lars Magne Ingebrigtsen + + * net/tls.el (tls-starttls-switches): Give up on using starttls with + gnutls-cli. + (tls-program): Add --insecure to be consistent with the defaults from + openssl s_client. Now all three commands are insecure. + +2010-10-01 Eli Zaretskii + + * makefile.w32-in (DEST, TAGS, TAGS-LISP, TAGS-nmake) + (TAGS-LISP-nmake, TAGS-gmake, TAGS-LISP-gmake, TAGS-SH) + (TAGS-LISP-SH, TAGS-CMD, TAGS-LISP-CMD): New targets. + +2010-10-01 Glenn Morris + + * obsolete/sc.el: Remove file. + + * files.el (temporary-file-directory): On darwin, also try + DARWIN_USER_TEMP_DIR (see discussion in bug#7135). + +2010-10-01 Juanma Barranquero + + * server.el (server-start): Revert part of 2010-09-30T02:53:26Z!lekktu@gmail.com. + Let's not break compatibility gratuitously, shall we? + +2010-09-30 Lars Magne Ingebrigtsen + + * net/tls.el (tls-starttls-switches): New variable. + (tls-find-starttls-argument): Use it. + (open-tls-stream): Ditto. + + * net/netrc.el (netrc-credentials): Return the value of the "default" + entry. + (netrc-machine): Ditto. + +2010-09-30 Eli Zaretskii + + * vc/vc-hooks.el (vc-default-mode-line-string): Doc fix. + +2010-09-30 Juanma Barranquero + + * server.el (server-start): Don't write pid to the authentication file. + (server-create-tty-frame): Don't send pid. + (server-process-filter): Send pid at the start of every connection. + +2010-09-30 Glenn Morris + + * calendar/diary-lib.el (view-diary-entries, list-diary-entries) + (show-all-diary-entries): Remove obsolete function aliases. + + * calendar/appt.el (appt-issue-message, appt-visible, appt-msg-window): + Remove options, obsolete since 22.1. + (appt-display-format, appt-display-message): Remove + backwards-compatibility code. + (appt-check): No longer check appt-issue-message. + (appt-make-list): No longer autoload it. Doc fix. No longer + activate the package. + +2010-09-29 Lars Magne Ingebrigtsen + + * net/gnutls.el (starttls-negotiate): Loop a lot longer. + (starttls-negotiate): Just call boot, and let the handshake be + triggered from the read loop. + +2010-09-29 Glenn Morris + + * calendar/diary-lib.el (diary-list-entries): Use temp buffers when + not displaying the diary. + (diary-add-to-list): If no buffer-file-name, fall back to diary-file. + * calendar/appt.el (appt-check): No longer need to kill diary. + + * calendar/diary-lib.el (diary-list-entries): Move the + "Preparing..." message entirely here. + (diary-simple-display, diary-fancy-display): Move "Preparing..." + messages to diary-list-entries. + (diary-include-other-diary-files): Use LIST-ONLY rather than setting + diary-display-function. + + * calendar/diary-lib.el (diary-include-other-diary-files): + Trap some recursive includes. + + * calendar/appt.el (appt-activate): Check diary file. + +2010-09-29 Katsumi Yamaoka + + * pgg.el (pgg-run-at-time-1): Define it for XEmacs only; fix if/else + construction. + + * calendar/time-date.el: No need to require cl for Emacs 21. + +2010-09-28 Glenn Morris + + * calendar/appt.el (appt-check): Minor simplification. + +2010-09-28 Katsumi Yamaoka + + * mail/sendmail.el (mail-citation-prefix-regexp): Remove "}" from + citation prefix. + +2010-09-27 Andreas Schwab + * emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Avoid infinite recursion on erroneous lambda form. (Bug#7114) diff --cc lisp/cedet/ChangeLog index 85f0410541a,c0d96e795cc..5617be568dd --- a/lisp/cedet/ChangeLog +++ b/lisp/cedet/ChangeLog @@@ -402,90 -423,7 +431,85 @@@ * ede/cpp-root.el (ede-set-project-variables): Fix feature name (bug#6231). -2010-04-18 Chong Yidong +2010-05-02 Stefan Monnier + + Use a mode-line spec rather than a static string in Semantic. + * semantic/util-modes.el: + (semantic-minor-modes-format): New var to replace... + (semantic-minor-modes-status): Remove. + (semantic-mode-line-update): Construct a mode-line spec rather than + a static string so that mouse buttons can be used on individual minor + modes and so that semantic-mode-line-update only needs to be called + when global settings are changed. + (semantic-add-minor-mode, semantic-toggle-minor-mode-globally): + Call semantic-mode-line-update. + (semantic-toggle-minor-mode-globally): Don't assume mode is on + minor-mode-alist, check semantic-minor-mode-alist as well. + (semantic-stickyfunc-mode, semantic-show-parser-state-auto-marker) + (semantic-show-parser-state-marker, semantic-show-parser-state-mode) + (semantic-show-unmatched-syntax-mode, semantic-highlight-edits-mode): + * semantic/mru-bookmark.el (semantic-mru-bookmark-mode): + * semantic/idle.el (semantic-idle-scheduler-mode) + (define-semantic-idle-service, semantic-idle-summary-mode): + * semantic/decorate/mode.el (semantic-decoration-mode): + Don't call semantic-mode-line-update any more. + +2010-05-02 Stefan Monnier + + Use define-minor-mode in CEDET where applicable. + + * srecode/mode.el (srecode-minor-mode,global-srecode-minor-mode): + Use define-minor-mode. + + * semantic/util-modes.el (semantic-add-minor-mode): + Remove unused arg `keymap' and code redundant with define-minor-mode. + (semantic-toggle-minor-mode-globally): Only handle arg -1 and 1. + (semantic-stickyfunc-mode, global-semantic-show-unmatched-syntax-mode) + (semantic-highlight-func-mode, global-semantic-show-parser-state-mode) + (global-semantic-highlight-edits-mode, semantic-highlight-edits-mode) + (semantic-show-unmatched-syntax-mode, semantic-show-parser-state-mode) + (global-semantic-stickyfunc-mode, global-semantic-highlight-func-mode): + Use define-minor-mode. + (semantic-stickyfunc-mode-setup, semantic-highlight-edits-mode-setup) + (semantic-show-unmatched-syntax-mode-setup) + (semantic-show-parser-state-mode-setup) + (semantic-highlight-func-mode-setup): Inline into sole caller. + + * semantic/mru-bookmark.el (global-semantic-mru-bookmark-mode) + (semantic-mru-bookmark-mode): Use define-minor-mode. + (semantic-mru-bookmark-mode-setup): Inline into sole caller. + + * semantic/idle.el (define-semantic-idle-service): + Use define-minor-mode and inline setup function into its sole caller. + (semantic-idle-scheduler-mode-setup) + (semantic-idle-summary-mode-setup): Inline into sole caller. + (global-semantic-idle-scheduler-mode, semantic-idle-scheduler-mode): + Use define-minor-mode. + + * semantic/decorate/mode.el (global-semantic-decoration-mode) + (semantic-decoration-mode): Use define-minor-mode. + (semantic-decoration-mode-setup): Inline into sole caller. + + * ede/dired.el (ede-dired-minor-mode): Initialize in declaration. + (ede-dired-minor-mode): Use define-minor-mode and derived-mode-p. + (ede-dired-add-to-target): Use dolist. + - 2010-04-18 Chong Yidong - - * ede/pmake.el (ede-proj-makefile-insert-variables): - Don't destroy list before using it. - +2010-04-29 Chong Yidong + + * semantic.el (semantic-completion-at-point-function): + New function. + (semantic-mode): Use semantic-completion-at-point-function for + completion-at-point-functions instead. + +2010-04-28 Chong Yidong + + * semantic.el (semantic-mode): When enabled, add + semantic-ia-complete-symbol to completion-at-point-functions. + + * semantic/ia.el (semantic-ia-complete-symbol): Return nil + if Semantic is not active. + +2010-04-19 Chong Yidong * ede/pmake.el (ede-proj-makefile-insert-variables): Don't destroy list before using it. diff --cc lisp/cedet/semantic/mru-bookmark.el index 12e0cb9f834,2a6ac8f9b10..b723a848c10 --- a/lisp/cedet/semantic/mru-bookmark.el +++ b/lisp/cedet/semantic/mru-bookmark.el @@@ -239,15 -239,27 +239,27 @@@ This function pushes tags onto the tag ;; ;; Tracking minor mode. + (defcustom global-semantic-mru-bookmark-mode nil + "If non-nil, enable `semantic-mru-bookmark-mode' globally. + When this mode is enabled, Emacs keeps track of which tags have + been edited, and you can re-visit them with \\[semantic-mrub-switch-tags]." + :group 'semantic + :group 'semantic-modes + :type 'boolean + :require 'semantic/util-modes + :initialize 'custom-initialize-default + :set (lambda (sym val) + (global-semantic-mru-bookmark-mode (if val 1 -1)))) + ;;;###autoload -(defun global-semantic-mru-bookmark-mode (&optional arg) +(define-minor-mode global-semantic-mru-bookmark-mode "Toggle global use of option `semantic-mru-bookmark-mode'. -If ARG is positive, enable, if it is negative, disable. -If ARG is nil, then toggle." - (interactive "P") - (setq global-semantic-mru-bookmark-mode - (semantic-toggle-minor-mode-globally - 'semantic-mru-bookmark-mode arg))) +If ARG is positive or nil, enable, if it is negative, disable." + :global t :group 'semantic :group 'semantic-modes + ;; Not needed because it's autoloaded instead. + ;; :require 'semantic-util-modes + (semantic-toggle-minor-mode-globally + 'semantic-mru-bookmark-mode (if global-semantic-mru-bookmark-mode 1 -1))) (defcustom semantic-mru-bookmark-mode-hook nil "*Hook run at the end of function `semantic-mru-bookmark-mode'." diff --cc lisp/minibuffer.el index f7dc035a886,a4ab5261f7c..98380f3926e --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@@ -1760,16 -1708,11 +1781,17 @@@ Return the new suffix. ;; Nothing to merge. suffix)) +(defun completion-basic--pattern (beforepoint afterpoint bounds) + (delete + "" (list (substring beforepoint (car bounds)) + 'point + (substring afterpoint 0 (cdr bounds))))) + (defun completion-basic-try-completion (string table pred point) - (let* ((beforepoint (substring string 0 point)) - (afterpoint (substring string point)) - (bounds (completion-boundaries beforepoint table pred afterpoint))) + (lexical-let* + ((beforepoint (substring string 0 point)) + (afterpoint (substring string point)) + (bounds (completion-boundaries beforepoint table pred afterpoint))) (if (zerop (cdr bounds)) ;; `try-completion' may return a subtly different result ;; than `all+merge', so try to use it whenever possible. diff --cc lisp/obsolete/cl-compat.el index 00000000000,f4582081031..622c4eaace6 mode 000000,100644..100644 --- a/lisp/obsolete/cl-compat.el +++ b/lisp/obsolete/cl-compat.el @@@ -1,0 -1,201 +1,200 @@@ + ;;; cl-compat.el --- Common Lisp extensions for GNU Emacs Lisp (compatibility) + + ;; Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, + ;; 2009, 2010 Free Software Foundation, Inc. + + ;; Author: Dave Gillespie + ;; Version: 2.02 + ;; Keywords: extensions + ;; Obsolete-since: 23.3 + + ;; This file is part of GNU Emacs. + + ;; GNU Emacs is free software: you can redistribute it and/or modify + ;; it under the terms of the GNU General Public License as published by + ;; the Free Software Foundation, either version 3 of the License, or + ;; (at your option) any later version. + + ;; GNU Emacs is distributed in the hope that it will be useful, + ;; but WITHOUT ANY WARRANTY; without even the implied warranty of + ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ;; GNU General Public License for more details. + + ;; You should have received a copy of the GNU General Public License + ;; along with GNU Emacs. If not, see . + + ;;; Commentary: + + ;; This file has been obsolete since Emacs 23.3. + + ;; These are extensions to Emacs Lisp that provide a degree of + ;; Common Lisp compatibility, beyond what is already built-in + ;; in Emacs Lisp. + ;; + ;; This package was written by Dave Gillespie; it is a complete + ;; rewrite of Cesar Quiroz's original cl.el package of December 1986. + ;; + ;; This package works with Emacs 18, Emacs 19, and Lucid Emacs 19. + ;; + ;; Bug reports, comments, and suggestions are welcome! + + ;; This file contains emulations of internal routines of the older + ;; CL package which users may have called directly from their code. + ;; Use (require 'cl-compat) to get these routines. + + ;; See cl.el for Change Log. + + + ;;; Code: + + ;; This used to be: + ;; (or (featurep 'cl) (require 'cl)) + ;; which just has the effect of fooling the byte-compiler into not + ;; loading cl when compiling. However, that leads to some bogus + ;; compiler warnings. Loading cl when compiling cannot do any harm, + ;; because for a long time bootstrap-emacs contained 'cl, due to being + ;; dumped from uncompiled files that eval-when-compile'd cl. So every + ;; file was compiled with 'cl loaded. + (require 'cl) + + + ;;; Keyword routines not supported by new package. + + (defmacro defkeyword (x &optional doc) + (list* 'defconst x (list 'quote x) (and doc (list doc)))) + + (defun keyword-of (sym) + (or (keywordp sym) (keywordp (intern (format ":%s" sym))))) + + + ;;; Multiple values. Note that the new package uses a different + ;;; convention for multiple values. The following definitions + ;;; emulate the old convention; all function names have been changed + ;;; by capitalizing the first letter: Values, Multiple-value-*, + ;;; to avoid conflict with the new-style definitions in cl-macs. + -(put 'Multiple-value-bind 'lisp-indent-function 2) -(put 'Multiple-value-setq 'lisp-indent-function 2) -(put 'Multiple-value-call 'lisp-indent-function 1) -(put 'Multiple-value-prog1 'lisp-indent-function 1) - + (defvar *mvalues-values* nil) + + (defun Values (&rest val-forms) + (setq *mvalues-values* val-forms) + (car val-forms)) + + (defun Values-list (val-forms) + (apply 'values val-forms)) + + (defmacro Multiple-value-list (form) + (list 'let* (list '(*mvalues-values* nil) (list '*mvalues-temp* form)) + '(or (and (eq *mvalues-temp* (car *mvalues-values*)) *mvalues-values*) + (list *mvalues-temp*)))) + + (defmacro Multiple-value-call (function &rest args) ++ (declare (indent 1)) + (list 'apply function + (cons 'append + (mapcar (function (lambda (x) (list 'Multiple-value-list x))) + args)))) + + (defmacro Multiple-value-bind (vars form &rest body) ++ (declare (indent 2)) + (list* 'multiple-value-bind vars (list 'Multiple-value-list form) body)) + + (defmacro Multiple-value-setq (vars form) ++ (declare (indent 2)) + (list 'multiple-value-setq vars (list 'Multiple-value-list form))) + + (defmacro Multiple-value-prog1 (form &rest body) ++ (declare (indent 1)) + (list 'prog1 form (list* 'let '((*mvalues-values* nil)) body))) + + + ;;; Routines for parsing keyword arguments. + + (defun build-klist (arglist keys &optional allow-others) + (let ((res (Multiple-value-call 'mapcar* 'cons (unzip-lists arglist)))) + (or allow-others + (let ((bad (set-difference (mapcar 'car res) keys))) + (if bad (error "Bad keywords: %s not in %s" bad keys)))) + res)) + + (defun extract-from-klist (klist key &optional def) + (let ((res (assq key klist))) (if res (cdr res) def))) + + (defun keyword-argument-supplied-p (klist key) + (assq key klist)) + + (defun elt-satisfies-test-p (item elt klist) + (let ((test-not (cdr (assq ':test-not klist))) + (test (cdr (assq ':test klist))) + (key (cdr (assq ':key klist)))) + (if key (setq elt (funcall key elt))) + (if test-not (not (funcall test-not item elt)) + (funcall (or test 'eql) item elt)))) + + + ;;; Rounding functions with old-style multiple value returns. + + (defun cl-floor (a &optional b) (Values-list (floor* a b))) + (defun cl-ceiling (a &optional b) (Values-list (ceiling* a b))) + (defun cl-round (a &optional b) (Values-list (round* a b))) + (defun cl-truncate (a &optional b) (Values-list (truncate* a b))) + + (defun safe-idiv (a b) + (let* ((q (/ (abs a) (abs b))) + (s (* (signum a) (signum b)))) + (Values q (- a (* s q b)) s))) + + + ;; Internal routines. + + (defun pair-with-newsyms (oldforms) + (let ((newsyms (mapcar (lambda (x) (make-symbol "--cl-var--")) oldforms))) + (Values (mapcar* 'list newsyms oldforms) newsyms))) + + (defun zip-lists (evens odds) + (mapcan 'list evens odds)) + + (defun unzip-lists (list) + (let ((e nil) (o nil)) + (while list + (setq e (cons (car list) e) o (cons (cadr list) o) list (cddr list))) + (Values (nreverse e) (nreverse o)))) + + (defun reassemble-argslists (list) + (let ((n (apply 'min (mapcar 'length list))) (res nil)) + (while (>= (setq n (1- n)) 0) + (setq res (cons (mapcar (function (lambda (x) (elt x n))) list) res))) + res)) + + (defun duplicate-symbols-p (list) + (let ((res nil)) + (while list + (if (memq (car list) (cdr list)) (setq res (cons (car list) res))) + (setq list (cdr list))) + res)) + + + ;;; Setf internals. + + (defun setnth (n list x) + (setcar (nthcdr n list) x)) + + (defun setnthcdr (n list x) + (setcdr (nthcdr (1- n) list) x)) + + (defun setelt (seq n x) + (if (consp seq) (setcar (nthcdr n seq) x) (aset seq n x))) + + + ;;; Functions omitted: case-clausify, check-do-stepforms, check-do-endforms, + ;;; extract-do-inits, extract-do[*]-steps, select-stepping-forms, + ;;; elt-satisfies-if[-not]-p, with-keyword-args, mv-bind-clausify, + ;;; all names with embedded `$'. + + + (provide 'cl-compat) + + ;; Local variables: + ;; byte-compile-warnings: (not cl-functions) + ;; End: + + ;;; cl-compat.el ends here diff --cc lisp/vc/vc-svn.el index 7718c4e5316,00000000000..3e4c299f096 mode 100644,000000..100644 --- a/lisp/vc/vc-svn.el +++ b/lisp/vc/vc-svn.el @@@ -1,748 -1,0 +1,748 @@@ +;;; vc-svn.el --- non-resident support for Subversion version-control + +;; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +;; Free Software Foundation, Inc. + +;; Author: FSF (see vc.el for full credits) +;; Maintainer: Stefan Monnier +;; Package: vc + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Commentary: + +;; Sync'd with Subversion's vc-svn.el as of revision 5801. but this version +;; has been extensively modified since to handle filesets. + +;;; Code: + +(eval-when-compile + (require 'vc)) + +;; Clear up the cache to force vc-call to check again and discover +;; new functions when we reload this file. +(put 'SVN 'vc-functions nil) + +;;; +;;; Customization options +;;; + +;; FIXME there is also svnadmin. +(defcustom vc-svn-program "svn" + "Name of the SVN executable." + :type 'string + :group 'vc) + +(defcustom vc-svn-global-switches nil + "Global switches to pass to any SVN command." + :type '(choice (const :tag "None" nil) + (string :tag "Argument String") + (repeat :tag "Argument List" + :value ("") + string)) + :version "22.1" + :group 'vc) + +(defcustom vc-svn-register-switches nil + "Switches for registering a file into SVN. +A string or list of strings passed to the checkin program by +\\[vc-register]. If nil, use the value of `vc-register-switches'. +If t, use no switches." + :type '(choice (const :tag "Unspecified" nil) + (const :tag "None" t) + (string :tag "Argument String") + (repeat :tag "Argument List" :value ("") string)) + :version "22.1" + :group 'vc) + +(defcustom vc-svn-diff-switches + t ;`svn' doesn't support common args like -c or -b. + "String or list of strings specifying extra switches for svn diff under VC. +If nil, use the value of `vc-diff-switches' (or `diff-switches'), +together with \"-x --diff-cmd=diff\" (since svn diff does not +support the default \"-c\" value of `diff-switches'). If you +want to force an empty list of arguments, use t." + :type '(choice (const :tag "Unspecified" nil) + (const :tag "None" t) + (string :tag "Argument String") + (repeat :tag "Argument List" + :value ("") + string)) + :version "22.1" + :group 'vc) + +(defcustom vc-svn-header '("\$Id\$") + "Header keywords to be inserted by `vc-insert-headers'." + :version "24.1" ; no longer consult the obsolete vc-header-alist + :type '(repeat string) + :group 'vc) + +;; We want to autoload it for use by the autoloaded version of +;; vc-svn-registered, but we want the value to be compiled at startup, not +;; at dump time. +;; ;;;###autoload +(defconst vc-svn-admin-directory + (cond ((and (memq system-type '(cygwin windows-nt ms-dos)) + (getenv "SVN_ASP_DOT_NET_HACK")) + "_svn") + (t ".svn")) + "The name of the \".svn\" subdirectory or its equivalent.") + +;;; Properties of the backend + +(defun vc-svn-revision-granularity () 'repository) +(defun vc-svn-checkout-model (files) 'implicit) + +;;; +;;; State-querying functions +;;; + +;;; vc-svn-admin-directory is generally not defined when the +;;; autoloaded function is called. + +;;;###autoload (defun vc-svn-registered (f) +;;;###autoload (let ((admin-dir (cond ((and (eq system-type 'windows-nt) +;;;###autoload (getenv "SVN_ASP_DOT_NET_HACK")) +;;;###autoload "_svn") +;;;###autoload (t ".svn")))) +;;;###autoload (when (file-readable-p (expand-file-name +;;;###autoload (concat admin-dir "/entries") +;;;###autoload (file-name-directory f))) +;;;###autoload (load "vc-svn") +;;;###autoload (vc-svn-registered f)))) + +(defun vc-svn-registered (file) + "Check if FILE is SVN registered." + (when (file-readable-p (expand-file-name (concat vc-svn-admin-directory + "/entries") + (file-name-directory file))) + (with-temp-buffer + (cd (file-name-directory file)) + (let* (process-file-side-effects + (status + (condition-case nil + ;; Ignore all errors. + (vc-svn-command t t file "status" "-v") + ;; Some problem happened. E.g. We can't find an `svn' + ;; executable. We used to only catch `file-error' but when + ;; the process is run on a remote host via Tramp, the error + ;; is only reported via the exit status which is turned into + ;; an `error' by vc-do-command. + (error nil)))) + (when (eq 0 status) + (let ((parsed (vc-svn-parse-status file))) + (and parsed (not (memq parsed '(ignored unregistered)))))))))) + +(defun vc-svn-state (file &optional localp) + "SVN-specific version of `vc-state'." + (let (process-file-side-effects) + (setq localp (or localp (vc-stay-local-p file 'SVN))) + (with-temp-buffer + (cd (file-name-directory file)) + (vc-svn-command t 0 file "status" (if localp "-v" "-u")) + (vc-svn-parse-status file)))) + +(defun vc-svn-state-heuristic (file) + "SVN-specific state heuristic." + (vc-svn-state file 'local)) + +;; FIXME it would be better not to have the "remote" argument, +;; but to distinguish the two output formats based on content. +(defun vc-svn-after-dir-status (callback &optional remote) + (let ((state-map '((?A . added) + (?C . conflict) + (?I . ignored) + (?M . edited) + (?D . removed) + (?R . removed) + (?? . unregistered) + ;; This is what vc-svn-parse-status does. + (?~ . edited))) + (re (if remote "^\\(.\\)......? \\([ *]\\) +\\(?:[-0-9]+\\)? \\(.*\\)$" + ;; Subexp 2 is a dummy in this case, so the numbers match. + "^\\(.\\)....\\(.\\) \\(.*\\)$")) + result) + (goto-char (point-min)) + (while (re-search-forward re nil t) + (let ((state (cdr (assq (aref (match-string 1) 0) state-map))) + (filename (match-string 3))) + (and remote (string-equal (match-string 2) "*") + ;; FIXME are there other possible combinations? + (cond ((eq state 'edited) (setq state 'needs-merge)) + ((not state) (setq state 'needs-update)))) + (when (and state (not (string= "." filename))) + (setq result (cons (list filename state) result))))) + (funcall callback result))) + +(defun vc-svn-dir-status (dir callback) + "Run 'svn status' for DIR and update BUFFER via CALLBACK. +CALLBACK is called as (CALLBACK RESULT BUFFER), where +RESULT is a list of conses (FILE . STATE) for directory DIR." + ;; FIXME should this rather be all the files in dir? + ;; FIXME: the vc-stay-local-p logic below is disabled, it ends up + ;; calling synchronously (vc-svn-registered DIR) => calling svn status -v DIR + ;; which is VERY SLOW for big trees and it makes emacs + ;; completely unresponsive during that time. + (let* ((local (and nil (vc-stay-local-p dir 'SVN))) + (remote (or t (not local) (eq local 'only-file)))) + (vc-svn-command (current-buffer) 'async nil "status" + (if remote "-u")) + (vc-exec-after + `(vc-svn-after-dir-status (quote ,callback) ,remote)))) + +(defun vc-svn-dir-status-files (dir files default-state callback) + (apply 'vc-svn-command (current-buffer) 'async nil "status" files) + (vc-exec-after + `(vc-svn-after-dir-status (quote ,callback)))) + +(defun vc-svn-dir-extra-headers (dir) + "Generate extra status headers for a Subversion working copy." + (let (process-file-side-effects) + (vc-svn-command "*vc*" 0 nil "info")) + (let ((repo + (save-excursion + (and (progn + (set-buffer "*vc*") + (goto-char (point-min)) + (re-search-forward "Repository Root: *\\(.*\\)" nil t)) + (match-string 1))))) + (concat + (cond (repo + (concat + (propertize "Repository : " 'face 'font-lock-type-face) + (propertize repo 'face 'font-lock-variable-name-face))) + (t ""))))) + +(defun vc-svn-working-revision (file) + "SVN-specific version of `vc-working-revision'." + ;; There is no need to consult RCS headers under SVN, because we + ;; get the workfile version for free when we recognize that a file + ;; is registered in SVN. + (vc-svn-registered file) + (vc-file-getprop file 'vc-working-revision)) + +;; vc-svn-mode-line-string doesn't exist because the default implementation +;; works just fine. + +(defun vc-svn-previous-revision (file rev) + (let ((newrev (1- (string-to-number rev)))) + (when (< 0 newrev) + (number-to-string newrev)))) + +(defun vc-svn-next-revision (file rev) + (let ((newrev (1+ (string-to-number rev)))) + ;; The "working revision" is an uneasy conceptual fit under Subversion; + ;; we use it as the upper bound until a better idea comes along. If the + ;; workfile version W coincides with the tree's latest revision R, then + ;; this check prevents a "no such revision: R+1" error. Otherwise, it + ;; inhibits showing of W+1 through R, which could be considered anywhere + ;; from gracious to impolite. + (unless (< (string-to-number (vc-file-getprop file 'vc-working-revision)) + newrev) + (number-to-string newrev)))) + + +;;; +;;; State-changing functions +;;; + +(defun vc-svn-create-repo () + "Create a new SVN repository." + (vc-do-command "*vc*" 0 "svnadmin" '("create" "SVN")) + (vc-do-command "*vc*" 0 vc-svn-program '(".") + "checkout" (concat "file://" default-directory "SVN"))) + +(defun vc-svn-register (files &optional rev comment) + "Register FILES into the SVN version-control system. +The COMMENT argument is ignored This does an add but not a commit. +Passes either `vc-svn-register-switches' or `vc-register-switches' +to the SVN command." + (apply 'vc-svn-command nil 0 files "add" (vc-switches 'SVN 'register))) + +(defun vc-svn-responsible-p (file) + "Return non-nil if SVN thinks it is responsible for FILE." + (file-directory-p (expand-file-name vc-svn-admin-directory + (if (file-directory-p file) + file + (file-name-directory file))))) + +(defalias 'vc-svn-could-register 'vc-svn-responsible-p + "Return non-nil if FILE could be registered in SVN. +This is only possible if SVN is responsible for FILE's directory.") + +(defun vc-svn-checkin (files rev comment &optional extra-args-ignored) + "SVN-specific version of `vc-backend-checkin'." + (if rev (error "Committing to a specific revision is unsupported in SVN")) + (let ((status (apply + 'vc-svn-command nil 1 files "ci" + (nconc (list "-m" comment) (vc-switches 'SVN 'checkin))))) + (set-buffer "*vc*") + (goto-char (point-min)) + (unless (equal status 0) + ;; Check checkin problem. + (cond + ((search-forward "Transaction is out of date" nil t) + (mapc (lambda (file) (vc-file-setprop file 'vc-state 'needs-merge)) + files) + (error (substitute-command-keys + (concat "Up-to-date check failed: " + "type \\[vc-next-action] to merge in changes")))) + (t + (pop-to-buffer (current-buffer)) + (goto-char (point-min)) + (shrink-window-if-larger-than-buffer) + (error "Check-in failed")))) + ;; Update file properties + ;; (vc-file-setprop + ;; file 'vc-working-revision + ;; (vc-parse-buffer "^\\(new\\|initial\\) revision: \\([0-9.]+\\)" 2)) + )) + +(defun vc-svn-find-revision (file rev buffer) + "SVN-specific retrieval of a specified version into a buffer." + (let (process-file-side-effects) + (apply 'vc-svn-command + buffer 0 file + "cat" + (and rev (not (string= rev "")) + (concat "-r" rev)) + (vc-switches 'SVN 'checkout)))) + +(defun vc-svn-checkout (file &optional editable rev) + (message "Checking out %s..." file) + (with-current-buffer (or (get-file-buffer file) (current-buffer)) + (vc-svn-update file editable rev (vc-switches 'SVN 'checkout))) + (vc-mode-line file 'SVN) + (message "Checking out %s...done" file)) + +(defun vc-svn-update (file editable rev switches) + (if (and (file-exists-p file) (not rev)) + ;; If no revision was specified, there's nothing to do. + nil + ;; Check out a particular version (or recreate the file). + (vc-file-setprop file 'vc-working-revision nil) + (apply 'vc-svn-command nil 0 file + "--non-interactive" ; bug#4280 + "update" + (cond + ((null rev) "-rBASE") + ((or (eq rev t) (equal rev "")) nil) + (t (concat "-r" rev))) + switches))) + +(defun vc-svn-delete-file (file) + (vc-svn-command nil 0 file "remove")) + +(defun vc-svn-rename-file (old new) + (vc-svn-command nil 0 new "move" (file-relative-name old))) + +(defun vc-svn-revert (file &optional contents-done) + "Revert FILE to the version it was based on." + (unless contents-done + (vc-svn-command nil 0 file "revert"))) + +(defun vc-svn-merge (file first-version &optional second-version) + "Merge changes into current working copy of FILE. +The changes are between FIRST-VERSION and SECOND-VERSION." + (vc-svn-command nil 0 file + "merge" + "-r" (if second-version + (concat first-version ":" second-version) + first-version)) + (vc-file-setprop file 'vc-state 'edited) + (with-current-buffer (get-buffer "*vc*") + (goto-char (point-min)) + (if (looking-at "C ") + 1 ; signal conflict + 0))) ; signal success + +(defun vc-svn-merge-news (file) + "Merge in any new changes made to FILE." + (message "Merging changes into %s..." file) + ;; (vc-file-setprop file 'vc-working-revision nil) + (vc-file-setprop file 'vc-checkout-time 0) - (vc-svn-command nil 0 file "update") ++ (vc-svn-command nil 0 file "--non-interactive" "update") ; see bug#7152 + ;; Analyze the merge result reported by SVN, and set + ;; file properties accordingly. + (with-current-buffer (get-buffer "*vc*") + (goto-char (point-min)) + ;; get new working revision + (if (re-search-forward + "^\\(Updated to\\|At\\) revision \\([0-9]+\\)" nil t) + (vc-file-setprop file 'vc-working-revision (match-string 2)) + (vc-file-setprop file 'vc-working-revision nil)) + ;; get file status + (goto-char (point-min)) + (prog1 + (if (looking-at "At revision") + 0 ;; there were no news; indicate success + (if (re-search-forward + ;; Newer SVN clients have 3 columns of chars (one for the + ;; file's contents, then second for its properties, and the + ;; third for lock-grabbing info), before the 2 spaces. + ;; We also used to match the filename in column 0 without any + ;; meta-info before it, but I believe this can never happen. + (concat "^\\(\\([ACGDU]\\)\\(.[B ]\\)? \\)" + (regexp-quote (file-name-nondirectory file))) + nil t) + (cond + ;; Merge successful, we are in sync with repository now + ((string= (match-string 2) "U") + (vc-file-setprop file 'vc-state 'up-to-date) + (vc-file-setprop file 'vc-checkout-time + (nth 5 (file-attributes file))) + 0);; indicate success to the caller + ;; Merge successful, but our own changes are still in the file + ((string= (match-string 2) "G") + (vc-file-setprop file 'vc-state 'edited) + 0);; indicate success to the caller + ;; Conflicts detected! + (t + (vc-file-setprop file 'vc-state 'edited) + 1);; signal the error to the caller + ) + (pop-to-buffer "*vc*") + (error "Couldn't analyze svn update result"))) + (message "Merging changes into %s...done" file)))) + +(defun vc-svn-modify-change-comment (files rev comment) + "Modify the change comments for a specified REV. +You must have ssh access to the repository host, and the directory Emacs +uses locally for temp files must also be writable by you on that host. +This is only supported if the repository access method is either file:// +or svn+ssh://." + (let (tempfile host remotefile directory fileurl-p) + (with-temp-buffer + (vc-do-command (current-buffer) 0 vc-svn-program nil "info") + (goto-char (point-min)) + (unless (re-search-forward "Repository Root: \\(file://\\(/.*\\)\\)\\|\\(svn\\+ssh://\\([^/]+\\)\\(/.*\\)\\)" nil t) + (error "Repository information is unavailable")) + (if (match-string 1) + (progn + (setq fileurl-p t) + (setq directory (match-string 2))) + (setq host (match-string 4)) + (setq directory (match-string 5)) + (setq remotefile (concat host ":" tempfile)))) + (with-temp-file (setq tempfile (make-temp-file user-mail-address)) + (insert comment)) + (if fileurl-p + ;; Repository Root is a local file. + (progn + (unless (vc-do-command + "*vc*" 0 "svnadmin" nil + "setlog" "--bypass-hooks" directory + "-r" rev (format "%s" tempfile)) + (error "Log edit failed")) + (delete-file tempfile)) + + ;; Remote repository, using svn+ssh. + (unless (vc-do-command "*vc*" 0 "scp" nil "-q" tempfile remotefile) + (error "Copy of comment to %s failed" remotefile)) + (unless (vc-do-command + "*vc*" 0 "ssh" nil "-q" host + (format "svnadmin setlog --bypass-hooks %s -r %s %s; rm %s" + directory rev tempfile tempfile)) + (error "Log edit failed"))))) + +;;; +;;; History functions +;;; + +(defvar log-view-per-file-logs) + +(define-derived-mode vc-svn-log-view-mode log-view-mode "SVN-Log-View" + (require 'add-log) + (set (make-local-variable 'log-view-per-file-logs) nil)) + +(defun vc-svn-print-log (files buffer &optional shortlog start-revision limit) + "Get change log(s) associated with FILES." + (save-current-buffer + (vc-setup-buffer buffer) + (let ((inhibit-read-only t)) + (goto-char (point-min)) + (if files + (dolist (file files) + (insert "Working file: " file "\n") + (apply + 'vc-svn-command + buffer + 'async + ;; (if (and (= (length files) 1) (vc-stay-local-p file 'SVN)) 'async 0) + (list file) + "log" + (append + (list + (if start-revision + (format "-r%s" start-revision) + ;; By default Subversion only shows the log up to the + ;; working revision, whereas we also want the log of the + ;; subsequent commits. At least that's what the + ;; vc-cvs.el code does. + "-rHEAD:0")) + (when limit (list "--limit" (format "%s" limit)))))) + ;; Dump log for the entire directory. + (apply 'vc-svn-command buffer 0 nil "log" + (append + (list + (if start-revision (format "-r%s" start-revision) "-rHEAD:0")) + (when limit (list "--limit" (format "%s" limit))))))))) + +(defun vc-svn-diff (files &optional oldvers newvers buffer) + "Get a difference report using SVN between two revisions of fileset FILES." + (and oldvers + (not newvers) + files + (catch 'no + (dolist (f files) + (or (equal oldvers (vc-working-revision f)) + (throw 'no nil))) + t) + ;; Use nil rather than the current revision because svn handles + ;; it better (i.e. locally). Note that if _any_ of the files + ;; has a different revision, we fetch the lot, which is + ;; obviously sub-optimal. + (setq oldvers nil)) + (let* ((switches + (if vc-svn-diff-switches + (vc-switches 'SVN 'diff) + (list "--diff-cmd=diff" "-x" + (mapconcat 'identity (vc-switches nil 'diff) " ")))) + (async (and (not vc-disable-async-diff) + (vc-stay-local-p files 'SVN) + (or oldvers newvers)))) ; Svn diffs those locally. + (apply 'vc-svn-command buffer + (if async 'async 0) + files "diff" + (append + switches + (when oldvers + (list "-r" (if newvers (concat oldvers ":" newvers) + oldvers))))) + (if async 1 ; async diff => pessimistic assumption + ;; For some reason `svn diff' does not return a useful + ;; status w.r.t whether the diff was empty or not. + (buffer-size (get-buffer buffer))))) + +;;; +;;; Tag system +;;; + +(defun vc-svn-create-tag (dir name branchp) + "Assign to DIR's current revision a given NAME. +If BRANCHP is non-nil, the name is created as a branch (and the current +workspace is immediately moved to that new branch). +NAME is assumed to be a URL." + (vc-svn-command nil 0 dir "copy" name) + (when branchp (vc-svn-retrieve-tag dir name nil))) + +(defun vc-svn-retrieve-tag (dir name update) + "Retrieve a tag at and below DIR. +NAME is the name of the tag; if it is empty, do a `svn update'. +If UPDATE is non-nil, then update (resynch) any affected buffers. +NAME is assumed to be a URL." + (vc-svn-command nil 0 dir "switch" name) + ;; FIXME: parse the output and obey `update'. + ) + +;;; +;;; Miscellaneous +;;; + +;; Subversion makes backups for us, so don't bother. +;; (defun vc-svn-make-version-backups-p (file) +;; "Return non-nil if version backups should be made for FILE." +;; (vc-stay-local-p file 'SVN)) + +(defun vc-svn-check-headers () + "Check if the current file has any headers in it." + (save-excursion + (goto-char (point-min)) + (re-search-forward "\\$[A-Za-z\300-\326\330-\366\370-\377]+\ +\\(: [\t -#%-\176\240-\377]*\\)?\\$" nil t))) + + +;;; +;;; Internal functions +;;; + +(defun vc-svn-command (buffer okstatus file-or-list &rest flags) + "A wrapper around `vc-do-command' for use in vc-svn.el. +The difference to vc-do-command is that this function always invokes `svn', +and that it passes `vc-svn-global-switches' to it before FLAGS." + (apply 'vc-do-command (or buffer "*vc*") okstatus vc-svn-program file-or-list + (if (stringp vc-svn-global-switches) + (cons vc-svn-global-switches flags) + (append vc-svn-global-switches + flags)))) + +(defun vc-svn-repository-hostname (dirname) + (with-temp-buffer + (let ((coding-system-for-read + (or file-name-coding-system + default-file-name-coding-system))) + (vc-insert-file (expand-file-name (concat vc-svn-admin-directory + "/entries") + dirname))) + (goto-char (point-min)) + (when (re-search-forward + ;; Old `svn' used name="svn:this_dir", newer use just name="". + (concat "name=\"\\(?:svn:this_dir\\)?\"[\n\t ]*" + "\\(?:[-a-z]+=\"[^\"]*\"[\n\t ]*\\)*?" + "url=\"\\(?1:[^\"]+\\)\"" + ;; Yet newer ones don't use XML any more. + "\\|^\ndir\n[0-9]+\n\\(?1:.*\\)") nil t) + ;; This is not a hostname but a URL. This may actually be considered + ;; as a feature since it allows vc-svn-stay-local to specify different + ;; behavior for different modules on the same server. + (match-string 1)))) + +(defun vc-svn-resolve-when-done () + "Call \"svn resolved\" if the conflict markers have been removed." + (save-excursion + (goto-char (point-min)) + (unless (re-search-forward "^<<<<<<< " nil t) + (vc-svn-command nil 0 buffer-file-name "resolved") + ;; Remove the hook so that it is not called multiple times. + (remove-hook 'after-save-hook 'vc-svn-resolve-when-done t)))) + +;; Inspired by vc-arch-find-file-hook. +(defun vc-svn-find-file-hook () + (when (eq ?C (vc-file-getprop buffer-file-name 'vc-svn-status)) + ;; If the file is marked as "conflicted", then we should try and call + ;; "svn resolved" when applicable. + (if (save-excursion + (goto-char (point-min)) + (re-search-forward "^<<<<<<< " nil t)) + ;; There are conflict markers. + (progn + (smerge-start-session) + (add-hook 'after-save-hook 'vc-svn-resolve-when-done nil t)) + ;; There are no conflict markers. This is problematic: maybe it means + ;; the conflict has been resolved and we should immediately call "svn + ;; resolved", or it means that the file's type does not allow Svn to + ;; use conflict markers in which case we don't really know what to do. + ;; So let's just punt for now. + nil) + (message "There are unresolved conflicts in this file"))) + +(defun vc-svn-parse-status (&optional filename) + "Parse output of \"svn status\" command in the current buffer. +Set file properties accordingly. Unless FILENAME is non-nil, parse only +information about FILENAME and return its status." + (let (file status) + (goto-char (point-min)) + (while (re-search-forward + ;; Ignore the files with status X. + "^\\(?:\\?\\|[ ACDGIMR!~][ MC][ L][ +][ S]..\\([ *]\\) +\\([-0-9]+\\) +\\([0-9?]+\\) +\\([^ ]+\\)\\) +" nil t) + ;; If the username contains spaces, the output format is ambiguous, + ;; so don't trust the output's filename unless we have to. + (setq file (or filename + (expand-file-name + (buffer-substring (point) (line-end-position))))) + (setq status (char-after (line-beginning-position))) + (if (eq status ??) + (vc-file-setprop file 'vc-state 'unregistered) + ;; Use the last-modified revision, so that searching in vc-print-log + ;; output works. + (vc-file-setprop file 'vc-working-revision (match-string 3)) + ;; Remember Svn's own status. + (vc-file-setprop file 'vc-svn-status status) + (vc-file-setprop + file 'vc-state + (cond + ((eq status ?\ ) + (if (eq (char-after (match-beginning 1)) ?*) + 'needs-update + (vc-file-setprop file 'vc-checkout-time + (nth 5 (file-attributes file))) + 'up-to-date)) + ((eq status ?A) + ;; If the file was actually copied, (match-string 2) is "-". + (vc-file-setprop file 'vc-working-revision "0") + (vc-file-setprop file 'vc-checkout-time 0) + 'added) + ((eq status ?C) + (vc-file-setprop file 'vc-state 'conflict)) + ((eq status '?M) + (if (eq (char-after (match-beginning 1)) ?*) + 'needs-merge + 'edited)) + ((eq status ?I) + (vc-file-setprop file 'vc-state 'ignored)) + ((memq status '(?D ?R)) + (vc-file-setprop file 'vc-state 'removed)) + (t 'edited))))) + (when filename (vc-file-getprop filename 'vc-state)))) + +(defun vc-svn-valid-symbolic-tag-name-p (tag) + "Return non-nil if TAG is a valid symbolic tag name." + ;; According to the SVN manual, a valid symbolic tag must start with + ;; an uppercase or lowercase letter and can contain uppercase and + ;; lowercase letters, digits, `-', and `_'. + (and (string-match "^[a-zA-Z]" tag) + (not (string-match "[^a-z0-9A-Z-_]" tag)))) + +(defun vc-svn-valid-revision-number-p (tag) + "Return non-nil if TAG is a valid revision number." + (and (string-match "^[0-9]" tag) + (not (string-match "[^0-9]" tag)))) + +;; Support for `svn annotate' + +(defun vc-svn-annotate-command (file buf &optional rev) + (vc-svn-command buf 'async file "annotate" (if rev (concat "-r" rev)))) + +(defun vc-svn-annotate-time-of-rev (rev) + ;; Arbitrarily assume 10 commmits per day. + (/ (string-to-number rev) 10.0)) + +(defvar vc-annotate-parent-rev) + +(defun vc-svn-annotate-current-time () + (vc-svn-annotate-time-of-rev vc-annotate-parent-rev)) + +(defconst vc-svn-annotate-re "[ \t]*\\([0-9]+\\)[ \t]+[^\t ]+ ") + +(defun vc-svn-annotate-time () + (when (looking-at vc-svn-annotate-re) + (goto-char (match-end 0)) + (vc-svn-annotate-time-of-rev (match-string 1)))) + +(defun vc-svn-annotate-extract-revision-at-line () + (save-excursion + (beginning-of-line) + (if (looking-at vc-svn-annotate-re) (match-string 1)))) + +(defun vc-svn-revision-table (files) + (let ((vc-svn-revisions '())) + (with-current-buffer "*vc*" + (vc-svn-command nil 0 files "log" "-q") + (goto-char (point-min)) + (forward-line) + (let ((start (point-min)) + (loglines (buffer-substring-no-properties (point-min) + (point-max)))) + (while (string-match "^r\\([0-9]+\\) " loglines) + (push (match-string 1 loglines) vc-svn-revisions) + (setq start (+ start (match-end 0))) + (setq loglines (buffer-substring-no-properties start (point-max))))) + vc-svn-revisions))) + +(provide 'vc-svn) + +;; arch-tag: 02f10c68-2b4d-453a-90fc-1eee6cfb268d +;;; vc-svn.el ends here diff --cc src/ChangeLog index 2effe2ea84c,0aa12b4aabe..0bde3bb19fe --- a/src/ChangeLog +++ b/src/ChangeLog @@@ -1,275 -1,54 +1,326 @@@ + 2010-10-08 Kenichi Handa + + * coding.c (complement_process_encoding_system): Fix previous change. + -2010-10-03 Michael Albinus ++2010-10-08 Michael Albinus + + * dbusbind.c (syms_of_dbusbind): Move putenv call ... + (Fdbus_init_bus): ... here. (Bug#7113) + -2010-10-03 Glenn Morris ++2010-10-08 Glenn Morris + + * buffer.c (before-change-functions, after-change-functions): + Three-year overdue doc fix following 2007-08-13 change. + -2010-10-02 Kenichi Handa ++2010-10-08 Kenichi Handa + + * coding.c (coding_inherit_eol_type): If parent doesn't specify + eol-format, inherit from the system's default. + (complement_process_encoding_system): Make a new coding system + inherit the original eol-format. + -2010-09-30 Kenichi Handa ++2010-10-08 Kenichi Handa + + * coding.c (complement_process_encoding_system): New function. + + * coding.h (complement_process_encoding_system): Extern it. + + * callproc.c (Fcall_process): Complement the coding system for + encoding arguments. + (Fcall_process_region): Complement the coding system for encoding + the input to the process. + + * process.c (Fstart_process): Complement the coding system for + encoding arguments. + (send_process): Complement the coding system for encoding what + sent to the process. + -2010-09-29 Kenichi Handa ++2010-10-08 Kenichi Handa + + * xfont.c (xfont_open): Fix setting of font->average_width from + :avgwidth property (Bug#7123). + -2010-09-28 Michael Albinus ++2010-10-08 Michael Albinus + + * dbusbind.c (syms_of_dbusbind): Use putenv instead of setenv, it + is more portable. + + * keyboard.c (gobble_input): Move call of xd_read_queued_messages ... + (kbd_buffer_get_event): ... here. This is needed for cygwin, which + has not defined SIGIO. + +2010-10-08 Chong Yidong + + * xterm.c (x_draw_relief_rect): If box width is larger than 1, + draw the outermost line using the black relief, for legibility. + Omit drawing the four corner pixels. + +2010-10-04 Chong Yidong + + * keyboard.c (echo_prompt): Function moved into read_key_sequence. + (read_key_sequence): Inline echo_prompt. + (echo_dash): Add a dash only if key is continued (Bug#7137). + +2010-10-04 Dan Nicolaescu + + Remove O_RDONLY, O_WRONLY definitions, not needed. + * unexcoff.c: + * lread.c: + * fileio.c: + * doc.c: + * callproc.c: + * alloc.c: + * termcap.c: Remove O_RDONLY O_WRONLY definitions. + +2010-10-03 Teodor Zlatanov + + * gnutls.h (GNUTLS_LOG2): Convenience macro. + + * gnutls.c: Add property list symbol holders. + (emacs_gnutls_handshake): Clarify how sockets are passed to + GnuTLS. + (gnutls_log_function2): Convenience function using GNUTLS_LOG2. + (Fgnutls_boot): Get all parameters from a plist. Require trustfiles + and keyfiles to be a list of file names. Default to "NORMAL" for + the priority string. Improve logging. + +2010-10-03 Glenn Morris + + * fileio.c (Vdirectory_sep_char): Remove. + +2010-10-03 Dan Nicolaescu + + * termhooks.h: Remove #ifdef CONSP. + + * xterm.c (NO_INLINE, noinline): Move definitions to ../configure.in. + + Include unconditionally. + * termcap.c: + * sysdep.c: + * lread.c: + * keyboard.c: + * filelock.c: + * fileio.c: + * doc.c: + * callproc.c: + * alloc.c: Remove include guards for , process.c already + does it. + + * process.c: Do not include , syswait.h does it. + + * sysdep.c (flush_pending_output): Remove code, does not do + anything on any platform. + + Remove unused code. + * sysdep.c (select_alarm, sys_select, read_input_waiting): Remove + select emulation, all systems support select. + (set_exclusive_use): Remove, the only user is in an #if 0 block. + * process.c (create_process): Remove #if 0 code. + + Remove unused arguments for unexec. + The third one is never used, and the last two are always passed as zero. + * emacs.c (unexec): Add declaration. + (Fdump_emacs): Only pass the first two arguments to unexec. + Simplify #ifdef. + * unexw32.c (unexec): + * unexsol.c (unexec): + * unexhp9k800.c (unexec): + * unexcw.c (unexec): Remove the last 3 arguments, unused. + * unexelf.c (unexec): Remove the last 3 arguments, unused. + (find_section): Use const. + * unexmacosx.c (unexec): Remove the last 3 arguments, unused. + (unexec_error): Declare it NO_RETURN. + * unexcoff.c (make_hdr): Assume bss_start is always zero, remove + it as an argument, remove data_start and entry_address arguments, unused. + (unexec): Remove bss_start, data_start and + entry_address arguments. + * unexaix.c (make_hdr): Assume bss_start is always zero, remove + it as an argument, remove data_start and entry_address arguments, unused. + (unexec): Remove bss_start, data_start and + entry_address arguments. + +2010-10-03 Juanma Barranquero + + * makefile.w32-in (TAGS, TAGS-LISP, TAGS-gmake): Add $(FONTOBJ). + + * gnutls.c (emacs_gnutls_handshake, gnutls_make_error) + (gnutls_emacs_global_init, gnutls_emacs_global_deinit): Make static. + (Fgnutls_get_initstage, Fgnutls_deinit, Fgnutls_boot, Fgnutls_bye): + Fix typos in docstrings. + (Fgnutls_error_fatalp, Fgnutls_error_string): Doc fixes. + (Fgnutls_errorp): Doc fix; use ERR for the argument name. + +2010-10-03 Chong Yidong + + * keyboard.c (command_loop_1): Make sure the mark is really alive + before using it (Bug#7044). + +2010-10-02 Juanma Barranquero + + * makefile.w32-in (tags): Rename target to full-tags. + +2010-10-02 Eli Zaretskii + + * emacs.c (main): Remove !WINDOWSNT conditional. + (Fkill_emacs): Don't mention exemption on MS-Windows. + +2010-10-02 Glenn Morris + + * character.c (Fchar_bytes): Remove obsolete function. + (syms_of_character): Remove Schar_bytes. + + * emacs.c (fatal_error_signal): Also run Fkill_emacs on SIGINT. + (main) [!WINDOWSNT]: Handle SIGINT with fatal_error_signal + in batch-mode. + (Fkill_emacs): Doc fix. Also run the hook in batch mode. + (kill-emacs-hook): Doc fix. + +2010-10-02 Lars Magne Ingebrigtsen + + * xml.c (Flibxml_parse_xml_region, Flibxml_parse_html_region) + (parse_region): Reworked to take regions instead of strings, and + renamed to reflect that these are the libxml functions. + +2010-10-01 Eli Zaretskii + + * term.c (init_tty) [DOS_NT]: Don't call Wcm_clear after setting + screen dimensions in tty->Wcm. + + * xdisp.c (set_cursor_from_row): When the row is truncated and + point is outside the range of displayed characters, position the + cursor inside the scroll margin. (Bug#6349) + +2010-10-01 Dan Nicolaescu + + Do not include stdlib.h and string.h, config.h does it. + * xfont.c: + * w32term.c: + * w32reg.c: + * w32inevt.c: + * w32heap.c: + * w32console.c: + * w16select.c: + * unexsol.c: + * term.c: + * sound.c: + * scroll.c (m): + * gtkutil.c: + * font.c: + * filelock.c: + * fileio.c: + * dosfns.c: + * dbusbind.c: + * bidi.c: + * callproc.c: + * process.c: + * msdos.c: + * charset.c: Do not include stdlib.h and string.h, config.h does it. + + * callproc.c (SIGCHLD): Remove conditional definition, syssignal.h defines it. + + * process.c: Move #include earlier. + (SIGCHLD): Remove conditional definition, syssignal.h defines it. + (pty_name): Move definition later. + + * nsselect.m (syms_of_nsselect): + * nsmenu.m (syms_of_nsmenu): + * nsfns.m (syms_of_nsfns): + * msdos.c (syms_of_msdos): + + * image.c (syms_of_image): + * charset.c (syms_of_charset): Use intern_c_string instead of intern. + + * point.h: Remove, unused. + +2010-10-01 Eli Zaretskii + + * makefile.w32-in (TAGS, frc, TAGS-LISP, ../nt/TAGS, tags) + (TAGS-gmake, TAGS-nmake, TAGS-LISP-gmake, TAGS-LISP-nmake) + (nt-TAGS-gmake, nt-TAGS-nmake): New targets. + +2010-09-30 Dan Nicolaescu + + * xml.c (parse_string): Use const. + +2010-09-30 Lars Magne Ingebrigtsen + + * eval.c (Fbacktrace): Don't overwrite print-level on exit. Also + only override Vprint_level if it isn't already bound, and increase + the level to 8 to produce more useful backtraces for bug reports. + +2010-09-30 Dan Nicolaescu + + * Makefile.in: ecrt0.c does not exist anymore, do not mention it. + +2010-09-30 Juanma Barranquero + + * w32console.c (vga_stdcolor_name): Remove unused function; + presumed dead after 2007-11-30T13:57:21Z!jasonr@gnu.org. + +2010-09-29 Lars Magne Ingebrigtsen + + * gnutls.c (emacs_gnutls_handshake): Made into internal function. + (Fgnutls_boot): Start the handshake. + (emacs_gnutls_read): Perform the handshake from the reader loop. + (Fgnutls_boot): Remove some debugging messages. + Change indentation throughout to use the Emacs style. + (emacs_gnutls_handshake): Cast the fds to something that's + possibly the expected length. + (emacs_gnutls_write): Return -1 if we try to write before handshake. + + * process.h (Lisp_Process): Add a gnutls_p field to Lisp_Process. + + * process.c (make_process): Set the gnutls_p field to zero by + default. + (read_process_output): Always call the gnutls_read function if the + stream is a gnutls stream. + (send_process): Ditto for writes. + + * gnutls.c (emacs_gnutls_write, emacs_gnutls_read): Refuse to read + or write anything until the state is GNUTLS_STAGE_READY. + (Fgnutls_boot): Mark the stream as being a gnutls stream. + +2010-09-29 Eli Zaretskii + + * xdisp.c (reseat_1): Initialize bidi_it.paragraph_dir to + NEUTRAL_DIR. + (handle_invisible_prop, iterate_out_of_display_property) + (next_element_from_buffer): If bidi_it.first_elt is set, call + bidi_paragraph_init with NO_DEFAULT_P argument non-zero. + (Bug#7128) + + * print.c (print_object): Fix format string and argument types for + printing a Lisp_Misc_Marker. + + * xdisp.c (pos_visible_p, c_string_pos, number_of_chars) + (load_overlay_strings, get_overlay_strings_1) + (get_overlay_strings, forward_to_next_line_start) + (back_to_previous_visible_line_start, reseat, reseat_to_string) + (get_next_display_element, next_element_from_string) + (next_element_from_c_string, next_element_from_buffer) + (move_it_vertically_backward, move_it_by_lines, add_to_log) + (message_dolog, message_log_check_duplicate, message2_nolog) + (message3, message3_nolog, vmessage, set_message, set_message_1) + (hscroll_window_tree, text_outside_line_unchanged_p) + (set_cursor_from_row, set_vertical_scroll_bar, redisplay_window) + (find_last_unchanged_at_beg_row) + (find_first_unchanged_at_end_row, row_containing_pos) + (trailing_whitespace_p, display_mode_element, decode_mode_spec) + (display_count_lines, x_produce_glyphs, note_mouse_highlight): Use + EMACS_INT for buffer and string positions. + + * dispextern.h (struct it) : Declare EMACS_INT. + (row_containing_pos): Adjust prototype. + + * lisp.h (pos_visible_p, message2, message2_nolog, message3) + (message2_nolog, set_message): Adjust prototypes. + +2010-09-28 Stefan Monnier + + * gnutls.c (Fgnutls_boot): Remove unused vars `data' and `srp_cred'. + (Fgnutls_boot): Use SDATA. + (Fgnutls_handshake): Remove unused var `max_log_level'. + 2010-09-27 Michael Albinus * dbusbind.c (syms_of_dbusbind): Set $DBUS_FATAL_WARNINGS to "0". diff --cc src/coding.c index d6285ed9245,8e6642bb80d..2cf32360096 --- a/src/coding.c +++ b/src/coding.c @@@ -6041,6 -6098,8 +6040,8 @@@ coding_inherit_eol_type (Lisp_Object co parent_spec = CODING_SYSTEM_SPEC (parent); parent_eol_type = AREF (parent_spec, 2); + if (VECTORP (parent_eol_type)) - parent_eol_type = system_eol_type; ++ parent_eol_type = system_eol_type; } else parent_eol_type = system_eol_type; @@@ -6054,6 -6113,46 +6055,45 @@@ return coding_system; } + + /* Check if text-conversion and eol-conversion of CODING_SYSTEM are + decided for writing to a process. If not, complement them, and + return a new coding system. */ + + Lisp_Object -complement_process_encoding_system (coding_system) - Lisp_Object coding_system; ++complement_process_encoding_system (Lisp_Object coding_system) + { + Lisp_Object coding_base = Qnil, eol_base = Qnil; + Lisp_Object spec, attrs; + int i; + + for (i = 0; i < 3; i++) + { + if (i == 1) + coding_system = CDR_SAFE (Vdefault_process_coding_system); + else if (i == 2) + coding_system = preferred_coding_system (); + spec = CODING_SYSTEM_SPEC (coding_system); + if (NILP (spec)) + continue; + attrs = AREF (spec, 0); + if (NILP (coding_base) && ! EQ (CODING_ATTR_TYPE (attrs), Qundecided)) + coding_base = CODING_ATTR_BASE_NAME (attrs); + if (NILP (eol_base) && ! VECTORP (AREF (spec, 2))) + eol_base = coding_system; + if (! NILP (coding_base) && ! NILP (eol_base)) + break; + } + + if (i > 0) + /* The original CODING_SYSTEM didn't specify text-conversion or + eol-conversion. Be sure that we return a fully complemented + coding system. */ + coding_system = coding_inherit_eol_type (coding_base, eol_base); + return coding_system; + } + + /* Emacs has a mechanism to automatically detect a coding system if it is one of Emacs' internal format, ISO2022, SJIS, and BIG5. But, it's impossible to distinguish some coding systems accurately diff --cc src/coding.h index 0caa5b2f96f,58d70644124..7233726a250 --- a/src/coding.h +++ b/src/coding.h @@@ -691,33 -691,34 +691,34 @@@ struct coding_syste #define ENCODE_UTF_8(str) code_convert_string_norecord (str, Qutf_8, 1) /* Extern declarations. */ -extern Lisp_Object code_conversion_save P_ ((int, int)); -extern int decoding_buffer_size P_ ((struct coding_system *, int)); -extern int encoding_buffer_size P_ ((struct coding_system *, int)); -extern void setup_coding_system P_ ((Lisp_Object, struct coding_system *)); -extern Lisp_Object coding_charset_list P_ ((struct coding_system *)); -extern Lisp_Object coding_system_charset_list P_ ((Lisp_Object)); -extern void detect_coding P_ ((struct coding_system *)); -extern Lisp_Object code_convert_region P_ ((Lisp_Object, Lisp_Object, - Lisp_Object, Lisp_Object, - int, int)); -extern Lisp_Object code_convert_string P_ ((Lisp_Object, Lisp_Object, - Lisp_Object, int, int, int)); -extern Lisp_Object code_convert_string_norecord P_ ((Lisp_Object, Lisp_Object, - int)); -extern Lisp_Object raw_text_coding_system P_ ((Lisp_Object)); -extern Lisp_Object coding_inherit_eol_type P_ ((Lisp_Object, Lisp_Object)); -extern Lisp_Object complement_process_encoding_system P_ ((Lisp_Object)); - -extern int decode_coding_gap P_ ((struct coding_system *, - EMACS_INT, EMACS_INT)); -extern int encode_coding_gap P_ ((struct coding_system *, - EMACS_INT, EMACS_INT)); -extern void decode_coding_object P_ ((struct coding_system *, - Lisp_Object, EMACS_INT, EMACS_INT, - EMACS_INT, EMACS_INT, Lisp_Object)); -extern void encode_coding_object P_ ((struct coding_system *, - Lisp_Object, EMACS_INT, EMACS_INT, - EMACS_INT, EMACS_INT, Lisp_Object)); +extern Lisp_Object code_conversion_save (int, int); +extern int decoding_buffer_size (struct coding_system *, int); +extern int encoding_buffer_size (struct coding_system *, int); +extern void setup_coding_system (Lisp_Object, struct coding_system *); +extern Lisp_Object coding_charset_list (struct coding_system *); +extern Lisp_Object coding_system_charset_list (Lisp_Object); +extern void detect_coding (struct coding_system *); +extern Lisp_Object code_convert_region (Lisp_Object, Lisp_Object, + Lisp_Object, Lisp_Object, + int, int); +extern Lisp_Object code_convert_string (Lisp_Object, Lisp_Object, + Lisp_Object, int, int, int); +extern Lisp_Object code_convert_string_norecord (Lisp_Object, Lisp_Object, + int); +extern Lisp_Object raw_text_coding_system (Lisp_Object); +extern Lisp_Object coding_inherit_eol_type (Lisp_Object, Lisp_Object); ++extern Lisp_Object complement_process_encoding_system (Lisp_Object); + +extern int decode_coding_gap (struct coding_system *, + EMACS_INT, EMACS_INT); +extern int encode_coding_gap (struct coding_system *, + EMACS_INT, EMACS_INT); +extern void decode_coding_object (struct coding_system *, + Lisp_Object, EMACS_INT, EMACS_INT, + EMACS_INT, EMACS_INT, Lisp_Object); +extern void encode_coding_object (struct coding_system *, + Lisp_Object, EMACS_INT, EMACS_INT, + EMACS_INT, EMACS_INT, Lisp_Object); /* Macros for backward compatibility. */ diff --cc src/dbusbind.c index 99a157fbc76,460cf52364e..683b7cb583b --- a/src/dbusbind.c +++ b/src/dbusbind.c @@@ -893,13 -851,12 +893,16 @@@ DEFUN ("dbus-init-bus", Fdbus_init_bus if (!dbus_connection_set_watch_functions (connection, xd_add_watch, xd_remove_watch, - NULL, (void*) XHASH (bus), NULL)) + xd_toggle_watch, + (void*) XHASH (bus), NULL)) XD_SIGNAL1 (build_string ("Cannot add watch functions")); + /* Add bus to list of registered buses. */ + Vdbus_registered_buses = Fcons (bus, Vdbus_registered_buses); + + /* We do not want to abort. */ + putenv ("DBUS_FATAL_WARNINGS=0"); + /* Return. */ return Qnil; }