From 0fda9b750e337d876c9461db7d4426a3f0b81482 Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Mon, 17 Sep 2012 03:55:02 -0800 Subject: [PATCH 001/272] Implement cygw32 Here, we use the generic window-system configuration system we just implemented to support the w32 window-system in the mainline build under Cygwin. (Previously, the w32 window system could only be compiled as part of the NT-native Emacs build process.) The changes in this patch need to be applied atomically in order to avoid breaking Emacs. The changes include: - Changes throughout the Lisp and C code to not assume that NT Emacs and the w32 window system are synonymous. - Wiring up the regular select(2) event loop to Windows messages - Cleaning up the w32 drag-and-drop receiving code. - Exposing Cygwin path conversion functions to elisp. - Unicode file dialog support when compiling for Cygwin. - Splitting the w32 term lisp initialization code into code applicable to any w32 window-system and code specific to system-type windows-nt. - Integrating the old and new w32 code into the build system. --- configure.ac | 82 +++- lisp/battery.el | 2 +- lisp/faces.el | 2 +- lisp/frame.el | 4 +- lisp/international/mule-cmds.el | 3 +- lisp/loadup.el | 13 +- lisp/mouse.el | 2 +- lisp/simple.el | 2 +- lisp/term/common-win.el | 2 +- lisp/term/w32-win.el | 42 +- lisp/w32-fns.el | 105 +---- lisp/w32-vars.el | 22 +- src/Makefile.in | 25 +- src/conf_post.h | 14 + src/dispextern.h | 4 +- src/emacs.c | 28 +- src/font.c | 4 +- src/font.h | 4 +- src/fontset.c | 2 +- src/frame.c | 4 +- src/frame.h | 5 +- src/image.c | 62 ++- src/keyboard.c | 12 +- src/keyboard.h | 2 +- src/menu.c | 4 + src/process.c | 1 + src/termhooks.h | 6 +- src/unexw32.c | 2 +- src/w32.c | 19 +- src/w32.h | 17 +- src/w32console.c | 49 +-- src/w32fns.c | 738 ++++++++++++++++++++++++++------ src/w32font.c | 4 + src/w32heap.c | 41 +- src/w32inevt.c | 172 +------- src/w32menu.c | 26 +- src/w32proc.c | 14 - src/w32select.c | 5 + src/w32term.c | 52 ++- src/w32term.h | 63 ++- src/w32xfns.c | 32 +- src/window.c | 2 +- src/xdisp.c | 6 +- src/xfaces.c | 18 +- src/xterm.h | 1 - 45 files changed, 1048 insertions(+), 671 deletions(-) diff --git a/configure.ac b/configure.ac index 43686361d07..7b1ea53312b 100644 --- a/configure.ac +++ b/configure.ac @@ -180,6 +180,7 @@ OPTION_DEFAULT_ON([toolkit-scroll-bars],[don't use Motif or Xaw3d scroll bars]) OPTION_DEFAULT_ON([xaw3d],[don't use Xaw3d]) OPTION_DEFAULT_ON([xim],[don't use X11 XIM]) OPTION_DEFAULT_OFF([ns],[use NeXTstep (Cocoa or GNUstep) windowing system]) +OPTION_DEFAULT_OFF([w32], [use native Windows GUI]) OPTION_DEFAULT_ON([gpm],[don't use -lgpm for mouse support on a GNU/Linux console]) OPTION_DEFAULT_ON([dbus],[don't compile with D-Bus support]) @@ -1524,6 +1525,7 @@ fail; AC_DEFINE(NS_HAVE_NSINTEGER, 1, [Define to 1 if `NSInteger' is defined.]) fi fi + AC_SUBST(TEMACS_LDFLAGS2) INSTALL_ARCH_INDEP_EXTRA=install-etc @@ -1567,6 +1569,30 @@ AC_SUBST(NS_OBJC_OBJ) AC_SUBST(LIB_STANDARD) AC_SUBST_FILE(ns_frag) +HAVE_W32=no +W32_OBJ= +W32_LIBS= +if test "${with_w32}" != no; then + if test "${opsys}" != "cygwin"; then + AC_MSG_ERROR([Using w32 with an autotools build is only supported for Cygwin.]) + fi + AC_CHECK_HEADER([windows.h], [HAVE_W32=yes], + [AC_MSG_ERROR([`--with-w32' was specified, but windows.h + cannot be found.])]) + AC_DEFINE(HAVE_NTGUI, 1, [Define to use native Windows GUI.]) + W32_OBJ="w32fns.o w32menu.o w32reg.o w32font.o w32term.o" + W32_OBJ="$W32_OBJ w32xfns.o w32select.o w32uniscribe.o" + W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32" + W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool" +fi +AC_SUBST(W32_OBJ) +AC_SUBST(W32_LIBS) + +if test "${HAVE_W32}" = "yes"; then + window_system=w32 + with_xft=no +fi + ## $window_system is now set to the window system we will ## ultimately use. @@ -1600,6 +1626,9 @@ dnl use the toolkit if we have gtk, or X11R5 or newer. nextstep ) term_header=nsterm.h ;; + w32 ) + term_header=w32term.h + ;; esac if test -n "${term_header}"; then @@ -2286,6 +2315,9 @@ if test "${with_toolkit_scroll_bars}" != "no"; then elif test "${HAVE_NS}" = "yes"; then AC_DEFINE(USE_TOOLKIT_SCROLL_BARS) USE_TOOLKIT_SCROLL_BARS=yes + elif test "${HAVE_W32}" = "yes"; then + AC_DEFINE(USE_TOOLKIT_SCROLL_BARS) + USE_TOOLKIT_SCROLL_BARS=yes fi fi @@ -2452,6 +2484,41 @@ AC_SUBST(M17N_FLT_LIBS) ### Use -lXpm if available, unless `--with-xpm=no'. HAVE_XPM=no LIBXPM= + +if test "${HAVE_W32}" = "yes"; then + if test "${with_xpm}" != "no"; then + SAVE_CPPFLAGS="$CPPFLAGS" + SAVE_LDFLAGS="$LDFLAGS" + CPPFLAGS="$CPPFLAGS -I/usr/include/noX" + LDFLAGS="$LDFLAGS -L/usr/lib/noX" + AC_CHECK_HEADER(X11/xpm.h, + [AC_CHECK_LIB(Xpm, XpmReadFileToImage, HAVE_XPM=yes)]) + if test "${HAVE_XPM}" = "yes"; then + AC_MSG_CHECKING(for XpmReturnAllocPixels preprocessor define) + AC_EGREP_CPP(no_return_alloc_pixels, + [#include "X11/xpm.h" +#ifndef XpmReturnAllocPixels +no_return_alloc_pixels +#endif + ], HAVE_XPM=no, HAVE_XPM=yes) + + if test "${HAVE_XPM}" = "yes"; then + REAL_CPPFLAGS="$REAL_CPPFLAGS -I/usr/include/noX" + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + CPPFLAGS="$SAVE_CPPFLAGS" + LDFLAGS="$SAVE_LDFLAGS" + fi + fi + fi + + if test "${HAVE_XPM}" = "yes"; then + AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm libary (-lXpm).]) + LIBXPM=-lXpm + fi +fi + if test "${HAVE_X11}" = "yes"; then if test "${with_xpm}" != "no"; then AC_CHECK_HEADER(X11/xpm.h, @@ -2478,12 +2545,13 @@ no_return_alloc_pixels LIBXPM=-lXpm fi fi + AC_SUBST(LIBXPM) ### Use -ljpeg if available, unless `--with-jpeg=no'. HAVE_JPEG=no LIBJPEG= -if test "${HAVE_X11}" = "yes"; then +if test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then if test "${with_jpeg}" != "no"; then dnl Checking for jpeglib.h can lose because of a redefinition of dnl HAVE_STDLIB_H. @@ -2511,7 +2579,7 @@ AC_SUBST(LIBJPEG) ### Use -lpng if available, unless `--with-png=no'. HAVE_PNG=no LIBPNG= -if test "${HAVE_X11}" = "yes"; then +if test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then if test "${with_png}" != "no"; then # Debian unstable as of July 2003 has multiple libpngs, and puts png.h # in /usr/include/libpng. @@ -2544,7 +2612,7 @@ AC_SUBST(LIBPNG) ### Use -ltiff if available, unless `--with-tiff=no'. HAVE_TIFF=no LIBTIFF= -if test "${HAVE_X11}" = "yes"; then +if test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then if test "${with_tiff}" != "no"; then AC_CHECK_HEADER(tiffio.h, [tifflibs="-lz -lm" @@ -2564,7 +2632,8 @@ AC_SUBST(LIBTIFF) ### Use -lgif or -lungif if available, unless `--with-gif=no'. HAVE_GIF=no LIBGIF= -if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no"; then +if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no" \ + || test "${HAVE_W32}" = "yes"; then AC_CHECK_HEADER(gif_lib.h, # EGifPutExtensionLast only exists from version libungif-4.1.0b1. # Earlier versions can crash Emacs. @@ -2646,6 +2715,9 @@ if test "${HAVE_NS}" = "yes"; then OTHER_FILES=ns-app fi +if test "${HAVE_W32}" = "yes"; then + HAVE_MENUS=yes +fi ### Use session management (-lSM -lICE) if available HAVE_X_SM=no @@ -4144,7 +4216,7 @@ fi AC_SUBST(RALLOC_OBJ) if test "$opsys" = "cygwin"; then - CYGWIN_OBJ="sheap.o" + CYGWIN_OBJ="sheap.o cygw32.o" ## Cygwin differs because of its unexec(). PRE_ALLOC_OBJ= POST_ALLOC_OBJ=lastfile.o diff --git a/lisp/battery.el b/lisp/battery.el index 8e98291b11c..69d25643bb9 100644 --- a/lisp/battery.el +++ b/lisp/battery.el @@ -60,7 +60,7 @@ (> (buffer-size) 0))) (error nil))) 'battery-pmset) - ((eq system-type 'windows-nt) + ((fboundp 'w32-battery-status) 'w32-battery-status)) "Function for getting battery status information. The function has to return an alist of conversion definitions. diff --git a/lisp/faces.el b/lisp/faces.el index 6a477e172e1..d004ae650cb 100644 --- a/lisp/faces.el +++ b/lisp/faces.el @@ -96,7 +96,7 @@ ALTERNATIVE2 etc." ;; This is defined originally in xfaces.c. (defcustom face-font-registry-alternatives (mapcar (lambda (arg) (mapcar 'purecopy arg)) - (if (eq system-type 'windows-nt) + (if (featurep 'w32) '(("iso8859-1" "ms-oemlatin") ("gb2312.1980" "gb2312" "gbk" "gb18030") ("jisx0208.1990" "jisx0208.1983" "jisx0208.1978") diff --git a/lisp/frame.el b/lisp/frame.el index 01225639ecf..9be64a6b7ff 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -524,7 +524,7 @@ The optional argument PARAMETERS specifies additional frame parameters." (ns-initialize-window-system)) (make-frame `((window-system . ns) (display . ,display) . ,parameters))) - ((eq system-type 'windows-nt) + ((eq window-system 'w32) ;; On Windows, ignore DISPLAY. (make-frame parameters)) (t @@ -1260,7 +1260,7 @@ frame's display)." (cond ((eq frame-type 'pc) (msdos-mouse-p)) - ((eq system-type 'windows-nt) + ((eq frame-type 'w32) (with-no-warnings (> w32-num-mouse-buttons 0))) ((memq frame-type '(x ns)) diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 2fc9759972e..177ac8eaa91 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -2670,7 +2670,8 @@ See also `locale-charset-language-names', `locale-language-names', ;; On Windows, override locale-coding-system, ;; default-file-name-coding-system, keyboard-coding-system, ;; terminal-coding-system with system codepage. - (when (boundp 'w32-ansi-code-page) + (when (and (eq system-type 'windows-nt) + (boundp 'w32-ansi-code-page)) (let ((code-page-coding (intern (format "cp%d" w32-ansi-code-page)))) (when (coding-system-p code-page-coding) (unless frame (setq locale-coding-system code-page-coding)) diff --git a/lisp/loadup.el b/lisp/loadup.el index a460fcab339..c70b417822f 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -224,15 +224,18 @@ (load "term/common-win") (load "term/x-win"))) -(if (eq system-type 'windows-nt) +(if (or (eq system-type 'windows-nt) + (featurep 'w32)) (progn - (load "w32-vars") (load "term/common-win") + (load "w32-vars") (load "term/w32-win") - (load "ls-lisp") (load "disp-table") - (load "dos-w32") - (load "w32-fns"))) + (load "w32-common-fns") + (when (eq system-type 'windows-nt) + (load "w32-fns") + (load "ls-lisp") + (load "dos-w32")))) (if (eq system-type 'ms-dos) (progn (load "dos-w32") diff --git a/lisp/mouse.el b/lisp/mouse.el index 4ea84288f69..14e69c9f34d 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -1151,7 +1151,7 @@ regardless of where you click." (or mouse-yank-at-point (mouse-set-point click)) (let ((primary (cond - ((eq system-type 'windows-nt) + ((eq (framep (selected-frame)) 'w32) ;; MS-Windows emulates PRIMARY in x-get-selection, but not ;; in x-get-selection-value (the latter only accesses the ;; clipboard). So try PRIMARY first, in case they selected diff --git a/lisp/simple.el b/lisp/simple.el index b7a24f4f970..b81e0d7ee88 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -6870,7 +6870,7 @@ call `normal-erase-is-backspace-mode' (which see) instead." (if (if (eq normal-erase-is-backspace 'maybe) (and (not noninteractive) (or (memq system-type '(ms-dos windows-nt)) - (memq window-system '(ns)) + (memq window-system '(w32 ns)) (and (memq window-system '(x)) (fboundp 'x-backspace-delete-keys-p) (x-backspace-delete-keys-p)) diff --git a/lisp/term/common-win.el b/lisp/term/common-win.el index 067b996d1ff..b44e092cc0a 100644 --- a/lisp/term/common-win.el +++ b/lisp/term/common-win.el @@ -57,7 +57,7 @@ clipboard as well. On Nextstep, put TEXT in the pasteboard (`x-select-enable-clipboard' is not used)." - (cond ((eq system-type 'windows-nt) + (cond ((eq (framep (selected-frame)) 'w32) (if x-select-enable-clipboard (w32-set-clipboard-data text)) (setq x-last-selected-text text)) diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el index a4fac3441db..dd577af0ae1 100644 --- a/lisp/term/w32-win.el +++ b/lisp/term/w32-win.el @@ -1,4 +1,4 @@ -;;; w32-win.el --- parse switches controlling interface with W32 window system +;;; w32-win.el --- parse switches controlling interface with W32 window system -*- lexical-binding: t -*- ;; Copyright (C) 1993-1994, 2001-2012 Free Software Foundation, Inc. @@ -102,7 +102,22 @@ ;; (interactive "e") ;; (princ event)) -(defun w32-drag-n-drop (event) +(defun w32-handle-dropped-file (window file-name) + (let ((f (if (eq system-type 'cygwin) + (cygwin-convert-path-from-windows file-name t) + (subst-char-in-string ?\\ ?/ file-name))) + (coding (or file-name-coding-system + default-file-name-coding-system))) + + (setq file-name + (mapconcat 'url-hexify-string + (split-string (encode-coding-string f coding) + "/") + "/"))) + (dnd-handle-one-url window 'private + (concat "file:" file-name))) + +(defun w32-drag-n-drop (event &optional new-frame) "Edit the files listed in the drag-n-drop EVENT. Switch to a buffer editing the last file dropped." (interactive "e") @@ -116,26 +131,21 @@ Switch to a buffer editing the last file dropped." (y (cdr coords))) (if (and (> x 0) (> y 0)) (set-frame-selected-window nil window)) - (mapc (lambda (file-name) - (let ((f (subst-char-in-string ?\\ ?/ file-name)) - (coding (or file-name-coding-system - default-file-name-coding-system))) - (setq file-name - (mapconcat 'url-hexify-string - (split-string (encode-coding-string f coding) - "/") - "/"))) - (dnd-handle-one-url window 'private - (concat "file:" file-name))) - (car (cdr (cdr event))))) - (raise-frame))) + + (when new-frame + (select-frame (make-frame))) + (raise-frame) + (setq window (selected-window)) + + (mapc (apply-partially #'w32-handle-dropped-file window) + (car (cdr (cdr event))))))) (defun w32-drag-n-drop-other-frame (event) "Edit the files listed in the drag-n-drop EVENT, in other frames. May create new frames, or reuse existing ones. The frame editing the last file dropped is selected." (interactive "e") - (mapcar 'find-file-other-frame (car (cdr (cdr event))))) + (w32-drag-n-drop event t)) ;; Bind the drag-n-drop event. (global-set-key [drag-n-drop] 'w32-drag-n-drop) diff --git a/lisp/w32-fns.el b/lisp/w32-fns.el index 1769ee73be5..813a8fd4d96 100644 --- a/lisp/w32-fns.el +++ b/lisp/w32-fns.el @@ -26,34 +26,20 @@ ;;; Code: (require 'w32-vars) +(require 'w32-common-fns) (defvar explicit-shell-file-name) ;;;; Function keys (declare-function set-message-beep "w32console.c") -(declare-function w32-get-clipboard-data "w32select.c") (declare-function w32-get-locale-info "w32proc.c") (declare-function w32-get-valid-locale-ids "w32proc.c") -(declare-function w32-set-clipboard-data "w32select.c") ;; Map all versions of a filename (8.3, longname, mixed case) to the ;; same buffer. (setq find-file-visit-truename t) -(declare-function x-server-version "w32fns.c" (&optional display)) - -(defun w32-version () - "Return the MS-Windows version numbers. -The value is a list of three integers: the major and minor version -numbers, and the build number." - (x-server-version)) - -(defun w32-using-nt () - "Return non-nil if running on a Windows NT descendant. -That includes all Windows systems except for 9X/Me." - (and (eq system-type 'windows-nt) (getenv "SystemRoot"))) - (defun w32-shell-name () "Return the name of the shell being used." (or (bound-and-true-p shell-file-name) @@ -240,53 +226,6 @@ requires it (see `w32-shell-dos-semantics')." (setq start (match-end 0)))) name))) -;;; Fix interface to (X-specific) mouse.el -(defun x-set-selection (type data) - "Make an X selection of type TYPE and value DATA. -The argument TYPE (nil means `PRIMARY') says which selection, and -DATA specifies the contents. TYPE must be a symbol. \(It can also -be a string, which stands for the symbol with that name, but this -is considered obsolete.) DATA may be a string, a symbol, an -integer (or a cons of two integers or list of two integers). - -The selection may also be a cons of two markers pointing to the same buffer, -or an overlay. In these cases, the selection is considered to be the text -between the markers *at whatever time the selection is examined*. -Thus, editing done in the buffer after you specify the selection -can alter the effective value of the selection. - -The data may also be a vector of valid non-vector selection values. - -The return value is DATA. - -Interactively, this command sets the primary selection. Without -prefix argument, it reads the selection in the minibuffer. With -prefix argument, it uses the text of the region as the selection value. - -Note that on MS-Windows, primary and secondary selections set by Emacs -are not available to other programs." - (put 'x-selections (or type 'PRIMARY) data)) - -(defun x-get-selection (&optional type _data-type) - "Return the value of an X Windows selection. -The argument TYPE (default `PRIMARY') says which selection, -and the argument DATA-TYPE (default `STRING') says -how to convert the data. - -TYPE may be any symbol \(but nil stands for `PRIMARY'). However, -only a few symbols are commonly used. They conventionally have -all upper-case names. The most often used ones, in addition to -`PRIMARY', are `SECONDARY' and `CLIPBOARD'. - -DATA-TYPE is usually `STRING', but can also be one of the symbols -in `selection-converter-alist', which see." - (get 'x-selections (or type 'PRIMARY))) - -;; x-selection-owner-p is used in simple.el -(defun x-selection-owner-p (&optional type) - (and (memq type '(nil PRIMARY SECONDARY)) - (get 'x-selections (or type 'PRIMARY)))) - (defun set-w32-system-coding-system (coding-system) "Set the coding system used by the Windows system to CODING-SYSTEM. This is used for things like passing font names with non-ASCII @@ -311,14 +250,6 @@ This function is provided for backward compatibility, since ;; Set to a system sound if you want a fancy bell. (set-message-beep nil) -;; The "Windows" keys on newer keyboards bring up the Start menu -;; whether you want it or not - make Emacs ignore these keystrokes -;; rather than beep. -(global-set-key [lwindow] 'ignore) -(global-set-key [rwindow] 'ignore) - -(defvar w32-charset-info-alist) ; w32font.c - (defun w32-add-charset-info (xlfd-charset windows-charset codepage) "Function to add character sets to display with Windows fonts. Creates entries in `w32-charset-info-alist'. @@ -379,40 +310,6 @@ bit output with no translation." (make-obsolete-variable 'w32-charset-to-codepage-alist 'w32-charset-info-alist "21.1") - -;;;; Selections - -;; We keep track of the last text selected here, so we can check the -;; current selection against it, and avoid passing back our own text -;; from x-selection-value. -(defvar x-last-selected-text nil) - -(defun x-get-selection-value () - "Return the value of the current selection. -Consult the selection. Treat empty strings as if they were unset." - (if x-select-enable-clipboard - (let (text) - ;; Don't die if x-get-selection signals an error. - (condition-case c - (setq text (w32-get-clipboard-data)) - (error (message "w32-get-clipboard-data:%s" c))) - (if (string= text "") (setq text nil)) - (cond - ((not text) nil) - ((eq text x-last-selected-text) nil) - ((string= text x-last-selected-text) - ;; Record the newer string, so subsequent calls can use the 'eq' test. - (setq x-last-selected-text text) - nil) - (t - (setq x-last-selected-text text)))))) - -(defalias 'x-selection-value 'x-get-selection-value) - -;; Arrange for the kill and yank functions to set and check the clipboard. -(setq interprogram-cut-function 'x-select-text) -(setq interprogram-paste-function 'x-get-selection-value) - ;;;; Support for build process diff --git a/lisp/w32-vars.el b/lisp/w32-vars.el index c8716ef6c36..0e152b125bc 100644 --- a/lisp/w32-vars.el +++ b/lisp/w32-vars.el @@ -44,17 +44,19 @@ X does. See `w32-fixed-font-alist' for the font menu definition." "Include proportional fonts in the default font dialog.") (make-obsolete-variable 'w32-list-proportional-fonts "no longer used." "23.1") -(defcustom w32-allow-system-shell nil - "Disable startup warning when using \"system\" shells." - :type 'boolean - :group 'w32) +(unless (eq system-type 'cygwin) + (defcustom w32-allow-system-shell nil + "Disable startup warning when using \"system\" shells." + :type 'boolean + :group 'w32)) -(defcustom w32-system-shells '("cmd" "cmd.exe" "command" "command.com" - "4nt" "4nt.exe" "4dos" "4dos.exe" - "tcc" "tcc.exe" "ndos" "ndos.exe") - "List of strings recognized as Windows system shells." - :type '(repeat string) - :group 'w32) +(unless (eq system-type 'cygwin) + (defcustom w32-system-shells '("cmd" "cmd.exe" "command" "command.com" + "4nt" "4nt.exe" "4dos" "4dos.exe" + "tcc" "tcc.exe" "ndos" "ndos.exe") + "List of strings recognized as Windows system shells." + :type '(repeat string) + :group 'w32)) ;; Want "menu" custom type for this. (defcustom w32-fixed-font-alist diff --git a/src/Makefile.in b/src/Makefile.in index a809216f095..847a5e58fd7 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -135,13 +135,10 @@ LIB_MATH=@LIB_MATH@ ## -lpthreads, or empty. LIB_PTHREAD=@LIB_PTHREAD@ -LIBTIFF=@LIBTIFF@ -LIBJPEG=@LIBJPEG@ -LIBPNG=@LIBPNG@ -LIBGIF=@LIBGIF@ -LIBXPM=@LIBXPM@ +LIBIMAGE=@LIBTIFF@ @LIBJPEG@ @LIBPNG@ @LIBGIF@ @LIBXPM@ + XFT_LIBS=@XFT_LIBS@ -LIBX_EXTRA=$(LIBTIFF) $(LIBJPEG) $(LIBPNG) $(LIBGIF) $(LIBXPM) -lX11 $(XFT_LIBS) +LIBX_EXTRA=-lX11 $(XFT_LIBS) FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ @@ -263,6 +260,13 @@ NS_OBJ=@NS_OBJ@ NS_OBJC_OBJ=@NS_OBJC_OBJ@ ## Only set if NS_IMPL_GNUSTEP. GNU_OBJC_CFLAGS=@GNU_OBJC_CFLAGS@ +## w32fns.o w32menu.c w32reg.o fringe.o fontset.o w32font.o w32term.o +## w32xfns.o w32select.o image.o w32uniscribe.o if HAVE_W32, else +## empty. +W32_OBJ=@W32_OBJ@ +## -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32 lusp10 -lcomctl32 +## --lwinspool if HAVE_W32, else empty. +W32_LIBS=@W32_LIBS@ ## Empty if !HAVE_X_WINDOWS ## xfont.o ftfont.o xftfont.o ftxfont.o if HAVE_XFT @@ -343,7 +347,7 @@ base_obj = dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \ region-cache.o sound.o atimer.o \ doprnt.o intervals.o textprop.o composite.o xml.o \ $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) \ - $(WINDOW_SYSTEM_OBJ) + $(W32_OBJ) $(WINDOW_SYSTEM_OBJ) obj = $(base_obj) $(NS_OBJC_OBJ) ## Object files used on some machine or other. @@ -352,9 +356,9 @@ obj = $(base_obj) $(NS_OBJC_OBJ) ## in the list, in case they ever add any such entries. SOME_MACHINE_OBJECTS = dosfns.o msdos.o \ xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \ - fontset.o dbusbind.o \ + fontset.o dbusbind.o cygw32.o \ nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \ - w32.o w32console.o w32fns.o w32heap.o w32inevt.o \ + w32.o w32console.o w32fns.o w32heap.o \ w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o \ w16select.o widget.o xfont.o ftfont.o xftfont.o ftxfont.o gtkutil.o \ xsettings.o xgselect.o termcap.o @@ -386,7 +390,8 @@ otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) $(RALLOC_OBJ) \ ## Note that SunOS needs -lm to come before -lc; otherwise, you get ## duplicated symbols. If the standard libraries were compiled ## with GCC, we might need LIB_GCC again after them. -LIBES = $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \ +LIBES = $(LIBS) $(W32_LIBS) $(LIBX_BASE) $(LIBIMAGE) \ + $(LIBX_OTHER) $(LIBSOUND) \ $(RSVG_LIBS) $(IMAGEMAGICK_LIBS) $(LIB_CLOCK_GETTIME) $(DBUS_LIBS) \ $(LIB_EXECINFO) \ $(LIBXML2_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \ diff --git a/src/conf_post.h b/src/conf_post.h index f90ef90fb83..8bd66be2c4d 100644 --- a/src/conf_post.h +++ b/src/conf_post.h @@ -164,6 +164,20 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */ #endif #endif +#if defined(HAVE_NTGUI) && !defined(DebPrint) +# if defined(EMACSDEBUG) +extern void _DebPrint (const char *fmt, ...); +# define DebPrint(stuff) _DebPrint stuff +# else +# define DebPrint(stuff) +# endif /* EMACSDEBUG */ +#endif /* DebPrint */ + +#if defined(CYGWIN) && defined(HAVE_NTGUI) +#define NTGUI_UNICODE /* Cygwin runs only on UNICODE-supporting systems */ +#define _WIN32_WINNT 0x500 /* Win2k */ +#endif /* CYGWIN && HAVE_NTGUI */ + #ifdef emacs /* Don't do this for lib-src. */ /* Tell regex.c to use a type compatible with Emacs. */ #define RE_TRANSLATE_TYPE Lisp_Object diff --git a/src/dispextern.h b/src/dispextern.h index 1140d98f8a7..1aff547f187 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -3139,7 +3139,7 @@ int draw_window_fringes (struct window *, int); int update_window_fringes (struct window *, int); void compute_fringe_widths (struct frame *, int); -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI void w32_init_fringe (struct redisplay_interface *); void w32_reset_fringes (void); #endif @@ -3241,7 +3241,7 @@ extern char unspecified_fg[], unspecified_bg[]; #ifdef HAVE_X_WINDOWS void gamma_correct (struct frame *, XColor *); #endif -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI void gamma_correct (struct frame *, COLORREF *); #endif diff --git a/src/emacs.c b/src/emacs.c index adfff6ff3ed..9a9309546ab 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -37,9 +37,20 @@ along with GNU Emacs. If not, see . */ #ifdef WINDOWSNT #include -#include /* just for w32.h */ #include "w32.h" -#include "w32heap.h" /* for prototype of sbrk */ +#endif + +#if defined (WINDOWSNT) +#include "w32heap.h" +#endif + +#if defined (WINDOWSNT) || defined (HAVE_NTGUI) +#include "w32select.h" +#include "w32font.h" +#endif + +#if defined (HAVE_NTGUI) && defined (CYGWIN) +#include "cygw32.h" #endif #ifdef NS_IMPL_GNUSTEP @@ -1484,6 +1495,9 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem #ifdef WINDOWSNT syms_of_ntproc (); #endif /* WINDOWSNT */ +#if defined (CYGWIN) && defined (HAVE_NTGUI) + syms_of_cygw32 (); +#endif /* defined(CYGWIN) && defined (HAVE_NTGUI) */ syms_of_window (); syms_of_xdisp (); syms_of_font (); @@ -1514,11 +1528,14 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem #ifdef HAVE_NTGUI syms_of_w32term (); syms_of_w32fns (); - syms_of_w32select (); syms_of_w32menu (); syms_of_fontset (); #endif /* HAVE_NTGUI */ +#ifdef HAVE_W32SELECT + syms_of_w32select (); +#endif /* HAVE_W32SELECT */ + #ifdef MSDOS syms_of_xmenu (); syms_of_dosfns (); @@ -1561,8 +1578,11 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem globals_of_w32font (); globals_of_w32fns (); globals_of_w32menu (); - globals_of_w32select (); #endif /* HAVE_NTGUI */ + +#ifdef HAVE_W32SELECT + globals_of_w32select (); +#endif /* HAVE_W32SELECT */ } init_charset (); diff --git a/src/font.c b/src/font.c index cf9964f08f3..c775b56caa9 100644 --- a/src/font.c +++ b/src/font.c @@ -5207,9 +5207,9 @@ EMACS_FONT_LOG is set. Otherwise, it is set to t. */); #ifdef HAVE_BDFFONT syms_of_bdffont (); #endif /* HAVE_BDFFONT */ -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI syms_of_w32font (); -#endif /* WINDOWSNT */ +#endif /* HAVE_NTGUI */ #ifdef HAVE_NS syms_of_nsfont (); #endif /* HAVE_NS */ diff --git a/src/font.h b/src/font.h index 6e9387f7632..5ed9affa9ef 100644 --- a/src/font.h +++ b/src/font.h @@ -826,11 +826,11 @@ extern struct font_driver ftxfont_driver; extern void syms_of_bdffont (void); #endif /* HAVE_BDFFONT */ #endif /* HAVE_X_WINDOWS */ -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI extern struct font_driver w32font_driver; extern struct font_driver uniscribe_font_driver; extern void syms_of_w32font (void); -#endif /* WINDOWSNT */ +#endif /* HAVE_NTGUI */ #ifdef HAVE_NS extern Lisp_Object Qfontsize; extern struct font_driver nsfont_driver; diff --git a/src/fontset.c b/src/fontset.c index 01e38fe45e5..783f99c210c 100644 --- a/src/fontset.c +++ b/src/fontset.c @@ -43,7 +43,7 @@ along with GNU Emacs. If not, see . */ #ifdef HAVE_X_WINDOWS #include "xterm.h" #endif -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI #include "w32term.h" #endif #ifdef HAVE_NS diff --git a/src/frame.c b/src/frame.c index 968cb4905a2..aa1508e6d28 100644 --- a/src/frame.c +++ b/src/frame.c @@ -2693,7 +2693,7 @@ static const struct frame_parm_table frame_parms[] = {"tool-bar-position", &Qtool_bar_position}, }; -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI /* Calculate fullscreen size. Return in *TOP_POS and *LEFT_POS the wanted positions of the WM window (not Emacs window). @@ -2737,7 +2737,7 @@ x_fullscreen_adjust (struct frame *f, int *width, int *height, int *top_pos, int *height = newheight; } -#endif /* WINDOWSNT */ +#endif /* HAVE_NTGUI */ #ifdef HAVE_WINDOW_SYSTEM diff --git a/src/frame.h b/src/frame.h index 1fe3ebd9182..2e0bcee432c 100644 --- a/src/frame.h +++ b/src/frame.h @@ -621,7 +621,7 @@ typedef struct frame *FRAME_PTR; #define FRAME_INITIAL_P(f) ((f)->output_method == output_initial) #define FRAME_TERMCAP_P(f) ((f)->output_method == output_termcap) #define FRAME_X_P(f) ((f)->output_method == output_x_window) -#ifndef WINDOWSNT +#ifndef HAVE_NTGUI #define FRAME_W32_P(f) (0) #else #define FRAME_W32_P(f) ((f)->output_method == output_w32) @@ -1213,7 +1213,7 @@ extern Lisp_Object x_new_font (struct frame *, Lisp_Object, int); extern Lisp_Object Qface_set_after_frame_default; -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI extern void x_fullscreen_adjust (struct frame *f, int *, int *, int *, int *); #endif @@ -1285,6 +1285,7 @@ extern char *x_get_resource_string (const char *, const char *); #endif extern void x_query_colors (struct frame *f, XColor *, int); +extern void x_query_color (struct frame *f, XColor *); /* In xmenu.c */ extern void set_frame_menubar (FRAME_PTR, int, int); diff --git a/src/image.c b/src/image.c index d4e78d41000..b5a2e0328eb 100644 --- a/src/image.c +++ b/src/image.c @@ -76,7 +76,11 @@ typedef struct x_bitmap_record Bitmap_Record; #endif /* HAVE_X_WINDOWS */ #ifdef HAVE_NTGUI -#include "w32.h" +# ifdef WINDOWSNT +/* We only need (or want) w32.h when we're _not_ + * compiling for Cygwin */ +# include "w32.h" +# endif /* WINDOWSNT */ /* W32_TODO : Color tables on W32. */ #undef COLOR_TABLE_SUPPORT @@ -569,13 +573,14 @@ static void x_laplace (struct frame *, struct image *); static void x_emboss (struct frame *, struct image *); static int x_build_heuristic_mask (struct frame *, struct image *, Lisp_Object); -#ifdef HAVE_NTGUI -extern Lisp_Object Vlibrary_cache, QCloaded_from; +#ifdef WINDOWSNT +extern Lisp_Object Vlibrary_cache; + #define CACHE_IMAGE_TYPE(type, status) \ do { Vlibrary_cache = Fcons (Fcons (type, status), Vlibrary_cache); } while (0) #else #define CACHE_IMAGE_TYPE(type, status) -#endif +#endif /* WINDOWSNT */ #define ADD_IMAGE_TYPE(type) \ do { Vimage_types = Fcons (type, Vimage_types); } while (0) @@ -1861,7 +1866,7 @@ mark_image_cache (struct image_cache *c) X / NS / W32 support code ***********************************************************************/ -#ifdef HAVE_NTGUI +#ifdef WINDOWSNT /* Macro for defining functions that will be loaded from image DLLs. */ #define DEF_IMGLIB_FN(rettype,func,args) static rettype (FAR CDECL *fn_##func)args @@ -1872,7 +1877,7 @@ mark_image_cache (struct image_cache *c) if (!fn_##func) return 0; \ } -#endif /* HAVE_NTGUI */ +#endif /* WINDOWSNT */ static int x_create_x_image_and_pixmap (struct frame *, int, int, int, XImagePtr *, Pixmap *); @@ -2935,7 +2940,7 @@ xbm_load (struct frame *f, struct image *img) else bits = (char *) XBOOL_VECTOR (data)->data; -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI { char *invertedBits; int nbytes, i; @@ -3243,7 +3248,7 @@ xpm_free_colors (Display *dpy, Colormap cmap, Pixel *pixels, int npixels, void * #endif /* ALLOC_XPM_COLORS */ -#ifdef HAVE_NTGUI +#ifdef WINDOWSNT /* XPM library details. */ @@ -3269,8 +3274,15 @@ init_xpm_functions (Lisp_Object libraries) return 1; } -#endif /* HAVE_NTGUI */ +#endif /* WINDOWSNT */ +#ifdef HAVE_NTGUI +/* Glue for code below */ +#define fn_XpmReadFileToImage XpmReadFileToImage +#define fn_XpmCreateImageFromBuffer XpmCreateImageFromBuffer +#define fn_XImageFree XImageFree +#define fn_XpmFreeAttributes XpmFreeAttributes +#endif /* HAVE_NTGUI */ /* Value is non-zero if COLOR_SYMBOLS is a valid color symbols list for XPM images. Such a list must consist of conses whose car and @@ -5414,7 +5426,7 @@ png_image_p (Lisp_Object object) #ifdef HAVE_PNG -#ifdef HAVE_NTGUI +#ifdef WINDOWSNT /* PNG library details. */ DEF_IMGLIB_FN (png_voidp, png_get_io_ptr, (png_structp)); @@ -5514,7 +5526,7 @@ init_png_functions (Lisp_Object libraries) #define fn_png_set_longjmp_fn png_set_longjmp_fn #endif /* libpng version >= 1.5 */ -#endif /* HAVE_NTGUI */ +#endif /* WINDOWSNT */ #if (PNG_LIBPNG_VER < 10500) @@ -6045,14 +6057,20 @@ jpeg_image_p (Lisp_Object object) #define __WIN32__ 1 #endif +/* Work around conflict between jpeg boolean and rpcndr.h + under Windows. */ +#define boolean jpeg_boolean #include #include +/* Don't undefine boolean --- use the JPEG boolean + through the rest of the file. */ + #ifdef HAVE_STLIB_H_1 #define HAVE_STDLIB_H 1 #endif -#ifdef HAVE_NTGUI +#ifdef WINDOWSNT /* JPEG library details. */ DEF_IMGLIB_FN (void, jpeg_CreateDecompress, (j_decompress_ptr, int, size_t)); @@ -6102,7 +6120,7 @@ jpeg_resync_to_restart_wrapper (j_decompress_ptr cinfo, int desired) #define fn_jpeg_std_error jpeg_std_error #define jpeg_resync_to_restart_wrapper jpeg_resync_to_restart -#endif /* HAVE_NTGUI */ +#endif /* WINDOWSNT */ struct my_jpeg_error_mgr { @@ -6583,7 +6601,7 @@ tiff_image_p (Lisp_Object object) #include -#ifdef HAVE_NTGUI +#ifdef WINDOWSNT /* TIFF library details. */ DEF_IMGLIB_FN (TIFFErrorHandler, TIFFSetErrorHandler, (TIFFErrorHandler)); @@ -6627,7 +6645,7 @@ init_tiff_functions (Lisp_Object libraries) #define fn_TIFFReadRGBAImage TIFFReadRGBAImage #define fn_TIFFClose TIFFClose #define fn_TIFFSetDirectory TIFFSetDirectory -#endif /* HAVE_NTGUI */ +#endif /* WINDOWSNT */ /* Reading from a memory buffer for TIFF images Based on the PNG @@ -7056,7 +7074,7 @@ gif_image_p (Lisp_Object object) #endif /* HAVE_NTGUI */ -#ifdef HAVE_NTGUI +#ifdef WINDOWSNT /* GIF library details. */ DEF_IMGLIB_FN (int, DGifCloseFile, (GifFileType *)); @@ -7086,7 +7104,7 @@ init_gif_functions (Lisp_Object libraries) #define fn_DGifOpen DGifOpen #define fn_DGifOpenFileName DGifOpenFileName -#endif /* HAVE_NTGUI */ +#endif /* WINDOWSNT */ /* Reading a GIF image from memory Based on the PNG memory stuff to a certain extent. */ @@ -8075,7 +8093,7 @@ svg_image_p (Lisp_Object object) #include -#ifdef HAVE_NTGUI +#ifdef WINDOWSNT /* SVG library functions. */ DEF_IMGLIB_FN (RsvgHandle *, rsvg_handle_new); @@ -8153,7 +8171,7 @@ init_svg_functions (Lisp_Object libraries) #define fn_g_type_init g_type_init #define fn_g_object_unref g_object_unref #define fn_g_error_free g_error_free -#endif /* !HAVE_NTGUI */ +#endif /* !WINDOWSNT */ /* Load SVG image IMG for use on frame F. Value is non-zero if successful. this function will go into the svg_type structure, and @@ -8701,7 +8719,7 @@ DEFUN ("lookup-image", Flookup_image, Slookup_image, 1, 1, 0, "") Initialization ***********************************************************************/ -#ifdef HAVE_NTGUI +#ifdef WINDOWSNT /* Image types that rely on external libraries are loaded dynamically if the library is available. */ #define CHECK_LIB_AVAILABLE(image_type, init_lib_fn, libraries) \ @@ -8709,7 +8727,7 @@ DEFUN ("lookup-image", Flookup_image, Slookup_image, 1, 1, 0, "") #else #define CHECK_LIB_AVAILABLE(image_type, init_lib_fn, libraries) \ define_image_type (image_type, 1) -#endif /* HAVE_NTGUI */ +#endif /* WINDOWSNT */ DEFUN ("init-image-library", Finit_image_library, Sinit_image_library, 2, 2, 0, doc: /* Initialize image library implementing image type TYPE. @@ -8720,7 +8738,7 @@ Libraries to load are specified in alist LIBRARIES (usually, the value of `dynamic-library-alist', which see). */) (Lisp_Object type, Lisp_Object libraries) { -#ifdef HAVE_NTGUI +#ifdef WINDOWSNT /* Don't try to reload the library. */ Lisp_Object tested = Fassq (type, Vlibrary_cache); if (CONSP (tested)) diff --git a/src/keyboard.c b/src/keyboard.c index ff2b75e351c..992d1a97b3c 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -314,7 +314,7 @@ static Lisp_Object Qmouse_fixup_help_message; /* Symbols to denote kinds of events. */ static Lisp_Object Qfunction_key; Lisp_Object Qmouse_click; -#if defined (WINDOWSNT) +#if defined (HAVE_NTGUI) Lisp_Object Qlanguage_change; #endif static Lisp_Object Qdrag_n_drop; @@ -3828,8 +3828,8 @@ kbd_buffer_get_event (KBOARD **kbp, #ifdef subprocesses if (kbd_on_hold_p () && kbd_buffer_nr_stored () < KBD_BUFFER_SIZE/4) { - /* Start reading input again, we have processed enough so we can - accept new events again. */ + /* Start reading input again because we have processed enough to + be able to accept new events again. */ unhold_keyboard_input (); #ifdef SIGIO if (!noninteractive) @@ -4015,7 +4015,7 @@ kbd_buffer_get_event (KBOARD **kbp, x_activate_menubar (XFRAME (event->frame_or_window)); } #endif -#if defined (WINDOWSNT) +#if defined (HAVE_NTGUI) else if (event->kind == LANGUAGE_CHANGE_EVENT) { /* Make an event (language-change (FRAME CODEPAGE LANGUAGE-ID)). */ @@ -5470,7 +5470,7 @@ make_lispy_event (struct input_event *event) (sizeof (lispy_function_keys) / sizeof (lispy_function_keys[0]))); -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI case MULTIMEDIA_KEY_EVENT: if (event->code < (sizeof (lispy_multimedia_keys) / sizeof (lispy_multimedia_keys[0])) @@ -11499,7 +11499,7 @@ syms_of_keyboard (void) DEFSYM (Qconfig_changed_event, "config-changed-event"); DEFSYM (Qmenu_enable, "menu-enable"); -#if defined (WINDOWSNT) +#if defined (HAVE_NTGUI) DEFSYM (Qlanguage_change, "language-change"); #endif diff --git a/src/keyboard.h b/src/keyboard.h index 98b1933f3f9..69fa533fd03 100644 --- a/src/keyboard.h +++ b/src/keyboard.h @@ -552,7 +552,7 @@ extern int tty_read_avail_input (struct terminal *, int, extern EMACS_TIME timer_check (void); extern void mark_kboards (void); -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI extern const char *const lispy_function_keys[]; #endif diff --git a/src/menu.c b/src/menu.c index 20770537326..336e1a9e31d 100644 --- a/src/menu.c +++ b/src/menu.c @@ -41,7 +41,11 @@ along with GNU Emacs. If not, see . */ #endif /* HAVE_WINDOW_SYSTEM */ #ifdef HAVE_NTGUI +# ifdef NTGUI_UNICODE +# define unicode_append_menu AppendMenuW +# else /* !NTGUI_UNICODE */ extern AppendMenuW_Proc unicode_append_menu; +# endif /* NTGUI_UNICODE */ extern HMENU current_popup_menu; #endif /* HAVE_NTGUI */ diff --git a/src/process.c b/src/process.c index bfac054c3c2..b45ba733636 100644 --- a/src/process.c +++ b/src/process.c @@ -4675,6 +4675,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, process_output_skip = 0; } #endif + #if defined (USE_GTK) || defined (HAVE_GCONF) || defined (HAVE_GSETTINGS) nfds = xg_select #elif defined (HAVE_NS) diff --git a/src/termhooks.h b/src/termhooks.h index 46962a1217d..0864b80da84 100644 --- a/src/termhooks.h +++ b/src/termhooks.h @@ -107,9 +107,9 @@ enum event_kind HORIZ_WHEEL_EVENT, /* A wheel event generated by a second horizontal wheel that is present on some mice. See WHEEL_EVENT. */ -#if defined (WINDOWSNT) +#if defined (HAVE_NTGUI) LANGUAGE_CHANGE_EVENT, /* A LANGUAGE_CHANGE_EVENT is - generated on WINDOWSNT or Mac OS + generated when HAVE_NTGUI or on Mac OS when the keyboard layout or input language is changed by the user. */ @@ -188,7 +188,7 @@ enum event_kind , CONFIG_CHANGED_EVENT -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI /* Generated when an APPCOMMAND event is received, in response to Multimedia or Internet buttons on some keyboards. Such keys are available as normal function keys on X through the diff --git a/src/unexw32.c b/src/unexw32.c index 52b2ec4bf2b..8061227d3a8 100644 --- a/src/unexw32.c +++ b/src/unexw32.c @@ -83,7 +83,7 @@ DWORD extra_bss_size_static = 0; PIMAGE_SECTION_HEADER heap_section; #ifdef HAVE_NTGUI -HINSTANCE hinst = NULL; +extern HINSTANCE hinst; HINSTANCE hprevinst = NULL; LPSTR lpCmdLine = ""; int nCmdShow = 0; diff --git a/src/w32.c b/src/w32.c index 84a46e522bb..d779d740724 100644 --- a/src/w32.c +++ b/src/w32.c @@ -31,7 +31,6 @@ along with GNU Emacs. If not, see . */ #include #include #include -#include /* for _mbspbrk */ #include #include #include @@ -39,6 +38,7 @@ along with GNU Emacs. If not, see . */ /* must include CRT headers *before* config.h */ #include +#include /* for _mbspbrk */ #undef access #undef chdir @@ -867,23 +867,6 @@ create_symbolic_link (LPTSTR lpSymlinkFilename, return retval; } -/* Equivalent of strerror for W32 error codes. */ -char * -w32_strerror (int error_no) -{ - static char buf[500]; - - if (error_no == 0) - error_no = GetLastError (); - - buf[0] = '\0'; - if (!FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM, NULL, - error_no, - 0, /* choose most suitable language */ - buf, sizeof (buf), NULL)) - sprintf (buf, "w32 error %u", error_no); - return buf; -} /* Return 1 if P is a valid pointer to an object of size SIZE. Return 0 if P is NOT a valid pointer. Return -1 if we cannot validate P. diff --git a/src/w32.h b/src/w32.h index 73d57a65a4a..b83b716b617 100644 --- a/src/w32.h +++ b/src/w32.h @@ -19,6 +19,12 @@ 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 . */ +#ifdef CYGWIN +#error "w32.h is not compatible with Cygwin" +#endif + +#include + /* File descriptor set emulation. */ @@ -130,17 +136,6 @@ extern LPBYTE w32_get_resource (char * key, LPDWORD type); extern void init_ntproc (void); extern void term_ntproc (void); extern void globals_of_w32 (void); -extern void syms_of_w32term (void); -extern void syms_of_w32fns (void); -extern void globals_of_w32fns (void); -extern void syms_of_w32select (void); -extern void globals_of_w32select (void); -extern void term_w32select (void); -extern void syms_of_w32menu (void); -extern void globals_of_w32menu (void); -extern void syms_of_fontset (void); -extern void syms_of_w32font (void); -extern void check_windows_init_file (void); extern int _sys_read_ahead (int fd); extern int _sys_wait_accept (int fd); diff --git a/src/w32console.c b/src/w32console.c index 76585851e7f..76b7bb0b451 100644 --- a/src/w32console.c +++ b/src/w32console.c @@ -37,6 +37,7 @@ along with GNU Emacs. If not, see . */ #include "termhooks.h" #include "termchar.h" #include "dispextern.h" +#include "w32term.h" #include "w32heap.h" /* for os_subtype */ #include "w32inevt.h" @@ -431,53 +432,6 @@ w32con_delete_glyphs (struct frame *f, int n) scroll_line (f, n, LEFT); } -static unsigned int sound_type = 0xFFFFFFFF; -#define MB_EMACS_SILENT (0xFFFFFFFF - 1) - -void -w32_sys_ring_bell (struct frame *f) -{ - if (sound_type == 0xFFFFFFFF) - { - Beep (666, 100); - } - else if (sound_type == MB_EMACS_SILENT) - { - /* Do nothing. */ - } - else - MessageBeep (sound_type); -} - -DEFUN ("set-message-beep", Fset_message_beep, Sset_message_beep, 1, 1, 0, - doc: /* Set the sound generated when the bell is rung. -SOUND is 'asterisk, 'exclamation, 'hand, 'question, 'ok, or 'silent -to use the corresponding system sound for the bell. The 'silent sound -prevents Emacs from making any sound at all. -SOUND is nil to use the normal beep. */) - (Lisp_Object sound) -{ - CHECK_SYMBOL (sound); - - if (NILP (sound)) - sound_type = 0xFFFFFFFF; - else if (EQ (sound, intern ("asterisk"))) - sound_type = MB_ICONASTERISK; - else if (EQ (sound, intern ("exclamation"))) - sound_type = MB_ICONEXCLAMATION; - else if (EQ (sound, intern ("hand"))) - sound_type = MB_ICONHAND; - else if (EQ (sound, intern ("question"))) - sound_type = MB_ICONQUESTION; - else if (EQ (sound, intern ("ok"))) - sound_type = MB_OK; - else if (EQ (sound, intern ("silent"))) - sound_type = MB_EMACS_SILENT; - else - sound_type = 0xFFFFFFFF; - - return sound; -} static void w32con_reset_terminal_modes (struct terminal *t) @@ -851,5 +805,4 @@ scroll-back buffer. */); defsubr (&Sset_screen_color); defsubr (&Sget_screen_color); defsubr (&Sset_cursor_size); - defsubr (&Sset_message_beep); } diff --git a/src/w32fns.c b/src/w32fns.c index 5a1b6dfabab..16a2fb4dfdd 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -45,8 +45,14 @@ along with GNU Emacs. If not, see . */ #include "fontset.h" #include "systime.h" #include "termhooks.h" + #include "w32heap.h" + +#if CYGWIN +#include "cygw32.h" +#else #include "w32.h" +#endif #include "bitmaps/gray.xbm" @@ -59,9 +65,6 @@ along with GNU Emacs. If not, see . */ #include #include -#define FILE_NAME_TEXT_FIELD edt1 -#define FILE_NAME_COMBO_BOX cmb13 -#define FILE_NAME_LIST lst1 #include "font.h" #include "w32font.h" @@ -79,6 +82,7 @@ extern int w32_console_toggle_lock_key (int, Lisp_Object); extern void w32_menu_display_help (HWND, HMENU, UINT, UINT); extern void w32_free_menu_strings (HWND); extern const char *map_w32_filename (const char *, const char **); +extern char * w32_strerror (int error_no); /* If non-zero, a w32 timer that, when it expires, displays an hourglass cursor on all frames. */ @@ -164,7 +168,11 @@ ImmSetCompositionWindow_Proc set_ime_composition_window_fn = NULL; MonitorFromPoint_Proc monitor_from_point_fn = NULL; GetMonitorInfo_Proc get_monitor_info_fn = NULL; +#ifdef NTGUI_UNICODE +#define unicode_append_menu AppendMenuW +#else /* !NTGUI_UNICODE */ extern AppendMenuW_Proc unicode_append_menu; +#endif /* NTGUI_UNICODE */ /* Flag to selectively ignore WM_IME_CHAR messages. */ static int ignore_ime_char = 0; @@ -202,6 +210,33 @@ extern int uniscribe_available; static void w32_show_hourglass (struct frame *); static void w32_hide_hourglass (void); +#ifdef WINDOWSNT +/* From w32inevet.c */ +extern int faked_key; +#endif /* WINDOWSNT */ + +/* This gives us the page size and the size of the allocation unit on NT. */ +SYSTEM_INFO sysinfo_cache; + +/* This gives us version, build, and platform identification. */ +OSVERSIONINFO osinfo_cache; + +unsigned long syspage_mask = 0; + +/* The major and minor versions of NT. */ +int w32_major_version; +int w32_minor_version; +int w32_build_number; + +/* Distinguish between Windows NT and Windows 95. */ +int os_subtype; + +#ifdef HAVE_NTGUI +HINSTANCE hinst = NULL; +#endif + +static unsigned int sound_type = 0xFFFFFFFF; +#define MB_EMACS_SILENT (0xFFFFFFFF - 1) /* Error if we are not connected to MS-Windows. */ @@ -1847,10 +1882,7 @@ w32_createwindow (struct frame *f) /* Do first time app init */ - if (!hprevinst) - { - w32_init_class (hinst); - } + w32_init_class (hinst); if (f->size_hint_flags & USPosition || f->size_hint_flags & PPosition) { @@ -2250,6 +2282,58 @@ unregister_hot_keys (HWND hwnd) } } +#if EMACSDEBUG +const char* +w32_name_of_message (UINT msg) +{ + unsigned i; + static char buf[64]; + static const struct { + UINT msg; + const char* name; + } msgnames[] = { +#define M(msg) { msg, # msg } + M (WM_PAINT), + M (WM_TIMER), + M (WM_USER), + M (WM_MOUSEMOVE), + M (WM_LBUTTONUP), + M (WM_KEYDOWN), + M (WM_EMACS_KILL), + M (WM_EMACS_CREATEWINDOW), + M (WM_EMACS_DONE), + M (WM_EMACS_CREATESCROLLBAR), + M (WM_EMACS_SHOWWINDOW), + M (WM_EMACS_SETWINDOWPOS), + M (WM_EMACS_DESTROYWINDOW), + M (WM_EMACS_TRACKPOPUPMENU), + M (WM_EMACS_SETFOCUS), + M (WM_EMACS_SETFOREGROUND), + M (WM_EMACS_SETLOCALE), + M (WM_EMACS_SETKEYBOARDLAYOUT), + M (WM_EMACS_REGISTER_HOT_KEY), + M (WM_EMACS_UNREGISTER_HOT_KEY), + M (WM_EMACS_TOGGLE_LOCK_KEY), + M (WM_EMACS_TRACK_CARET), + M (WM_EMACS_DESTROY_CARET), + M (WM_EMACS_SHOW_CARET), + M (WM_EMACS_HIDE_CARET), + M (WM_EMACS_SETCURSOR), + M (WM_EMACS_PAINT), + M (WM_CHAR), +#undef M + { 0, 0 } + }; + + for (i = 0; msgnames[i].name; ++i) + if (msgnames[i].msg == msg) + return msgnames[i].name; + + sprintf (buf, "message 0x%04x", (unsigned)msg); + return buf; +} +#endif /* EMACSDEBUG */ + /* Main message dispatch loop. */ static void @@ -2263,6 +2347,10 @@ w32_msg_pump (deferred_msg * msg_buf) while ((w32_unicode_gui ? GetMessageW : GetMessageA) (&msg, NULL, 0, 0)) { + + /* DebPrint (("w32_msg_pump: %s time:%u\n", */ + /* w32_name_of_message (msg.message), msg.time)); */ + if (msg.hwnd == NULL) { switch (msg.message) @@ -2350,7 +2438,7 @@ w32_msg_pump (deferred_msg * msg_buf) /* Broadcast messages make it here, so you need to be looking for something in particular for this to be useful. */ default: - DebPrint (("msg %x not expected by w32_msg_pump\n", msg.message)); + DebPrint (("msg %x not expected by w32_msg_pump\n", msg.message)); #endif } } @@ -4692,6 +4780,37 @@ If omitted or nil, that stands for the selected frame's display. */) { return Qnil; } + +DEFUN ("set-message-beep", Fset_message_beep, Sset_message_beep, 1, 1, 0, + doc: /* Set the sound generated when the bell is rung. +SOUND is 'asterisk, 'exclamation, 'hand, 'question, 'ok, or 'silent +to use the corresponding system sound for the bell. The 'silent sound +prevents Emacs from making any sound at all. +SOUND is nil to use the normal beep. */) + (Lisp_Object sound) +{ + CHECK_SYMBOL (sound); + + if (NILP (sound)) + sound_type = 0xFFFFFFFF; + else if (EQ (sound, intern ("asterisk"))) + sound_type = MB_ICONASTERISK; + else if (EQ (sound, intern ("exclamation"))) + sound_type = MB_ICONEXCLAMATION; + else if (EQ (sound, intern ("hand"))) + sound_type = MB_ICONHAND; + else if (EQ (sound, intern ("question"))) + sound_type = MB_ICONQUESTION; + else if (EQ (sound, intern ("ok"))) + sound_type = MB_OK; + else if (EQ (sound, intern ("silent"))) + sound_type = MB_EMACS_SILENT; + else + sound_type = 0xFFFFFFFF; + + return sound; +} + int x_pixel_width (register struct frame *f) @@ -5865,6 +5984,18 @@ Value is t if tooltip was open, nil otherwise. */) File selection dialog ***********************************************************************/ +#define FILE_NAME_TEXT_FIELD edt1 +#define FILE_NAME_COMBO_BOX cmb13 +#define FILE_NAME_LIST lst1 + +#ifdef NTGUI_UNICODE +#define GUISTR(x) (L ## x) +typedef wchar_t guichar_t; +#else /* !NTGUI_UNICODE */ +#define GUISTR(x) x +typedef char guichar_t; +#endif /* NTGUI_UNICODE */ + /* Callback for altering the behavior of the Open File dialog. Makes the Filename text field contain "Current Directory" and be read-only when "Directories" is selected in the filter. This @@ -5875,7 +6006,11 @@ file_dialog_callback (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { if (msg == WM_NOTIFY) { - OFNOTIFY * notify = (OFNOTIFY *)lParam; +#ifdef NTGUI_UNICODE + OFNOTIFYW * notify = (OFNOTIFYW *)lParam; +#else /* !NTGUI_UNICODE */ + OFNOTIFYA * notify = (OFNOTIFYA *)lParam; +#endif /* NTGUI_UNICODE */ /* Detect when the Filter dropdown is changed. */ if (notify->hdr.code == CDN_TYPECHANGE || notify->hdr.code == CDN_INITDONE) @@ -5903,7 +6038,7 @@ file_dialog_callback (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) if (notify->lpOFN->nFilterIndex == 2) { CommDlg_OpenSave_SetControlText (dialog, FILE_NAME_TEXT_FIELD, - "Current Directory"); + GUISTR ("Current Directory")); EnableWindow (edit_control, FALSE); /* Note that at least on Windows 7, the above call to EnableWindow disables the window that would ordinarily have focus. If we @@ -5919,7 +6054,8 @@ file_dialog_callback (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) /* Don't override default filename on init done. */ if (notify->hdr.code == CDN_TYPECHANGE) CommDlg_OpenSave_SetControlText (dialog, - FILE_NAME_TEXT_FIELD, ""); + FILE_NAME_TEXT_FIELD, + GUISTR ("")); EnableWindow (edit_control, TRUE); } } @@ -5927,19 +6063,6 @@ file_dialog_callback (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) return 0; } -/* Since we compile with _WIN32_WINNT set to 0x0400 (for NT4 compatibility) - we end up with the old file dialogs. Define a big enough struct for the - new dialog to trick GetOpenFileName into giving us the new dialogs on - Windows 2000 and XP. */ -typedef struct -{ - OPENFILENAME real_details; - void * pReserved; - DWORD dwReserved; - DWORD FlagsEx; -} NEWOPENFILENAME; - - DEFUN ("x-file-dialog", Fx_file_dialog, Sx_file_dialog, 2, 5, 0, doc: /* Read file name, prompting with PROMPT in directory DIR. Use a file selection dialog. Select DEFAULT-FILENAME in the dialog's file @@ -5951,134 +6074,203 @@ Motif or Gtk toolkits. With the Motif toolkit, ONLY-DIR-P is ignored. Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. */) (Lisp_Object prompt, Lisp_Object dir, Lisp_Object default_filename, Lisp_Object mustmatch, Lisp_Object only_dir_p) { + /* Filter index: 1: All Files, 2: Directories only */ + static const guichar_t filter[] = + GUISTR ("All Files (*.*)\0*.*\0Directories\0*|*\0"); + + Lisp_Object filename = default_filename; struct frame *f = SELECTED_FRAME (); - Lisp_Object file = Qnil; - ptrdiff_t count = SPECPDL_INDEX (); + BOOL file_opened = FALSE; + Lisp_Object orig_dir = dir; + Lisp_Object orig_prompt = prompt; + + /* If we compile with _WIN32_WINNT set to 0x0400 (for NT4 + compatibility) we end up with the old file dialogs. Define a big + enough struct for the new dialog to trick GetOpenFileName into + giving us the new dialogs on newer versions of Windows. */ + struct { +#ifdef NTGUI_UNICODE + OPENFILENAMEW details; +#else /* !NTGUI_UNICODE */ + OPENFILENAMEA details; +#endif /* NTGUI_UNICODE */ + +#if _WIN32_WINNT < 0x500 /* < win2k */ + PVOID pvReserved; + DWORD dwReserved; + DWORD FlagsEx; +#endif /* < win2k */ + } new_file_details; + +#ifdef NTGUI_UNICODE + wchar_t filename_buf[MAX_PATH + 1]; + OPENFILENAMEW * file_details = &new_file_details.details; +#else /* not NTGUI_UNICODE */ + char filename_buf[MAX_PATH + 1]; + OPENFILENAMEA * file_details = &new_file_details.details; +#endif /* NTGUI_UNICODE */ + struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5, gcpro6; - char filename[MAX_PATH + 1]; - char init_dir[MAX_PATH + 1]; - int default_filter_index = 1; /* 1: All Files, 2: Directories only */ - - GCPRO6 (prompt, dir, default_filename, mustmatch, only_dir_p, file); - CHECK_STRING (prompt); - CHECK_STRING (dir); - - /* Create the dialog with PROMPT as title, using DIR as initial - directory and using "*" as pattern. */ - dir = Fexpand_file_name (dir, Qnil); - strncpy (init_dir, SDATA (ENCODE_FILE (dir)), MAX_PATH); - init_dir[MAX_PATH] = '\0'; - unixtodos_filename (init_dir); - - if (STRINGP (default_filename)) - { - char *file_name_only; - char *full_path_name = SDATA (ENCODE_FILE (default_filename)); - - unixtodos_filename (full_path_name); - - file_name_only = strrchr (full_path_name, '\\'); - if (!file_name_only) - file_name_only = full_path_name; - else - file_name_only++; - - strncpy (filename, file_name_only, MAX_PATH); - filename[MAX_PATH] = '\0'; - } - else - filename[0] = '\0'; - - /* The code in file_dialog_callback that attempts to set the text - of the file name edit window when handling the CDN_INITDONE - WM_NOTIFY message does not work. Setting filename to "Current - Directory" in the only_dir_p case here does work however. */ - if (filename[0] == 0 && ! NILP (only_dir_p)) - strcpy (filename, "Current Directory"); + GCPRO6 (prompt, dir, default_filename, mustmatch, only_dir_p, filename); { - NEWOPENFILENAME new_file_details; - BOOL file_opened = FALSE; - OPENFILENAME * file_details = &new_file_details.real_details; + struct gcpro gcpro1, gcpro2; + GCPRO2 (orig_dir, orig_prompt); /* There is no GCPRON, N>6. */ - /* Prevent redisplay. */ - specbind (Qinhibit_redisplay, Qt); - BLOCK_INPUT; + /* Note: under NTGUI_UNICODE, we do _NOT_ use ENCODE_FILE: the + system file encoding expected by the platform APIs (e.g. Cygwin's + POSIX implementation) may not the same as the encoding expected + by the Windows API! */ - memset (&new_file_details, 0, sizeof (new_file_details)); - /* Apparently NT4 crashes if you give it an unexpected size. - I'm not sure about Windows 9x, so play it safe. */ - if (w32_major_version > 4 && w32_major_version < 95) - file_details->lStructSize = sizeof (NEWOPENFILENAME); + CHECK_STRING (prompt); + CHECK_STRING (dir); + + dir = Fexpand_file_name (dir, Qnil); + + if (STRINGP (filename)) + filename = Ffile_name_nondirectory (filename); else - file_details->lStructSize = sizeof (OPENFILENAME); + filename = empty_unibyte_string; + +#ifdef CYGWIN + dir = Fcygwin_convert_path_to_windows (dir, Qt); + if (SCHARS (filename) > 0) + filename = Fcygwin_convert_path_to_windows (filename, Qnil); +#endif + + CHECK_STRING (dir); + CHECK_STRING (filename); + + /* The code in file_dialog_callback that attempts to set the text + of the file name edit window when handling the CDN_INITDONE + WM_NOTIFY message does not work. Setting filename to "Current + Directory" in the only_dir_p case here does work however. */ + if (SCHARS (filename) == 0 && ! NILP (only_dir_p)) + filename = build_string ("Current Directory"); + + /* Convert the values we've computed so far to system form. */ +#ifdef NTGUI_UNICODE + to_unicode (prompt, &prompt); + to_unicode (dir, &dir); + to_unicode (filename, &filename); +#else /* !NTGUI_UNICODE */ + prompt = ENCODE_FILE (prompt); + dir = ENCODE_FILE (dir); + filename = ENCODE_FILE (filename); + + /* We modify these in-place, so make copies for safety. */ + dir = Fcopy_sequence (dir); + unixtodos_filename (SDATA (dir)); + filename = Fcopy_sequence (filename); + unixtodos_filename (SDATA (filename)); +#endif /* NTGUI_UNICODE */ + + /* Fill in the structure for the call to GetOpenFileName below. For + NTGUI_UNICODE builds (which run only on NT), we just use the + actual size of the structure. For non-NTGUI_UNICODE builds, we + tell the OS we're using an old version of the structure if it's not + new enough to support the newer version. */ + memset (&new_file_details, 0, sizeof (new_file_details)); + + if (w32_major_version > 4 && w32_major_version < 95) + file_details->lStructSize = sizeof (new_file_details); + else + file_details->lStructSize = sizeof (*file_details); + + /* Set up the inout parameter for the selected file name. */ + if (SBYTES (filename) + 1 > sizeof (filename_buf)) + error ("filename too long"); + + memcpy (filename_buf, SDATA (filename), SBYTES (filename) + 1); + file_details->lpstrFile = filename_buf; + file_details->nMaxFile = sizeof (filename_buf) / sizeof (*filename_buf); file_details->hwndOwner = FRAME_W32_WINDOW (f); /* Undocumented Bug in Common File Dialog: If a filter is not specified, shell links are not resolved. */ - file_details->lpstrFilter = "All Files (*.*)\0*.*\0Directories\0*|*\0\0"; - file_details->lpstrFile = filename; - file_details->nMaxFile = sizeof (filename); - file_details->lpstrInitialDir = init_dir; - file_details->lpstrTitle = SDATA (prompt); - - if (! NILP (only_dir_p)) - default_filter_index = 2; - - file_details->nFilterIndex = default_filter_index; - + file_details->lpstrFilter = filter; + file_details->lpstrInitialDir = (guichar_t*) SDATA (dir); + file_details->lpstrTitle = (guichar_t*) SDATA (prompt); + file_details->nFilterIndex = NILP (only_dir_p) ? 1 : 2; file_details->Flags = (OFN_HIDEREADONLY | OFN_NOCHANGEDIR - | OFN_EXPLORER | OFN_ENABLEHOOK); + | OFN_EXPLORER | OFN_ENABLEHOOK); + if (!NILP (mustmatch)) { - /* Require that the path to the parent directory exists. */ - file_details->Flags |= OFN_PATHMUSTEXIST; - /* If we are looking for a file, require that it exists. */ - if (NILP (only_dir_p)) - file_details->Flags |= OFN_FILEMUSTEXIST; + /* Require that the path to the parent directory exists. */ + file_details->Flags |= OFN_PATHMUSTEXIST; + /* If we are looking for a file, require that it exists. */ + if (NILP (only_dir_p)) + file_details->Flags |= OFN_FILEMUSTEXIST; } - file_details->lpfnHook = (LPOFNHOOKPROC) file_dialog_callback; + { + int count = SPECPDL_INDEX (); + specbind (Qinhibit_redisplay, Qt); + BLOCK_INPUT; + file_details->lpfnHook = file_dialog_callback; - file_opened = GetOpenFileName (file_details); - - UNBLOCK_INPUT; +#ifdef NTGUI_UNICODE + file_opened = GetOpenFileNameW (file_details); +#else /* !NTGUI_UNICODE */ + file_opened = GetOpenFileNameA (file_details); +#endif /* NTGUI_UNICODE */ + UNBLOCK_INPUT; + unbind_to (count, Qnil); + } if (file_opened) { - dostounix_filename (filename); + /* Get an Emacs string from the value Windows gave us. */ +#ifdef NTGUI_UNICODE + filename = from_unicode ( + make_unibyte_string ( + (char*) filename_buf, + /* we get one of the two final 0 bytes for free. */ + 1 + sizeof (wchar_t) * wcslen (filename_buf))); +#else /* !NTGUI_UNICODE */ + dostounix_filename (filename_buf); + filename = DECODE_FILE (build_string (filename_buf)); +#endif /* NTGUI_UNICODE */ - if (file_details->nFilterIndex == 2) - { - /* "Directories" selected - strip dummy file name. */ - char * last = strrchr (filename, '/'); - *last = '\0'; - } +#ifdef CYGWIN + filename = Fcygwin_convert_path_from_windows (filename, Qt); +#endif /* CYGWIN */ - file = DECODE_FILE (build_string (filename)); + /* Strip the dummy filename off the end of the string if we + added it to select a directory. */ + if (file_details->nFilterIndex == 2) + { + filename = Ffile_name_directory (filename); + } } /* User canceled the dialog without making a selection. */ else if (!CommDlgExtendedError ()) - file = Qnil; + filename = Qnil; /* An error occurred, fallback on reading from the mini-buffer. */ else - file = Fcompleting_read (prompt, intern ("read-file-name-internal"), - dir, mustmatch, dir, Qfile_name_history, - default_filename, Qnil); + filename = Fcompleting_read ( + orig_prompt, + intern ("read-file-name-internal"), + orig_dir, + mustmatch, + orig_dir, + Qfile_name_history, + default_filename, + Qnil); - file = unbind_to (count, file); + UNGCPRO; } - UNGCPRO; - /* Make "Cancel" equivalent to C-g. */ - if (NILP (file)) + if (NILP (filename)) Fsignal (Qquit, Qnil); - return unbind_to (count, file); + RETURN_UNGCPRO (filename); } - + +#ifdef WINDOWSNT /* Moving files to the system recycle bin. Used by `move-file-to-trash' instead of the default moving to ~/.Trash */ DEFUN ("system-move-file-to-trash", Fsystem_move_file_to_trash, @@ -6132,6 +6324,8 @@ DEFUN ("system-move-file-to-trash", Fsystem_move_file_to_trash, return Qnil; } +#endif /* WINDOWSNT */ + /*********************************************************************** w32 specialized functions @@ -6549,7 +6743,7 @@ The following %-sequences are provided: else { char buffer[16]; - _snprintf (buffer, 16, "%d", system_status.BatteryLifePercent); + snprintf (buffer, 16, "%d", system_status.BatteryLifePercent); load_percentage = build_string (buffer); } @@ -6560,18 +6754,18 @@ The following %-sequences are provided: long m; float h; char buffer[16]; - _snprintf (buffer, 16, "%ld", seconds_left); + snprintf (buffer, 16, "%ld", seconds_left); seconds = build_string (buffer); m = seconds_left / 60; - _snprintf (buffer, 16, "%ld", m); + snprintf (buffer, 16, "%ld", m); minutes = build_string (buffer); h = seconds_left / 3600.0; - _snprintf (buffer, 16, "%3.1f", h); + snprintf (buffer, 16, "%3.1f", h); hours = build_string (buffer); - _snprintf (buffer, 16, "%ld:%02ld", m / 60, m % 60); + snprintf (buffer, 16, "%ld:%02ld", m / 60, m % 60); remain = build_string (buffer); } @@ -6733,10 +6927,10 @@ DEFUN ("default-printer-name", Fdefault_printer_name, Sdefault_printer_name, { /* a remote printer */ if (*ppi2->pServerName == '\\') - _snprintf (pname_buf, sizeof (pname_buf), "%s\\%s", ppi2->pServerName, + snprintf (pname_buf, sizeof (pname_buf), "%s\\%s", ppi2->pServerName, ppi2->pShareName); else - _snprintf (pname_buf, sizeof (pname_buf), "\\\\%s\\%s", ppi2->pServerName, + snprintf (pname_buf, sizeof (pname_buf), "\\\\%s\\%s", ppi2->pServerName, ppi2->pShareName); pname_buf[sizeof (pname_buf) - 1] = '\0'; } @@ -6754,6 +6948,292 @@ DEFUN ("default-printer-name", Fdefault_printer_name, Sdefault_printer_name, return build_string (pname_buf); } + + +/* Equivalent of strerror for W32 error codes. */ +char * +w32_strerror (int error_no) +{ + static char buf[500]; + DWORD ret; + + if (error_no == 0) + error_no = GetLastError (); + + ret = FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, + error_no, + 0, /* choose most suitable language */ + buf, sizeof (buf), NULL); + + while (ret > 0 && (buf[ret - 1] == '\n' || + buf[ret - 1] == '\r' )) + --ret; + buf[ret] = '\0'; + if (!ret) + sprintf (buf, "w32 error %u", error_no); + + return buf; +} + +/* For convenience when debugging. */ +int +w32_last_error (void) +{ + return GetLastError (); +} + +/* Cache information describing the NT system for later use. */ +void +cache_system_info (void) +{ + union + { + struct info + { + char major; + char minor; + short platform; + } info; + DWORD data; + } version; + + /* Cache the version of the operating system. */ + version.data = GetVersion (); + w32_major_version = version.info.major; + w32_minor_version = version.info.minor; + + if (version.info.platform & 0x8000) + os_subtype = OS_9X; + else + os_subtype = OS_NT; + + /* Cache page size, allocation unit, processor type, etc. */ + GetSystemInfo (&sysinfo_cache); + syspage_mask = sysinfo_cache.dwPageSize - 1; + + /* Cache os info. */ + osinfo_cache.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); + GetVersionEx (&osinfo_cache); + + w32_build_number = osinfo_cache.dwBuildNumber; + if (os_subtype == OS_9X) + w32_build_number &= 0xffff; + + w32_num_mouse_buttons = GetSystemMetrics (SM_CMOUSEBUTTONS); +} + +#ifdef EMACSDEBUG +void +_DebPrint (const char *fmt, ...) +{ + char buf[1024]; + va_list args; + + va_start (args, fmt); + vsprintf (buf, fmt, args); + va_end (args); +#if CYGWIN + fprintf (stderr, "%s", buf); +#endif + OutputDebugString (buf); +} +#endif + +int +w32_console_toggle_lock_key (int vk_code, Lisp_Object new_state) +{ + int cur_state = (GetKeyState (vk_code) & 1); + + if (NILP (new_state) + || (NUMBERP (new_state) + && ((XUINT (new_state)) & 1) != cur_state)) + { +#ifdef WINDOWSNT + faked_key = vk_code; +#endif /* WINDOWSNT */ + + keybd_event ((BYTE) vk_code, + (BYTE) MapVirtualKey (vk_code, 0), + KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); + keybd_event ((BYTE) vk_code, + (BYTE) MapVirtualKey (vk_code, 0), + KEYEVENTF_EXTENDEDKEY | 0, 0); + keybd_event ((BYTE) vk_code, + (BYTE) MapVirtualKey (vk_code, 0), + KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); + cur_state = !cur_state; + } + + return cur_state; +} + +/* Translate console modifiers to emacs modifiers. + German keyboard support (Kai Morgan Zeise 2/18/95). */ +int +w32_kbd_mods_to_emacs (DWORD mods, WORD key) +{ + int retval = 0; + + /* If we recognize right-alt and left-ctrl as AltGr, and it has been + pressed, first remove those modifiers. */ + if (!NILP (Vw32_recognize_altgr) + && (mods & (RIGHT_ALT_PRESSED | LEFT_CTRL_PRESSED)) + == (RIGHT_ALT_PRESSED | LEFT_CTRL_PRESSED)) + mods &= ~ (RIGHT_ALT_PRESSED | LEFT_CTRL_PRESSED); + + if (mods & (RIGHT_ALT_PRESSED | LEFT_ALT_PRESSED)) + retval = ((NILP (Vw32_alt_is_meta)) ? alt_modifier : meta_modifier); + + if (mods & (RIGHT_CTRL_PRESSED | LEFT_CTRL_PRESSED)) + { + retval |= ctrl_modifier; + if ((mods & (RIGHT_CTRL_PRESSED | LEFT_CTRL_PRESSED)) + == (RIGHT_CTRL_PRESSED | LEFT_CTRL_PRESSED)) + retval |= meta_modifier; + } + + if (mods & LEFT_WIN_PRESSED) + retval |= w32_key_to_modifier (VK_LWIN); + if (mods & RIGHT_WIN_PRESSED) + retval |= w32_key_to_modifier (VK_RWIN); + if (mods & APPS_PRESSED) + retval |= w32_key_to_modifier (VK_APPS); + if (mods & SCROLLLOCK_ON) + retval |= w32_key_to_modifier (VK_SCROLL); + + /* Just in case someone wanted the original behavior, make it + optional by setting w32-capslock-is-shiftlock to t. */ + if (NILP (Vw32_capslock_is_shiftlock) + /* Keys that should _not_ be affected by CapsLock. */ + && ( (key == VK_BACK) + || (key == VK_TAB) + || (key == VK_CLEAR) + || (key == VK_RETURN) + || (key == VK_ESCAPE) + || ((key >= VK_SPACE) && (key <= VK_HELP)) + || ((key >= VK_NUMPAD0) && (key <= VK_F24)) + || ((key >= VK_NUMPAD_CLEAR) && (key <= VK_NUMPAD_DELETE)) + )) + { + /* Only consider shift state. */ + if ((mods & SHIFT_PRESSED) != 0) + retval |= shift_modifier; + } + else + { + /* Ignore CapsLock state if not enabled. */ + if (NILP (Vw32_enable_caps_lock)) + mods &= ~CAPSLOCK_ON; + if ((mods & (SHIFT_PRESSED | CAPSLOCK_ON)) != 0) + retval |= shift_modifier; + } + + return retval; +} + +/* The return code indicates key code size. cpID is the codepage to + use for translation to Unicode; -1 means use the current console + input codepage. */ +int +w32_kbd_patch_key (KEY_EVENT_RECORD *event, int cpId) +{ + unsigned int key_code = event->wVirtualKeyCode; + unsigned int mods = event->dwControlKeyState; + BYTE keystate[256]; + static BYTE ansi_code[4]; + static int isdead = 0; + + if (isdead == 2) + { + event->uChar.AsciiChar = ansi_code[2]; + isdead = 0; + return 1; + } + if (event->uChar.AsciiChar != 0) + return 1; + + memset (keystate, 0, sizeof (keystate)); + keystate[key_code] = 0x80; + if (mods & SHIFT_PRESSED) + keystate[VK_SHIFT] = 0x80; + if (mods & CAPSLOCK_ON) + keystate[VK_CAPITAL] = 1; + /* If we recognize right-alt and left-ctrl as AltGr, set the key + states accordingly before invoking ToAscii. */ + if (!NILP (Vw32_recognize_altgr) + && (mods & LEFT_CTRL_PRESSED) && (mods & RIGHT_ALT_PRESSED)) + { + keystate[VK_CONTROL] = 0x80; + keystate[VK_LCONTROL] = 0x80; + keystate[VK_MENU] = 0x80; + keystate[VK_RMENU] = 0x80; + } + +#if 0 + /* Because of an OS bug, ToAscii corrupts the stack when called to + convert a dead key in console mode on NT4. Unfortunately, trying + to check for dead keys using MapVirtualKey doesn't work either - + these functions apparently use internal information about keyboard + layout which doesn't get properly updated in console programs when + changing layout (though apparently it gets partly updated, + otherwise ToAscii wouldn't crash). */ + if (is_dead_key (event->wVirtualKeyCode)) + return 0; +#endif + + /* On NT, call ToUnicode instead and then convert to the current + console input codepage. */ + if (os_subtype == OS_NT) + { + WCHAR buf[128]; + + isdead = ToUnicode (event->wVirtualKeyCode, event->wVirtualScanCode, + keystate, buf, 128, 0); + if (isdead > 0) + { + /* When we are called from the GUI message processing code, + we are passed the current keyboard codepage, a positive + number, to use below. */ + if (cpId == -1) + cpId = GetConsoleCP (); + + event->uChar.UnicodeChar = buf[isdead - 1]; + isdead = WideCharToMultiByte (cpId, 0, buf, isdead, + ansi_code, 4, NULL, NULL); + } + else + isdead = 0; + } + else + { + isdead = ToAscii (event->wVirtualKeyCode, event->wVirtualScanCode, + keystate, (LPWORD) ansi_code, 0); + } + + if (isdead == 0) + return 0; + event->uChar.AsciiChar = ansi_code[0]; + return isdead; +} + + +void +w32_sys_ring_bell (struct frame *f) +{ + if (sound_type == 0xFFFFFFFF) + { + Beep (666, 100); + } + else if (sound_type == MB_EMACS_SILENT) + { + /* Do nothing. */ + } + else + MessageBeep (sound_type); +} + /*********************************************************************** Initialization @@ -7121,10 +7601,10 @@ only be necessary if the default setting causes problems. */); defsubr (&Sfile_system_info); defsubr (&Sdefault_printer_name); + defsubr (&Sset_message_beep); check_window_system_func = check_w32; - hourglass_timer = 0; hourglass_hwnd = NULL; @@ -7139,7 +7619,9 @@ only be necessary if the default setting causes problems. */); staticpro (&last_show_tip_args); defsubr (&Sx_file_dialog); +#ifdef WINDOWSNT defsubr (&Ssystem_move_file_to_trash); +#endif } @@ -7223,9 +7705,3 @@ w32_abort (void) } } -/* For convenience when debugging. */ -int -w32_last_error (void) -{ - return GetLastError (); -} diff --git a/src/w32font.c b/src/w32font.c index cfd453282dd..c135d061e7d 100644 --- a/src/w32font.c +++ b/src/w32font.c @@ -18,6 +18,7 @@ along with GNU Emacs. If not, see . */ #include #include +#include #include #include #include @@ -1436,6 +1437,9 @@ w32font_coverage_ok (FONTSIGNATURE * coverage, BYTE charset) return 1; } +#ifndef WINDOWSNT +#define _strlwr strlwr +#endif /* !WINDOWSNT */ static int check_face_name (LOGFONT *font, char *full_name) diff --git a/src/w32heap.c b/src/w32heap.c index 26cc9aa0a0f..f0753404792 100644 --- a/src/w32heap.c +++ b/src/w32heap.c @@ -33,10 +33,9 @@ along with GNU Emacs. If not, see . */ SYSTEM_INFO sysinfo_cache; /* This gives us version, build, and platform identification. */ +extern unsigned long syspage_mask; OSVERSIONINFO osinfo_cache; -unsigned long syspage_mask = 0; - /* The major and minor versions of NT. */ int w32_major_version; int w32_minor_version; @@ -45,44 +44,6 @@ int w32_build_number; /* Distinguish between Windows NT and Windows 95. */ int os_subtype; -/* Cache information describing the NT system for later use. */ -void -cache_system_info (void) -{ - union - { - struct info - { - char major; - char minor; - short platform; - } info; - DWORD data; - } version; - - /* Cache the version of the operating system. */ - version.data = GetVersion (); - w32_major_version = version.info.major; - w32_minor_version = version.info.minor; - - if (version.info.platform & 0x8000) - os_subtype = OS_9X; - else - os_subtype = OS_NT; - - /* Cache page size, allocation unit, processor type, etc. */ - GetSystemInfo (&sysinfo_cache); - syspage_mask = sysinfo_cache.dwPageSize - 1; - - /* Cache os info. */ - osinfo_cache.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); - GetVersionEx (&osinfo_cache); - - w32_build_number = osinfo_cache.dwBuildNumber; - if (os_subtype == OS_9X) - w32_build_number &= 0xffff; -} - /* Emulate getpagesize. */ int getpagesize (void) diff --git a/src/w32inevt.c b/src/w32inevt.c index 731dd6715dc..ca97fed1fe6 100644 --- a/src/w32inevt.c +++ b/src/w32inevt.c @@ -71,6 +71,9 @@ w32_read_console_input (HANDLE h, INPUT_RECORD *rec, DWORD recsize, : ReadConsoleInputA (h, rec, recsize, waiting)); } +/* Set by w32_console_toggle_lock_key. */ +int faked_key; + static int fill_queue (BOOL block) { @@ -111,67 +114,7 @@ get_frame (void) /* Translate console modifiers to emacs modifiers. German keyboard support (Kai Morgan Zeise 2/18/95). */ -int -w32_kbd_mods_to_emacs (DWORD mods, WORD key) -{ - int retval = 0; - /* If we recognize right-alt and left-ctrl as AltGr, and it has been - pressed, first remove those modifiers. */ - if (!NILP (Vw32_recognize_altgr) - && (mods & (RIGHT_ALT_PRESSED | LEFT_CTRL_PRESSED)) - == (RIGHT_ALT_PRESSED | LEFT_CTRL_PRESSED)) - mods &= ~ (RIGHT_ALT_PRESSED | LEFT_CTRL_PRESSED); - - if (mods & (RIGHT_ALT_PRESSED | LEFT_ALT_PRESSED)) - retval = ((NILP (Vw32_alt_is_meta)) ? alt_modifier : meta_modifier); - - if (mods & (RIGHT_CTRL_PRESSED | LEFT_CTRL_PRESSED)) - { - retval |= ctrl_modifier; - if ((mods & (RIGHT_CTRL_PRESSED | LEFT_CTRL_PRESSED)) - == (RIGHT_CTRL_PRESSED | LEFT_CTRL_PRESSED)) - retval |= meta_modifier; - } - - if (mods & LEFT_WIN_PRESSED) - retval |= w32_key_to_modifier (VK_LWIN); - if (mods & RIGHT_WIN_PRESSED) - retval |= w32_key_to_modifier (VK_RWIN); - if (mods & APPS_PRESSED) - retval |= w32_key_to_modifier (VK_APPS); - if (mods & SCROLLLOCK_ON) - retval |= w32_key_to_modifier (VK_SCROLL); - - /* Just in case someone wanted the original behavior, make it - optional by setting w32-capslock-is-shiftlock to t. */ - if (NILP (Vw32_capslock_is_shiftlock) - /* Keys that should _not_ be affected by CapsLock. */ - && ( (key == VK_BACK) - || (key == VK_TAB) - || (key == VK_CLEAR) - || (key == VK_RETURN) - || (key == VK_ESCAPE) - || ((key >= VK_SPACE) && (key <= VK_HELP)) - || ((key >= VK_NUMPAD0) && (key <= VK_F24)) - || ((key >= VK_NUMPAD_CLEAR) && (key <= VK_NUMPAD_DELETE)) - )) - { - /* Only consider shift state. */ - if ((mods & SHIFT_PRESSED) != 0) - retval |= shift_modifier; - } - else - { - /* Ignore CapsLock state if not enabled. */ - if (NILP (Vw32_enable_caps_lock)) - mods &= ~CAPSLOCK_ON; - if ((mods & (SHIFT_PRESSED | CAPSLOCK_ON)) != 0) - retval |= shift_modifier; - } - - return retval; -} #if 0 /* Return nonzero if the virtual key is a dead key. */ @@ -188,90 +131,7 @@ is_dead_key (int wparam) /* The return code indicates key code size. cpID is the codepage to use for translation to Unicode; -1 means use the current console input codepage. */ -int -w32_kbd_patch_key (KEY_EVENT_RECORD *event, int cpId) -{ - unsigned int key_code = event->wVirtualKeyCode; - unsigned int mods = event->dwControlKeyState; - BYTE keystate[256]; - static BYTE ansi_code[4]; - static int isdead = 0; - if (isdead == 2) - { - event->uChar.AsciiChar = ansi_code[2]; - isdead = 0; - return 1; - } - if (event->uChar.AsciiChar != 0) - return 1; - - memset (keystate, 0, sizeof (keystate)); - keystate[key_code] = 0x80; - if (mods & SHIFT_PRESSED) - keystate[VK_SHIFT] = 0x80; - if (mods & CAPSLOCK_ON) - keystate[VK_CAPITAL] = 1; - /* If we recognize right-alt and left-ctrl as AltGr, set the key - states accordingly before invoking ToAscii. */ - if (!NILP (Vw32_recognize_altgr) - && (mods & LEFT_CTRL_PRESSED) && (mods & RIGHT_ALT_PRESSED)) - { - keystate[VK_CONTROL] = 0x80; - keystate[VK_LCONTROL] = 0x80; - keystate[VK_MENU] = 0x80; - keystate[VK_RMENU] = 0x80; - } - -#if 0 - /* Because of an OS bug, ToAscii corrupts the stack when called to - convert a dead key in console mode on NT4. Unfortunately, trying - to check for dead keys using MapVirtualKey doesn't work either - - these functions apparently use internal information about keyboard - layout which doesn't get properly updated in console programs when - changing layout (though apparently it gets partly updated, - otherwise ToAscii wouldn't crash). */ - if (is_dead_key (event->wVirtualKeyCode)) - return 0; -#endif - - /* On NT, call ToUnicode instead and then convert to the current - console input codepage. */ - if (os_subtype == OS_NT) - { - WCHAR buf[128]; - - isdead = ToUnicode (event->wVirtualKeyCode, event->wVirtualScanCode, - keystate, buf, 128, 0); - if (isdead > 0) - { - /* When we are called from the GUI message processing code, - we are passed the current keyboard codepage, a positive - number, to use below. */ - if (cpId == -1) - cpId = GetConsoleCP (); - - event->uChar.UnicodeChar = buf[isdead - 1]; - isdead = WideCharToMultiByte (cpId, 0, buf, isdead, - ansi_code, 4, NULL, NULL); - } - else - isdead = 0; - } - else - { - isdead = ToAscii (event->wVirtualKeyCode, event->wVirtualScanCode, - keystate, (LPWORD) ansi_code, 0); - } - - if (isdead == 0) - return 0; - event->uChar.AsciiChar = ansi_code[0]; - return isdead; -} - - -static int faked_key = 0; /* return code -1 means that event_queue_ptr won't be incremented. In other word, this event makes two key codes. (by himi) */ @@ -532,32 +392,6 @@ key_event (KEY_EVENT_RECORD *event, struct input_event *emacs_ev, int *isdead) return 1; } -int -w32_console_toggle_lock_key (int vk_code, Lisp_Object new_state) -{ - int cur_state = (GetKeyState (vk_code) & 1); - - if (NILP (new_state) - || (NUMBERP (new_state) - && ((XUINT (new_state)) & 1) != cur_state)) - { - faked_key = vk_code; - - keybd_event ((BYTE) vk_code, - (BYTE) MapVirtualKey (vk_code, 0), - KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); - keybd_event ((BYTE) vk_code, - (BYTE) MapVirtualKey (vk_code, 0), - KEYEVENTF_EXTENDEDKEY | 0, 0); - keybd_event ((BYTE) vk_code, - (BYTE) MapVirtualKey (vk_code, 0), - KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); - cur_state = !cur_state; - } - - return cur_state; -} - /* Mouse position hook. */ void w32_console_mouse_position (FRAME_PTR *f, diff --git a/src/w32menu.c b/src/w32menu.c index 3aa4c8bc96d..886fd55bbe9 100644 --- a/src/w32menu.c +++ b/src/w32menu.c @@ -21,7 +21,6 @@ along with GNU Emacs. If not, see . */ #include #include -#include #include #include "lisp.h" @@ -41,6 +40,14 @@ along with GNU Emacs. If not, see . */ if this is not done before the other system files. */ #include "w32term.h" +/* Cygwin does not support the multibyte string functions declared in + * mbstring.h below --- but that's okay: because Cygwin is + * UNICODE-only, we don't need to use these functions anyway. */ + +#ifndef NTGUI_UNICODE +#include +#endif /* !NTGUI_UNICODE */ + /* Load sys/types.h if not already loaded. In some systems loading it twice is suicidal. */ #ifndef makedev @@ -79,10 +86,17 @@ typedef int (WINAPI * MessageBoxW_Proc) ( IN WCHAR *caption, IN UINT type); +#ifdef NTGUI_UNICODE +#define get_menu_item_info GetMenuItemInfoA +#define set_menu_item_info SetMenuItemInfoA +#define unicode_append_menu AppendMenuW +#define unicode_message_box MessageBoxW +#else /* !NTGUI_UNICODE */ GetMenuItemInfoA_Proc get_menu_item_info = NULL; SetMenuItemInfoA_Proc set_menu_item_info = NULL; AppendMenuW_Proc unicode_append_menu = NULL; MessageBoxW_Proc unicode_message_box = NULL; +#endif /* NTGUI_UNICODE */ Lisp_Object Qdebug_on_next_call; @@ -99,6 +113,7 @@ static void utf8to16 (unsigned char *, int, WCHAR *); static int fill_in_menu (HMENU, widget_value *); void w32_free_menu_strings (HWND); + /* This is set nonzero after the user activates the menu bar, and set @@ -1406,6 +1421,7 @@ add_menu_item (HMENU menu, widget_value *wv, HMENU item) nlen++; } } +#ifndef NTGUI_UNICODE else { /* If encoded with the system codepage, use multibyte string @@ -1416,6 +1432,7 @@ add_menu_item (HMENU menu, widget_value *wv, HMENU item) nlen++; } } +#endif /* !NTGUI_UNICODE */ if (nlen > orig_len) { @@ -1430,6 +1447,7 @@ add_menu_item (HMENU menu, widget_value *wv, HMENU item) *q++ = *p; *q++ = *p++; } +#ifndef NTGUI_UNICODE else { if (_mbsnextc (p) == '&') @@ -1441,6 +1459,7 @@ add_menu_item (HMENU menu, widget_value *wv, HMENU item) p = _mbsinc (p); q = _mbsinc (q); } +#endif /* !NTGUI_UNICODE */ } *q = '\0'; } @@ -1487,6 +1506,8 @@ add_menu_item (HMENU menu, widget_value *wv, HMENU item) item != NULL ? (UINT) item : (UINT) wv->call_data, utf16_string); + +#ifndef NTGUI_UNICODE /* Fallback does not apply when always UNICODE */ if (!return_value) { /* On W9x/ME, Unicode menus are not supported, though AppendMenuW @@ -1505,6 +1526,7 @@ add_menu_item (HMENU menu, widget_value *wv, HMENU item) if (osinfo_cache.dwPlatformId != VER_PLATFORM_WIN32_NT) unicode_append_menu = NULL; } +#endif /* NTGUI_UNICODE */ if (unicode_append_menu && (fuFlags & MF_OWNERDRAW)) local_free (out_string); @@ -1724,10 +1746,12 @@ syms_of_w32menu (void) void globals_of_w32menu (void) { +#ifndef NTGUI_UNICODE /* See if Get/SetMenuItemInfo functions are available. */ HMODULE user32 = GetModuleHandle ("user32.dll"); get_menu_item_info = (GetMenuItemInfoA_Proc) GetProcAddress (user32, "GetMenuItemInfoA"); set_menu_item_info = (SetMenuItemInfoA_Proc) GetProcAddress (user32, "SetMenuItemInfoA"); unicode_append_menu = (AppendMenuW_Proc) GetProcAddress (user32, "AppendMenuW"); unicode_message_box = (MessageBoxW_Proc) GetProcAddress (user32, "MessageBoxW"); +#endif /* !NTGUI_UNICODE */ } diff --git a/src/w32proc.c b/src/w32proc.c index 33aed5eb8e3..0cc62aebca0 100644 --- a/src/w32proc.c +++ b/src/w32proc.c @@ -68,20 +68,6 @@ extern BOOL WINAPI IsValidLocale (LCID, DWORD); Lisp_Object Qhigh, Qlow; -#ifdef EMACSDEBUG -void -_DebPrint (const char *fmt, ...) -{ - char buf[1024]; - va_list args; - - va_start (args, fmt); - vsprintf (buf, fmt, args); - va_end (args); - OutputDebugString (buf); -} -#endif - typedef void (_CALLBACK_ *signal_handler) (int); /* Signal handlers...SIG_DFL == 0 so this is initialized correctly. */ diff --git a/src/w32select.c b/src/w32select.c index 59ff4405368..6b855b43a35 100644 --- a/src/w32select.c +++ b/src/w32select.c @@ -82,6 +82,11 @@ along with GNU Emacs. If not, see . */ #include "coding.h" #include "composite.h" +#ifdef CYGWIN +#include +#include +#define _memccpy memccpy +#endif static HGLOBAL convert_to_handle_as_ascii (void); static HGLOBAL convert_to_handle_as_coded (Lisp_Object coding_system); diff --git a/src/w32term.c b/src/w32term.c index 6948a98998e..0dffcd0bf0a 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -52,7 +52,14 @@ along with GNU Emacs. If not, see . */ #include "atimer.h" #include "keymap.h" +#ifdef WINDOWSNT #include "w32heap.h" +#endif + +#ifndef WINDOWSNT +#include /* for get_osfhandle */ +#endif + #include #include "font.h" @@ -103,7 +110,7 @@ struct w32_display_info *x_display_list; Lisp_Object w32_display_name_list; -#ifndef GLYPHSET +#if !defined (GLYPHSET) && _WIN32_WINNT < 0x500 /* Pre Windows 2000, this was not available, but define it here so that Emacs compiled on such a platform will run on newer versions. */ @@ -122,7 +129,7 @@ typedef struct tagGLYPHSET WCRANGE ranges[1]; } GLYPHSET; -#endif +#endif /* compiling for pre-Win2k */ /* Dynamic linking to SetLayeredWindowAttribute (only since 2000). */ BOOL (WINAPI *pfnSetLayeredWindowAttributes) (HWND, COLORREF, BYTE, DWORD); @@ -191,6 +198,13 @@ static int volatile input_signal_count; static int input_signal_count; #endif +#ifdef CYGWIN +int w32_message_fd = -1; +#endif /* CYGWIN */ + +/* Keyboard code page - may be changed by language-change events. */ +static int keyboard_codepage; + static void x_update_window_end (struct window *, int, int); static void w32_handle_tool_bar_click (struct frame *, struct input_event *); @@ -4158,6 +4172,7 @@ w32_read_socket (struct terminal *terminal, int expected, struct frame *f; struct w32_display_info *dpyinfo = &one_w32_display_info; Mouse_HLInfo *hlinfo = &dpyinfo->mouse_highlight; + static char buf[1]; if (interrupt_input_blocked) { @@ -4171,12 +4186,19 @@ w32_read_socket (struct terminal *terminal, int expected, /* So people can tell when we have read the available input. */ input_signal_count++; + /* Process any incoming thread messages. */ + drain_message_queue (); + /* TODO: ghostscript integration. */ while (get_next_msg (&msg, FALSE)) { struct input_event inev; int do_help = 0; + /* DebPrint (("w32_read_socket: %s time:%u\n", */ + /* w32_name_of_message (msg.msg.message), */ + /* msg.msg.time)); */ + EVENT_INIT (inev); inev.kind = NO_EVENT; inev.arg = Qnil; @@ -6309,8 +6331,15 @@ w32_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) w32_defined_color (0, "black", &color, 1); } - /* Add the default keyboard. */ +#ifdef WINDOWSNT + /* Add the default keyboard. When !WINDOWSNT, we're using the + standard Emacs console handling machinery and don't need an + explicit FD here. */ add_keyboard_wait_descriptor (0); +#elif CYGWIN + /* /dev/windows wakes us up when we have a thread message pending. */ + add_keyboard_wait_descriptor (w32_message_fd); +#endif /* Create Fringe Bitmaps and store them for later use. @@ -6321,15 +6350,6 @@ w32_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) the bitmaps. */ w32_init_fringe (terminal->rif); -#ifdef F_SETOWN - fcntl (connection, F_SETOWN, getpid ()); -#endif /* ! defined (F_SETOWN) */ - -#ifdef SIGIO - if (interrupt_input) - init_sigio (connection); -#endif /* ! defined (SIGIO) */ - UNBLOCK_INPUT; return dpyinfo; @@ -6379,6 +6399,7 @@ x_delete_display (struct w32_display_info *dpyinfo) w32_reset_fringes (); } + /* Set up use of W32. */ @@ -6416,6 +6437,11 @@ w32_initialize (void) set_user_model (L"GNU.Emacs"); } +#ifdef CYGWIN + if ((w32_message_fd = open ("/dev/windows", O_RDWR | O_CLOEXEC)) == -1) + fatal ("opening /dev/windows: %s", strerror (errno)); +#endif /* CYGWIN */ + /* Initialize w32_use_visible_system_caret based on whether a screen reader is in use. */ if (!SystemParametersInfo (SPI_GETSCREENREADER, 0, @@ -6576,4 +6602,6 @@ With MS Windows or Nextstep, the value is t. */); staticpro (&last_mouse_motion_frame); last_mouse_motion_frame = Qnil; + + Fprovide (intern_c_string ("w32"), Qnil); } diff --git a/src/w32term.h b/src/w32term.h index 5d756f435e4..434eb92fdea 100644 --- a/src/w32term.h +++ b/src/w32term.h @@ -19,6 +19,8 @@ along with GNU Emacs. If not, see . */ /* Added by Kevin Gallo */ #include "w32gui.h" +#include "frame.h" +#include "atimer.h" #define BLACK_PIX_DEFAULT(f) PALETTERGB(0,0,0) @@ -195,11 +197,47 @@ Lisp_Object display_x_get_resource (struct w32_display_info *, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object); +extern void x_focus_on_frame (struct frame *f); + +/* also defined in xterm.h XXX: factor out to common header */ + extern struct w32_display_info *w32_term_init (Lisp_Object, char *, char *); - +extern void check_w32 (void); +extern int w32_defined_color (FRAME_PTR f, char *color, + XColor *color_def, int alloc); +extern void set_frame_menubar (struct frame *f, int first_time, int deep_p); +extern void x_set_window_size (struct frame *f, int change_grav, + int cols, int rows); extern int x_display_pixel_height (struct w32_display_info *); extern int x_display_pixel_width (struct w32_display_info *); +extern void x_sync (struct frame *); +extern Lisp_Object x_get_focus_frame (struct frame *); +extern void x_set_mouse_position (struct frame *f, int h, int v); +extern void x_set_mouse_pixel_position (struct frame *f, int pix_x, int pix_y); +extern void x_make_frame_visible (struct frame *f); +extern void x_make_frame_invisible (struct frame *f); +extern void x_iconify_frame (struct frame *f); +extern int x_char_width (struct frame *f); +extern int x_char_height (struct frame *f); +extern int x_pixel_width (struct frame *f); +extern int x_pixel_height (struct frame *f); +extern void x_set_frame_alpha (struct frame *f); +extern void x_set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object); +extern void x_set_tool_bar_lines (struct frame *f, + Lisp_Object value, + Lisp_Object oldval); +extern void x_activate_menubar (struct frame *); +extern int x_bitmap_icon (struct frame *, Lisp_Object); +extern void initialize_frame_menubar (struct frame *); +extern void x_free_frame_resources (struct frame *); +extern void x_wm_set_size_hint (struct frame *, long, int); +extern void x_real_positions (struct frame *, int *, int *); + +/* w32inevt.c */ +extern int w32_kbd_patch_key (KEY_EVENT_RECORD *event, int cpId); +extern int w32_kbd_mods_to_emacs (DWORD mods, WORD key); + #define PIX_TYPE COLORREF @@ -573,8 +611,9 @@ do { \ #define WM_EMACS_HIDE_CARET (WM_EMACS_START + 18) #define WM_EMACS_SETCURSOR (WM_EMACS_START + 19) #define WM_EMACS_PAINT (WM_EMACS_START + 20) -#define WM_EMACS_BRINGTOTOP (WM_EMACS_START + 21) -#define WM_EMACS_END (WM_EMACS_START + 22) +#define WM_EMACS_BRINGTOTOP (WM_EMACS_START + 22) +#define WM_EMACS_INPUT_READY (WM_EMACS_START + 23) +#define WM_EMACS_END (WM_EMACS_START + 24) #define WND_FONTWIDTH_INDEX (0) #define WND_LINEHEIGHT_INDEX (4) @@ -596,6 +635,8 @@ typedef struct W32Msg { RECT rect; } W32Msg; +extern BOOL prepend_msg (W32Msg *lpmsg); + /* Structure for recording message when input thread must return a result that depends on lisp thread to compute. Lisp thread can complete deferred messages out of order. */ @@ -699,3 +740,19 @@ extern HWND w32_system_caret_hwnd; extern int w32_system_caret_height; extern int w32_system_caret_x; extern int w32_system_caret_y; + +#if EMACSDEBUG +extern const char* +w32_name_of_message (UINT msg); +#endif /* EMACSDEBUG */ + +extern void syms_of_w32term (void); +extern void syms_of_w32menu (void); +extern void syms_of_w32fns (void); + +extern void globals_of_w32menu (void); +extern void globals_of_w32fns (void); + +#ifdef CYGWIN +extern int w32_message_fd; +#endif /* CYGWIN */ diff --git a/src/w32xfns.c b/src/w32xfns.c index 62e45dd987b..dfafb0ac742 100644 --- a/src/w32xfns.c +++ b/src/w32xfns.c @@ -20,6 +20,7 @@ along with GNU Emacs. If not, see . */ #include #include #include + #include "lisp.h" #include "keyboard.h" #include "frame.h" @@ -33,7 +34,11 @@ along with GNU Emacs. If not, see . */ #define myfree(lp) GlobalFreePtr (lp) CRITICAL_SECTION critsect; + +#ifdef WINDOWSNT extern HANDLE keyboard_handle; +#endif /* WINDOWSNT */ + HANDLE input_available = NULL; HANDLE interrupt_handle = NULL; @@ -44,7 +49,11 @@ init_crit (void) /* For safety, input_available should only be reset by get_next_msg when the input queue is empty, so make it a manual reset event. */ - keyboard_handle = input_available = CreateEvent (NULL, TRUE, FALSE, NULL); + input_available = CreateEvent (NULL, TRUE, FALSE, NULL); + +#ifdef WINDOWSNT + keyboard_handle = input_available; +#endif /* WINDOWSNT */ /* interrupt_handle is signaled when quit (C-g) is detected, so that blocking system calls can be interrupted. We make it a manual @@ -241,6 +250,22 @@ get_next_msg (W32Msg * lpmsg, BOOL bWait) return (bRet); } +extern char * w32_strerror (int error_no); + +/* Tell the main thread that we have input available; if the main + thread is blocked in select(), we wake it up here. */ +static void +notify_msg_ready (void) +{ + SetEvent (input_available); + +#ifdef CYGWIN + /* Wakes up the main thread, which is blocked select()ing for /dev/windows, + among other files. */ + (void) PostThreadMessage (dwMainThreadId, WM_EMACS_INPUT_READY, 0, 0); +#endif /* CYGWIN */ +} + BOOL post_msg (W32Msg * lpmsg) { @@ -264,8 +289,7 @@ post_msg (W32Msg * lpmsg) } lpTail = lpNew; - SetEvent (input_available); - + notify_msg_ready (); leave_crit (); return (TRUE); @@ -286,7 +310,7 @@ prepend_msg (W32Msg *lpmsg) nQueue++; lpNew->lpNext = lpHead; lpHead = lpNew; - + notify_msg_ready (); leave_crit (); return (TRUE); diff --git a/src/window.c b/src/window.c index 38124cb13a9..117e86065e3 100644 --- a/src/window.c +++ b/src/window.c @@ -44,7 +44,7 @@ along with GNU Emacs. If not, see . */ #ifdef HAVE_X_WINDOWS #include "xterm.h" #endif /* HAVE_X_WINDOWS */ -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI #include "w32term.h" #endif #ifdef MSDOS diff --git a/src/xdisp.c b/src/xdisp.c index 13b03736bde..9b9b91a8905 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -302,7 +302,7 @@ along with GNU Emacs. If not, see . */ #ifdef HAVE_X_WINDOWS #include "xterm.h" #endif -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI #include "w32term.h" #endif #ifdef HAVE_NS @@ -29361,7 +29361,7 @@ init_xdisp (void) /* Since w32 does not support atimers, it defines its own implementation of the following three functions in w32fns.c. */ -#ifndef WINDOWSNT +#ifndef HAVE_NTGUI /* Platform-independent portion of hourglass implementation. */ @@ -29407,4 +29407,4 @@ cancel_hourglass (void) hide_hourglass (); #endif } -#endif /* ! WINDOWSNT */ +#endif /* ! HAVE_NTGUI */ diff --git a/src/xfaces.c b/src/xfaces.c index 5554c4aa705..67e9c2c37c6 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -228,13 +228,13 @@ along with GNU Emacs. If not, see . */ #ifdef HAVE_WINDOW_SYSTEM #include TERM_HEADER #include "fontset.h" -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI #undef FRAME_X_DISPLAY_INFO #define FRAME_X_DISPLAY_INFO FRAME_W32_DISPLAY_INFO #define x_display_info w32_display_info #define check_x check_w32 #define GCGraphicsExposures 0 -#endif /* WINDOWSNT */ +#endif /* HAVE_NTGUI */ #ifdef HAVE_NS #undef FRAME_X_DISPLAY_INFO @@ -663,7 +663,7 @@ x_free_gc (struct frame *f, GC gc) #endif /* HAVE_X_WINDOWS */ -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI /* W32 emulation of GCs */ static inline GC @@ -687,7 +687,7 @@ x_free_gc (struct frame *f, GC gc) xfree (gc); } -#endif /* WINDOWSNT */ +#endif /* HAVE_NTGUI */ #ifdef HAVE_NS /* NS emulation of GCs */ @@ -757,7 +757,7 @@ init_frame_faces (struct frame *f) #ifdef HAVE_X_WINDOWS if (!FRAME_X_P (f) || FRAME_X_WINDOW (f)) #endif -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI if (!FRAME_WINDOW_P (f) || FRAME_W32_WINDOW (f)) #endif #ifdef HAVE_NS @@ -1136,7 +1136,7 @@ defined_color (struct frame *f, const char *color_name, XColor *color_def, else if (FRAME_X_P (f)) return x_defined_color (f, color_name, color_def, alloc); #endif -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI else if (FRAME_W32_P (f)) return w32_defined_color (f, color_name, color_def, alloc); #endif @@ -3283,7 +3283,7 @@ FRAME 0 means change the face on all frames, and change the default param = Qbackground_color; } #ifdef HAVE_WINDOW_SYSTEM -#ifndef WINDOWSNT +#ifndef HAVE_NTGUI else if (EQ (face, Qscroll_bar)) { /* Changing the colors of `scroll-bar' sets frame parameters @@ -3293,7 +3293,7 @@ FRAME 0 means change the face on all frames, and change the default else if (EQ (attr, QCbackground)) param = Qscroll_bar_background; } -#endif /* not WINDOWSNT */ +#endif /* not HAVE_NTGUI */ else if (EQ (face, Qborder)) { /* Changing background color of `border' sets frame parameter @@ -6400,7 +6400,7 @@ where R,G,B are numbers between 0 and 255 and name is an arbitrary string. */) if (num >= 0 && name[num] == '\n') name[num] = 0; cmap = Fcons (Fcons (build_string (name), -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI make_number (RGB (red, green, blue))), #else make_number ((red << 16) | (green << 8) | blue)), diff --git a/src/xterm.h b/src/xterm.h index 2d718f49118..8b8ae2a12f5 100644 --- a/src/xterm.h +++ b/src/xterm.h @@ -967,7 +967,6 @@ extern int x_alloc_lighter_color_for_widget (Widget, Display *, Colormap, double, int); #endif extern int x_alloc_nearest_color (struct frame *, Colormap, XColor *); -extern void x_query_color (struct frame *f, XColor *); extern void x_clear_area (Display *, Window, int, int, int, int, int); #if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK extern void x_mouse_leave (struct x_display_info *); From 5e0944c6f072cc1b9304b7369bf61091ffd23ea7 Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Mon, 17 Sep 2012 03:55:03 -0800 Subject: [PATCH 002/272] Fix emacsclient to work with cygw32 --- lib-src/emacsclient.c | 71 ++++++++++++++++++++++--------------------- lisp/server.el | 10 ++++-- 2 files changed, 44 insertions(+), 37 deletions(-) diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 07300dbf249..103473abdb1 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -44,6 +44,10 @@ char *w32_getenv (char *); #else /* !WINDOWSNT */ +# ifdef HAVE_NTGUI +# include +# endif /* HAVE_NTGUI */ + # include "syswait.h" # ifdef HAVE_INET_SOCKETS @@ -182,9 +186,7 @@ struct option longopts[] = { "socket-name", required_argument, NULL, 's' }, #endif { "server-file", required_argument, NULL, 'f' }, -#ifndef WINDOWSNT { "display", required_argument, NULL, 'd' }, -#endif { "parent-id", required_argument, NULL, 'p' }, { 0, 0, 0, 0 } }; @@ -385,32 +387,6 @@ w32_getenv (char *envvar) return NULL; } -void -w32_set_user_model_id (void) -{ - HMODULE shell; - HRESULT (WINAPI * set_user_model) (wchar_t * id); - - /* On Windows 7 and later, we need to set the user model ID - to associate emacsclient launched files with Emacs frames - in the UI. */ - shell = LoadLibrary ("shell32.dll"); - if (shell) - { - set_user_model - = (void *) GetProcAddress (shell, - "SetCurrentProcessExplicitAppUserModelID"); - /* If the function is defined, then we are running on Windows 7 - or newer, and the UI uses this to group related windows - together. Since emacs, runemacs, emacsclient are related, we - want them grouped even though the executables are different, - so we need to set a consistent ID between them. */ - if (set_user_model) - set_user_model (L"GNU.Emacs"); - - FreeLibrary (shell); - } -} int w32_window_app (void) @@ -1415,10 +1391,37 @@ set_socket (int no_exit_if_error) exit (EXIT_FAILURE); } -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI FARPROC set_fg; /* Pointer to AllowSetForegroundWindow. */ FARPROC get_wc; /* Pointer to RealGetWindowClassA. */ +void +w32_set_user_model_id (void) +{ + HMODULE shell; + HRESULT (WINAPI * set_user_model) (wchar_t * id); + + /* On Windows 7 and later, we need to set the user model ID + to associate emacsclient launched files with Emacs frames + in the UI. */ + shell = LoadLibrary ("shell32.dll"); + if (shell) + { + set_user_model + = (void *) GetProcAddress (shell, + "SetCurrentProcessExplicitAppUserModelID"); + /* If the function is defined, then we are running on Windows 7 + or newer, and the UI uses this to group related windows + together. Since emacs, runemacs, emacsclient are related, we + want them grouped even though the executables are different, + so we need to set a consistent ID between them. */ + if (set_user_model) + set_user_model (L"GNU.Emacs"); + + FreeLibrary (shell); + } +} + BOOL CALLBACK w32_find_emacs_process (HWND hWnd, LPARAM lParam) { @@ -1467,7 +1470,7 @@ w32_give_focus (void) && (get_wc = GetProcAddress (user32, "RealGetWindowClassA"))) EnumWindows (w32_find_emacs_process, (LPARAM) 0); } -#endif +#endif /* HAVE_NTGUI */ /* Start the emacs daemon and try to connect to it. */ @@ -1537,11 +1540,11 @@ main (int argc, char **argv) main_argv = argv; progname = argv[0]; -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI /* On Windows 7 and later, we need to explicitly associate emacsclient with emacs so the UI behaves sensibly. */ w32_set_user_model_id (); -#endif +#endif /* HAVE_NTGUI */ /* Process options. */ decode_options (argc, argv); @@ -1577,9 +1580,9 @@ main (int argc, char **argv) fail (); } -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI w32_give_focus (); -#endif +#endif /* HAVE_NTGUI */ /* Send over our environment and current directory. */ if (!current_frame) diff --git a/lisp/server.el b/lisp/server.el index 4fd55bcf6d1..d45c7c28482 100644 --- a/lisp/server.el +++ b/lisp/server.el @@ -1114,9 +1114,13 @@ The following commands are accepted by the client: tty-type (pop args-left) dontkill (or dontkill (not use-current-frame))) - ;; On Windows, emacsclient always asks for a tty frame. - ;; If running a GUI server, force the frame type to GUI. - (when (eq window-system 'w32) + ;; On Windows, emacsclient always asks for a tty + ;; frame. If running a GUI server, force the frame + ;; type to GUI. (Cygwin is perfectly happy with + ;; multi-tty support, so don't override the user's + ;; choice there.) + (when (and (eq system-type 'windows-nt) + (eq window-system 'w32)) (push "-window-system" args-left))) ;; -position LINE[:COLUMN]: Set point to the given From 6b59694eac33d4733bfd5f1e656ff8a23d7808ec Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Mon, 17 Sep 2012 03:55:04 -0800 Subject: [PATCH 003/272] Add alt_display to emacsclient for w32, ns --- lib-src/emacsclient.c | 127 ++++++++++++++++++++++++++---------------- 1 file changed, 78 insertions(+), 49 deletions(-) diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 103473abdb1..9c222b6be66 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -144,6 +144,9 @@ int current_frame = 1; /* The display on which Emacs should work. --display. */ const char *display = NULL; +/* The alternate display we should try if Emacs does not support display. */ +const char *alt_display = NULL; + /* The parent window ID, if we are opening a frame via XEmbed. */ char *parent_id = NULL; @@ -581,16 +584,29 @@ decode_options (int argc, char **argv) Without the -c option, we used to set `display' to $DISPLAY by default, but this changed the default behavior and is sometimes inconvenient. So we force users to use "--display $DISPLAY" if - they want Emacs to connect to their current display. */ + they want Emacs to connect to their current display. + + Some window systems have a notion of default display not + reflected in the DISPLAY variable. If the user didn't give us an + explicit display, try this platform-specific after trying the + display in DISPLAY (if any). */ if (!current_frame && !tty && !display) { - display = egetenv ("DISPLAY"); -#ifdef NS_IMPL_COCOA - /* Under Cocoa, we don't really use displays the same way as in X, - so provide a dummy. */ - if (!display || strlen (display) == 0) - display = "ns"; + /* Set these here so we use a default_display only when the user + didn't give us an explicit display. */ +#if defined (NS_IMPL_COCOA) + alt_display = "ns"; +#elif defined (HAVE_NTGUI) + alt_display = "windows"; #endif + + display = egetenv ("DISPLAY"); + } + + if (!display) + { + display = alt_display; + alt_display = NULL; } /* A null-string display is invalid. */ @@ -1541,8 +1557,10 @@ main (int argc, char **argv) progname = argv[0]; #ifdef HAVE_NTGUI - /* On Windows 7 and later, we need to explicitly associate emacsclient - with emacs so the UI behaves sensibly. */ + /* On Windows 7 and later, we need to explicitly associate + emacsclient with emacs so the UI behaves sensibly. This + association does no harm if we're not actually connecting to an + Emacs using a window display. */ w32_set_user_model_id (); #endif /* HAVE_NTGUI */ @@ -1581,6 +1599,7 @@ main (int argc, char **argv) } #ifdef HAVE_NTGUI + if (display && !strcmp (display, "windows")) w32_give_focus (); #endif /* HAVE_NTGUI */ @@ -1751,46 +1770,56 @@ main (int argc, char **argv) if (end_p != NULL) *end_p++ = '\0'; - if (strprefix ("-emacs-pid ", p)) - { - /* -emacs-pid PID: The process id of the Emacs process. */ - emacs_pid = strtol (p + strlen ("-emacs-pid"), NULL, 10); - } - else if (strprefix ("-window-system-unsupported ", p)) - { - /* -window-system-unsupported: Emacs was compiled without X - support. Try again on the terminal. */ - nowait = 0; - tty = 1; - goto retry; - } - else if (strprefix ("-print ", p)) - { - /* -print STRING: Print STRING on the terminal. */ - str = unquote_argument (p + strlen ("-print ")); - if (needlf) - printf ("\n"); - printf ("%s", str); - needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n'; - } - else if (strprefix ("-print-nonl ", p)) - { - /* -print-nonl STRING: Print STRING on the terminal. - Used to continue a preceding -print command. */ - str = unquote_argument (p + strlen ("-print-nonl ")); - printf ("%s", str); - needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n'; - } - else if (strprefix ("-error ", p)) - { - /* -error DESCRIPTION: Signal an error on the terminal. */ - str = unquote_argument (p + strlen ("-error ")); - if (needlf) - printf ("\n"); - fprintf (stderr, "*ERROR*: %s", str); - needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n'; - exit_status = EXIT_FAILURE; - } + if (strprefix ("-emacs-pid ", p)) + { + /* -emacs-pid PID: The process id of the Emacs process. */ + emacs_pid = strtol (p + strlen ("-emacs-pid"), NULL, 10); + } + else if (strprefix ("-window-system-unsupported ", p)) + { + /* -window-system-unsupported: Emacs was compiled without support + for whatever window system we tried. Try the alternate + display, or, failing that, try the terminal. */ + if (alt_display) + { + display = alt_display; + alt_display = NULL; + } + else + { + nowait = 0; + tty = 1; + } + + goto retry; + } + else if (strprefix ("-print ", p)) + { + /* -print STRING: Print STRING on the terminal. */ + str = unquote_argument (p + strlen ("-print ")); + if (needlf) + printf ("\n"); + printf ("%s", str); + needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n'; + } + else if (strprefix ("-print-nonl ", p)) + { + /* -print-nonl STRING: Print STRING on the terminal. + Used to continue a preceding -print command. */ + str = unquote_argument (p + strlen ("-print-nonl ")); + printf ("%s", str); + needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n'; + } + else if (strprefix ("-error ", p)) + { + /* -error DESCRIPTION: Signal an error on the terminal. */ + str = unquote_argument (p + strlen ("-error ")); + if (needlf) + printf ("\n"); + fprintf (stderr, "*ERROR*: %s", str); + needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n'; + exit_status = EXIT_FAILURE; + } #ifdef SIGSTOP else if (strprefix ("-suspend ", p)) { From ce9f00e4e53c3a55cb78fa3dd1043d8f59ed47e3 Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Mon, 17 Sep 2012 03:55:04 -0800 Subject: [PATCH 004/272] Generalize fork+exec logic, add DAEMON_MUST_EXEC --- src/emacs.c | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/src/emacs.c b/src/emacs.c index 9a9309546ab..7b643f5226f 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -161,6 +161,22 @@ static void *my_heap_start; static uprintmax_t heap_bss_diff; #endif +/* To run as a daemon under Cocoa or Windows, we must do a fork+exec, + not a simple fork. + + On Cocoa, CoreFoundation lib fails in forked process: + http://developer.apple.com/ReleaseNotes/ + CoreFoundation/CoreFoundation.html) + + On Windows, a Cygwin fork child cannot access the USER subsystem. + + We mark being in the exec'd process by a daemon name argument of + form "--daemon=\nFD0,FD1\nNAME" where FD are the pipe file descriptors, + NAME is the original daemon name, if any. */ +#if defined (NS_IMPL_COCOA) || defined (HAVE_NTGUI) +# define DAEMON_MUST_EXEC +#endif + /* Nonzero means running Emacs without interactive terminal. */ int noninteractive; @@ -694,9 +710,9 @@ main (int argc, char **argv) int no_loadup = 0; char *junk = 0; char *dname_arg = 0; -#ifdef NS_IMPL_COCOA +#ifdef DAEMON_MUST_EXEC char dname_arg2[80]; -#endif +#endif /* DAEMON_MUST_EXEC */ char *ch_to_dir; #if GC_MARK_STACK @@ -998,25 +1014,19 @@ main (int argc, char **argv) exit (1); } -#ifndef NS_IMPL_COCOA +#ifndef DAEMON_MUST_EXEC #ifdef USE_GTK fprintf (stderr, "\nWarning: due to a long standing Gtk+ bug\nhttp://bugzilla.gnome.org/show_bug.cgi?id=85715\n\ Emacs might crash when run in daemon mode and the X11 connection is unexpectedly lost.\n\ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem.\n"); -#endif +#endif /* USE_GTK */ f = fork (); -#else /* NS_IMPL_COCOA */ - /* Under Cocoa we must do fork+exec as CoreFoundation lib fails in - forked process: http://developer.apple.com/ReleaseNotes/ - CoreFoundation/CoreFoundation.html) - We mark being in the exec'd process by a daemon name argument of - form "--daemon=\nFD0,FD1\nNAME" where FD are the pipe file descriptors, - NAME is the original daemon name, if any. */ +#else /* DAEMON_MUST_EXEC */ if (!dname_arg || !strchr (dname_arg, '\n')) f = fork (); /* in orig */ else f = 0; /* in exec'd */ -#endif /* NS_IMPL_COCOA */ +#endif /* !DAEMON_MUST_EXEC */ if (f > 0) { int retval; @@ -1052,7 +1062,7 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem exit (1); } -#ifdef NS_IMPL_COCOA +#ifdef DAEMON_MUST_EXEC { /* In orig process, forked as child, OR in exec'd. */ if (!dname_arg || !strchr (dname_arg, '\n')) @@ -1088,7 +1098,7 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem dname_arg2); dname_arg = *dname_arg2 ? dname_arg2 : NULL; } -#endif /* NS_IMPL_COCOA */ +#endif /* DAEMON_MUST_EXEC */ if (dname_arg) daemon_name = xstrdup (dname_arg); From efc3dd3ccceae28db0a3fde54ed00478ff77c2e2 Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Mon, 17 Sep 2012 03:55:05 -0800 Subject: [PATCH 005/272] Detect window-system from display name --- lib-src/emacsclient.c | 4 +-- lisp/frame.el | 53 +++++++++++++++++++++--------------- lisp/server.el | 63 +++++++++++++++++++++++-------------------- lisp/startup.el | 3 ++- lisp/term/ns-win.el | 4 ++- lisp/term/w32-win.el | 7 +++-- lisp/term/x-win.el | 5 ++++ src/w32fns.c | 11 +++++++- 8 files changed, 93 insertions(+), 57 deletions(-) diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 9c222b6be66..8d60d7961da 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -597,7 +597,7 @@ decode_options (int argc, char **argv) #if defined (NS_IMPL_COCOA) alt_display = "ns"; #elif defined (HAVE_NTGUI) - alt_display = "windows"; + alt_display = "w32"; #endif display = egetenv ("DISPLAY"); @@ -1599,7 +1599,7 @@ main (int argc, char **argv) } #ifdef HAVE_NTGUI - if (display && !strcmp (display, "windows")) + if (display && !strcmp (display, "w32")) w32_give_focus (); #endif /* HAVE_NTGUI */ diff --git a/lisp/frame.el b/lisp/frame.el index 9be64a6b7ff..1e8883eb98e 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -25,6 +25,8 @@ ;;; Commentary: ;;; Code: +(eval-when-compile (require 'cl-lib)) + (defvar frame-creation-function-alist (list (cons nil (if (fboundp 'tty-create-frame-with-faces) @@ -45,6 +47,12 @@ Then, for frames on WINDOW-SYSTEM, any parameters specified in ALIST supersede the corresponding parameters specified in `default-frame-alist'.") +(defvar display-format-alist nil + "Alist of patterns to decode display names. +The car of each entry is a regular expression matching a display +name string. The cdr is a symbol giving the window-system that +handles the corresponding kind of display.") + ;; The initial value given here used to ask for a minibuffer. ;; But that's not necessary, because the default is to have one. ;; By not specifying it here, we let an X resource specify it. @@ -510,31 +518,19 @@ is not considered (see `next-frame')." 0)) (select-frame-set-input-focus (selected-frame))) -(declare-function x-initialize-window-system "term/x-win" ()) -(declare-function ns-initialize-window-system "term/ns-win" ()) -(defvar x-display-name) ; term/x-win +(defun window-system-for-display (display) + "Return the window system for DISPLAY. +Return nil if we don't know how to interpret DISPLAY." + (cl-loop for descriptor in display-format-alist + for pattern = (car descriptor) + for system = (cdr descriptor) + when (string-match-p pattern display) return system)) (defun make-frame-on-display (display &optional parameters) "Make a frame on display DISPLAY. The optional argument PARAMETERS specifies additional frame parameters." (interactive "sMake frame on display: ") - (cond ((featurep 'ns) - (when (and (boundp 'ns-initialized) (not ns-initialized)) - (setq x-display-name display) - (ns-initialize-window-system)) - (make-frame `((window-system . ns) - (display . ,display) . ,parameters))) - ((eq window-system 'w32) - ;; On Windows, ignore DISPLAY. - (make-frame parameters)) - (t - (unless (string-match-p "\\`[^:]*:[0-9]+\\(\\.[0-9]+\\)?\\'" display) - (error "Invalid display, not HOST:SERVER or HOST:SERVER.SCREEN")) - (when (and (boundp 'x-initialized) (not x-initialized)) - (setq x-display-name display) - (x-initialize-window-system)) - (make-frame `((window-system . x) - (display . ,display) . ,parameters))))) + (make-frame (cons (cons 'display display) parameters))) (declare-function x-close-connection "xfns.c" (terminal)) @@ -616,6 +612,8 @@ neither or both. (window-system . nil) The frame should be displayed on a terminal device. (window-system . x) The frame should be displayed in an X window. + (display . \":0\") The frame should appear on display :0. + (terminal . TERMINAL) The frame should use the terminal object TERMINAL. In addition, any parameter specified in `default-frame-alist', @@ -626,11 +624,15 @@ this function runs the hook `before-make-frame-hook'. After creating the frame, it runs the hook `after-make-frame-functions' with one arg, the newly created frame. +If a display parameter is supplied and a window-system is not, +guess the window-system from the display. + On graphical displays, this function does not itself make the new frame the selected frame. However, the window system may select the new frame according to its own rules." (interactive) - (let* ((w (cond + (let* ((display (cdr (assq 'display parameters))) + (w (cond ((assq 'terminal parameters) (let ((type (terminal-live-p (cdr (assq 'terminal parameters))))) (cond @@ -640,6 +642,10 @@ the new frame according to its own rules." (t type)))) ((assq 'window-system parameters) (cdr (assq 'window-system parameters))) + (display + (or (window-system-for-display display) + (error "Don't know how to interpret display \"%S\"" + display))) (t window-system))) (frame-creation-function (cdr (assq w frame-creation-function-alist))) (oldframe (selected-frame)) @@ -647,6 +653,11 @@ the new frame according to its own rules." frame) (unless frame-creation-function (error "Don't know how to create a frame on window system %s" w)) + + (unless (get w 'window-system-initialized) + (funcall (cdr (assq w window-system-initialization-alist))) + (put w 'window-system-initialized t)) + ;; Add parameters from `window-system-default-frame-alist'. (dolist (p (cdr (assq w window-system-default-frame-alist))) (unless (assq (car p) params) diff --git a/lisp/server.el b/lisp/server.el index d45c7c28482..32cecd508b5 100644 --- a/lisp/server.el +++ b/lisp/server.el @@ -826,35 +826,40 @@ This handles splitting the command if it would be bigger than (defun server-create-window-system-frame (display nowait proc parent-id &optional parameters) - (add-to-list 'frame-inherited-parameters 'client) - (if (not (fboundp 'make-frame-on-display)) - (progn - ;; This emacs does not support X. - (server-log "Window system unsupported" proc) - (server-send-string proc "-window-system-unsupported \n") - nil) - ;; Flag frame as client-created, but use a dummy client. - ;; This will prevent the frame from being deleted when - ;; emacsclient quits while also preventing - ;; `server-save-buffers-kill-terminal' from unexpectedly - ;; killing emacs on that frame. - (let* ((params `((client . ,(if nowait 'nowait proc)) - ;; This is a leftover, see above. - (environment . ,(process-get proc 'env)) - ,@parameters)) - (display (or display - (frame-parameter nil 'display) - (getenv "DISPLAY") - (error "Please specify display"))) - frame) - (if parent-id - (push (cons 'parent-id (string-to-number parent-id)) params)) - (setq frame (make-frame-on-display display params)) - (server-log (format "%s created" frame) proc) - (select-frame frame) - (process-put proc 'frame frame) - (process-put proc 'terminal (frame-terminal frame)) - frame))) + (let* ((display (or display + (frame-parameter nil 'display) + (error "Please specify display."))) + (w (or (cdr (assq 'window-system parameters)) + (window-system-for-display display)))) + + (unless (assq w window-system-initialization-alist) + (setq w nil)) + + (cond (w + ;; Flag frame as client-created, but use a dummy client. + ;; This will prevent the frame from being deleted when + ;; emacsclient quits while also preventing + ;; `server-save-buffers-kill-terminal' from unexpectedly + ;; killing emacs on that frame. + (let* ((params `((client . ,(if nowait 'nowait proc)) + ;; This is a leftover, see above. + (environment . ,(process-get proc 'env)) + ,@parameters)) + frame) + (if parent-id + (push (cons 'parent-id (string-to-number parent-id)) params)) + (add-to-list 'frame-inherited-parameters 'client) + (setq frame (make-frame-on-display display params)) + (server-log (format "%s created" frame) proc) + (select-frame frame) + (process-put proc 'frame frame) + (process-put proc 'terminal (frame-terminal frame)) + frame)) + + (t + (server-log "Window system unsupported" proc) + (server-send-string proc "-window-system-unsupported \n") + nil)))) (defun server-goto-toplevel (proc) (condition-case nil diff --git a/lisp/startup.el b/lisp/startup.el index 348e653dd28..dd216638905 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -882,7 +882,8 @@ Amongst another things, it parses the command-line arguments." ;; Initialize the window system. (Open connection, etc.) (funcall (or (cdr (assq initial-window-system window-system-initialization-alist)) - (error "Unsupported window system `%s'" initial-window-system)))) + (error "Unsupported window system `%s'" initial-window-system))) + (put initial-window-system 'window-system-initialized t)) ;; If there was an error, print the error message and exit. (error (princ diff --git a/lisp/term/ns-win.el b/lisp/term/ns-win.el index 06b67475c1d..b46c31afdeb 100644 --- a/lisp/term/ns-win.el +++ b/lisp/term/ns-win.el @@ -39,7 +39,7 @@ ;; this file, which works in close coordination with src/nsfns.m. ;;; Code: - +(eval-when-compile (require 'cl-lib)) (or (featurep 'ns) (error "%s: Loading ns-win.el but not compiled for GNUstep/MacOS" (invocation-name))) @@ -897,6 +897,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") ;; defines functions and variables that we use now. (defun ns-initialize-window-system () "Initialize Emacs for Nextstep (Cocoa / GNUstep) windowing." + (cl-assert (not ns-initialized)) ;; PENDING: not needed? (setq command-line-args (x-handle-args command-line-args)) @@ -924,6 +925,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") (x-apply-session-resources) (setq ns-initialized t)) +(add-to-list 'display-format-alist '("\\`ns\\'" . ns)) (add-to-list 'handle-args-function-alist '(ns . x-handle-args)) (add-to-list 'frame-creation-function-alist '(ns . x-create-frame-with-faces)) (add-to-list 'window-system-initialization-alist '(ns . ns-initialize-window-system)) diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el index dd577af0ae1..841a45c23a2 100644 --- a/lisp/term/w32-win.el +++ b/lisp/term/w32-win.el @@ -68,6 +68,7 @@ ;; (if (not (eq window-system 'w32)) ;; (error "%s: Loading w32-win.el but not compiled for w32" (invocation-name))) +(eval-when-compile (require 'cl-lib)) (require 'frame) (require 'mouse) (require 'scroll-bar) @@ -240,6 +241,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") (defun w32-initialize-window-system () "Initialize Emacs for W32 GUI frames." + (cl-assert (not w32-initialized)) ;; Do the actual Windows setup here; the above code just defines ;; functions and variables that we use now. @@ -253,7 +255,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") ;; so as not to choke when we use it in X resource queries. (replace-regexp-in-string "[.*]" "-" (invocation-name)))) - (x-open-connection "" x-command-line-resources + (x-open-connection "w32" x-command-line-resources ;; Exit with a fatal error if this fails and we ;; are the initial display (eq initial-window-system 'w32)) @@ -304,7 +306,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") (setq default-frame-alist (cons '(reverse . t) default-frame-alist))))) - ;; Don't let Emacs suspend under w32 gui + ;; Don't let Emacs suspend under Windows. (add-hook 'suspend-hook 'x-win-suspend-error) ;; Turn off window-splitting optimization; w32 is usually fast enough @@ -322,6 +324,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") (x-apply-session-resources) (setq w32-initialized t)) +(add-to-list 'display-format-alist '("\\`w32\\'" . w32)) (add-to-list 'handle-args-function-alist '(w32 . x-handle-args)) (add-to-list 'frame-creation-function-alist '(w32 . x-create-frame-with-faces)) (add-to-list 'window-system-initialization-alist '(w32 . w32-initialize-window-system)) diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el index 9b7254cd132..2f2125a31db 100644 --- a/lisp/term/x-win.el +++ b/lisp/term/x-win.el @@ -67,6 +67,8 @@ ;; An alist of X options and the function which handles them. See ;; ../startup.el. +(eval-when-compile (require 'cl-lib)) + (if (not (fboundp 'x-create-frame)) (error "%s: Loading x-win.el but not compiled for X" (invocation-name))) @@ -1338,6 +1340,8 @@ Request data types in the order specified by `x-select-request-type'." (defun x-initialize-window-system () "Initialize Emacs for X frames and open the first connection to an X server." + (cl-assert (not x-initialized)) + ;; Make sure we have a valid resource name. (or (stringp x-resource-name) (let (i) @@ -1451,6 +1455,7 @@ Request data types in the order specified by `x-select-request-type'." (x-apply-session-resources) (setq x-initialized t)) +(add-to-list 'display-format-alist '("\\`[^:]*:[0-9]+\\(\\.[0-9]+\\)?\\'" . x)) (add-to-list 'handle-args-function-alist '(x . x-handle-args)) (add-to-list 'frame-creation-function-alist '(x . x-create-frame-with-faces)) (add-to-list 'window-system-initialization-alist '(x . x-initialize-window-system)) diff --git a/src/w32fns.c b/src/w32fns.c index 16a2fb4dfdd..aa7d6c7a0ea 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -4892,12 +4892,21 @@ terminate Emacs if we can't open the connection. unsigned char *xrm_option; struct w32_display_info *dpyinfo; + CHECK_STRING (display); + + /* Signal an error in order to encourage correct use from callers. + * If we ever support multiple window systems in the same Emacs, + * we'll need callers to be precise about what window system they + * want. */ + + if (strcmp (SSDATA (display), "w32") != 0) + error ("The name of the display in this Emacs must be \"w32\""); + /* If initialization has already been done, return now to avoid overwriting critical parts of one_w32_display_info. */ if (w32_in_use) return Qnil; - CHECK_STRING (display); if (! NILP (xrm_string)) CHECK_STRING (xrm_string); From f701ab72dd55460d23c8b029550aa4d7ecef3cfa Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Mon, 17 Sep 2012 03:57:03 -0800 Subject: [PATCH 006/272] Add files somehow forgotten by bzr git-apply. --- lisp/w32-common-fns.el | 130 +++++++++++++++++++++++++++++++ src/cygw32.c | 169 +++++++++++++++++++++++++++++++++++++++++ src/cygw32.h | 59 ++++++++++++++ src/w32select.h | 30 ++++++++ 4 files changed, 388 insertions(+) create mode 100644 lisp/w32-common-fns.el create mode 100644 src/cygw32.c create mode 100644 src/cygw32.h create mode 100644 src/w32select.h diff --git a/lisp/w32-common-fns.el b/lisp/w32-common-fns.el new file mode 100644 index 00000000000..fc045683394 --- /dev/null +++ b/lisp/w32-common-fns.el @@ -0,0 +1,130 @@ +;;; w32-common-fns.el --- Lisp routines for Windows and Cygwin-w32 + +;; Copyright (C) 1994, 2001-2012 Free Software Foundation, Inc. + +;; 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 contains functions that are used by both native NT Emacs +;;; and Cygwin Emacs compiled to use the native Windows widget +;;; library. + +(defun w32-version () + "Return the MS-Windows version numbers. +The value is a list of three integers: the major and minor version +numbers, and the build number." + (x-server-version)) + +(defun w32-using-nt () + "Return non-nil if running on a Windows NT descendant. +That includes all Windows systems except for 9X/Me." + (getenv "SystemRoot")) + +(declare-function w32-get-clipboard-data "w32select.c") +(declare-function w32-set-clipboard-data "w32select.c") +(declare-function x-server-version "w32fns.c" (&optional display)) + +;;; Fix interface to (X-specific) mouse.el +(defun x-set-selection (type data) + "Make an X selection of type TYPE and value DATA. +The argument TYPE (nil means `PRIMARY') says which selection, and +DATA specifies the contents. TYPE must be a symbol. \(It can also +be a string, which stands for the symbol with that name, but this +is considered obsolete.) DATA may be a string, a symbol, an +integer (or a cons of two integers or list of two integers). + +The selection may also be a cons of two markers pointing to the same buffer, +or an overlay. In these cases, the selection is considered to be the text +between the markers *at whatever time the selection is examined*. +Thus, editing done in the buffer after you specify the selection +can alter the effective value of the selection. + +The data may also be a vector of valid non-vector selection values. + +The return value is DATA. + +Interactively, this command sets the primary selection. Without +prefix argument, it reads the selection in the minibuffer. With +prefix argument, it uses the text of the region as the selection value. + +Note that on MS-Windows, primary and secondary selections set by Emacs +are not available to other programs." + (put 'x-selections (or type 'PRIMARY) data)) + +(defun x-get-selection (&optional type _data-type) + "Return the value of an X Windows selection. +The argument TYPE (default `PRIMARY') says which selection, +and the argument DATA-TYPE (default `STRING') says +how to convert the data. + +TYPE may be any symbol \(but nil stands for `PRIMARY'). However, +only a few symbols are commonly used. They conventionally have +all upper-case names. The most often used ones, in addition to +`PRIMARY', are `SECONDARY' and `CLIPBOARD'. + +DATA-TYPE is usually `STRING', but can also be one of the symbols +in `selection-converter-alist', which see." + (get 'x-selections (or type 'PRIMARY))) + +;; x-selection-owner-p is used in simple.el +(defun x-selection-owner-p (&optional type) + (and (memq type '(nil PRIMARY SECONDARY)) + (get 'x-selections (or type 'PRIMARY)))) + +;; The "Windows" keys on newer keyboards bring up the Start menu +;; whether you want it or not - make Emacs ignore these keystrokes +;; rather than beep. +(global-set-key [lwindow] 'ignore) +(global-set-key [rwindow] 'ignore) + +(defvar w32-charset-info-alist) ; w32font.c + + +;;;; Selections + +;; We keep track of the last text selected here, so we can check the +;; current selection against it, and avoid passing back our own text +;; from x-selection-value. +(defvar x-last-selected-text nil) + +(defun x-get-selection-value () + "Return the value of the current selection. +Consult the selection. Treat empty strings as if they were unset." + (if x-select-enable-clipboard + (let (text) + ;; Don't die if x-get-selection signals an error. + (condition-case c + (setq text (w32-get-clipboard-data)) + (error (message "w32-get-clipboard-data:%s" c))) + (if (string= text "") (setq text nil)) + (cond + ((not text) nil) + ((eq text x-last-selected-text) nil) + ((string= text x-last-selected-text) + ;; Record the newer string, so subsequent calls can use the 'eq' test. + (setq x-last-selected-text text) + nil) + (t + (setq x-last-selected-text text)))))) + +(defalias 'x-selection-value 'x-get-selection-value) + +;; Arrange for the kill and yank functions to set and check the clipboard. +(setq interprogram-cut-function 'x-select-text) +(setq interprogram-paste-function 'x-get-selection-value) + +(provide 'w32-common-fns) diff --git a/src/cygw32.c b/src/cygw32.c new file mode 100644 index 00000000000..065ab948118 --- /dev/null +++ b/src/cygw32.c @@ -0,0 +1,169 @@ +/* Cygwin support routines. + Copyright (C) 2011 Free Software Foundation, Inc. + +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 . */ + + +#include "cygw32.h" +#include "character.h" +#include "buffer.h" +#include +#include +static Lisp_Object Qutf_16_le; + +static Lisp_Object +fchdir_unwind (Lisp_Object dir_fd) +{ + (void) fchdir (XFASTINT (dir_fd)); + (void) close (XFASTINT (dir_fd)); + return Qnil; +} + +static void +chdir_to_default_directory () +{ + Lisp_Object new_cwd; + int old_cwd_fd = open (".", O_RDONLY | O_DIRECTORY); + + if (old_cwd_fd == -1) + error ("could not open current directory: %s", strerror (errno)); + + record_unwind_protect (fchdir_unwind, make_number (old_cwd_fd)); + + new_cwd = Funhandled_file_name_directory ( + Fexpand_file_name (build_string ("."), Qnil)); + if (!STRINGP (new_cwd)) + new_cwd = build_string ("/"); + + if (chdir (SDATA (ENCODE_FILE (new_cwd)))) + error ("could not chdir: %s", strerror (errno)); +} + +static Lisp_Object +conv_filename_to_w32_unicode (Lisp_Object in, int absolute_p) +{ + ssize_t converted_len; + Lisp_Object converted; + unsigned flags; + int count = SPECPDL_INDEX (); + + chdir_to_default_directory (); + + flags = CCP_POSIX_TO_WIN_W; + if (!absolute_p) { + flags |= CCP_RELATIVE; + } + + in = ENCODE_FILE (in); + + converted_len = cygwin_conv_path (flags, SDATA (in), NULL, 0); + if (converted_len < 2) + error ("cygwin_conv_path: %s", strerror (errno)); + + converted = make_uninit_string (converted_len - 1); + if (cygwin_conv_path (flags, SDATA (in), + SDATA (converted), converted_len)) + error ("cygwin_conv_path: %s", strerror (errno)); + + return unbind_to (count, converted); +} + +static Lisp_Object +conv_filename_from_w32_unicode (const wchar_t* in, int absolute_p) +{ + ssize_t converted_len; + Lisp_Object converted; + unsigned flags; + int count = SPECPDL_INDEX (); + + chdir_to_default_directory (); + + flags = CCP_WIN_W_TO_POSIX; + if (!absolute_p) { + flags |= CCP_RELATIVE; + } + + converted_len = cygwin_conv_path (flags, in, NULL, 0); + if (converted_len < 1) + error ("cygwin_conv_path: %s", strerror (errno)); + + converted = make_uninit_string (converted_len - 1 /*subtract terminator*/); + if (cygwin_conv_path (flags, in, SDATA (converted), converted_len)) + error ("cygwin_conv_path: %s", strerror (errno)); + + return unbind_to (count, DECODE_FILE (converted)); +} + +Lisp_Object +from_unicode (Lisp_Object str) +{ + CHECK_STRING (str); + if (!STRING_MULTIBYTE (str) && + SBYTES (str) & 1) + { + str = Fsubstring (str, make_number (0), make_number (-1)); + } + + return code_convert_string_norecord (str, Qutf_16_le, 0); +} + +wchar_t * +to_unicode (Lisp_Object str, Lisp_Object *buf) +{ + *buf = code_convert_string_norecord (str, Qutf_16_le, 1); + /* We need to make a another copy (in addition to the one made by + code_convert_string_norecord) to ensure that the final string is + _doubly_ zero terminated --- that is, that the string is + terminated by two zero bytes and one utf-16le null character. + Because strings are already terminated with a single zero byte, + we just add one additional zero. */ + str = make_uninit_string (SBYTES (*buf) + 1); + memcpy (SDATA (str), SDATA (*buf), SBYTES (*buf)); + SDATA (str) [SBYTES (*buf)] = '\0'; + *buf = str; + return WCSDATA (*buf); +} + +DEFUN ("cygwin-convert-path-to-windows", + Fcygwin_convert_path_to_windows, Scygwin_convert_path_to_windows, + 1, 2, 0, + doc: /* Convert PATH to a Windows path. If ABSOLUTE-P if + non-nil, return an absolute path.*/) + (Lisp_Object path, Lisp_Object absolute_p) +{ + return from_unicode ( + conv_filename_to_w32_unicode (path, absolute_p == Qnil ? 0 : 1)); +} + +DEFUN ("cygwin-convert-path-from-windows", + Fcygwin_convert_path_from_windows, Scygwin_convert_path_from_windows, + 1, 2, 0, + doc: /* Convert a Windows path to a Cygwin path. If ABSOLUTE-P + if non-nil, return an absolute path.*/) + (Lisp_Object path, Lisp_Object absolute_p) +{ + return conv_filename_from_w32_unicode (to_unicode (path, &path), + absolute_p == Qnil ? 0 : 1); +} + +void +syms_of_cygw32 (void) +{ + /* No, not utf-16-le: that one has a BOM. */ + DEFSYM (Qutf_16_le, "utf-16le"); + defsubr (&Scygwin_convert_path_from_windows); + defsubr (&Scygwin_convert_path_to_windows); +} diff --git a/src/cygw32.h b/src/cygw32.h new file mode 100644 index 00000000000..c63343c3f5a --- /dev/null +++ b/src/cygw32.h @@ -0,0 +1,59 @@ +/* Header for Cygwin support routines. + Copyright (C) 2011 Free Software Foundation, Inc. + +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 . */ + +#ifndef CYGW32_H +#define CYGW32_H +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "lisp.h" +#include "coding.h" + +/* *** Character conversion *** */ + +/* Access the wide-character string stored in a Lisp string object. */ +#define WCSDATA(x) ((wchar_t *) SDATA (x)) + +/* Convert the Emacs string in STR to UTF-16LE and store a new string + containing the encoded version of STR into *BUF. BUF may safely + point to STR on entry. */ +extern wchar_t *to_unicode (Lisp_Object str, Lisp_Object *buf); + +/* Convert STR, a UTF-16LE encoded string embedded in an Emacs string + object, to a normal Emacs string and return it. */ +extern Lisp_Object from_unicode (Lisp_Object str); + +/* *** Path conversion. *** */ + +EXFUN (Fcygwin_convert_path_to_windows, 2); +EXFUN (Fcygwin_convert_path_from_windows, 2); + +/* *** Misc *** */ +extern void syms_of_cygw32 (void); +extern char * w32_strerror (int error_no); + +#endif /* CYGW32_H */ diff --git a/src/w32select.h b/src/w32select.h new file mode 100644 index 00000000000..6924d4d51ae --- /dev/null +++ b/src/w32select.h @@ -0,0 +1,30 @@ +/* Selection processing for Emacs on the Microsoft W32 API. + +Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc. + +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 . */ + +#ifndef W32SELECT_H +#define W32SELECT_H +#include + +#define HAVE_W32SELECT 1 + +extern void syms_of_w32select (void); +extern void globals_of_w32select (void); +extern void term_w32select (void); + +#endif From 6e6c9cd2e916757534bca94f6dadf99d368bda25 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Sun, 30 Sep 2012 14:32:16 +0200 Subject: [PATCH 007/272] lisp/ido.el (ido-buffer-disable-smart-matches): Fix typo in docstring. --- lisp/ChangeLog | 4 ++++ lisp/ido.el | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6c19de9e43d..b82a6e2e580 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-09-30 Juanma Barranquero + + * ido.el (ido-buffer-disable-smart-matches): Fix typo in docstring. + 2012-09-28 Leo Liu * pcomplete.el (pcomplete-show-completions): Use diff --git a/lisp/ido.el b/lisp/ido.el index 53533142e30..4de4618ef46 100644 --- a/lisp/ido.el +++ b/lisp/ido.el @@ -496,7 +496,7 @@ as first char even if `ido-enable-prefix' is nil." ;; See http://debbugs.gnu.org/2042 for more info. (defcustom ido-buffer-disable-smart-matches t "Non-nil means not to re-order matches for buffer switching. -By default, ido aranges matches in the following order: +By default, ido arranges matches in the following order: full-matches > suffix matches > prefix matches > remaining matches From ea9a35630ab737fac2f56b43d38b47e186f82379 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Mon, 1 Oct 2012 04:45:25 +0200 Subject: [PATCH 008/272] *** empty log message *** --- lisp/ChangeLog | 5 +++++ lisp/ido.el | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b82a6e2e580..37985d5ee38 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-01 Juanma Barranquero + + * ido.el (ido-directory-too-big-p): Pass dir through file-truename + to get the correct size across symlinks. + 2012-09-30 Juanma Barranquero * ido.el (ido-buffer-disable-smart-matches): Fix typo in docstring. diff --git a/lisp/ido.el b/lisp/ido.el index 4de4618ef46..70245800121 100644 --- a/lisp/ido.el +++ b/lisp/ido.el @@ -1720,7 +1720,7 @@ This function also adds a hook to the minibuffer." (ido-final-slash dir) (not (ido-is-unc-host dir)) (file-directory-p dir) - (> (nth 7 (file-attributes dir)) ido-max-directory-size)))) + (> (nth 7 (file-attributes (file-truename dir))) ido-max-directory-size)))) (defun ido-set-current-directory (dir &optional subdir no-merge) ;; Set ido's current directory to DIR or DIR/SUBDIR From d913151d11d1ae7e58495db2f4c072bfab3bd54b Mon Sep 17 00:00:00 2001 From: Douglas Lewan Date: Wed, 3 Oct 2012 00:17:56 -0700 Subject: [PATCH 009/272] * etc/tutorials/TUTORIAL.pt_BR: Fix typo (tiny change) Fixes: debbugs:12557 --- etc/ChangeLog | 4 ++++ etc/tutorials/TUTORIAL.pt_BR | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/etc/ChangeLog b/etc/ChangeLog index 38e346e4d96..caec41133ea 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,3 +1,7 @@ +2012-10-03 Douglas Lewan (tiny change) + + * tutorials/TUTORIAL.pt_BR: Fix typo. (Bug#12557) + 2012-08-24 Chong Yidong * Version 24.2 released. diff --git a/etc/tutorials/TUTORIAL.pt_BR b/etc/tutorials/TUTORIAL.pt_BR index 139789b1d2a..f28f86b3105 100644 --- a/etc/tutorials/TUTORIAL.pt_BR +++ b/etc/tutorials/TUTORIAL.pt_BR @@ -46,7 +46,7 @@ META, EDIT ou ALT). Os comandos a seguir so teis para visualizar telas inteiras C-v Move para tela inteira posterior - M-x Move para tela inteira anterior + M-v Move para tela inteira anterior C-l Limpa a tela e re-mostr todo o texto, movendo o texto ao redor do cursor para o centro da tela. (Isso control-L, no control-1.) From 26026637d3c30fd6c543db854b098f59ba76b8ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20F=C3=A9lix=20Rezende=20Ribeiro?= Date: Wed, 3 Oct 2012 00:25:17 -0700 Subject: [PATCH 010/272] * doc/lispref/functions.texi (Function Safety): Copyedit (tiny change) Fixes: debbugs:12562 --- doc/lispref/ChangeLog | 4 ++++ doc/lispref/functions.texi | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 3423432db54..2d942136bbe 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,7 @@ +2012-10-03 Bruno Félix Rezende Ribeiro (tiny change) + + * functions.texi (Function Safety): Copyedit. (Bug#12562) + 2012-09-25 Leo Liu * files.texi (Files): Fix typo. diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index f1ad252f294..3af74f07608 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi @@ -1337,7 +1337,7 @@ opposed to an unspecified one). @cindex function safety @cindex safety of functions -Some major modes such as SES call functions that are stored in user +Some major modes, such as SES, call functions that are stored in user files. (@inforef{Top, ,ses}, for more information on SES.) User files sometimes have poor pedigrees---you can get a spreadsheet from someone you've just met, or you can get one through email from someone From 88d69b7ddca305bb96d6e671300f6724e4f147dd Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 3 Oct 2012 22:52:49 -0700 Subject: [PATCH 011/272] * profiler.c (handle_profiler_signal): Inhibit pending signals too, to avoid similar races. * keyboard.c (pending_signals): Now bool, not int. --- src/ChangeLog | 6 ++++++ src/keyboard.c | 4 ++-- src/lisp.h | 2 +- src/profiler.c | 4 ++++ 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index ced0e057e27..744376b0efd 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2012-10-04 Paul Eggert + + * profiler.c (handle_profiler_signal): Inhibit pending signals too, + to avoid similar races. + * keyboard.c (pending_signals): Now bool, not int. + 2012-10-02 Paul Eggert * profiler.c (handle_profiler_signal): Fix a malloc race diff --git a/src/keyboard.c b/src/keyboard.c index 10dca010fb5..19ece4a22f1 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -76,9 +76,9 @@ along with GNU Emacs. If not, see . */ /* Positive if interrupt input is blocked right now. */ volatile int interrupt_input_blocked; -/* Nonzero means an input interrupt or alarm signal has arrived. +/* True means an input interrupt or alarm signal has arrived. The QUIT macro checks this. */ -volatile int pending_signals; +volatile bool pending_signals; #define KBD_BUFFER_SIZE 4096 diff --git a/src/lisp.h b/src/lisp.h index c3cabe0af29..2a647e593a8 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -2131,7 +2131,7 @@ extern char *stack_bottom; a request to exit Emacs when it is safe to do. */ extern void process_pending_signals (void); -extern int volatile pending_signals; +extern bool volatile pending_signals; extern void process_quit_flag (void); #define QUIT \ diff --git a/src/profiler.c b/src/profiler.c index 461aae3e09f..51580710f28 100644 --- a/src/profiler.c +++ b/src/profiler.c @@ -239,6 +239,7 @@ handle_profiler_signal (int signal) else { Lisp_Object oquit; + bool saved_pending_signals; EMACS_INT count = 1; #ifdef HAVE_ITIMERSPEC if (profiler_timer_ok) @@ -252,12 +253,15 @@ handle_profiler_signal (int signal) uses QUIT, which can call malloc, which can cause disaster in a signal handler. So inhibit QUIT. */ oquit = Vinhibit_quit; + saved_pending_signals = pending_signals; Vinhibit_quit = Qt; + pending_signals = 0; eassert (HASH_TABLE_P (cpu_log)); record_backtrace (XHASH_TABLE (cpu_log), count); Vinhibit_quit = oquit; + pending_signals = saved_pending_signals; } } From bb1dfdadd507bb4b77595c87875ef807c101ed7b Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 4 Oct 2012 00:15:42 -0700 Subject: [PATCH 012/272] Merge from gnulib. --- ChangeLog | 9 +++++++++ lib/gnulib.mk | 1 + lib/pselect.c | 34 ++++++++++++++++++++++++++++++++++ lib/stdlib.in.h | 13 +++++++++++-- m4/manywarnings.m4 | 32 +++++++++++++++++++++++++------- m4/pselect.m4 | 40 +++++++++++++++++++++++++++++++++++++++- m4/stdlib_h.m4 | 1 + m4/sys_stat_h.m4 | 5 ++++- msdos/ChangeLog | 5 +++++ msdos/sedlibmk.inp | 1 + 10 files changed, 130 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 019913e27d3..aa93dc4079b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 2012-10-04 Paul Eggert + Merge from gnulib, incorporating: + 2012-10-02 pselect: reject invalid file descriptors + 2012-10-02 ptsname: reject invalid file descriptors + 2012-10-02 manywarnings: cater to more gcc infelicities + 2012-09-30 sockets, sys_stat: restore AC_C_INLINE + * lib/pselect.c, lib/stdlib.in.h, m4/manywarnings.m4, m4/pselect.m4: + * m4/stdlib_h.m4, m4/sys_stat_h.m4: Update from gnulib. + * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. + Port timers to OpenBSD, plus check for timer failures. OpenBSD problem reported by Han Boetes. * profiler.c (setup_cpu_timer): Check for failure of timer_settime diff --git a/lib/gnulib.mk b/lib/gnulib.mk index e79fe35622c..23749331a83 100644 --- a/lib/gnulib.mk +++ b/lib/gnulib.mk @@ -857,6 +857,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ + -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ diff --git a/lib/pselect.c b/lib/pselect.c index d8ebc70f6c6..1b6d099dccf 100644 --- a/lib/pselect.c +++ b/lib/pselect.c @@ -33,6 +33,8 @@ pointer parameter stands for no descriptors, an infinite timeout, or an unaffected signal mask. */ +#if !HAVE_PSELECT + int pselect (int nfds, fd_set *restrict rfds, fd_set *restrict wfds, fd_set *restrict xfds, @@ -74,3 +76,35 @@ pselect (int nfds, fd_set *restrict rfds, return select_result; } + +#else /* HAVE_PSELECT */ +# include +# undef pselect + +int +rpl_pselect (int nfds, fd_set *restrict rfds, + fd_set *restrict wfds, fd_set *restrict xfds, + struct timespec const *restrict timeout, + sigset_t const *restrict sigmask) +{ + int i; + + /* FreeBSD 8.2 has a bug: it does not always detect invalid fds. */ + if (nfds < 0 || nfds > FD_SETSIZE) + { + errno = EINVAL; + return -1; + } + for (i = 0; i < nfds; i++) + { + if (((rfds && FD_ISSET (i, rfds)) + || (wfds && FD_ISSET (i, wfds)) + || (xfds && FD_ISSET (i, xfds))) + && dup2 (i, i) != i) + return -1; + } + + return pselect (nfds, rfds, wfds, xfds, timeout, sigmask); +} + +#endif diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h index 1d67ec64c66..8311a2893c8 100644 --- a/lib/stdlib.in.h +++ b/lib/stdlib.in.h @@ -457,10 +457,19 @@ _GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - " #if @GNULIB_PTSNAME@ /* Return the pathname of the pseudo-terminal slave associated with the master FD is open on, or NULL on errors. */ -# if !@HAVE_PTSNAME@ +# if @REPLACE_PTSNAME@ +# if !(defined __cplusplus && defined GNULIB_NAMESPCE) +# undef ptsname +# define ptsname rpl_ptsname +# endif +_GL_FUNCDECL_RPL (ptsname, char *, (int fd)); +_GL_CXXALIAS_RPL (ptsname, char *, (int fd)); +# else +# if !@HAVE_PTSNAME@ _GL_FUNCDECL_SYS (ptsname, char *, (int fd)); -# endif +# endif _GL_CXXALIAS_SYS (ptsname, char *, (int fd)); +# endif _GL_CXXALIASWARN (ptsname); #elif defined GNULIB_POSIXCHECK # undef ptsname diff --git a/m4/manywarnings.m4 b/m4/manywarnings.m4 index 2760efb3f27..f3cb23be1cd 100644 --- a/m4/manywarnings.m4 +++ b/m4/manywarnings.m4 @@ -1,4 +1,4 @@ -# manywarnings.m4 serial 4 +# manywarnings.m4 serial 5 dnl Copyright (C) 2008-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -35,14 +35,12 @@ AC_DEFUN([gl_MANYWARN_COMPLEMENT], # make sure your gcc understands it. AC_DEFUN([gl_MANYWARN_ALL_GCC], [ - dnl First, check if -Wno-missing-field-initializers is needed. - dnl -Wmissing-field-initializers is implied by -W, but that issues - dnl warnings with GCC version before 4.7, for the common idiom - dnl of initializing types on the stack to zero, using { 0, } + dnl First, check for some issues that only occur when combining multiple + dnl gcc warning categories. AC_REQUIRE([AC_PROG_CC]) if test -n "$GCC"; then - dnl First, check -W -Werror -Wno-missing-field-initializers is supported + dnl Check if -W -Werror -Wno-missing-field-initializers is supported dnl with the current $CC $CFLAGS $CPPFLAGS. AC_MSG_CHECKING([whether -Wno-missing-field-initializers is supported]) AC_CACHE_VAL([gl_cv_cc_nomfi_supported], [ @@ -77,8 +75,24 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC], ]) AC_MSG_RESULT([$gl_cv_cc_nomfi_needed]) fi + + dnl Next, check if -Werror -Wuninitialized is useful with the + dnl user's choice of $CFLAGS; some versions of gcc warn that it + dnl has no effect if -O is not also used + AC_MSG_CHECKING([whether -Wuninitialized is supported]) + AC_CACHE_VAL([gl_cv_cc_uninitialized_supported], [ + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror -Wuninitialized" + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[]], [[]])], + [gl_cv_cc_uninitialized_supported=yes], + [gl_cv_cc_uninitialized_supported=no]) + CFLAGS="$gl_save_CFLAGS"]) + AC_MSG_RESULT([$gl_cv_cc_uninitialized_supported]) + fi + # List all gcc warning categories. gl_manywarn_set= for gl_manywarn_item in \ -W \ @@ -197,10 +211,14 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC], gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item" done - # Disable the missing-field-initializers warning if needed + # Disable specific options as needed. if test "$gl_cv_cc_nomfi_needed" = yes; then gl_manywarn_set="$gl_manywarn_set -Wno-missing-field-initializers" fi + if test "$gl_cv_cc_uninitialized_supported" = no; then + gl_manywarn_set="$gl_manywarn_set -Wno-uninitialized" + fi + $1=$gl_manywarn_set ]) diff --git a/m4/pselect.m4 b/m4/pselect.m4 index 97bf12cd2d6..5edacd28f85 100644 --- a/m4/pselect.m4 +++ b/m4/pselect.m4 @@ -1,4 +1,4 @@ -# pselect.m4 +# pselect.m4 serial 2 dnl Copyright (C) 2011-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -23,6 +23,44 @@ AC_DEFUN([gl_FUNC_PSELECT], return !p;]])], [gl_cv_sig_pselect=yes], [gl_cv_sig_pselect=no])]) + + dnl On FreeBSD 8.2, pselect() doesn't always reject bad fds. + AC_CACHE_CHECK([whether pselect detects invalid fds], + [gl_cv_func_pselect_detects_ebadf], + [ + AC_RUN_IFELSE([AC_LANG_PROGRAM([[ +#include +#include +#if HAVE_SYS_SELECT_H +# include +#endif +#include +#include +]],[[ + fd_set set; + dup2(0, 16); + FD_ZERO(&set); + FD_SET(16, &set); + close(16); + struct timespec timeout; + timeout.tv_sec = 0; + timeout.tv_nsec = 5000; + return pselect (17, &set, NULL, NULL, &timeout, NULL) != -1 || errno != EBADF; +]])], [gl_cv_func_pselect_detects_ebadf=yes], + [gl_cv_func_pselect_detects_ebadf=no], + [ + case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_pselect_detects_ebadf="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_pselect_detects_ebadf="guessing no" ;; + esac + ]) + ]) + case $gl_cv_func_pselect_detects_ebadf in + *yes) ;; + *) REPLACE_PSELECT=1 ;; + esac fi if test $ac_cv_func_pselect = no || test $gl_cv_sig_pselect = no; then diff --git a/m4/stdlib_h.m4 b/m4/stdlib_h.m4 index ab43728ace4..9c69f2e4d15 100644 --- a/m4/stdlib_h.m4 +++ b/m4/stdlib_h.m4 @@ -102,6 +102,7 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS], REPLACE_MALLOC=0; AC_SUBST([REPLACE_MALLOC]) REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC]) REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP]) + REPLACE_PTSNAME=0; AC_SUBST([REPLACE_PTSNAME]) REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R]) REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV]) REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R]) diff --git a/m4/sys_stat_h.m4 b/m4/sys_stat_h.m4 index 8af3353ea51..f45dee1dc4d 100644 --- a/m4/sys_stat_h.m4 +++ b/m4/sys_stat_h.m4 @@ -1,4 +1,4 @@ -# sys_stat_h.m4 serial 28 -*- Autoconf -*- +# sys_stat_h.m4 serial 27 -*- Autoconf -*- dnl Copyright (C) 2006-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -11,6 +11,9 @@ AC_DEFUN([gl_HEADER_SYS_STAT_H], [ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) + dnl For the mkdir substitute. + AC_REQUIRE([AC_C_INLINE]) + dnl Check for broken stat macros. AC_REQUIRE([AC_HEADER_STAT]) diff --git a/msdos/ChangeLog b/msdos/ChangeLog index 525868b2c70..d3d9bc657cc 100644 --- a/msdos/ChangeLog +++ b/msdos/ChangeLog @@ -1,3 +1,8 @@ +2012-10-04 Paul Eggert + + Merge from gnulib. + * msdos/sedlibmk.inp (REPLACE_PTSNAME): Edit to appropriate value. + 2012-09-27 Paul Eggert Check more robustly for timer_settime. diff --git a/msdos/sedlibmk.inp b/msdos/sedlibmk.inp index 67719cffbd4..9879947ca45 100644 --- a/msdos/sedlibmk.inp +++ b/msdos/sedlibmk.inp @@ -541,6 +541,7 @@ am__cd = cd /^REPLACE_PRINTF *=/s/@REPLACE_PRINTF@/0/ /^REPLACE_PTHREAD_SIGMASK *=/s/@REPLACE_PTHREAD_SIGMASK@/0/ /^REPLACE_PSELECT *=/s/@REPLACE_PSELECT@/0/ +/^REPLACE_PTSNAME *=/s/@REPLACE_PTSNAME@/0/ /^REPLACE_PTSNAME_R *=/s/@REPLACE_PTSNAME_R@/0/ /^REPLACE_PUTENV *=/s/@REPLACE_PUTENV@/0/ /^REPLACE_PWRITE *=/s/@REPLACE_PWRITE@/0/ From 7509f454d2351e8ea6ee158637bb16deb9f904bc Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 4 Oct 2012 00:23:35 -0700 Subject: [PATCH 013/272] Move ChangeLog entry to proper file. --- ChangeLog | 11 ----------- src/ChangeLog | 11 +++++++++++ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index aa93dc4079b..90b57c4c3da 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,17 +9,6 @@ * m4/stdlib_h.m4, m4/sys_stat_h.m4: Update from gnulib. * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. - Port timers to OpenBSD, plus check for timer failures. - OpenBSD problem reported by Han Boetes. - * profiler.c (setup_cpu_timer): Check for failure of timer_settime - and/or setitimer. - (Fprofiler_cpu_stop): Don't assume HAVE_SETITIMER. - * syssignal.h (HAVE_ITIMERSPEC): New macro. This is for platforms - like OpenBSD, which has timer_settime but does not declare it. - OpenBSD does not define SIGEV_SIGNAL, so use that when deciding - whether to use itimerspec-related primitives. All uses of - HAVE_TIMER_SETTIME replaced with HAVE_ITIMERSPEC. - 2012-09-30 Paul Eggert Merge from gnulib, incorporating: diff --git a/src/ChangeLog b/src/ChangeLog index 744376b0efd..9790ff7d0d1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -4,6 +4,17 @@ to avoid similar races. * keyboard.c (pending_signals): Now bool, not int. + Port timers to OpenBSD, plus check for timer failures. + OpenBSD problem reported by Han Boetes. + * profiler.c (setup_cpu_timer): Check for failure of timer_settime + and/or setitimer. + (Fprofiler_cpu_stop): Don't assume HAVE_SETITIMER. + * syssignal.h (HAVE_ITIMERSPEC): New macro. This is for platforms + like OpenBSD, which has timer_settime but does not declare it. + OpenBSD does not define SIGEV_SIGNAL, so use that when deciding + whether to use itimerspec-related primitives. All uses of + HAVE_TIMER_SETTIME replaced with HAVE_ITIMERSPEC. + 2012-10-02 Paul Eggert * profiler.c (handle_profiler_signal): Fix a malloc race From ca347e3d404f2da60d955762a7b12de387816560 Mon Sep 17 00:00:00 2001 From: Ikumi Keita Date: Thu, 4 Oct 2012 00:31:56 -0700 Subject: [PATCH 014/272] * src/minibuf.c (Fcompleting_read): Doc fix (tiny change) Fixes: debbugs:12555 --- src/ChangeLog | 4 ++++ src/minibuf.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 96546df6638..c48ae45a563 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-04 Ikumi Keita (tiny change) + + * minibuf.c (Fcompleting_read): Doc fix. (Bug#12555) + 2012-09-24 Glenn Morris * eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success) diff --git a/src/minibuf.c b/src/minibuf.c index a9bdf06b735..09046738ab9 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -1687,7 +1687,7 @@ If INITIAL-INPUT is non-nil, insert it in the minibuffer initially, functions, which use one-indexing for POSITION.) This feature is deprecated--it is best to pass nil for INITIAL-INPUT and supply the default value DEF instead. The user can yank the default value into - the minibuffer easily using \\[next-history-element]. + the minibuffer easily using \\\\[next-history-element]. HIST, if non-nil, specifies a history list and optionally the initial position in the list. It can be a symbol, which is the history list From b6c9d18ddf3ec795e7900bb09f49f67bc3ebf9b8 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Thu, 4 Oct 2012 06:17:29 -0400 Subject: [PATCH 015/272] Auto-commit of generated files. --- autogen/Makefile.in | 2 + autogen/configure | 106 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 107 insertions(+), 1 deletion(-) diff --git a/autogen/Makefile.in b/autogen/Makefile.in index e3264ff0c3f..14cb3c9c9c1 100644 --- a/autogen/Makefile.in +++ b/autogen/Makefile.in @@ -683,6 +683,7 @@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ +REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ @@ -1633,6 +1634,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ + -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ diff --git a/autogen/configure b/autogen/configure index 11e046c551b..f08dd5503a2 100755 --- a/autogen/configure +++ b/autogen/configure @@ -909,6 +909,7 @@ REPLACE_REALLOC REPLACE_RANDOM_R REPLACE_PUTENV REPLACE_PTSNAME_R +REPLACE_PTSNAME REPLACE_MKSTEMP REPLACE_MBTOWC REPLACE_MALLOC @@ -7295,8 +7296,41 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_needed" >&5 $as_echo "$gl_cv_cc_nomfi_needed" >&6; } fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -Wuninitialized is supported" >&5 +$as_echo_n "checking whether -Wuninitialized is supported... " >&6; } + if test "${gl_cv_cc_uninitialized_supported+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror -Wuninitialized" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_cc_uninitialized_supported=yes +else + gl_cv_cc_uninitialized_supported=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_uninitialized_supported" >&5 +$as_echo "$gl_cv_cc_uninitialized_supported" >&6; } + fi + # List all gcc warning categories. gl_manywarn_set= for gl_manywarn_item in \ -W \ @@ -7415,11 +7449,15 @@ $as_echo "$gl_cv_cc_nomfi_needed" >&6; } gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item" done - # Disable the missing-field-initializers warning if needed + # Disable specific options as needed. if test "$gl_cv_cc_nomfi_needed" = yes; then gl_manywarn_set="$gl_manywarn_set -Wno-missing-field-initializers" fi + if test "$gl_cv_cc_uninitialized_supported" = no; then + gl_manywarn_set="$gl_manywarn_set -Wno-uninitialized" + fi + ws=$gl_manywarn_set @@ -16842,6 +16880,7 @@ _ACEOF REPLACE_MALLOC=0; REPLACE_MBTOWC=0; REPLACE_MKSTEMP=0; + REPLACE_PTSNAME=0; REPLACE_PTSNAME_R=0; REPLACE_PUTENV=0; REPLACE_RANDOM_R=0; @@ -21625,6 +21664,69 @@ rm -f core conftest.err conftest.$ac_objext \ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sig_pselect" >&5 $as_echo "$gl_cv_sig_pselect" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pselect detects invalid fds" >&5 +$as_echo_n "checking whether pselect detects invalid fds... " >&6; } +if test "${gl_cv_func_pselect_detects_ebadf+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + + case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_pselect_detects_ebadf="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_pselect_detects_ebadf="guessing no" ;; + esac + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if HAVE_SYS_SELECT_H +# include +#endif +#include +#include + +int +main () +{ + + fd_set set; + dup2(0, 16); + FD_ZERO(&set); + FD_SET(16, &set); + close(16); + struct timespec timeout; + timeout.tv_sec = 0; + timeout.tv_nsec = 5000; + return pselect (17, &set, NULL, NULL, &timeout, NULL) != -1 || errno != EBADF; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + gl_cv_func_pselect_detects_ebadf=yes +else + gl_cv_func_pselect_detects_ebadf=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pselect_detects_ebadf" >&5 +$as_echo "$gl_cv_func_pselect_detects_ebadf" >&6; } + case $gl_cv_func_pselect_detects_ebadf in + *yes) ;; + *) REPLACE_PSELECT=1 ;; + esac fi if test $ac_cv_func_pselect = no || test $gl_cv_sig_pselect = no; then @@ -23436,6 +23538,8 @@ done + + if test $gl_cv_have_include_next = yes; then From 6bab5d8b319af32f3486dc57bfdb8c219e7f9d33 Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Thu, 4 Oct 2012 14:56:14 +0200 Subject: [PATCH 016/272] I edebug-pop-to-buffer select window after setting its buffer (Bug#10805). * emacs-lisp/edebug.el (edebug-pop-to-buffer): Select window after setting its buffer (Bug#10805). --- lisp/ChangeLog | 5 +++++ lisp/emacs-lisp/edebug.el | 7 ++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 689659fd797..ca0b3ef37ba 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-04 Martin Rudalics + + * emacs-lisp/edebug.el (edebug-pop-to-buffer): Select window + after setting its buffer (Bug#10805). + 2012-10-03 Fabián Ezequiel Gallina Fix cornercase for string syntax. diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el index d656dcf9526..18d1661e985 100644 --- a/lisp/emacs-lisp/edebug.el +++ b/lisp/emacs-lisp/edebug.el @@ -383,12 +383,9 @@ Return the result of the last expression in BODY." ;; All windows are dedicated or show `edebug-trace-buffer', split ;; selected one. (t (split-window)))) - (select-window window) (set-window-buffer window buffer) - (set-window-hscroll window 0);; should this be?? - ;; Selecting the window does not set the buffer until command loop. - ;;(set-buffer buffer) - ) + (select-window window) + (set-window-hscroll window 0)) ;; should this be?? (defun edebug-get-displayed-buffer-points () ;; Return a list of buffer point pairs, for all displayed buffers. From 6938736c79bf1d14fcd10a4235da861b661eebb5 Mon Sep 17 00:00:00 2001 From: Julien Danjou Date: Thu, 4 Oct 2012 15:11:49 +0200 Subject: [PATCH 017/272] Rename erc-notifications.el to erc-desktop-notifications.el * erc-desktop-notifications.el: Rename from erc-notifications to avoid clash with 8+3 filename format and erc-notify.el. --- lisp/erc/ChangeLog | 5 +++++ ...{erc-notifications.el => erc-desktop-notifications.el} | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) rename lisp/erc/{erc-notifications.el => erc-desktop-notifications.el} (92%) diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 348765036ea..3558a8a90b5 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -1,3 +1,8 @@ +2012-10-04 Julien Danjou + + * erc-desktop-notifications.el: Rename from erc-notifications to + avoid clash with 8+3 filename format and erc-notify.el. + 2012-09-25 Chong Yidong * erc.el (erc-send-command): Use define-obsolete-function-alias. diff --git a/lisp/erc/erc-notifications.el b/lisp/erc/erc-desktop-notifications.el similarity index 92% rename from lisp/erc/erc-notifications.el rename to lisp/erc/erc-desktop-notifications.el index 4faffc913c5..57b93f43219 100644 --- a/lisp/erc/erc-notifications.el +++ b/lisp/erc/erc-desktop-notifications.el @@ -1,4 +1,4 @@ -;; erc-notifications.el -- Send notification on PRIVMSG or mentions +;; erc-desktop-notifications.el -- Send notification on PRIVMSG or mentions ;; Copyright (C) 2012 Free Software Foundation, Inc. @@ -75,7 +75,7 @@ This will replace the last notification sent with this function." (member nick erc-track-exclude))) (erc-notifications-notify nick msg))))) -;;;###autoload(autoload 'erc-notifications-mode "erc-notifications" "" t) +;;;###autoload(autoload 'erc-notifications-mode "erc-desktop-notifications" "" t) (define-erc-module notifications nil "Send notifications on private message reception and mentions." ;; Enable @@ -85,6 +85,6 @@ This will replace the last notification sent with this function." ((remove-hook 'erc-server-PRIVMSG-functions 'erc-notifications-PRIVMSG) (remove-hook 'erc-text-matched-hook 'erc-notifications-notify-on-match))) -(provide 'erc-notifications) +(provide 'erc-desktop-notifications) -;;; erc-notifications.el ends here +;;; erc-desktop-notifications.el ends here From fc345011a69cd7e3d38d1b6e06f85ef9d7658232 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabi=C3=A1n=20Ezequiel=20Gallina?= Date: Thu, 4 Oct 2012 13:39:37 -0300 Subject: [PATCH 018/272] Allow user to set docstring style for fill-paragraph. * progmodes/python.el (python-fill-comment-function, python-fill-string-function) (python-fill-decorator-function, python-fill-paren-function): Remove :safe for defcustoms. (python-fill-string-style): New defcustom (python-fill-paragraph-function): Enhanced context detection. (python-fill-string): Honor python-fill-string-style settings. --- lisp/ChangeLog | 11 +++ lisp/progmodes/python.el | 176 ++++++++++++++++++++++++++++----------- 2 files changed, 139 insertions(+), 48 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ca0b3ef37ba..a29ca51033d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,14 @@ +2012-10-04 Fabián Ezequiel Gallina + + Allow user to set docstring style for fill-paragraph. + * progmodes/python.el + (python-fill-comment-function, python-fill-string-function) + (python-fill-decorator-function, python-fill-paren-function): + Remove :safe for defcustoms. + (python-fill-string-style): New defcustom + (python-fill-paragraph-function): Enhanced context detection. + (python-fill-string): Honor python-fill-string-style settings. + 2012-10-04 Martin Rudalics * emacs-lisp/edebug.el (edebug-pop-to-buffer): Select window diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index f5e4bffd598..b917d3f6429 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -2267,32 +2267,82 @@ inferior python process is updated properly." This is the function used by `python-fill-paragraph-function' to fill comments." :type 'symbol - :group 'python - :safe 'symbolp) + :group 'python) (defcustom python-fill-string-function 'python-fill-string "Function to fill strings. This is the function used by `python-fill-paragraph-function' to fill strings." :type 'symbol - :group 'python - :safe 'symbolp) + :group 'python) (defcustom python-fill-decorator-function 'python-fill-decorator "Function to fill decorators. This is the function used by `python-fill-paragraph-function' to fill decorators." :type 'symbol - :group 'python - :safe 'symbolp) + :group 'python) (defcustom python-fill-paren-function 'python-fill-paren "Function to fill parens. This is the function used by `python-fill-paragraph-function' to fill parens." :type 'symbol + :group 'python) + +(defcustom python-fill-string-style 'pep-257 + "Style used to fill docstrings. +This affects `python-fill-string' behavior with regards to +triple quotes positioning. + +Possible values are DJANGO, PEP-257, PEP-257-NN, SYMMETRIC and +NIL. A value of NIL won't care about quotes position, will do +what `fill-paragraph' does, any other value may result in one of +the following docstring styles: + +DJANGO: + + \"\"\" + Process foo, return bar. + \"\"\" + + \"\"\" + Process foo, return bar. + + If processing fails throw ProcessingError. + \"\"\" + +PEP-257: + + \"\"\"Process foo, return bar.\"\"\" + + \"\"\"Process foo, return bar. + + If processing fails throw ProcessingError. + + \"\"\" + +PEP-257-NN: + + \"\"\"Process foo, return bar.\"\"\" + + \"\"\"Process foo, return bar. + + If processing fails throw ProcessingError. + \"\"\" + +SYMMETRIC: + + \"\"\"Process foo, return bar.\"\"\" + + \"\"\" + Process foo, return bar. + + If processing fails throw ProcessingError. + \"\"\"" + :type 'symbol :group 'python - :safe 'symbolp) + :safe (lambda (val) (memq val '(django pep-257 pep-257-nn symmetric nil)))) (defun python-fill-paragraph-function (&optional justify) "`fill-paragraph-function' handling multi-line strings and possibly comments. @@ -2302,18 +2352,19 @@ the string's indentation. Optional argument JUSTIFY defines if the paragraph should be justified." (interactive "P") (save-excursion - (back-to-indentation) (cond ;; Comments - ((funcall python-fill-comment-function justify)) + ((python-syntax-context 'comment) + (funcall python-fill-comment-function justify)) ;; Strings/Docstrings - ((save-excursion (skip-chars-forward "\"'uUrR") - (python-syntax-context 'string)) + ((save-excursion (or (python-syntax-context 'string) + (equal (string-to-syntax "|") + (syntax-after (point))))) (funcall python-fill-string-function justify)) ;; Decorators ((equal (char-after (save-excursion (back-to-indentation) - (point-marker))) ?@) + (point))) ?@) (funcall python-fill-decorator-function justify)) ;; Parens ((or (python-syntax-context 'paren) @@ -2332,43 +2383,72 @@ JUSTIFY should be used (if applicable) as in `fill-paragraph'." (defun python-fill-string (&optional justify) "String fill function for `python-fill-paragraph-function'. JUSTIFY should be used (if applicable) as in `fill-paragraph'." - (let ((marker (point-marker)) - (string-start-marker - (progn - (skip-chars-forward "\"'uUrR") - (goto-char (python-syntax-context 'string)) - (skip-chars-forward "\"'uUrR") - (point-marker))) - (reg-start (line-beginning-position)) - (string-end-marker - (progn - (while (python-syntax-context 'string) - (goto-char (1+ (point-marker)))) - (skip-chars-backward "\"'") - (point-marker))) - (reg-end (line-end-position)) - (fill-paragraph-function)) + (let* ((marker (point-marker)) + (str-start-pos + (let ((m (make-marker))) + (setf (marker-position m) + (or (python-syntax-context 'string) + (and (equal (string-to-syntax "|") + (syntax-after (point))) + (point)))) m)) + (num-quotes (python-syntax-count-quotes + (char-after str-start-pos) str-start-pos)) + (str-end-pos + (save-excursion + (goto-char (+ str-start-pos num-quotes)) + (or (re-search-forward (rx (syntax string-delimiter)) nil t) + (goto-char (point-max))) + (point-marker))) + (multi-line-p + ;; Docstring styles may vary for oneliners and multi-liners. + (> (count-matches "\n" str-start-pos str-end-pos) 0)) + (delimiters-style + (case python-fill-string-style + ;; delimiters-style is a cons cell with the form + ;; (START-NEWLINES . END-NEWLINES). When any of the sexps + ;; is NIL means to not add any newlines for start or end + ;; of docstring. See `python-fill-string-style' for a + ;; graphic idea of each style. + (pep-257 (and multi-line-p (cons nil 2))) + (pep-257-nn (and multi-line-p (cons nil 1))) + (django (cons 1 1)) + (symmetric (and multi-line-p (cons 1 1))))) + (docstring-p (save-excursion + ;; Consider docstrings those strings which + ;; start on a line by themselves. + (goto-char str-start-pos) + (skip-chars-backward (rx whitespace)) + (= (point) (line-beginning-position)))) + (fill-paragraph-function)) (save-restriction - (narrow-to-region reg-start reg-end) - (save-excursion - (goto-char string-start-marker) - (delete-region (point-marker) (progn - (skip-syntax-forward "> ") - (point-marker))) - (goto-char string-end-marker) - (delete-region (point-marker) (progn - (skip-syntax-backward "> ") - (point-marker))) - (save-excursion - (goto-char marker) - (fill-paragraph justify)) - ;; If there is a newline in the docstring lets put triple - ;; quote in it's own line to follow pep 8 - (when (save-excursion - (re-search-backward "\n" string-start-marker t)) - (newline) - (newline-and-indent)) - (fill-paragraph justify)))) t) + (narrow-to-region str-start-pos str-end-pos) + (fill-paragraph justify)) + (save-excursion + (when (and docstring-p python-fill-string-style) + ;; Add the number of newlines indicated by the selected style + ;; at the start of the docstring. + (goto-char (+ str-start-pos num-quotes)) + (delete-region (point) (progn + (skip-syntax-forward "> ") + (point))) + (and (car delimiters-style) + (or (newline (car delimiters-style)) t) + ;; Indent only if a newline is added. + (indent-according-to-mode)) + ;; Add the number of newlines indicated by the selected style + ;; at the end of the docstring. + (goto-char (if (not (= str-end-pos (point-max))) + (- str-end-pos num-quotes) + str-end-pos)) + (delete-region (point) (progn + (skip-syntax-backward "> ") + (point))) + (and (cdr delimiters-style) + ;; Add newlines only if string ends. + (not (= str-end-pos (point-max))) + (or (newline (cdr delimiters-style)) t) + ;; Again indent only if a newline is added. + (indent-according-to-mode))))) t) (defun python-fill-decorator (&optional justify) "Decorator fill function for `python-fill-paragraph-function'. From 8d956cef2430d5aad817e82308e2a061c07cc857 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Thu, 4 Oct 2012 14:27:37 -0400 Subject: [PATCH 019/272] * lisp/emacs-lisp/timer.el (with-timeout): Add missing progn. (Bug#12577) --- lisp/ChangeLog | 4 ++++ lisp/emacs-lisp/timer.el | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 37985d5ee38..c569b3c9f05 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-10-04 Glenn Morris + + * emacs-lisp/timer.el (with-timeout): Add missing progn. (Bug#12577) + 2012-10-01 Juanma Barranquero * ido.el (ido-directory-too-big-p): Pass dir through file-truename diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el index b6b7c266263..3aa7ab330e7 100644 --- a/lisp/emacs-lisp/timer.el +++ b/lisp/emacs-lisp/timer.el @@ -425,7 +425,7 @@ be detected. (with-timeout-timers (cons -with-timeout-timer- with-timeout-timers))) (unwind-protect - ,@body + (progn ,@body) (cancel-timer -with-timeout-timer-)))))) ;; It is tempting to avoid the `if' altogether and instead run ;; timeout-forms in the timer, just before throwing `timeout'. From 93cacb6d08689703ff59d4bf720ce5ec21a62062 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Thu, 4 Oct 2012 21:30:08 +0300 Subject: [PATCH 020/272] * lisp/dired.el (dired-shrink-to-fit): Declare obsolete. (dired-pop-to-buffer): Declare obsolete. (dired-mark-pop-up): Doc fix. Fixes: debbugs:1806 --- etc/NEWS | 2 ++ lisp/ChangeLog | 8 +++++++- lisp/dired.el | 11 ++++++++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 577017607cc..7cf55ec24cc 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -792,6 +792,7 @@ in Emacs 24.1: **** `special-display-buffer-names' **** `special-display-function' **** `display-buffer-function' +**** `dired-shrink-to-fit' ** Time --- @@ -856,6 +857,7 @@ See the "Face Attributes" section of the Elisp manual. *** `buffer-has-markers-at' *** `macro-declaration-function' (use `macro-declarations-alist'). *** `window-system-version' +*** `dired-pop-to-buffer' (use `dired-mark-pop-up') * Changes in Emacs 24.3 on non-free operating systems diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a29ca51033d..160bcbd45c5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2012-10-04 Juri Linkov + + * dired.el (dired-shrink-to-fit): Declare obsolete. (Bug#1806) + (dired-pop-to-buffer): Declare obsolete. + (dired-mark-pop-up): Doc fix. + 2012-10-04 Fabián Ezequiel Gallina Allow user to set docstring style for fill-paragraph. @@ -347,7 +353,7 @@ 2012-09-30 Juri Linkov * arc-mode.el (archive-summarize): Let-bind `buffer-file-truename' - to nil around the call to `add-text-properties' to prevent + to nil around the call to `insert' to prevent directory time modification by lock_file. (Bug#2295) * tar-mode.el (tar-summarize-buffer): Idem. diff --git a/lisp/dired.el b/lisp/dired.el index 8cb3902161a..a17e1805339 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -248,6 +248,10 @@ This is what the do-commands look for, and what the mark-commands store.") ;; I see no reason ever to make this nil -- rms. ;; (> baud-rate search-slow-speed) "Non-nil means Dired shrinks the display buffer to fit the marked files.") +(make-obsolete-variable 'dired-shrink-to-fit + "use the Customization interface to add a new rule +to `display-buffer-alist' where condition regexp is \"^ \\*Marked Files\\*$\", +action argument symbol is `window-height' and its value is nil." "24.3") (defvar dired-file-version-alist) @@ -1877,7 +1881,6 @@ for more info): `dired-listing-switches' `dired-trivial-filenames' - `dired-shrink-to-fit' `dired-marker-char' `dired-del-marker' `dired-keep-marker-rename' @@ -2940,6 +2943,7 @@ or \"* [3 files]\"." (defun dired-pop-to-buffer (buf) "Pop up buffer BUF in a way suitable for Dired." + (declare (obsolete dired-mark-pop-up "24.3")) (let ((split-window-preferred-function (lambda (window) (or (and (let ((split-height-threshold 0)) @@ -2981,6 +2985,11 @@ BUFFER-OR-NAME; the default name being \" *Marked Files*\". The window is not shown if there is just one file, `dired-no-confirm' is t, or OP-SYMBOL is a member of the list in `dired-no-confirm'. +By default, Dired shrinks the display buffer to fit the marked files. +To disable this, use the Customization interface to add a new rule +to `display-buffer-alist' where condition regexp is \"^ \\*Marked Files\\*$\", +action argument symbol is `window-height' and its value is nil. + FILES is the list of marked files. It can also be (t FILENAME) in the case of one marked file, to distinguish that from using just the current file. From 0e2ae83d4be1b7c54546125baf9357bd423fc776 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Thu, 4 Oct 2012 22:28:11 +0300 Subject: [PATCH 021/272] * lisp/replace.el (query-replace-interactive): Declare obsolete. (query-replace-read-from): Add the last incremental search string to the list of default values accessible via M-n. (map-query-replace-regexp): Use `read-regexp'. (query-replace, query-replace-regexp, query-replace-regexp-eval) (map-query-replace-regexp, replace-string, replace-regexp): Fix docstrings to replace mentions of `query-replace-interactive' with alternatives. Fixes: debbugs:12526 --- etc/NEWS | 1 + lisp/ChangeLog | 11 ++++++++++ lisp/replace.el | 53 ++++++++++++++++++++++++++++--------------------- 3 files changed, 42 insertions(+), 23 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 7cf55ec24cc..be75b665c1d 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -858,6 +858,7 @@ See the "Face Attributes" section of the Elisp manual. *** `macro-declaration-function' (use `macro-declarations-alist'). *** `window-system-version' *** `dired-pop-to-buffer' (use `dired-mark-pop-up') +*** `query-replace-interactive' * Changes in Emacs 24.3 on non-free operating systems diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 160bcbd45c5..f6138eaa15b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,14 @@ +2012-10-04 Juri Linkov + + * replace.el (query-replace-interactive): Declare obsolete. + (query-replace-read-from): Add the last incremental search string + to the list of default values accessible via M-n. + (map-query-replace-regexp): Use `read-regexp'. + (query-replace, query-replace-regexp, query-replace-regexp-eval) + (map-query-replace-regexp, replace-string, replace-regexp): + Fix docstrings to replace mentions of `query-replace-interactive' + with alternatives. (Bug#12526) + 2012-10-04 Juri Linkov * dired.el (dired-shrink-to-fit): Declare obsolete. (Bug#1806) diff --git a/lisp/replace.el b/lisp/replace.el index 82edb0037fb..e714015fccf 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -62,6 +62,10 @@ no default value.") (defvar query-replace-interactive nil "Non-nil means `query-replace' uses the last search string. That becomes the \"string to replace\".") +(make-obsolete-variable 'query-replace-interactive + "use `M-n' to pull the last incremental search string +to the minibuffer that reads the string to replace, or invoke replacements +from Isearch by using a key sequence like `C-s C-s M-%'." "24.3") (defcustom query-replace-from-history-variable 'query-replace-history "History list to use for the FROM argument of `query-replace' commands. @@ -142,7 +146,8 @@ wants to replace FROM with TO." (if regexp-flag (read-regexp prompt nil query-replace-from-history-variable) (read-from-minibuffer - prompt nil nil nil query-replace-from-history-variable nil t))))) + prompt nil nil nil query-replace-from-history-variable + (car (if regexp-flag regexp-search-ring search-ring)) t))))) (if (and (zerop (length from)) query-replace-defaults) (cons (car query-replace-defaults) (query-replace-compile-replacement @@ -231,9 +236,11 @@ what to do with it. For directions, type \\[help-command] at that time. In Transient Mark mode, if the mark is active, operate on the contents of the region. Otherwise, operate from point to the end of the buffer. -If `query-replace-interactive' is non-nil, the last incremental search -string is used as FROM-STRING--you don't have to specify it with the -minibuffer. +Use \\\\[next-history-element] \ +to pull the last incremental search string to the minibuffer +that reads FROM-STRING, or invoke replacements from +incremental search with a key sequence like `C-s C-s M-%' +to use its current search string as the string to replace. Matching is independent of case if `case-fold-search' is non-nil and FROM-STRING has no uppercase letters. Replacement transfers the case @@ -279,9 +286,11 @@ what to do with it. For directions, type \\[help-command] at that time. In Transient Mark mode, if the mark is active, operate on the contents of the region. Otherwise, operate from point to the end of the buffer. -If `query-replace-interactive' is non-nil, the last incremental search -regexp is used as REGEXP--you don't have to specify it with the -minibuffer. +Use \\\\[next-history-element] \ +to pull the last incremental search regexp to the minibuffer +that reads REGEXP, or invoke replacements from +incremental search with a key sequence like `C-M-s C-M-s C-M-%' +to use its current search regexp as the regexp to replace. Matching is independent of case if `case-fold-search' is non-nil and REGEXP has no uppercase letters. Replacement transfers the case @@ -364,9 +373,9 @@ In interactive use, `\\#' in itself stands for `replace-count'. In Transient Mark mode, if the mark is active, operate on the contents of the region. Otherwise, operate from point to the end of the buffer. -If `query-replace-interactive' is non-nil, the last incremental search -regexp is used as REGEXP--you don't have to specify it with the -minibuffer. +Use \\\\[next-history-element] \ +to pull the last incremental search regexp to the minibuffer +that reads REGEXP. Preserves case in each replacement if `case-replace' and `case-fold-search' are non-nil and REGEXP has no uppercase letters. @@ -417,19 +426,16 @@ of the region. Otherwise, operate from point to the end of the buffer. Non-interactively, TO-STRINGS may be a list of replacement strings. -If `query-replace-interactive' is non-nil, the last incremental search -regexp is used as REGEXP--you don't have to specify it with the minibuffer. +Use \\\\[next-history-element] \ +to pull the last incremental search regexp to the minibuffer +that reads REGEXP. A prefix argument N says to use each replacement string N times before rotating to the next. Fourth and fifth arg START and END specify the region to operate on." (interactive - (let* ((from (if query-replace-interactive - (car regexp-search-ring) - (read-from-minibuffer "Map query replace (regexp): " - nil nil nil - query-replace-from-history-variable - nil t))) + (let* ((from (read-regexp "Map query replace (regexp): " nil + query-replace-from-history-variable)) (to (read-from-minibuffer (format "Query replace %s with (space-separated strings): " (query-replace-descr from)) @@ -475,9 +481,9 @@ Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace only matches surrounded by word boundaries. Fourth and fifth arg START and END specify the region to operate on. -If `query-replace-interactive' is non-nil, the last incremental search -string is used as FROM-STRING--you don't have to specify it with the -minibuffer. +Use \\\\[next-history-element] \ +to pull the last incremental search string to the minibuffer +that reads FROM-STRING. This function is usually the wrong thing to use in a Lisp program. What you probably want is a loop like this: @@ -540,8 +546,9 @@ When using those Lisp features interactively in the replacement text, TO-STRING is actually made a list instead of a string. Use \\[repeat-complex-command] after this command for details. -If `query-replace-interactive' is non-nil, the last incremental search -regexp is used as REGEXP--you don't have to specify it with the minibuffer. +Use \\\\[next-history-element] \ +to pull the last incremental search regexp to the minibuffer +that reads REGEXP. This function is usually the wrong thing to use in a Lisp program. What you probably want is a loop like this: From 7604f29862ce57d9941ecc4813f9d9e2a09460c4 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 4 Oct 2012 22:07:45 +0200 Subject: [PATCH 022/272] Fix test for invalid handle in w32.c's 'utime'. src/w32.c (utime): Test for INVALID_HANDLE_VALUE, not for NULL, to see whether CreateFile failed. --- src/ChangeLog | 5 +++++ src/w32.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 9790ff7d0d1..85a4c829063 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-10-04 Eli Zaretskii + + * w32.c (utime): Test for INVALID_HANDLE_VALUE, not for NULL, to + see whether CreateFile failed. + 2012-10-04 Paul Eggert * profiler.c (handle_profiler_signal): Inhibit pending signals too, diff --git a/src/w32.c b/src/w32.c index 3d3ae7eebc3..6b52fb8398d 100644 --- a/src/w32.c +++ b/src/w32.c @@ -3954,7 +3954,7 @@ utime (const char *name, struct utimbuf *times) /* Need write access to set times. */ fh = CreateFile (name, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, NULL); - if (fh) + if (fh != INVALID_HANDLE_VALUE) { convert_from_time_t (times->actime, &atime); convert_from_time_t (times->modtime, &mtime); From be636386220e8a73b57b03572c625fa92bcf199a Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 4 Oct 2012 22:13:41 +0200 Subject: [PATCH 023/272] Fix wording in TUTORIAL.ru. Suggested by Igor Potseluev <4eppelin@gmail.com>. --- etc/tutorials/TUTORIAL.ru | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/tutorials/TUTORIAL.ru b/etc/tutorials/TUTORIAL.ru index 0d7405eb1e6..13c79b99f1f 100644 --- a/etc/tutorials/TUTORIAL.ru +++ b/etc/tutorials/TUTORIAL.ru @@ -406,7 +406,7 @@ C-k удалит две строки, а также завершающие их текста). Вы можете восстановить убитый текст в месте удаления или в любой другой точке редактируемого текста или даже в другом файле. Вы можете восстановить текст несколько раз и получить несколько копий данного текста. -Некоторые редактора называют операции "убить" и "восстановить" как +Некоторые редакторы называют операции "убить" и "восстановить" иначе: "вырезать" (cutting) и "вставить" (pasting) (ознакомьтесь с глоссарием (Glossary) в руководстве по Emacs). From 735135f9bc3c01b91ffef7c418dd9281bc347ab7 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 4 Oct 2012 22:57:24 -0700 Subject: [PATCH 024/272] Spelling fixes. --- admin/grammars/srecode-template.wy | 2 +- doc/emacs/display.texi | 2 +- doc/lispref/commands.texi | 2 +- doc/lispref/errors.texi | 4 ++-- doc/misc/ede.texi | 14 ++++++------- doc/misc/eieio.texi | 14 ++++++------- doc/misc/org.texi | 16 +++++++------- etc/ORG-NEWS | 12 +++++------ lib/stdlib.in.h | 2 +- lisp/ChangeLog | 3 ++- lisp/ChangeLog.10 | 2 +- lisp/cedet/ede.el | 4 ++-- lisp/cedet/ede/auto.el | 4 ++-- lisp/cedet/ede/autoconf-edit.el | 2 +- lisp/cedet/inversion.el | 2 +- lisp/cedet/semantic/bovine/c.el | 4 ++-- lisp/cedet/semantic/complete.el | 3 +-- lisp/cedet/semantic/db-global.el | 2 +- lisp/cedet/semantic/db-typecache.el | 2 +- lisp/cedet/semantic/decorate/include.el | 2 +- lisp/cedet/semantic/fw.el | 4 ++-- lisp/cedet/semantic/lex-spp.el | 2 +- lisp/cedet/semantic/symref/filter.el | 2 +- lisp/cedet/semantic/tag-ls.el | 10 ++++----- lisp/cedet/semantic/tag.el | 4 ++-- lisp/emacs-lisp/eieio-base.el | 6 +++--- lisp/emacs-lisp/timer.el | 2 +- lisp/ido.el | 2 +- lisp/org/ChangeLog | 12 +++-------- lisp/org/org-agenda.el | 28 ++++++++++++------------- lisp/org/org-element.el | 2 +- lisp/org/org-faces.el | 2 +- lisp/org/org-remember.el | 2 +- lisp/proced.el | 2 +- lisp/profiler.el | 2 +- lisp/progmodes/python.el | 2 +- lisp/progmodes/verilog-mode.el | 4 ++-- lisp/subr.el | 2 +- lisp/textmodes/reftex.el | 2 +- lisp/window.el | 4 ++-- src/lread.c | 2 +- src/unexmacosx.c | 2 +- 42 files changed, 96 insertions(+), 102 deletions(-) diff --git a/admin/grammars/srecode-template.wy b/admin/grammars/srecode-template.wy index 95ac8a07307..f84a414b46e 100644 --- a/admin/grammars/srecode-template.wy +++ b/admin/grammars/srecode-template.wy @@ -212,7 +212,7 @@ section-dictionary ; dictionary-entry-list - : ;; emtpy + : ;; empty () | dictionary-entry-list dictionary-entry (append $1 $2) diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index 2313d117a90..90bfcf147c5 100644 --- a/doc/emacs/display.texi +++ b/doc/emacs/display.texi @@ -1065,7 +1065,7 @@ present. Type @kbd{M-x delete-trailing-whitespace} to delete all trailing whitespace. This command deletes all extra spaces at the end of each line in the buffer, and all empty lines at the end of the buffer; to -ignore the latter, change the varaible @code{delete-trailing-lines} to +ignore the latter, change the variable @code{delete-trailing-lines} to @code{nil}. If the region is active, the command instead deletes extra spaces at the end of each line in the region. diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi index 93dba237013..9ffa2b74857 100644 --- a/doc/lispref/commands.texi +++ b/doc/lispref/commands.texi @@ -1952,7 +1952,7 @@ position such events have. @defun posnp object This function returns non-@code{nil} if @var{object} is a mouse -oposition list, in either of the formats documented in @ref{Click +position list, in either of the formats documented in @ref{Click Events}); and @code{nil} otherwise. @end defun diff --git a/doc/lispref/errors.texi b/doc/lispref/errors.texi index b7b26c8708c..b28ed6e84c4 100644 --- a/doc/lispref/errors.texi +++ b/doc/lispref/errors.texi @@ -148,7 +148,7 @@ The message is @samp{No catch for tag}. @xref{Catch and Throw}. @ignore @c Not actually used for anything? Probably definition should be removed. @item protected-field -The message is @samp{Attempt to modify a protected fiel. +The message is @samp{Attempt to modify a protected file}. @end ignore @item scan-error @@ -205,7 +205,7 @@ of @code{domain-error}. The message is @code{Arithmetic range error}. @item singularity-error -The mssage is @samp{Arithmetic singularity error}. This is a +The message is @samp{Arithmetic singularity error}. This is a subcategory of @code{domain-error}. @item underflow-error diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi index b0e149b09b6..046cdc99414 100644 --- a/doc/misc/ede.texi +++ b/doc/misc/ede.texi @@ -302,7 +302,7 @@ that file to your target. . a myprogram RET @end example -Note that these promps often have completion, so you can just press +Note that these prompts often have completion, so you can just press @kbd{TAB} to complete the name @file{myprogram}. If you had many files to add to the same target, you could mark them @@ -785,7 +785,7 @@ also supports several debugging tools via @file{android.el}. An arduino project of type @samp{ede-arduino-project} will read your @file{~/.arduino/preferences.txt} file, and identify your sketches. You will still need the Arduino IDE to set up your preferences and -locate your arduino. After quiting the IDE, Emacs will be able to +locate your arduino. After quitting the IDE, Emacs will be able to find your sketches, compile them, and upload them to your arduino. If you have the @file{arduino} command on your path, @ede{} will be @@ -1169,14 +1169,14 @@ Some example project types are: @table @code @item project-am -Autmake project which reads existing Automake files. +Automake project which reads existing Automake files. @item ede-proj-project This project type will create @file{Makefiles}, or @file{Makefile.am} files to compile your project. @item ede-linux This project type will detect linux source trees. @item ede-emacs -This proejct will detect an Emacs source tree. +This project will detect an Emacs source tree. @end table There are several other project types as well. @@ -1291,7 +1291,7 @@ it finds the top of the project. It does this by calling @code{ede-toplevel-project}. If this hasn't already been discovered, the directories as scanned upward one at a time until a directory with no project is found. The last found project becomes the project -root. If the ofund instance of @code{ede-project-autoload} has a +root. If the found instance of @code{ede-project-autoload} has a valid @code{proj-root} slot value, then that function is called instead of scanning the project by hand. Some project types have a short-cut for determining the root of a project, so this comes in handy. @@ -3331,7 +3331,7 @@ Bonus: Return a cons cell: (COMPILED . UPTODATE). @end deffn @deffn Method ede-proj-flush-autoconf :AFTER this -Flush the configure file (current buffer) to accomodate @var{THIS}. +Flush the configure file (current buffer) to accommodate @var{THIS}. @end deffn @deffn Method ede-buffer-mine :AFTER this buffer @@ -3920,7 +3920,7 @@ Return the default macro to 'edit' for this object type. @end deffn @deffn Method project-compile-target-command :AFTER this -Default target t- use when compling a texinfo file. +Default target to use when compiling a texinfo file. @end deffn @deffn Method ede-documentation :AFTER this diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi index 9f3625e180f..6b3a87f19fc 100644 --- a/doc/misc/eieio.texi +++ b/doc/misc/eieio.texi @@ -595,7 +595,7 @@ This is the default. @item :depth-first Search for methods in the class hierarchy in a depth first order. @item :c3 -Searches for methods in in a learnarized way that most closely matches +Searches for methods in in a linearized way that most closely matches what CLOS does when a monotonic class structure is defined. @end table @@ -1010,7 +1010,7 @@ This is the default. @item :depth-first Search for methods in the class hierarchy in a depth first order. @item :c3 -Searches for methods in in a learnarized way that most closely matches +Searches for methods in in a linearized way that most closely matches what CLOS does when CLOS when a monotonic class structure is defined. This is derived from the Dylan language documents by @@ -1408,8 +1408,8 @@ provided. Read a persistent object from @var{filename}, and return it. Signal an error if the object in @var{FILENAME} is not a constructor for @var{CLASS}. Optional @var{allow-subclass} says that it is ok for -@code{eieio-peristent-read} to load in subclasses of class instead of -being pendantic." +@code{eieio-persistent-read} to load in subclasses of class instead of +being pedantic. @end defun @node eieio-named @@ -1564,9 +1564,9 @@ texinfo format by using the tools in the file @file{eieio-doc.el} @deffn Command eieiodoc-class class indexstring &optional skiplist -This will start at the current point, and created an indented menu of +This will start at the current point, and create an indented menu of all the child classes of, and including @var{class}, but skipping any -classes that might be in @var{skiplist} It will then create nodes for +classes that might be in @var{skiplist}. It will then create nodes for all these classes, subsection headings, and indexes. Each class will be indexed using the texinfo labeled index @@ -1585,7 +1585,7 @@ where @var{indexstring} is replaced with the two letter code. Next, an inheritance tree will be created listing all parents of that section's class. -Then,all the slots will be expanded in tables, and described +Then, all the slots will be expanded in tables, and described using the documentation strings from the code. Default values will also be displayed. Only those slots with @code{:initarg} specified will be expanded, others will be hidden. If a slot is inherited from a parent, diff --git a/doc/misc/org.texi b/doc/misc/org.texi index 227af8faf10..89c99018460 100644 --- a/doc/misc/org.texi +++ b/doc/misc/org.texi @@ -947,7 +947,7 @@ description on Worg}. Installing Info files is system dependent, because of differences in the @file{install-info} program. The Info documentation is installed together with the rest of Org mode. If you don't install Org mode, it is possible to -install the Info documentation seperately (you need to have +install the Info documentation separately (you need to have install-info@footnote{The output from install-info (if any) is system dependent. In particular Debian and its derivatives use two different versions of install-info and you may see the message: @@ -2671,13 +2671,13 @@ durations computations @ref{Durations and time values}. @cindex Lisp forms, as table formulas It is also possible to write a formula in Emacs Lisp. This can be useful -for string manipulation and control structures, if Calc's functionality is -not enough. +for string manipulation and control structures, if Calc's functionality is +not enough. If a formula starts with a single-quote followed by an opening parenthesis, then it is evaluated as a Lisp form. The evaluation should return either a string or a number. Just as with @file{calc} formulas, you can specify modes -and a printf format after a semicolon. +and a printf format after a semicolon. With Emacs Lisp forms, you need to be conscious about the way field references are interpolated into the form. By default, a reference will be @@ -6114,7 +6114,7 @@ is only necessary if you edit the timestamps directly. If you change them with @kbd{S-@key{cursor}} keys, the update is automatic. @orgcmd{C-S-@key{up/down},org-clock-timestamps-up/down} On @code{CLOCK} log lines, increase/decrease both timestamps so that the -clock duration keeps the same. +clock duration keeps the same. @orgcmd{S-M-@key{up/down},org-timestamp-up/down} On @code{CLOCK} log lines, increase/decrease the timestamp at point and the one of the previous (or the next clock) timestamp by the same duration. @@ -16556,7 +16556,7 @@ rely on outline paths, in the hope that these will be unique enough.}. Finally, Org writes the file @file{index.org}, containing links to all other files. @i{MobileOrg} first reads this file from the server, and then downloads all agendas and Org files listed in it. To speed up the download, -MobileOrg will only read files whose checksums@footnote{Checksums are stored +MobileOrg will only read files whose checksums@footnote{Checksums are stored automatically in the file @file{checksums.dat}} have changed. @node Pulling from MobileOrg, , Pushing to MobileOrg, MobileOrg @@ -16704,7 +16704,7 @@ on @file{org-element.el} and @file{org-export.el} has been outstanding, and opened the doors for many new ideas and features. @item Jambunathan K -Jambunathan contributed the ODT exporter, definitly a killer feature of +Jambunathan contributed the ODT exporter, definitely a killer feature of Org mode. He also contributed the new HTML exporter, which is another core feature of Org. Here too, I knew I could rely on him to fix bugs in these areas and to patiently explain the users what was the problems and solutions. @@ -16712,7 +16712,7 @@ areas and to patiently explain the users what was the problems and solutions. @item Achim Gratz Achim rewrote the building process of Org, turning some @emph{ad hoc} tools into a flexible and conceptually clean process. He patiently coped with the -many hicups that such a change can create for users. +many hiccups that such a change can create for users. @item Nick Dokos The Org mode mailing list would not be such a nice place without Nick, who diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 35aab7a0eef..c6851948368 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -65,12 +65,12 @@ See http://orgmode.org/elpa/ *** Org Element - =org-element.el= is a toolbox for parsing and analysing "elements" + =org-element.el= is a toolbox for parsing and analyzing "elements" in an Org-mode buffer. This has been written by Nicolas Goaziou and has been tested for quite some time. It is now part of Org's core and many core functions rely on this package. - Two functions might be particularily handy for users: + Two functions might be particularly handy for users: =org-element-at-point= and =org-element-context=. See the docstrings for more details. @@ -539,7 +539,7 @@ supported. **** =:results org= now put results in a =#+BEGIN_SRC org= block =:results org= used to put results in a =#+BEGIN_ORG= block but it now puts -results in a =#+BEGIN_SRC org= block, wich comma-escaped lines. +results in a =#+BEGIN_SRC org= block, with comma-escaped lines. =#+BEGIN_ORG= blocks are obsolete. @@ -552,7 +552,7 @@ It used to exports the results of the code. **** New menu entry for [[doc::org-refile][org-refile]] **** Allow capturing to encrypted entries -If you capture to an encrypted entry, it will be decrpyted before +If you capture to an encrypted entry, it will be decrypted before inserting the template then re-encrypted after finalizing the capture. **** Inactive timestamps are now handled in tables @@ -932,7 +932,7 @@ that Calc formulas can operate on them. **** org-gnus.el now allows link creation from messages - You can now create links from messages. This is particularily + You can now create links from messages. This is particularly useful when the user wants to stored messages that he sends, for later check. Thanks to Ulf Stegemann for the patch. @@ -1115,7 +1115,7 @@ that Calc formulas can operate on them. *** Completion -**** In-buffer completion is now done using John Wiegleys pcomplete.el +**** In-buffer completion is now done using John Wiegley's pcomplete.el Thanks to John Wiegley for much of this code. diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h index 8311a2893c8..65558402bf3 100644 --- a/lib/stdlib.in.h +++ b/lib/stdlib.in.h @@ -458,7 +458,7 @@ _GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - " /* Return the pathname of the pseudo-terminal slave associated with the master FD is open on, or NULL on errors. */ # if @REPLACE_PTSNAME@ -# if !(defined __cplusplus && defined GNULIB_NAMESPCE) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ptsname # define ptsname rpl_ptsname # endif diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f6138eaa15b..eaef867e9e2 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -8347,7 +8347,8 @@ 2012-03-18 Leo Liu - * net/rcirc.el (rcirc-cmd-quit): Allow quiting all servers with prefix. + * net/rcirc.el (rcirc-cmd-quit): Allow quitting all servers with + prefix. 2012-03-17 Eli Zaretskii diff --git a/lisp/ChangeLog.10 b/lisp/ChangeLog.10 index d94d72d0f3c..c9085827f7b 100644 --- a/lisp/ChangeLog.10 +++ b/lisp/ChangeLog.10 @@ -5492,7 +5492,7 @@ 2003-02-14 Dave Love - * international/code-pages.el: Undo `Trailing whitepace deleted.' + * international/code-pages.el: Undo `Trailing whitespace deleted.' damage. (cp1125, mik): Nullify mime-charset. diff --git a/lisp/cedet/ede.el b/lisp/cedet/ede.el index ce3536d53ee..22fe362d5d9 100644 --- a/lisp/cedet/ede.el +++ b/lisp/cedet/ede.el @@ -1358,13 +1358,13 @@ Return the first non-nil value returned by PROC." (defmethod ede-system-include-path ((this ede-project)) "Get the system include path used by project THIS." nil) - + (defmethod ede-system-include-path ((this ede-target)) "Get the system include path used by project THIS." nil) (defmethod ede-source-paths ((this ede-project) mode) - "Get the base to all source trees in the current projet for MODE. + "Get the base to all source trees in the current project for MODE. For example, /src for sources of c/c++, Java, etc, and /doc for doc sources." nil) diff --git a/lisp/cedet/ede/auto.el b/lisp/cedet/ede/auto.el index f6446db9108..152f8130ad7 100644 --- a/lisp/cedet/ede/auto.el +++ b/lisp/cedet/ede/auto.el @@ -68,7 +68,7 @@ into memory.") ;; Add new types of dirmatches here. - ;; Error for wierd stuff + ;; Error for weird stuff (t (error "Unknown dirmatch type."))))) @@ -285,7 +285,7 @@ the current buffer." ;; If this file DOES NOT match dirmatch, we set the callfcn ;; to nil, meaning don't load the ede support file for this ;; type of project. If it does match, we will load the file - ;; and use a more accurate programatic match from there. + ;; and use a more accurate programmatic match from there. (unless (ede-project-dirmatch-p file dirmatch) (setq callfcn nil)))) ;; Call into the project support file for a match. diff --git a/lisp/cedet/ede/autoconf-edit.el b/lisp/cedet/ede/autoconf-edit.el index 8144b135ac5..ebfb4154d81 100644 --- a/lisp/cedet/ede/autoconf-edit.el +++ b/lisp/cedet/ede/autoconf-edit.el @@ -165,7 +165,7 @@ items such as CHECK_HEADERS." (setq param (substring param (match-end 0)))) (when (string-match "\\s-*\\]?\\s-*\\'" param) (setq param (substring param 0 (match-beginning 0)))) - ;; Look for occurances of backslash newline + ;; Look for occurrences of backslash newline (while (string-match "\\s-*\\\\\\s-*\n\\s-*" param) (setq param (replace-match " " t t param))) param) diff --git a/lisp/cedet/inversion.el b/lisp/cedet/inversion.el index 6a13a12e8e1..6b0f007916b 100644 --- a/lisp/cedet/inversion.el +++ b/lisp/cedet/inversion.el @@ -348,7 +348,7 @@ Optional argument RESERVED is saved for later use." ;;;###autoload (defun inversion-require-emacs (emacs-ver xemacs-ver sxemacs-ver) - "Declare that you need either EMACS-VER, XEMACS-VER or SXEMACE-ver. + "Declare that you need either EMACS-VER, XEMACS-VER or SXEMACS-ver. Only checks one based on which kind of Emacs is being run." (let ((err (inversion-test 'emacs (cond ((featurep 'sxemacs) diff --git a/lisp/cedet/semantic/bovine/c.el b/lisp/cedet/semantic/bovine/c.el index 871bcdd6176..02ad6e05d1a 100644 --- a/lisp/cedet/semantic/bovine/c.el +++ b/lisp/cedet/semantic/bovine/c.el @@ -390,7 +390,7 @@ Pulls out the symbol list, and call `semantic-c-convert-spp-value-to-hideif-valu ;; can then interpret. (let ((stream (semantic-lex-spp-symbol-stream spp-symbol))) (cond - ;; Empyt string means defined, so t. + ;; Empty string means defined, so t. ((null stream) t) ;; A list means a parsed macro stream. ((listp stream) @@ -515,7 +515,7 @@ code to parse." ;; should be skipped. (semantic-c-skip-conditional-section) (setq semantic-lex-end-point (point)) - + ;; @TODO -somewhere around here, we also need to skip ;; other sections of the conditional. diff --git a/lisp/cedet/semantic/complete.el b/lisp/cedet/semantic/complete.el index f666491d667..61760dd3fe8 100644 --- a/lisp/cedet/semantic/complete.el +++ b/lisp/cedet/semantic/complete.el @@ -1555,7 +1555,7 @@ number of completions initially. Pressing TAB will show the extended set. Quiet: Only show completions when we have narrowed all -posibilities down to a maximum of +possibilities down to a maximum of `semantic-displayor-tooltip-initial-max-tags' tags. Pressing TAB multiple times will also show completions. @@ -2239,4 +2239,3 @@ will perform the completion." ;; End: ;;; semantic/complete.el ends here - diff --git a/lisp/cedet/semantic/db-global.el b/lisp/cedet/semantic/db-global.el index 0d144483cb9..a7bb130810e 100644 --- a/lisp/cedet/semantic/db-global.el +++ b/lisp/cedet/semantic/db-global.el @@ -48,7 +48,7 @@ in a GNU Global supported hierarchy. Two sanity checks are performed to assure (a) that GNU global program exists and (b) that the GNU global program version is compatibility with the database version. If optional NOERROR is nil, then an error may be signalled on version -mismatch. If NOERROR is not nil, then no error will be signlled. Instead +mismatch. If NOERROR is not nil, then no error will be signaled. Instead return value will indicate success or failure with non-nil or nil respective values." (interactive diff --git a/lisp/cedet/semantic/db-typecache.el b/lisp/cedet/semantic/db-typecache.el index 94999a2797b..0da98a6d357 100644 --- a/lisp/cedet/semantic/db-typecache.el +++ b/lisp/cedet/semantic/db-typecache.el @@ -584,7 +584,7 @@ If there isn't one, create it. (dolist (P path) (condition-case nil (oset P pointmax nil) - ;; Pointmax may not exist for all tables disovered in the + ;; Pointmax may not exist for all tables discovered in the ;; path. (error nil)) (semantic-reset (semanticdb-get-typecache P))))) diff --git a/lisp/cedet/semantic/decorate/include.el b/lisp/cedet/semantic/decorate/include.el index ede5c890163..0c2c5e3ce37 100644 --- a/lisp/cedet/semantic/decorate/include.el +++ b/lisp/cedet/semantic/decorate/include.el @@ -589,7 +589,7 @@ This means that Semantic cannot find a file associated with this tag on disk, but a database table of tags has been associated with it. This means that the include will still be used to find tags for -searches, but you connot visit this include.\n\n") +searches, but you cannot visit this include.\n\n") (princ "This Header is now represented by the following database table:\n\n ") (princ (object-print table)) ))) diff --git a/lisp/cedet/semantic/fw.el b/lisp/cedet/semantic/fw.el index c14ffb77169..5a12047eb76 100644 --- a/lisp/cedet/semantic/fw.el +++ b/lisp/cedet/semantic/fw.el @@ -85,7 +85,7 @@ c))) event)) (defun semantic-popup-menu (menu) - "Blockinig version of `popup-menu'" + "Blocking version of `popup-menu'" (popup-menu menu) ;; Wait... (while (popup-up-p) (dispatch-event (next-event)))) @@ -139,7 +139,7 @@ 'run-mode-hooks 'run-hooks)) - ;; Fancy compat useage now handled in cedet-compat + ;; Fancy compat usage now handled in cedet-compat (defalias 'semantic-subst-char-in-string 'subst-char-in-string) ) diff --git a/lisp/cedet/semantic/lex-spp.el b/lisp/cedet/semantic/lex-spp.el index 5fe900452a0..406f2900563 100644 --- a/lisp/cedet/semantic/lex-spp.el +++ b/lisp/cedet/semantic/lex-spp.el @@ -646,7 +646,7 @@ be merged recursively." ;; #define FOO(a) foo##a##bar (semantic-lex-spp-symbol-merge (cadr tok))) (t - (message "Invalid merge macro ecountered; \ + (message "Invalid merge macro encountered; \ will return empty string instead.") ""))) txt diff --git a/lisp/cedet/semantic/symref/filter.el b/lisp/cedet/semantic/symref/filter.el index c294fd1727e..c6aa48bfbc3 100644 --- a/lisp/cedet/semantic/symref/filter.el +++ b/lisp/cedet/semantic/symref/filter.el @@ -101,7 +101,7 @@ tag that contains point, and return that." (semantic-tag-start tag) (semantic-tag-end tag)) (when (called-interactively-p 'interactive) - (message "Found %d occurances of %s in %.2f seconds" + (message "Found %d occurrences of %s in %.2f seconds" Lcount (semantic-tag-name target) (semantic-elapsed-time start (current-time)))) Lcount))) diff --git a/lisp/cedet/semantic/tag-ls.el b/lisp/cedet/semantic/tag-ls.el index d6d2c203aa8..094ea554287 100644 --- a/lisp/cedet/semantic/tag-ls.el +++ b/lisp/cedet/semantic/tag-ls.el @@ -66,7 +66,7 @@ have values, they must still match." (define-overloadable-function semantic--tag-similar-types-p (tag1 tag2) "Compare the types of TAG1 and TAG2. -This functions can be overriden, for example to compare a fully +This function can be overridden, for example to compare a fully qualified with an unqualified type." (cond ((and (null (semantic-tag-type tag1)) @@ -80,7 +80,7 @@ qualified with an unqualified type." (defun semantic--tag-similar-types-p-default (tag1 tag2) "Compare the types of TAG1 and TAG2. -This functions can be overriden, for example to compare a fully +This function can be overridden, for example to compare a fully qualified with an unqualified type." (semantic-tag-of-type-p tag1 (semantic-tag-type tag2))) @@ -97,7 +97,7 @@ Modes that override this function can call `semantic--tag-attribute-similar-p-de to do the default equality tests if ATTR is not special for that mode.") (defun semantic--tag-attribute-similar-p-default (attr value1 value2 ignorable-attributes) - "For ATTR, VALUE1, VALUE2 and IGNORABLE-ATTRIBUTES, test for similarness." + "For ATTR, VALUE1, VALUE2 and IGNORABLE-ATTRIBUTES, test for similarity." (cond ;; Tag sublists require special testing. ((and (listp value1) (semantic-tag-p (car value1)) @@ -131,7 +131,7 @@ Similar tags that have sub-tags such as arg lists or type members, are similar w/out checking the sub-list of tags. Optional argument IGNORABLE-ATTRIBUTES are attributes to ignore while comparing similarity. By default, `semantic-tag-similar-ignorable-attributes' is referenced for -attributes, and IGNOREABLE-ATTRIBUTES will augment this list. +attributes, and IGNORABLE-ATTRIBUTES will augment this list. Note that even though :name is not an attribute, it can be used to to indicate lax comparison of names via `semantic--tag-similar-names-p'") @@ -207,7 +207,7 @@ Return the name of the first tag of class `package' in STREAM." (define-overloadable-function semantic-tag-full-name (tag &optional stream-or-buffer) "Return the fully qualified name of TAG in the package hierarchy. -STREAM-OR-BUFFER can be anything convertable by `semantic-something-to-stream', +STREAM-OR-BUFFER can be anything convertible by `semantic-something-to-stream', but must be a toplevel semantic tag stream that contains TAG. A Package Hierarchy is defined in UML by the way classes and methods are organized on disk. Some languages use this concept such that a diff --git a/lisp/cedet/semantic/tag.el b/lisp/cedet/semantic/tag.el index 08fe467b367..38166871cea 100644 --- a/lisp/cedet/semantic/tag.el +++ b/lisp/cedet/semantic/tag.el @@ -554,7 +554,7 @@ You can identify a faux tag with `semantic-tag-faux-p'" "Set TAG name to NAME." (setcar tag name)) -;;; TAG Proxys +;;; TAG Proxies ;; ;; A new kind of tag is a TAG PROXY. These are tags that have some ;; minimal number of features set, such as name and class, but have a @@ -570,7 +570,7 @@ two arguments, DATA and TAG. TAG is a proxy tag that needs to be resolved, and DATA is the DATA passed into this function. DATA is data to help resolve the proxy. DATA can be an EIEIO object, such that FUNCTION is a method. -FUNCTION should return a list of tags, preferrably one tag." +FUNCTION should return a list of tags, preferably one tag." (let ((sym (make-symbol ":tag-proxy"))) (put sym 'proxy-function function) (put sym 'proxy-data data) diff --git a/lisp/emacs-lisp/eieio-base.el b/lisp/emacs-lisp/eieio-base.el index 6677e2c3abb..69fe762887f 100644 --- a/lisp/emacs-lisp/eieio-base.el +++ b/lisp/emacs-lisp/eieio-base.el @@ -228,8 +228,8 @@ a file. Optional argument NAME specifies a default file name." "Read a persistent object from FILENAME, and return it. Signal an error if the object in FILENAME is not a constructor for CLASS. Optional ALLOW-SUBCLASS says that it is ok for -`eieio-peristent-read' to load in subclasses of class instead of -being pendantic." +`eieio-persistent-read' to load in subclasses of class instead of +being pedantic." (unless class (message "Unsafe call to `eieio-persistent-read'.")) (when (and class (not (class-p class))) @@ -301,7 +301,7 @@ identified, and needing more object creation." "Validate that in CLASS, the SLOT with PROPOSED-VALUE is good, then fix. A limited number of functions, such as quote, list, and valid object constructor functions are considered valid. -Secondarilly, any text properties will be stripped from strings." +Second, any text properties will be stripped from strings." (cond ((consp proposed-value) ;; Lists with something in them need special treatment. (let ((slot-idx (eieio-slot-name-index class nil slot)) diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el index 494d8a87e0e..08b8ced9860 100644 --- a/lisp/emacs-lisp/timer.el +++ b/lisp/emacs-lisp/timer.el @@ -204,7 +204,7 @@ timers). If nil, allocate a new cell." "Insert TIMER into `timer-idle-list'. This arranges to activate TIMER whenever Emacs is next idle. If optional argument DONT-WAIT is non-nil, set TIMER to activate -immediately \(see beloe\), or at the right time, if Emacs is +immediately \(see below\), or at the right time, if Emacs is already idle. REUSE-CELL, if non-nil, is a cons cell to reuse when inserting diff --git a/lisp/ido.el b/lisp/ido.el index 94818fe57b0..ffa2604d4fb 100644 --- a/lisp/ido.el +++ b/lisp/ido.el @@ -496,7 +496,7 @@ as first char even if `ido-enable-prefix' is nil." ;; See http://debbugs.gnu.org/2042 for more info. (defcustom ido-buffer-disable-smart-matches t "Non-nil means not to re-order matches for buffer switching. -By default, ido aranges matches in the following order: +By default, ido arranges matches in the following order: full-matches > suffix matches > prefix matches > remaining matches diff --git a/lisp/org/ChangeLog b/lisp/org/ChangeLog index 066ebf3e6e0..ef40c9316cf 100644 --- a/lisp/org/ChangeLog +++ b/lisp/org/ChangeLog @@ -2079,13 +2079,7 @@ * org-agenda.el (org-agenda-list): Ensures that the list returned by `org-agenda-add-time-grid-maybe' is appended to ̀rtnall' before - checking if the latter is emtpy. - -2012-09-30 Christophe Junke (tiny change) - - * org-agenda.el (org-agenda-list): Ensure that the list returned - by `org-agenda-add-time-grid-maybe' is appended to `rtnall' before - checking if the latter is emtpy. + checking if the latter is empty. 2012-09-30 Christophe Rhodes (tiny change) @@ -2691,7 +2685,7 @@ * org-element.el (org-element-paragraph-parser): Fix parsing of paragraph at the beginning of an item. - * org.el (org-mode): Set back comment-start-skip so comment-dwin + * org.el (org-mode): Set back comment-start-skip so comment-dwim can tell a keyword from a comment. * org.el (org-set-autofill-regexps): Install new comment line @@ -2959,7 +2953,7 @@ * org-capture.el (org-capture-fill-template): Expand % escape sequences into text entered for 'th %^{PROMPT} escape. - + * org-capture.el (org-capture-fill-template): Fixed regexp for % expandos to match any positive integer. (org-capture-templates): Updated docstring accordingly. diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el index 97241b6ac65..32fecde2af0 100644 --- a/lisp/org/org-agenda.el +++ b/lisp/org/org-agenda.el @@ -823,7 +823,7 @@ because you will take care of it on the day when scheduled." :group 'org-agenda-daily/weekly :version "24.1" :type '(choice - (const :tag "Alwas show prewarning" nil) + (const :tag "Always show prewarning" nil) (const :tag "Remove prewarning if entry is scheduled" t) (integer :tag "Restart prewarning N days before deadline"))) @@ -2837,7 +2837,7 @@ L Timeline for current buffer # List stuck projects (!=configure) (widen) (let ((inhibit-read-only t)) (add-text-properties (point-min) (point-max) - `(org-serie t org-serie-redo-cmd ,redo))) + `(org-series t org-series-redo-cmd ,redo))) (setq org-agenda-redo-command redo) (goto-char (point-min))) (org-agenda-fit-window-to-buffer) @@ -4019,7 +4019,7 @@ given in `org-agenda-start-on-weekday'." `(org-agenda-type agenda org-last-args (,arg ,start-day ,span) org-redo-cmd ,org-agenda-redo-command - org-serie-cmd ,org-cmd)) + org-series-cmd ,org-cmd)) (if (eq org-agenda-show-log-scoped 'clockcheck) (org-agenda-show-clocking-issues)) (org-agenda-finalize) @@ -4324,7 +4324,7 @@ in `org-agenda-text-search-extra-files'." `(org-agenda-type search org-last-args (,todo-only ,string ,edit-at) org-redo-cmd ,org-agenda-redo-command - org-serie-cmd ,org-cmd)) + org-series-cmd ,org-cmd)) (org-agenda-finalize) (setq buffer-read-only t)))) @@ -4414,7 +4414,7 @@ for a keyword. A numeric prefix directly selects the Nth keyword in `(org-agenda-type todo org-last-args ,arg org-redo-cmd ,org-agenda-redo-command - org-serie-cmd ,org-cmd)) + org-series-cmd ,org-cmd)) (org-agenda-finalize) (setq buffer-read-only t)))) @@ -4499,7 +4499,7 @@ The prefix arg TODO-ONLY limits the search to TODO entries." `(org-agenda-type tags org-last-args (,todo-only ,match) org-redo-cmd ,org-agenda-redo-command - org-serie-cmd ,org-cmd)) + org-series-cmd ,org-cmd)) (org-agenda-finalize) (setq buffer-read-only t)))) @@ -6583,7 +6583,7 @@ Org-mode buffers visited directly by the user will not be touched." (org-agenda-Quit)) (defun org-agenda-kill-all-agenda-buffers () - "Kill all buffers in `org-agena-mode'. + "Kill all buffers in `org-agenda-mode'. This is used when toggling sticky agendas. You can also explicitly invoke it with `C-c a C-k'." (interactive) @@ -6623,20 +6623,20 @@ in the agenda." (lprops (get 'org-agenda-redo-command 'org-lprops)) (redo-cmd (get-text-property p 'org-redo-cmd)) (last-args (get-text-property p 'org-last-args)) - (org-agenda-overriding-cmd (get-text-property p 'org-serie-cmd)) + (org-agenda-overriding-cmd (get-text-property p 'org-series-cmd)) (org-agenda-overriding-cmd-arguments (unless (eq all t) (cond ((listp last-args) (cons (or cpa (car last-args)) (cdr last-args))) ((stringp last-args) last-args)))) - (serie-redo-cmd (get-text-property p 'org-serie-redo-cmd))) + (series-redo-cmd (get-text-property p 'org-series-redo-cmd))) (put 'org-agenda-tag-filter :preset-filter nil) (put 'org-agenda-category-filter :preset-filter nil) (and cols (org-columns-quit)) (message "Rebuilding agenda buffer...") - (if serie-redo-cmd - (eval serie-redo-cmd) + (if series-redo-cmd + (eval series-redo-cmd) (org-let lprops '(eval redo-cmd))) (setq org-agenda-undo-list nil org-agenda-pending-undo-list nil) @@ -7035,7 +7035,7 @@ Negative selection means regexp must not match for selection of an entry." (or (and cnt (text-property-any (point-min) (point-max) 'org-day-cnt cnt)) (text-property-any (point-min) (point-max) 'org-today t) (text-property-any (point-min) (point-max) 'org-agenda-type 'agenda) - (and (get-text-property (min (1- (point-max)) (point)) 'org-serie) + (and (get-text-property (min (1- (point-max)) (point)) 'org-series) (org-agenda-goto-block-beginning)) (point-min)))) @@ -7090,7 +7090,7 @@ With prefix ARG, go forward that many times the current span." ;; `cmd' may have been set by `org-agenda-run-series' which ;; uses `org-agenda-overriding-cmd' to decide whether ;; overriding is allowed for `cmd' - (get-text-property (min (1- (point-max)) (point)) 'org-serie-cmd)) + (get-text-property (min (1- (point-max)) (point)) 'org-series-cmd)) (org-agenda-overriding-arguments (list (car args) sd span))) (org-agenda-redo) @@ -7183,7 +7183,7 @@ SPAN may be `day', `week', `month', `year'." org-starting-day)) (sd (org-agenda-compute-starting-span sd span n)) (org-agenda-overriding-cmd - (get-text-property (min (1- (point-max)) (point)) 'org-serie-cmd)) + (get-text-property (min (1- (point-max)) (point)) 'org-series-cmd)) (org-agenda-overriding-arguments (list (car args) sd span))) (org-agenda-redo) diff --git a/lisp/org/org-element.el b/lisp/org/org-element.el index 3d67ae7892a..8b44d4936f5 100644 --- a/lisp/org/org-element.el +++ b/lisp/org/org-element.el @@ -3924,7 +3924,7 @@ Return Org syntax as a string." (and (eq type 'paragraph) (equal data (car (org-element-contents parent))) (memq (org-element-type parent) - '(footnote-definiton item)))))) + '(footnote-definition item)))))) ""))) (funcall (intern (format "org-element-%s-interpreter" type)) data diff --git a/lisp/org/org-faces.el b/lisp/org/org-faces.el index cfa4c1c30a5..51aead1b8bb 100644 --- a/lisp/org/org-faces.el +++ b/lisp/org/org-faces.el @@ -293,7 +293,7 @@ column view defines special faces for each outline level. See the file (((class color) (min-colors 8) (background dark)) (:foreground "red" :inverse-video t)) (t (:inverse-video t)))) "Face for highlighting the calendar day when using `org-read-date'. -Using a bold face here might cause discrepencies while displaying the +Using a bold face here might cause discrepancies while displaying the calendar." :group 'org-faces) diff --git a/lisp/org/org-remember.el b/lisp/org/org-remember.el index 7a1eb7762de..dd493749295 100644 --- a/lisp/org/org-remember.el +++ b/lisp/org/org-remember.el @@ -64,7 +64,7 @@ and `org-remember-default-headline'. To force prompting anyway, use \\[universal-argument] \\[org-remember-finalize] to file the note. When this variable is nil, \\[org-remember-finalize] gives you the prompts, and -\\[universal-argument] \\[org-remember-finalize] triggers the fasttrack." +\\[universal-argument] \\[org-remember-finalize] triggers the fast track." :group 'org-remember :type 'boolean) diff --git a/lisp/proced.el b/lisp/proced.el index be6cae2ef08..ec41ce65ef5 100644 --- a/lisp/proced.el +++ b/lisp/proced.el @@ -1784,7 +1784,7 @@ supported but discouraged. It will be removed in a future version of Emacs." process-alist)))) (unless (and signal process-alist) - ;; Discouraged usge (supported for backward compatibility): + ;; Discouraged usage (supported for backward compatibility): ;; The new calling sequence separates more cleanly between the parts ;; of the code required for interactive and noninteractive calls so that ;; the command can be used more flexibly in noninteractive ways, too. diff --git a/lisp/profiler.el b/lisp/profiler.el index efa23e7aec0..5e605957833 100644 --- a/lisp/profiler.el +++ b/lisp/profiler.el @@ -495,7 +495,7 @@ return it." t)))))) (defun profiler-report-collapse-entry () - "Collpase entry at point." + "Collapse entry at point." (interactive) (save-excursion (beginning-of-line) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index b917d3f6429..d5aa73f5ef3 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -502,7 +502,7 @@ The type returned can be `comment', `string' or `paren'." (and ;; Match even number of backslashes. (or (not (any ?\\ ?\' ?\")) point - ;; Quotes might be preceeded by a escaped quote. + ;; Quotes might be preceded by a escaped quote. (and (or (not (any ?\\)) point) ?\\ (* ?\\ ?\\) (any ?\' ?\"))) (* ?\\ ?\\) diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el index 86ffdf535a0..8c4167b6724 100644 --- a/lisp/progmodes/verilog-mode.el +++ b/lisp/progmodes/verilog-mode.el @@ -5148,7 +5148,7 @@ This sets up the appropriate Verilog mode environment, removes whitespace with \\[verilog-delete-trailing-whitespace] on all command-line files, and saves the buffers." (unless noninteractive - (error "Use verilog-batch-delete-trailing-whitepace only with --batch")) ;; Otherwise we'd mess up buffer modes + (error "Use verilog-batch-delete-trailing-whitespace only with --batch")) ;; Otherwise we'd mess up buffer modes (verilog-batch-execute-func `verilog-delete-trailing-whitespace)) (defun verilog-batch-diff-auto () @@ -12161,7 +12161,7 @@ Limitations: Interface names must be resolvable to filenames. See `verilog-auto-inst'. As with other autos, any inputs/outputs declared in the module -will suppress the AUTO from redeclarating an inputs/outputs by +will suppress the AUTO from redeclaring an input/output by the same name. An example: diff --git a/lisp/subr.el b/lisp/subr.el index 8dfe78d8c75..b0ffb0db746 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -3170,7 +3170,7 @@ in which case `save-window-excursion' cannot help." (set-window-hscroll window 0) ;; Don't try this with NOFORCE non-nil! (set-window-start window (point-min) t) - ;; This hould not be necessary. + ;; This should not be necessary. (set-window-point window (point-min)) ;; Run `temp-buffer-show-hook', with the chosen window selected. (with-selected-window window diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el index 7052dcf473e..bdee0fcf1d4 100644 --- a/lisp/textmodes/reftex.el +++ b/lisp/textmodes/reftex.el @@ -2466,7 +2466,7 @@ information about your RefTeX version and configuration." "Remember to cover the basics, that is, what you expected to happen and what in fact did happen. -Check if the bug is reproducable with an up-to-date version of +Check if the bug is reproducible with an up-to-date version of RefTeX available from http://www.gnu.org/software/auctex/. If the bug is triggered by a specific \(La\)TeX file, you should try diff --git a/lisp/window.el b/lisp/window.el index 811b1781b4c..41af7f9f44b 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -701,7 +701,7 @@ SIDE. Return the new window, nil if its creation window failed." (set-window-parameter new 'delete-window 'delete-side-window) ;; Auto-adjust height/width of new window unless a size has been ;; explicitly requested. - (unless (if left-or-right + (unless (if left-or-right (cdr (assq 'window-width alist)) (cdr (assq 'window-height alist))) (setq alist @@ -5615,7 +5615,7 @@ the selected one." buffer window 'reuse alist display-buffer-mark-dedicated))))) (defun display-buffer-at-bottom (buffer alist) - "Try displaying BUFFER in a window at the botom of the selected frame. + "Try displaying BUFFER in a window at the bottom of the selected frame. This either splits the window at the bottom of the frame or the frame's root window, or reuses an existing window at the bottom of the selected frame." diff --git a/src/lread.c b/src/lread.c index 581332502ed..a2b6d1f26d9 100644 --- a/src/lread.c +++ b/src/lread.c @@ -1700,7 +1700,7 @@ readevalloop (Lisp_Object readcharfun, if (NILP (Ffboundp (macroexpand)) /* Don't macroexpand in .elc files, since it should have been done already. We actually don't know whether we're in a .elc file or not, - so we use circumstancial evidence: .el files normally go through + so we use circumstantial evidence: .el files normally go through Vload_source_file_function -> load-with-code-conversion -> eval-buffer. */ || EQ (readcharfun, Qget_file_char) diff --git a/src/unexmacosx.c b/src/unexmacosx.c index d38b91e955a..d304e85d490 100644 --- a/src/unexmacosx.c +++ b/src/unexmacosx.c @@ -119,7 +119,7 @@ along with GNU Emacs. If not, see . */ /* LC_DATA_IN_CODE is not defined in mach-o/loader.h on OS X 10.7. But it is used if we build with "Command Line Tools for Xcode 4.5 - (OS X Lion) - Septemper 2012". */ + (OS X Lion) - September 2012". */ #ifndef LC_DATA_IN_CODE #define LC_DATA_IN_CODE 0x29 /* table of non-instructions in __text */ #endif From 677c110942b7016e35b9c9338b881ca4882c6fcf Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Thu, 4 Oct 2012 23:50:23 -0700 Subject: [PATCH 025/272] Doc typo fixes --- doc/misc/calc.texi | 2 +- doc/misc/cl.texi | 4 ++-- lisp/files.el | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi index 48252ceb327..91c42161bb7 100644 --- a/doc/misc/calc.texi +++ b/doc/misc/calc.texi @@ -35252,7 +35252,7 @@ character of the prefix can simply be typed twice. Calc is controlled by many variables, most of which can be reset from within Calc. Some variables are less involved with actual -calculation and can be set outside of Calc using Emacs'ss +calculation and can be set outside of Calc using Emacs's customization facilities. These variables are listed below. Typing @kbd{M-x customize-variable RET @var{variable-name} RET} will bring up a buffer in which the variable's value can be redefined. diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi index d35c14acd1d..a5ee240edc4 100644 --- a/doc/misc/cl.texi +++ b/doc/misc/cl.texi @@ -2094,7 +2094,7 @@ of a list. @var{list} should evaluate to a list; the body @var{forms} are executed with @var{var} bound to each element of the list in turn. Finally, the @var{result} form (or @code{nil}) is evaluated with @var{var} bound to @code{nil} to produce the result returned by -the loop. Unlike with Emacs'ss built in @code{dolist}, the loop is +the loop. Unlike with Emacs's built in @code{dolist}, the loop is surrounded by an implicit @code{nil} block. @end defspec @@ -2104,7 +2104,7 @@ of times. The body is executed with @var{var} bound to the integers from zero (inclusive) to @var{count} (exclusive), in turn. Then the @code{result} form is evaluated with @var{var} bound to the total number of iterations that were done (i.e., @code{(max 0 @var{count})}) -to get the return value for the loop form. Unlike with Emacs'ss built in +to get the return value for the loop form. Unlike with Emacs's built in @code{dolist}, the loop is surrounded by an implicit @code{nil} block. @end defspec diff --git a/lisp/files.el b/lisp/files.el index 5f83639d9cf..5bb507d2397 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -22,7 +22,7 @@ ;;; Commentary: -;; Defines most of Emacs'ss file- and directory-handling functions, +;; Defines most of Emacs's file- and directory-handling functions, ;; including basic file visiting, backup generation, link handling, ;; ITS-id version control, load- and write-hook handling, and the like. From d8788e1e6f06cc719c4348c407015338a59a2f05 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Fri, 5 Oct 2012 00:17:23 -0700 Subject: [PATCH 026/272] Doc fixes * lisp/color.el (color-name-to-rgb, color-rgb-to-hex) (color-hue-to-rgb, color-hsl-to-rgb, color-rgb-to-hsv) (color-rgb-to-hsl, color-srgb-to-xyz, color-saturate-hsl) (color-desaturate-hsl, color-desaturate-name, color-lighten-hsl) (color-lighten-name, color-darken-hsl, color-darken-name): Doc fixes. Fixes: debbugs:12558 --- lisp/ChangeLog | 8 +++++ lisp/color.el | 94 ++++++++++++++++++++------------------------------ 2 files changed, 46 insertions(+), 56 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c569b3c9f05..e38e06298d7 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2012-10-05 Glenn Morris + + * color.el (color-name-to-rgb, color-rgb-to-hex) + (color-hue-to-rgb, color-hsl-to-rgb, color-rgb-to-hsv) + (color-rgb-to-hsl, color-srgb-to-xyz, color-saturate-hsl) + (color-desaturate-hsl, color-desaturate-name, color-lighten-hsl) + (color-lighten-name, color-darken-hsl, color-darken-name): Doc fixes. + 2012-10-04 Glenn Morris * emacs-lisp/timer.el (with-timeout): Add missing progn. (Bug#12577) diff --git a/lisp/color.el b/lisp/color.el index 6ccf9a79494..39b172d1e55 100644 --- a/lisp/color.el +++ b/lisp/color.el @@ -50,17 +50,17 @@ string (e.g. \"#ff12ec\"). Normally the return value is a list of three floating-point numbers, (RED GREEN BLUE), each between 0.0 and 1.0 inclusive. -Optional arg FRAME specifies the frame where the color is to be +Optional argument FRAME specifies the frame where the color is to be displayed. If FRAME is omitted or nil, use the selected frame. If FRAME cannot display COLOR, return nil." ;; `colors-values' maximum value is either 65535 or 65280 depending on the - ;; display system. So we use a white conversion to get the max value. + ;; display system. So we use a white conversion to get the max value. (let ((valmax (float (car (color-values "#ffffff"))))) (mapcar (lambda (x) (/ x valmax)) (color-values color frame)))) (defun color-rgb-to-hex (red green blue) "Return hexadecimal notation for the color RED GREEN BLUE. -RED GREEN BLUE must be numbers between 0.0 and 1.0 inclusive." +RED, GREEN, and BLUE should be numbers between 0.0 and 1.0, inclusive." (format "#%02x%02x%02x" (* red 255) (* green 255) (* blue 255))) @@ -76,7 +76,7 @@ a string specifying a color's RGB components (e.g. \"#ff12ec\")." (defun color-gradient (start stop step-number) "Return a list with STEP-NUMBER colors from START to STOP. The color list builds a color gradient starting at color START to -color STOP. It does not include the START and STOP color in the +color STOP. It does not include the START and STOP color in the resulting list." (let* ((r (nth 0 start)) (g (nth 1 start)) @@ -93,8 +93,8 @@ resulting list." (nreverse result))) (defun color-hue-to-rgb (v1 v2 h) - "Compute hue from V1 and V2 H. Internally used by -`color-hsl-to-rgb'." + "Compute hue from V1 and V2 H. +Used internally by `color-hsl-to-rgb'." (cond ((< h (/ 1.0 6)) (+ v1 (* (- v2 v1) h 6.0))) ((< h 0.5) v2) @@ -102,13 +102,10 @@ resulting list." (t v1))) (defun color-hsl-to-rgb (H S L) - "Convert H S L (HUE, SATURATION, LUMINANCE) , where HUE is in -radians and both SATURATION and LUMINANCE are between 0.0 and -1.0, inclusive to their RGB representation. - -Return a list (RED, GREEN, BLUE) which each be numbers between -0.0 and 1.0, inclusive." - + "Convert hue, saturation and luminance to their RGB representation. +H, S, and L should each be numbers between 0.0 and 1.0, inclusive. +Return a list (RED GREEN BLUE), where each element is between 0.0 and 1.0, +inclusive." (if (= S 0.0) (list L L L) (let* ((m2 (if (<= L 0.5) @@ -125,9 +122,9 @@ Return a list (RED, GREEN, BLUE) which each be numbers between (apply 'color-rgb-to-hex (color-complement color))) (defun color-rgb-to-hsv (red green blue) - "Convert RED, GREEN, and BLUE color components to HSV. + "Convert RGB color components to HSV. RED, GREEN, and BLUE should each be numbers between 0.0 and 1.0, -inclusive. Return a list (HUE, SATURATION, VALUE), where HUE is +inclusive. Return a list (HUE SATURATION VALUE), where HUE is in radians and both SATURATION and VALUE are between 0.0 and 1.0, inclusive." (let* ((r (float red)) @@ -155,13 +152,10 @@ inclusive." (/ max 255.0))))) (defun color-rgb-to-hsl (red green blue) - "Convert RED GREEN BLUE colors to their HSL representation. + "Convert RGB colors to their HSL representation. RED, GREEN, and BLUE should each be numbers between 0.0 and 1.0, -inclusive. - -Return a list (HUE, SATURATION, LUMINANCE), where HUE is in radians -and both SATURATION and LUMINANCE are between 0.0 and 1.0, -inclusive." +inclusive. Return a list (HUE SATURATION LUMINANCE), where +each element is between 0.0 and 1.0, inclusive." (let* ((r red) (g green) (b blue) @@ -187,7 +181,7 @@ inclusive." (defun color-srgb-to-xyz (red green blue) "Convert RED GREEN BLUE colors from the sRGB color space to CIE XYZ. -RED, BLUE and GREEN must be between 0 and 1, inclusive." +RED, GREEN and BLUE should be between 0.0 and 1.0, inclusive." (let ((r (if (<= red 0.04045) (/ red 12.95) (expt (/ (+ red 0.055) 1.055) 2.4))) @@ -225,7 +219,7 @@ RED, BLUE and GREEN must be between 0 and 1, inclusive." (defun color-xyz-to-lab (X Y Z &optional white-point) "Convert CIE XYZ to CIE L*a*b*. WHITE-POINT specifies the (X Y Z) white point for the -conversion. If omitted or nil, use `color-d65-xyz'." +conversion. If omitted or nil, use `color-d65-xyz'." (destructuring-bind (Xr Yr Zr) (or white-point color-d65-xyz) (let* ((xr (/ X Xr)) (yr (/ Y Yr)) @@ -247,7 +241,7 @@ conversion. If omitted or nil, use `color-d65-xyz'." (defun color-lab-to-xyz (L a b &optional white-point) "Convert CIE L*a*b* to CIE XYZ. WHITE-POINT specifies the (X Y Z) white point for the -conversion. If omitted or nil, use `color-d65-xyz'." +conversion. If omitted or nil, use `color-d65-xyz'." (destructuring-bind (Xr Yr Zr) (or white-point color-d65-xyz) (let* ((fy (/ (+ L 16) 116.0)) (fz (- fy (/ b 200.0))) @@ -344,17 +338,14 @@ returned by `color-srgb-to-lab' or `color-xyz-to-lab'." (min 1.0 (max 0.0 value))) (defun color-saturate-hsl (H S L percent) - "Return a color PERCENT more saturated than the one defined in -H S L color-space. - -Return a list (HUE, SATURATION, LUMINANCE), where HUE is in radians -and both SATURATION and LUMINANCE are between 0.0 and 1.0, -inclusive." + "Make a color more saturated by a specified amount. +Given a color defined in terms of hue, saturation, and luminance +\(arguments H, S, and L), return a color that is PERCENT more +saturated. Returns a list (HUE SATURATION LUMINANCE)." (list H (color-clamp (+ S (/ percent 100.0))) L)) (defun color-saturate-name (name percent) - "Short hand to saturate COLOR by PERCENT. - + "Make a color with a specified NAME more saturated by PERCENT. See `color-saturate-hsl'." (apply 'color-rgb-to-hex (apply 'color-hsl-to-rgb @@ -365,32 +356,26 @@ See `color-saturate-hsl'." (list percent)))))) (defun color-desaturate-hsl (H S L percent) - "Return a color PERCENT less saturated than the one defined in -H S L color-space. - -Return a list (HUE, SATURATION, LUMINANCE), where HUE is in radians -and both SATURATION and LUMINANCE are between 0.0 and 1.0, -inclusive." + "Make a color less saturated by a specified amount. +Given a color defined in terms of hue, saturation, and luminance +\(arguments H, S, and L), return a color that is PERCENT less +saturated. Returns a list (HUE SATURATION LUMINANCE)." (color-saturate-hsl H S L (- percent))) (defun color-desaturate-name (name percent) - "Short hand to desaturate COLOR by PERCENT. - + "Make a color with a specified NAME less saturated by PERCENT. See `color-desaturate-hsl'." (color-saturate-name name (- percent))) (defun color-lighten-hsl (H S L percent) - "Return a color PERCENT lighter than the one defined in -H S L color-space. - -Return a list (HUE, SATURATION, LUMINANCE), where HUE is in radians -and both SATURATION and LUMINANCE are between 0.0 and 1.0, -inclusive." + "Make a color lighter by a specified amount. +Given a color defined in terms of hue, saturation, and luminance +\(arguments H, S, and L), return a color that is PERCENT lighter. +Returns a list (HUE SATURATION LUMINANCE)." (list H S (color-clamp (+ L (/ percent 100.0))))) (defun color-lighten-name (name percent) - "Short hand to saturate COLOR by PERCENT. - + "Make a color with a specified NAME lighter by PERCENT. See `color-lighten-hsl'." (apply 'color-rgb-to-hex (apply 'color-hsl-to-rgb @@ -401,17 +386,14 @@ See `color-lighten-hsl'." (list percent)))))) (defun color-darken-hsl (H S L percent) - "Return a color PERCENT darker than the one defined in -H S L color-space. - -Return a list (HUE, SATURATION, LUMINANCE), where HUE is in radians -and both SATURATION and LUMINANCE are between 0.0 and 1.0, -inclusive." + "Make a color darker by a specified amount. +Given a color defined in terms of hue, saturation, and luminance +\(arguments H, S, and L), return a color that is PERCENT darker. +Returns a list (HUE SATURATION LUMINANCE)." (color-lighten-hsl H S L (- percent))) (defun color-darken-name (name percent) - "Short hand to saturate COLOR by PERCENT. - + "Make a color with a specified NAME darker by PERCENT. See `color-darken-hsl'." (color-lighten-name name (- percent))) From 204f3953f905810cdf0cbc797df9c583ef283a23 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Fri, 5 Oct 2012 00:25:04 -0700 Subject: [PATCH 027/272] * lisp/net/newst-treeview.el (newsticker-group-move-feed): Doc fix. --- lisp/ChangeLog | 2 ++ lisp/net/newst-treeview.el | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e38e06298d7..3f64b084f0b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,7 @@ 2012-10-05 Glenn Morris + * net/newst-treeview.el (newsticker-group-move-feed): Doc fix. + * color.el (color-name-to-rgb, color-rgb-to-hex) (color-hue-to-rgb, color-hsl-to-rgb, color-rgb-to-hsv) (color-rgb-to-hsl, color-srgb-to-xyz, color-saturate-hsl) diff --git a/lisp/net/newst-treeview.el b/lisp/net/newst-treeview.el index d003554e547..167bf1ad939 100644 --- a/lisp/net/newst-treeview.el +++ b/lisp/net/newst-treeview.el @@ -1736,7 +1736,7 @@ return a nested list." (defun newsticker-group-move-feed (name group-name &optional no-update) "Move feed NAME to group GROUP-NAME. -Update teeview afterwards unless NO-UPDATE is non-nil." +Update treeview afterwards unless NO-UPDATE is non-nil." (interactive (let ((completion-ignore-case t)) (list (completing-read "Feed Name: " From d259be38357793eb743ed2813d6f72a3d7728624 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Fri, 5 Oct 2012 00:34:10 -0700 Subject: [PATCH 028/272] * newsticker.texi (Overview, Requirements, Usage, Configuration): Copyedits. --- doc/misc/ChangeLog | 5 +++++ doc/misc/newsticker.texi | 34 ++++++++++++++++++---------------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 950a379b5fb..874252c34c7 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,8 @@ +2012-10-05 Glenn Morris + + * newsticker.texi (Overview, Requirements, Usage, Configuration): + Copyedits. + 2012-08-24 Chong Yidong * Version 24.2 released. diff --git a/doc/misc/newsticker.texi b/doc/misc/newsticker.texi index 919ca21cc3e..5add229724c 100644 --- a/doc/misc/newsticker.texi +++ b/doc/misc/newsticker.texi @@ -69,14 +69,14 @@ developing GNU and promoting software freedom.'' @node Overview @chapter Overview -Newsticker provides a newsticker for Emacs. A newsticker is a thing +Newsticker provides a newsticker for Emacs. A newsticker is a thing that asynchronously retrieves headlines from a list of news sites, prepares these headlines for reading, and allows for loading the corresponding articles in a web browser. Headlines consist of a title and (possibly) a small description. They -are contained in "RSS" (RDF Site Summary) or "Atom" files. Newsticker +are contained in ``RSS'' (RDF Site Summary) or ``Atom'' files. Newsticker works with the following RSS formats: @itemize @@ -105,8 +105,9 @@ messages in a stock-quote ticker, or just changing. Newsticker allows for automatic processing of headlines by providing hooks and (sample) functions for automatically downloading images and -enclosed files (as delivered by podcasts, e.g.). +enclosed files (as delivered by, e.g., podcasts). +@ignore @ifhtml Here are screen shots of the @uref{newsticker-1.7.png, version 1.7 (current version)} and some older screen shots: @@ -116,6 +117,7 @@ Here are screen shots of the @uref{newsticker-1.7.png, version 1.7 @uref{newsticker-1.3.png, version 1.3}, @uref{newsticker-1.0.png, version 1.0}. @end ifhtml +@end ignore @node Requirements @chapter Requirements @@ -123,7 +125,7 @@ Here are screen shots of the @uref{newsticker-1.7.png, version 1.7 Newsticker can be used with @uref{http://www.gnu.org/software/emacs/emacs.html, GNU Emacs} version 21.1 or later as well as @uref{http://www.xemacs.org, XEmacs}. It -requires an XML-parser (@file{xml.el}) which is part of GNU Emacs. If +requires an XML-parser (@file{xml.el}), which is part of GNU Emacs. If you are using XEmacs you want to get the @file{net-utils} package which contains @file{xml.el} for XEmacs. @@ -161,11 +163,11 @@ You can choose between two different frontends for reading headlines: @itemize @item Newsticker's @emph{treeview} uses separate windows for the feeds (in tree form), a list of headlines for the current feed, and -the content of the current headline. Feeds can be placed into groups -which itself can be placed in groups and so on. +the content of the current headline. Feeds can be placed into groups, +which themselves can be placed in groups and so on. @item Newsticker's @emph{plainview} displays all headlines in a -single buffer, called @samp{*newsticker*}. The modeline in the -@samp{*newsticker*} buffer informs whenever new headlines have +single buffer, called @samp{*newsticker*}. The modeline in the +@samp{*newsticker*} buffer informs you whenever new headlines have arrived. @end itemize In both views clicking mouse-button 2 or pressing RET on a headline @@ -175,13 +177,13 @@ your favorite web browser. @findex newsticker-start-ticker @findex newsticker-stop-ticker The scrolling, or flashing of headlines in the echo area, can be -started with the command @code{newsticker-start-ticker}. It can be +started with the command @code{newsticker-start-ticker}. It can be stopped with @code{newsticker-stop-ticker}. @findex newsticker-start @findex newsticker-stop If you just want to start the periodic download of headlines use the -command @code{newsticker-start}. Calling @code{newsticker-stop} will +command @code{newsticker-start}. Calling @code{newsticker-stop} will stop the periodic download, but will call @code{newsticker-stop-ticker} as well. @@ -189,7 +191,7 @@ stop the periodic download, but will call @chapter Configuration All Newsticker options are customizable, i.e. they can be changed with -Emacs customization methods: Call the command +Emacs customization methods. Call the command @code{customize-group} and enter @samp{newsticker} for the customization group. @@ -209,7 +211,7 @@ feeds are retrieved and how this is done. @itemize @item @vindex newsticker-url-list -@code{newsticker-url-list} defines the list of headlines which are +@code{newsticker-url-list} defines the list of headlines that are retrieved. @item @vindex newsticker-retrieval-method @@ -245,11 +247,11 @@ commands to newsticker functions. @item @vindex newsticker-new-item-functions @code{newsticker-new-item-functions} allows for automatic -processing of headlines. See `newsticker-download-images', and -`newsticker-download-enclosures' for sample functions. +processing of headlines. See @code{newsticker-download-images}, and +@code{newsticker-download-enclosures} for sample functions. @item @vindex newsticker-plainview-hooks -The subgroup @code{newsticker-plainview-hooks} contains hook which +The subgroup @code{newsticker-plainview-hooks} contains hooks that apply to the plainview reader only. @end itemize @@ -276,7 +278,7 @@ the echo area. @itemize @item @vindex newsticker-frontend -@code{newsticker-frontend} determines the actual headline reader. The +@code{newsticker-frontend} determines the actual headline reader. The ``plainview'' reader uses a single buffer, the ``treeview'' uses separate buffers and windows. @end itemize From 379acb951495d947ff42da6fc79b39f2e5f2f623 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Fri, 5 Oct 2012 15:48:25 +0800 Subject: [PATCH 029/272] * minibuf.texi (Basic Completion): Clarify list form of completion table. Fixes: debbugs:12564 --- doc/lispref/ChangeLog | 5 +++++ doc/lispref/minibuf.texi | 27 ++++++++++++--------------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 8568b024f67..7609efb8ac9 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,8 @@ +2012-10-05 Chong Yidong + + * minibuf.texi (Basic Completion): Clarify list form of completion + table (Bug#12564). + 2012-10-05 Bruno Félix Rezende Ribeiro (tiny change) * functions.texi (Function Safety): Copyedit. (Bug#12562) diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi index 3d6e80bf3f0..39b4fca3b25 100644 --- a/doc/lispref/minibuf.texi +++ b/doc/lispref/minibuf.texi @@ -664,25 +664,22 @@ This function returns the longest common substring of all possible completions of @var{string} in @var{collection}. @cindex completion table -The @var{collection} argument is called the @dfn{completion table}. -Its value must be a list of strings, an alist whose keys are strings -or symbols, an obarray, a hash table, or a completion function. +@var{collection} is called the @dfn{completion table}. Its value must +be a list of strings or cons cells, an obarray, a hash table, or a +completion function. -Completion compares @var{string} against each of the permissible -completions specified by @var{collection}. If no permissible -completions match, @code{try-completion} returns @code{nil}. If there -is just one matching completion, and the match is exact, it returns +@code{try-completion} compares @var{string} against each of the +permissible completions specified by the completion table. If no +permissible completions match, it returns @code{nil}. If there is +just one matching completion, and the match is exact, it returns @code{t}. Otherwise, it returns the longest initial sequence common to all possible matching completions. -If @var{collection} is an alist (@pxref{Association Lists}), the -permissible completions are the elements of the alist that are either -strings, or conses whose @sc{car} is a string or symbol. -Symbols are converted to strings using @code{symbol-name}. Other -elements of the alist are ignored. (Remember that in Emacs Lisp, the -elements of alists do not @emph{have} to be conses.) In particular, a -list of strings is allowed, even though we usually do not -think of such lists as alists. +If @var{collection} is an list, the permissible completions are +specified by the elements of the list, each of which should be either +a string, or a cons cell whose @sc{car} is either a string or a symbol +(a symbol is converted to a string using @code{symbol-name}). If the +list contains elements of any other type, those are ignored. @cindex obarray in completion If @var{collection} is an obarray (@pxref{Creating Symbols}), the names From 0d9f584b2c2a816670a22948615d7e0a5b93fc10 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 5 Oct 2012 11:17:17 +0200 Subject: [PATCH 030/272] Support setting file times of directories on MS-Windows. src/w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so that time stamps of directories could also be changed. Don't request the too broad GENERIC_WRITE, only the more restrictive FILE_WRITE_ATTRIBUTES access rights. src/fileio.c (Fset_file_times): Special-case ignoring errors for directories only on MSDOS, not on MS-Windows. --- src/ChangeLog | 10 ++++++++++ src/fileio.c | 2 +- src/w32.c | 5 +++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 396240bb7b8..b2502010619 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,13 @@ +2012-10-05 Eli Zaretskii + + * w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so + that time stamps of directories could also be changed. Don't + request the too broad GENERIC_WRITE, only the more restrictive + FILE_WRITE_ATTRIBUTES access rights. + + * fileio.c (Fset_file_times): Special-case ignoring errors for + directories only on MSDOS, not on MS-Windows. + 2012-10-05 Ikumi Keita (tiny change) * minibuf.c (Fcompleting_read): Doc fix. (Bug#12555) diff --git a/src/fileio.c b/src/fileio.c index 9ce9e7b8395..b4eda01afcc 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -3034,7 +3034,7 @@ Use the current time if TIMESTAMP is nil. TIMESTAMP is in the format of { if (set_file_times (-1, SSDATA (encoded_absname), t, t)) { -#ifdef DOS_NT +#ifdef MSDOS struct stat st; /* Setting times on a directory always fails. */ diff --git a/src/w32.c b/src/w32.c index 6b52fb8398d..5809e3ff91f 100644 --- a/src/w32.c +++ b/src/w32.c @@ -3952,8 +3952,9 @@ utime (const char *name, struct utimbuf *times) } /* Need write access to set times. */ - fh = CreateFile (name, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, - 0, OPEN_EXISTING, 0, NULL); + fh = CreateFile (name, FILE_WRITE_ATTRIBUTES, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + 0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL); if (fh != INVALID_HANDLE_VALUE) { convert_from_time_t (times->actime, &atime); From 0ace05d38a4dfcb5a468adaf8c8d5a6185a9eca2 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 5 Oct 2012 11:21:51 +0200 Subject: [PATCH 031/272] Improve commentary for the last commit. --- src/w32.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/w32.c b/src/w32.c index 5809e3ff91f..f17c06ea807 100644 --- a/src/w32.c +++ b/src/w32.c @@ -3953,6 +3953,9 @@ utime (const char *name, struct utimbuf *times) /* Need write access to set times. */ fh = CreateFile (name, FILE_WRITE_ATTRIBUTES, + /* If NAME specifies a directory, FILE_SHARE_DELETE + allows other processes to delete files inside it, + while we have the directory open. */ FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL); if (fh != INVALID_HANDLE_VALUE) From a65fbb5f0ef0e6929393750ec466f11cefc6ba60 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 5 Oct 2012 13:19:58 +0200 Subject: [PATCH 032/272] Fix a typo in a w32proc.c declaration. src/w32proc.c (stop_timer_thread): Fix declaration of 'err'. --- src/ChangeLog | 2 ++ src/w32proc.c | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index b2502010619..cb17e8192e4 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,7 @@ 2012-10-05 Eli Zaretskii + * w32proc.c (stop_timer_thread): Fix declaration of 'err'. + * w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so that time stamps of directories could also be changed. Don't request the too broad GENERIC_WRITE, only the more restrictive diff --git a/src/w32proc.c b/src/w32proc.c index 56a60fbf25f..d032b21c59e 100644 --- a/src/w32proc.c +++ b/src/w32proc.c @@ -404,8 +404,8 @@ stop_timer_thread (int which) struct itimer_data *itimer = (which == ITIMER_REAL) ? &real_itimer : &prof_itimer; int i; - DWORD exit_code = 255; - BOOL status, err; + DWORD err, exit_code = 255; + BOOL status; /* Signal the thread that it should terminate. */ itimer->terminate = 1; From 7fa36ccb71d0def28bc3f8eb17827fc870bd7ca2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabi=C3=A1n=20Ezequiel=20Gallina?= Date: Fri, 5 Oct 2012 10:42:08 -0300 Subject: [PATCH 033/272] Enhancements to docstring formatting when filling paragraphs. * progmodes/python.el (python-fill-docstring-style): Rename from python-fill-string-style. Added new style. (python-fill-string): Use new style. Better checks for docstrings. --- lisp/ChangeLog | 8 +++++++ lisp/progmodes/python.el | 46 ++++++++++++++++++++++++++++------------ 2 files changed, 40 insertions(+), 14 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 16c64ae1394..1010fc0ae11 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2012-10-05 Fabián Ezequiel Gallina + + Enhancements to docstring formatting when filling paragraphs. + * progmodes/python.el (python-fill-docstring-style): Rename from + python-fill-string-style. Added new style. + (python-fill-string): Use new style. Better checks for + docstrings. + 2012-10-05 Glenn Morris * net/newst-treeview.el (newsticker-group-move-feed): Doc fix. diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index d5aa73f5ef3..b3b3b0181d7 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -2290,15 +2290,15 @@ fill parens." :type 'symbol :group 'python) -(defcustom python-fill-string-style 'pep-257 +(defcustom python-fill-docstring-style 'pep-257 "Style used to fill docstrings. This affects `python-fill-string' behavior with regards to triple quotes positioning. -Possible values are DJANGO, PEP-257, PEP-257-NN, SYMMETRIC and -NIL. A value of NIL won't care about quotes position, will do -what `fill-paragraph' does, any other value may result in one of -the following docstring styles: +Possible values are DJANGO, ONETWO, PEP-257, PEP-257-NN, +SYMMETRIC, and NIL. A value of NIL won't care about quotes +position and will treat docstrings a normal string, any other +value may result in one of the following docstring styles: DJANGO: @@ -2312,6 +2312,17 @@ DJANGO: If processing fails throw ProcessingError. \"\"\" +ONETWO: + + \"\"\"Process foo, return bar.\"\"\" + + \"\"\" + Process foo, return bar. + + If processing fails throw ProcessingError. + + \"\"\" + PEP-257: \"\"\"Process foo, return bar.\"\"\" @@ -2340,9 +2351,16 @@ SYMMETRIC: If processing fails throw ProcessingError. \"\"\"" - :type 'symbol + :type '(choice + (const :tag "Don't format docstrings" nil) + (const :tag "Django's coding standards style." django) + (const :tag "One newline and start and Two at end style." onetwo) + (const :tag "PEP-257 with 2 newlines at end of string." pep-257) + (const :tag "PEP-257 with 1 newline at end of string." pep-257-nn) + (const :tag "Symmetric style." symmetric)) :group 'python - :safe (lambda (val) (memq val '(django pep-257 pep-257-nn symmetric nil)))) + :safe (lambda (val) + (memq val '(django onetwo pep-257 pep-257-nn symmetric nil)))) (defun python-fill-paragraph-function (&optional justify) "`fill-paragraph-function' handling multi-line strings and possibly comments. @@ -2403,28 +2421,28 @@ JUSTIFY should be used (if applicable) as in `fill-paragraph'." ;; Docstring styles may vary for oneliners and multi-liners. (> (count-matches "\n" str-start-pos str-end-pos) 0)) (delimiters-style - (case python-fill-string-style + (case python-fill-docstring-style ;; delimiters-style is a cons cell with the form ;; (START-NEWLINES . END-NEWLINES). When any of the sexps ;; is NIL means to not add any newlines for start or end - ;; of docstring. See `python-fill-string-style' for a + ;; of docstring. See `python-fill-docstring-style' for a ;; graphic idea of each style. + (django (cons 1 1)) + (onetwo (and multi-line-p (cons 1 2))) (pep-257 (and multi-line-p (cons nil 2))) (pep-257-nn (and multi-line-p (cons nil 1))) - (django (cons 1 1)) (symmetric (and multi-line-p (cons 1 1))))) (docstring-p (save-excursion ;; Consider docstrings those strings which ;; start on a line by themselves. - (goto-char str-start-pos) - (skip-chars-backward (rx whitespace)) - (= (point) (line-beginning-position)))) + (python-nav-beginning-of-statement) + (and (= (point) str-start-pos)))) (fill-paragraph-function)) (save-restriction (narrow-to-region str-start-pos str-end-pos) (fill-paragraph justify)) (save-excursion - (when (and docstring-p python-fill-string-style) + (when (and docstring-p python-fill-docstring-style) ;; Add the number of newlines indicated by the selected style ;; at the start of the docstring. (goto-char (+ str-start-pos num-quotes)) From 150798c5ac7953c0fd56cffd3b3720015528d820 Mon Sep 17 00:00:00 2001 From: Ulrich Mueller Date: Fri, 5 Oct 2012 20:42:28 -0400 Subject: [PATCH 034/272] Let configure set ar and associated flags * lwlib/Makefile.in (AR, ARFLAGS): * oldXMenu/Makefile.in (AR, ARFLAGS): Get values from configure. Fixes: debbugs:12549 --- lwlib/ChangeLog | 4 ++++ lwlib/Makefile.in | 5 +++-- oldXMenu/ChangeLog | 4 ++++ oldXMenu/Makefile.in | 6 +++--- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog index 7d49d9b531b..80d29bc5d8a 100644 --- a/lwlib/ChangeLog +++ b/lwlib/ChangeLog @@ -1,3 +1,7 @@ +2012-10-06 Ulrich Müller + + * Makefile.in (AR, ARFLAGS): Get values from configure. + 2012-08-16 Paul Eggert Use ASCII tests for character types. diff --git a/lwlib/Makefile.in b/lwlib/Makefile.in index 2e70e0a4b6d..85a76f7a1c2 100644 --- a/lwlib/Makefile.in +++ b/lwlib/Makefile.in @@ -37,7 +37,8 @@ CFLAGS=@CFLAGS@ CPPFLAGS=@CPPFLAGS@ RANLIB=@RANLIB@ -AR = ar cq +AR = @AR@ +ARFLAGS = @ARFLAGS@ LUCID_OBJS = lwlib-Xlw.o xlwmenu.o lwlib-Xaw.o MOTIF_OBJS = lwlib-Xm.o @@ -65,7 +66,7 @@ all:: liblw.a liblw.a: $(OBJS) rm -f $@ - $(AR) $@ $(OBJS) + $(AR) $(ARFLAGS) $@ $(OBJS) $(RANLIB) $@ ## Generated files in ../src, non-generated in $(srcdir)/../src. diff --git a/oldXMenu/ChangeLog b/oldXMenu/ChangeLog index 09859d0d630..133b18b4e3f 100644 --- a/oldXMenu/ChangeLog +++ b/oldXMenu/ChangeLog @@ -1,3 +1,7 @@ +2012-10-06 Ulrich Müller + + * Makefile.in (AR, ARFLAGS): Get values from configure. + 2012-06-26 Paul Eggert * Makefile.in (ALL_CFLAGS): Add -I../lib -I${srcdir}/../lib. diff --git a/oldXMenu/Makefile.in b/oldXMenu/Makefile.in index 00b3d8e3c69..ee78325f0d7 100644 --- a/oldXMenu/Makefile.in +++ b/oldXMenu/Makefile.in @@ -57,8 +57,8 @@ CFLAGS=@CFLAGS@ TAGS = etags RM = rm -f RANLIB = @RANLIB@ -# Solaris 2.1 ar doesn't accept the 'l' option. -AR = ar cq +AR = @AR@ +ARFLAGS = @ARFLAGS@ OBJS = Activate.o \ AddPane.o \ @@ -98,7 +98,7 @@ ALL_CFLAGS=$(C_SWITCH_SYSTEM) $(C_SWITCH_MACHINE) \ libXMenu11.a: $(OBJS) $(EXTRA) $(RM) $@ - $(AR) $@ $(OBJS) $(EXTRA) + $(AR) $(ARFLAGS) $@ $(OBJS) $(EXTRA) $(RANLIB) $@ Activate.o: Activate.c XMenuInt.h XMenu.h X10.h From 58eaa9ec4c95c1e473c4ca42f97cdfb340310e22 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Fri, 5 Oct 2012 20:44:36 -0400 Subject: [PATCH 035/272] Comment --- configure.ac | 1 + 1 file changed, 1 insertion(+) diff --git a/configure.ac b/configure.ac index 5a3aea763c0..edbae29c59f 100644 --- a/configure.ac +++ b/configure.ac @@ -575,6 +575,7 @@ fi AC_DEFUN([gl_THREADLIB]) # Initialize gnulib right after choosing the compiler. +dnl Amongst other things, this sets AR and ARFLAGS. gl_EARLY # It's helpful to have C macros available to GDB, so prefer -g3 to -g From c6e21c0323ab576a7d600f6074d9ad7b882a3efd Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 5 Oct 2012 17:52:17 -0700 Subject: [PATCH 036/272] * keyboard.c (read_char): Remove unnecessary 'volatile's and label. --- src/ChangeLog | 4 ++++ src/keyboard.c | 12 +++--------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index cb17e8192e4..956e78e6c7e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-06 Paul Eggert + + * keyboard.c (read_char): Remove unnecessary 'volatile's and label. + 2012-10-05 Eli Zaretskii * w32proc.c (stop_timer_thread): Fix declaration of 'err'. diff --git a/src/keyboard.c b/src/keyboard.c index 19ece4a22f1..d06b02024c5 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -2283,11 +2283,10 @@ read_char (int commandflag, ptrdiff_t nmaps, Lisp_Object *maps, Lisp_Object prev_event, int *used_mouse_menu, EMACS_TIME *end_time) { - volatile Lisp_Object c; + Lisp_Object c; ptrdiff_t jmpcount; sys_jmp_buf local_getcjmp; sys_jmp_buf save_jump; - volatile int key_already_recorded = 0; Lisp_Object tem, save; volatile Lisp_Object previous_echo_area_message; volatile Lisp_Object also_record; @@ -2519,10 +2518,7 @@ read_char (int commandflag, ptrdiff_t nmaps, Lisp_Object *maps, return c; /* wrong_kboard_jmpbuf */ if (! NILP (c)) - { - key_already_recorded = 1; - goto non_reread_1; - } + goto exit; } /* Make a longjmp point for quits to use, but don't alter getcjmp just yet. @@ -2850,12 +2846,10 @@ read_char (int commandflag, ptrdiff_t nmaps, Lisp_Object *maps, goto wrong_kboard; } - non_reread_1: - /* Buffer switch events are only for internal wakeups so don't show them to the user. Also, don't record a key if we already did. */ - if (BUFFERP (c) || key_already_recorded) + if (BUFFERP (c)) goto exit; /* Process special events within read_char From df5d5f59f21b9c6029236b1db2cc8c5bc6715d24 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Fri, 5 Oct 2012 21:04:53 -0400 Subject: [PATCH 037/272] Set maintainer of most lisp/erc/*.el files to FSF Ref: http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-10/msg00200.html --- lisp/erc/erc-autoaway.el | 1 + lisp/erc/erc-backend.el | 1 + lisp/erc/erc-button.el | 1 + lisp/erc/erc-capab.el | 4 ++++ lisp/erc/erc-compat.el | 1 + lisp/erc/erc-dcc.el | 2 +- lisp/erc/erc-ezbounce.el | 1 + lisp/erc/erc-fill.el | 1 + lisp/erc/erc-goodies.el | 1 + lisp/erc/erc-ibuffer.el | 1 + lisp/erc/erc-identd.el | 1 + lisp/erc/erc-imenu.el | 1 + lisp/erc/erc-join.el | 1 + lisp/erc/erc-lang.el | 2 +- lisp/erc/erc-list.el | 1 + lisp/erc/erc-log.el | 1 + lisp/erc/erc-match.el | 1 + lisp/erc/erc-menu.el | 1 + lisp/erc/erc-netsplit.el | 1 + lisp/erc/erc-networks.el | 1 + lisp/erc/erc-notify.el | 1 + lisp/erc/erc-page.el | 2 ++ lisp/erc/erc-pcomplete.el | 1 + lisp/erc/erc-replace.el | 2 +- lisp/erc/erc-ring.el | 1 + lisp/erc/erc-services.el | 2 ++ lisp/erc/erc-sound.el | 2 ++ lisp/erc/erc-speedbar.el | 1 + lisp/erc/erc-spelling.el | 1 + lisp/erc/erc-stamp.el | 1 + lisp/erc/erc-track.el | 1 + lisp/erc/erc-truncate.el | 1 + lisp/erc/erc-xdcc.el | 1 + lisp/erc/erc.el | 2 +- 34 files changed, 40 insertions(+), 4 deletions(-) diff --git a/lisp/erc/erc-autoaway.el b/lisp/erc/erc-autoaway.el index ab429a12589..fd9ac69aa3a 100644 --- a/lisp/erc/erc-autoaway.el +++ b/lisp/erc/erc-autoaway.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2002-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Jorgen Schaefer +;; Maintainer: FSF ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcAutoAway ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el index 5da3009c854..75f0047bf06 100644 --- a/lisp/erc/erc-backend.el +++ b/lisp/erc/erc-backend.el @@ -4,6 +4,7 @@ ;; Filename: erc-backend.el ;; Author: Lawrence Mitchell +;; Maintainer: FSF ;; Created: 2004-05-7 ;; Keywords: IRC chat client internet diff --git a/lisp/erc/erc-button.el b/lisp/erc/erc-button.el index a0593dcb743..687d11d144e 100644 --- a/lisp/erc/erc-button.el +++ b/lisp/erc/erc-button.el @@ -3,6 +3,7 @@ ;; Copyright (C) 1996-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Mario Lang +;; Maintainer: FSF ;; Keywords: irc, button, url, regexp ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcButton diff --git a/lisp/erc/erc-capab.el b/lisp/erc/erc-capab.el index c7103d6dc61..08b9c67f6c0 100644 --- a/lisp/erc/erc-capab.el +++ b/lisp/erc/erc-capab.el @@ -2,6 +2,10 @@ ;; Copyright (C) 2006-2012 Free Software Foundation, Inc. +;; Maintainer: FSF + +; 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 diff --git a/lisp/erc/erc-compat.el b/lisp/erc/erc-compat.el index 1fb3930091e..1e299407fe9 100644 --- a/lisp/erc/erc-compat.el +++ b/lisp/erc/erc-compat.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2002-2003, 2005-2012 Free Software Foundation, Inc. ;; Author: Alex Schroeder +;; Maintainer: FSF ;; URL: http://www.emacswiki.org/cgi-bin/wiki/ERC ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc-dcc.el b/lisp/erc/erc-dcc.el index 4d0534d3d5e..ed8440315eb 100644 --- a/lisp/erc/erc-dcc.el +++ b/lisp/erc/erc-dcc.el @@ -6,7 +6,7 @@ ;; Author: Ben A. Mesander ;; Noah Friedman ;; Per Persson -;; Maintainer: mlang@delysid.org +;; Maintainer: FSF ;; Keywords: comm, processes ;; Created: 1994-01-23 diff --git a/lisp/erc/erc-ezbounce.el b/lisp/erc/erc-ezbounce.el index f40eaa8c549..5e5d6c2c188 100644 --- a/lisp/erc/erc-ezbounce.el +++ b/lisp/erc/erc-ezbounce.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2002, 2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Andreas Fuchs +;; Maintainer: FSF ;; Keywords: comm ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc-fill.el b/lisp/erc/erc-fill.el index 2422ca10d0a..35e14eb0e29 100644 --- a/lisp/erc/erc-fill.el +++ b/lisp/erc/erc-fill.el @@ -4,6 +4,7 @@ ;; Author: Andreas Fuchs ;; Mario Lang +;; Maintainer: FSF ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcFilling ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc-goodies.el b/lisp/erc/erc-goodies.el index 49820b78ff6..892f82e2eba 100644 --- a/lisp/erc/erc-goodies.el +++ b/lisp/erc/erc-goodies.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Jorgen Schaefer +;; Maintainer: FSF ;; Most code is taken verbatim from erc.el, see there for the original ;; authors. diff --git a/lisp/erc/erc-ibuffer.el b/lisp/erc/erc-ibuffer.el index 1a713009c85..d1e74fd4c54 100644 --- a/lisp/erc/erc-ibuffer.el +++ b/lisp/erc/erc-ibuffer.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2002, 2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Mario Lang +;; Maintainer: FSF ;; Keywords: comm ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcIbuffer diff --git a/lisp/erc/erc-identd.el b/lisp/erc/erc-identd.el index aee808c0921..9586dd698a0 100644 --- a/lisp/erc/erc-identd.el +++ b/lisp/erc/erc-identd.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2003, 2006-2012 Free Software Foundation, Inc. ;; Author: John Wiegley +;; Maintainer: FSF ;; Keywords: comm, processes ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc-imenu.el b/lisp/erc/erc-imenu.el index 53dc9e7abf2..7346fca1b8a 100644 --- a/lisp/erc/erc-imenu.el +++ b/lisp/erc/erc-imenu.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2001-2002, 2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Mario Lang +;; Maintainer: FSF ;; Keywords: comm ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcImenu diff --git a/lisp/erc/erc-join.el b/lisp/erc/erc-join.el index ae7f90003a6..ac6b311a0c4 100644 --- a/lisp/erc/erc-join.el +++ b/lisp/erc/erc-join.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2002-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Alex Schroeder +;; Maintainer: FSF ;; Keywords: irc ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcAutoJoin diff --git a/lisp/erc/erc-lang.el b/lisp/erc/erc-lang.el index 11384a25885..2d7f555971e 100644 --- a/lisp/erc/erc-lang.el +++ b/lisp/erc/erc-lang.el @@ -3,7 +3,7 @@ ;; Copyright (C) 2002, 2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Alex Schroeder -;; Maintainer: Alex Schroeder +;; Maintainer: FSF ;; Version: 1.0.0 ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcLang ;; Keywords: comm languages processes diff --git a/lisp/erc/erc-list.el b/lisp/erc/erc-list.el index f7d33ffbc28..19afe2e79ee 100644 --- a/lisp/erc/erc-list.el +++ b/lisp/erc/erc-list.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Tom Tromey +;; Maintainer: FSF ;; Version: 0.1 ;; Keywords: comm diff --git a/lisp/erc/erc-log.el b/lisp/erc/erc-log.el index eefe51ae706..9e6c587bd12 100644 --- a/lisp/erc/erc-log.el +++ b/lisp/erc/erc-log.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: Lawrence Mitchell +;; Maintainer: FSF ;; Keywords: IRC, chat, client, Internet, logging ;; Created 2003-04-26 diff --git a/lisp/erc/erc-match.el b/lisp/erc/erc-match.el index de7f2137197..8dcdcb9e2e6 100644 --- a/lisp/erc/erc-match.el +++ b/lisp/erc/erc-match.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Andreas Fuchs +;; Maintainer: FSF ;; Keywords: comm, faces ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcMatch diff --git a/lisp/erc/erc-menu.el b/lisp/erc/erc-menu.el index 5d96fc4d487..1aec2ad417f 100644 --- a/lisp/erc/erc-menu.el +++ b/lisp/erc/erc-menu.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2001-2002, 2004-2012 Free Software Foundation, Inc. ;; Author: Mario Lang +;; Maintainer: FSF ;; Keywords: comm, processes, menu ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc-netsplit.el b/lisp/erc/erc-netsplit.el index 355b345492c..fc4aeb10c84 100644 --- a/lisp/erc/erc-netsplit.el +++ b/lisp/erc/erc-netsplit.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2002-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Mario Lang +;; Maintainer: FSF ;; Keywords: comm ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc-networks.el b/lisp/erc/erc-networks.el index 9a3c562f0a6..89372555ccc 100644 --- a/lisp/erc/erc-networks.el +++ b/lisp/erc/erc-networks.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2002, 2004-2012 Free Software Foundation, Inc. ;; Author: Mario Lang +;; Maintainer: FSF ;; Keywords: comm ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc-notify.el b/lisp/erc/erc-notify.el index 3bf82c13f19..0b5e99180d6 100644 --- a/lisp/erc/erc-notify.el +++ b/lisp/erc/erc-notify.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2002-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Mario Lang +;; Maintainer: FSF ;; Keywords: comm ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc-page.el b/lisp/erc/erc-page.el index 51ddc33e1c0..8eae6c83d15 100644 --- a/lisp/erc/erc-page.el +++ b/lisp/erc/erc-page.el @@ -2,6 +2,8 @@ ;; Copyright (C) 2002, 2004, 2006-2012 Free Software Foundation, Inc. +;; Maintainer: FSF + ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify diff --git a/lisp/erc/erc-pcomplete.el b/lisp/erc/erc-pcomplete.el index d3cbe8a5804..bb30fd90066 100644 --- a/lisp/erc/erc-pcomplete.el +++ b/lisp/erc/erc-pcomplete.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2002-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Sacha Chua +;; Maintainer: FSF ;; Keywords: comm, convenience ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcCompletion diff --git a/lisp/erc/erc-replace.el b/lisp/erc/erc-replace.el index 6c5804c62a4..3d4a5d311b1 100644 --- a/lisp/erc/erc-replace.el +++ b/lisp/erc/erc-replace.el @@ -3,7 +3,7 @@ ;; Copyright (C) 2001-2002, 2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Andreas Fuchs -;; Maintainer: Mario Lang (mlang@delysid.org) +;; Maintainer: FSF ;; Keywords: IRC, client, Internet ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc-ring.el b/lisp/erc/erc-ring.el index 94af8a09200..6b3f3e3c3aa 100644 --- a/lisp/erc/erc-ring.el +++ b/lisp/erc/erc-ring.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2001-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Alex Schroeder +;; Maintainer: FSF ;; Keywords: comm ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcHistory diff --git a/lisp/erc/erc-services.el b/lisp/erc/erc-services.el index 5986d81efed..b3b80a5f851 100644 --- a/lisp/erc/erc-services.el +++ b/lisp/erc/erc-services.el @@ -2,6 +2,8 @@ ;; Copyright (C) 2002-2004, 2006-2012 Free Software Foundation, Inc. +;; Maintainer: FSF + ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify diff --git a/lisp/erc/erc-sound.el b/lisp/erc/erc-sound.el index 8b44cb5146c..55336a68cfe 100644 --- a/lisp/erc/erc-sound.el +++ b/lisp/erc/erc-sound.el @@ -2,6 +2,8 @@ ;; Copyright (C) 2002-2003, 2006-2012 Free Software Foundation, Inc. +;; Maintainer: FSF + ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify diff --git a/lisp/erc/erc-speedbar.el b/lisp/erc/erc-speedbar.el index 1e028e22642..4b98cf173be 100644 --- a/lisp/erc/erc-speedbar.el +++ b/lisp/erc/erc-speedbar.el @@ -4,6 +4,7 @@ ;; Author: Mario Lang ;; Contributor: Eric M. Ludlam +;; Maintainer: FSF ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc-spelling.el b/lisp/erc/erc-spelling.el index 441e3536e19..5f40cc39e89 100644 --- a/lisp/erc/erc-spelling.el +++ b/lisp/erc/erc-spelling.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2005-2012 Free Software Foundation, Inc. ;; Author: Jorgen Schaefer +;; Maintainer: FSF ;; Keywords: irc ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcSpelling diff --git a/lisp/erc/erc-stamp.el b/lisp/erc/erc-stamp.el index 4ce2f18e041..1613d03912c 100644 --- a/lisp/erc/erc-stamp.el +++ b/lisp/erc/erc-stamp.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2002-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Mario Lang +;; Maintainer: FSF ;; Keywords: comm, processes, timestamp ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcStamp diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el index 88a3285730d..a204584b400 100644 --- a/lisp/erc/erc-track.el +++ b/lisp/erc/erc-track.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Mario Lang +;; Maintainer: FSF ;; Keywords: comm, faces ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcChannelTracking diff --git a/lisp/erc/erc-truncate.el b/lisp/erc/erc-truncate.el index dd47c601ea8..8a219500ecb 100644 --- a/lisp/erc/erc-truncate.el +++ b/lisp/erc/erc-truncate.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2003-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Andreas Fuchs +;; Maintainer: FSF ;; Keywords: IRC, chat, client, Internet, logging ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc-xdcc.el b/lisp/erc/erc-xdcc.el index 0328c407aa0..85356b39033 100644 --- a/lisp/erc/erc-xdcc.el +++ b/lisp/erc/erc-xdcc.el @@ -3,6 +3,7 @@ ;; Copyright (C) 2003-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Mario Lang +;; Maintainer: FSF ;; Keywords: comm, processes ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index 7feadc50aca..687e60da28a 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -9,7 +9,7 @@ ;; Andreas Fuchs (afs@void.at) ;; Gergely Nagy (algernon@midgard.debian.net) ;; David Edmondson (dme@dme.org) -;; Maintainer: Michael Olson (mwolson@gnu.org) +;; Maintainer: FSF ;; Keywords: IRC, chat, client, Internet ;; Version: 5.3 From a03bb33fb07f49255847eebdb4c47299ab38b45c Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Fri, 5 Oct 2012 21:13:01 -0400 Subject: [PATCH 038/272] * doc/misc/erc.texi: Remove hand-written node pointers. --- doc/misc/ChangeLog | 4 +++ doc/misc/erc.texi | 62 ++++++++++++++++------------------------------ 2 files changed, 26 insertions(+), 40 deletions(-) diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 55f81c7c798..f210af4e5f3 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,7 @@ +2012-10-06 Glenn Morris + + * erc.texi: Remove hand-written node pointers. + 2012-10-05 Glenn Morris * newsticker.texi (Overview, Requirements, Usage, Configuration): diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi index 6d791d7c5f6..e28eda00b53 100644 --- a/doc/misc/erc.texi +++ b/doc/misc/erc.texi @@ -48,8 +48,7 @@ and modified without restriction. @contents @ifnottex -@node Top, Introduction, (dir), (dir) -@comment node-name, next, previous, up +@node Top @top ERC @insertcopying @@ -95,8 +94,7 @@ Advanced Usage @end detailmenu @end menu -@node Introduction, Obtaining ERC, Top, Top -@comment node-name, next, previous, up +@node Introduction @chapter Introduction ERC is a powerful, modular, and extensible IRC client for Emacs. @@ -119,8 +117,7 @@ It comes with the following capabilities enabled by default. @end itemize -@node Obtaining ERC, Installation, Introduction, Top -@comment node-name, next, previous, up +@node Obtaining ERC @chapter Obtaining ERC @menu @@ -140,8 +137,7 @@ locations, or from your local GNU mirror. The rest of this chapter may be skipped if you are using the version of ERC that comes with Emacs. -@node Releases, Development, Obtaining ERC, Obtaining ERC -@comment node-name, next, previous, up +@node Releases @section Releases Choose to install a release if you want to minimize risk. @@ -159,8 +155,7 @@ available in the official Debian repository. Alternatively, you can download the latest release from @uref{http://ftp.gnu.org/gnu/erc}, or your local GNU mirror. -@node Development, , Releases, Obtaining ERC -@comment node-name, next, previous, up +@node Development @section Development @cindex development @@ -263,8 +258,7 @@ development, please consult @uref{http://emacswiki.org/cgi-bin/wiki/ErcDevelopment}. -@node Installation, Getting Started, Obtaining ERC, Top -@comment node-name, next, previous, up +@node Installation @chapter Installation ERC may be compiled and installed on your machine. @@ -315,8 +309,7 @@ Run @code{make install} as the root user if you have chosen installation locations that require this. -@node Getting Started, Keystroke Summary, Installation, Top -@comment node-name, next, previous, up +@node Getting Started @chapter Getting Started @cindex settings @@ -344,8 +337,7 @@ you want, do @kbd{M-x customize-variable RET erc-modules RET}. * Special Features:: Differences from standalone IRC clients @end menu -@node Sample Session, Special Features, Getting Started, Getting Started -@comment node-name, next, previous, up +@node Sample Session @section Sample Session This is an example ERC session which shows how to connect to the #emacs @@ -403,8 +395,7 @@ talk with them. @end itemize -@node Special Features, , Sample Session, Getting Started -@comment node-name, next, previous, up +@node Special Features @section Special Features ERC has some features that distinguish it from some IRC clients. @@ -478,8 +469,7 @@ ERC buffer and run the @code{/RECONNECT} command. @end itemize -@node Keystroke Summary, Modules, Getting Started, Top -@comment node-name, next, previous, up +@node Keystroke Summary @chapter Keys Used in ERC @cindex keystrokes @@ -562,8 +552,7 @@ Kill current input line using `erc-bol' followed by `kill-line'. @end table -@node Modules, Advanced Usage, Keystroke Summary, Top -@comment node-name, next, previous, up +@node Modules @chapter Modules @cindex modules @@ -701,8 +690,7 @@ Translate morse code in messages @c PRE5_4: Document every option of every module in its own subnode -@node Advanced Usage, Getting Help and Reporting Bugs, Modules, Top -@comment node-name, next, previous, up +@node Advanced Usage @chapter Advanced Usage @cindex advanced topics @@ -712,8 +700,7 @@ Translate morse code in messages * Options:: Options that are available for ERC. @end menu -@node Connecting, Sample Configuration, Advanced Usage, Advanced Usage -@comment node-name, next, previous, up +@node Connecting @section Connecting to an IRC Server @cindex connecting @@ -846,8 +833,7 @@ User full name. This can be either a string or a function to call. @end defopt -@node Sample Configuration, Options, Connecting, Advanced Usage -@comment node-name, next, previous, up +@node Sample Configuration @section Sample Configuration @cindex configuration, sample @@ -926,8 +912,7 @@ stuff, to the current ERC buffer." ;; (setq erc-kill-server-buffer-on-quit t) @end lisp -@node Options, , Sample Configuration, Advanced Usage -@comment node-name, next, previous, up +@node Options @section Options @cindex options @@ -939,8 +924,7 @@ check out the available options for ERC is to do @kbd{M-x customize-group erc RET}. -@node Getting Help and Reporting Bugs, History, Advanced Usage, Top -@comment node-name, next, previous, up +@node Getting Help and Reporting Bugs @chapter Getting Help and Reporting Bugs @cindex help, getting @cindex bugs, reporting @@ -980,8 +964,7 @@ questions. @end itemize -@node History, Copying, Getting Help and Reporting Bugs, Top -@comment node-name, next, previous, up +@node History @chapter History @cindex history, of ERC @@ -1046,16 +1029,15 @@ We switched to using git for our version control system. @end itemize -@node Copying, GNU Free Documentation License, History, Top -@comment node-name, next, previous, up +@node Copying +@appendix GNU GENERAL PUBLIC LICENSE @include gpl.texi -@node GNU Free Documentation License, Concept Index, Copying, Top -@comment node-name, next, previous, up +@node GNU Free Documentation License +@appendix GNU Free Documentation License @include doclicense.texi -@node Concept Index, , GNU Free Documentation License, Top -@comment node-name, next, previous, up +@node Concept Index @unnumbered Index @printindex cp From 24636b2633c00ac63cc023f8b6e76e416fa1728a Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Fri, 5 Oct 2012 21:42:02 -0400 Subject: [PATCH 039/272] Remove outdated information from ERC manual * doc/misc/erc.texi: Include emacsver.texi, and use EMACSVER rather than ERC version. (Introduction): ERC is distributed with Emacs. (Obtaining ERC, Installation): Remove chapters, no longer relevant. (Getting Started): Simplify. (Getting Help and Reporting Bugs): Refer to general Emacs lists. (History): Mention ERC maintained as part of Emacs now. * doc/misc/Makefile.in ($(buildinfodir)/erc$(INFO_EXT), erc.dvi, erc.pdf): Add dependency on emacsver.texi. --- doc/misc/ChangeLog | 10 ++ doc/misc/Makefile.in | 6 +- doc/misc/erc.texi | 246 +++---------------------------------------- 3 files changed, 30 insertions(+), 232 deletions(-) diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index f210af4e5f3..5fdd4acde95 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,5 +1,15 @@ 2012-10-06 Glenn Morris + * erc.texi: Include emacsver.texi, and use EMACSVER rather than + ERC version. + (Introduction): ERC is distributed with Emacs. + (Obtaining ERC, Installation): Remove chapters, no longer relevant. + (Getting Started): Simplify. + (Getting Help and Reporting Bugs): Refer to general Emacs lists. + (History): Mention ERC maintained as part of Emacs now. + * Makefile.in ($(buildinfodir)/erc$(INFO_EXT), erc.dvi, erc.pdf): + Add dependency on emacsver.texi. + * erc.texi: Remove hand-written node pointers. 2012-10-05 Glenn Morris diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in index cc76d53a8a9..5ce6d82e683 100644 --- a/doc/misc/Makefile.in +++ b/doc/misc/Makefile.in @@ -336,12 +336,12 @@ epa.pdf: ${srcdir}/epa.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/epa.texi erc : $(buildinfodir)/erc$(INFO_EXT) -$(buildinfodir)/erc$(INFO_EXT): ${srcdir}/erc.texi +$(buildinfodir)/erc$(INFO_EXT): ${srcdir}/erc.texi $(emacsdir)/emacsver.texi $(mkinfodir) $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/erc.texi -erc.dvi: ${srcdir}/erc.texi +erc.dvi: ${srcdir}/erc.texi $(emacsdir)/emacsver.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/erc.texi -erc.pdf: ${srcdir}/erc.texi +erc.pdf: ${srcdir}/erc.texi $(emacsdir)/emacsver.texi $(ENVADD) $(TEXI2PDF) ${srcdir}/erc.texi ert : $(buildinfodir)/ert$(INFO_EXT) diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi index e28eda00b53..378180bef31 100644 --- a/doc/misc/erc.texi +++ b/doc/misc/erc.texi @@ -3,13 +3,13 @@ @setfilename ../../info/erc @settitle ERC Manual @syncodeindex fn cp +@include emacsver.texi @c %**end of header @copying -This manual is for ERC version 5.3. +This manual is for ERC as distributed with Emacs @value{EMACSVER}. -Copyright @copyright{} 2005-2012 -Free Software Foundation, Inc. +Copyright @copyright{} 2005-2012 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -56,9 +56,6 @@ and modified without restriction. @menu * Introduction:: What is ERC? -* Obtaining ERC:: How to get ERC releases and development - versions. -* Installation:: Compiling and installing ERC. * Getting Started:: Quick Start guide to using ERC. * Keystroke Summary:: Keystrokes used in ERC buffers. * Modules:: Available modules for ERC. @@ -75,11 +72,6 @@ and modified without restriction. @detailmenu --- The Detailed Node Listing --- -Obtaining ERC - -* Releases:: Released versions of ERC. -* Development:: Latest unreleased development changes. - Getting Started * Sample Session:: Example of connecting to the #emacs channel @@ -98,6 +90,7 @@ Advanced Usage @chapter Introduction ERC is a powerful, modular, and extensible IRC client for Emacs. +It is distributed with Emacs since version 22.1. It comes with the following capabilities enabled by default. @@ -117,212 +110,13 @@ It comes with the following capabilities enabled by default. @end itemize -@node Obtaining ERC -@chapter Obtaining ERC - -@menu -* Releases:: Released versions of ERC. -* Development:: Latest unreleased development changes. -@end menu - -Note that some ERC files are not included with Emacs due to copyright or -dependency issues. If desired, they may be found at the following -locations, or from your local GNU mirror. - -@itemize @bullet -@item @uref{http://ftp.gnu.org/gnu/erc/erc-5.3-extras.tar.gz} -@item @uref{http://ftp.gnu.org/gnu/erc/erc-5.3-extras.zip} -@end itemize - -The rest of this chapter may be skipped if you are using the version of -ERC that comes with Emacs. - -@node Releases -@section Releases - -Choose to install a release if you want to minimize risk. - -Errors are corrected in development first. User-visible changes will be -announced on the @email{erc-discuss@@gnu.org} mailing list. -@pxref{Getting Help and Reporting Bugs}. - -@cindex releases, Debian package -@cindex Debian package for ERC -Debian users can get ERC via apt-get. The @file{erc} package is -available in the official Debian repository. - -@cindex releases, from source -Alternatively, you can download the latest release from -@uref{http://ftp.gnu.org/gnu/erc}, or your local GNU mirror. - -@node Development -@section Development -@cindex development - -Choose the development version if you want to live on the bleeding edge -of ERC development or try out new features before release. - -@cindex git version control system, using -The git version control system allows you to keep up-to-date with the -latest changes to the development version of ERC. It also allows you -to contribute changes (via commits, if you are have developer access to -the repository, or via patches, otherwise). If you would like to -contribute to ERC development, it is highly recommended that you use -git. - -If you are new to git, you might find this tutorial helpful: -@uref{http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html}. - -Downloading ERC with git and staying up-to-date involves the following -steps. - -@enumerate -@item Install git. - -@itemize @bullet -@item Debian and Ubuntu: @kbd{apt-get install git-core}. -@item Windows: @uref{http://git.or.cz/gitwiki/WindowsInstall}. -@item Other operating systems: download, compile, and install the source -from @uref{http://www.kernel.org/pub/software/scm/git/}, or find a git -package for your operating system. -@end itemize - -@item Download the ERC development branch. - -If you have developer access to ERC, do: - -@example -git clone ssh://loginname@@git.sv.gnu.org/srv/git/erc.git -@end example - -otherwise, do: - -@example -git clone git://git.sv.gnu.org/erc.git -@end example - -If you are behind a restrictive firewall, and do not have developer -access, then do the following instead: - -@example -git clone http://git.sv.gnu.org/r/erc.git -@end example - -@item List upstream changes that are missing from your local copy. -Do this whenever you want to see whether new changes have been committed -to ERC. If you wish, you may skip this step and proceed directly to -the ``update'' step. - -@example -# Change to the source directory you are interested in. -cd erc - -# Fetch new changes from the repository, but don't apply them yet -git fetch origin - -# Display log messages for the new changes -git log HEAD..origin -@end example - -``origin'' is git's name for the location where you originally got ERC -from. You can change this location at any time by editing the -@file{.git/config} file in the directory where the ERC source was -placed. - -@cindex updating ERC with git -@item Update to the latest version by pulling in any missing changes. - -@example -cd erc -git pull origin -@end example - -git will show how many files changed, and will provide a visual display -for how many lines were changed in each file. - -@end enumerate - -There are other ways to interact with the ERC repository. - -@itemize -@item Browse git repo: @uref{http://git.sv.gnu.org/gitweb/?p=erc.git} -@item Latest development snapshot: @uref{http://mwolson.org/static/dist/erc-latest.tar.gz} -@item Latest development snapshot (zip file): @uref{http://mwolson.org/static/dist/erc-latest.zip} -@end itemize - -The latest development snapshot can lag behind the git repo by as much -as 20 minutes, but never more than that. - -For further information on committing changes to ERC and performing -development, please consult -@uref{http://emacswiki.org/cgi-bin/wiki/ErcDevelopment}. - - -@node Installation -@chapter Installation - -ERC may be compiled and installed on your machine. - -This section may be skipped if you are using the version of ERC that -comes with Emacs. - -@subsubheading Compilation - -This is an optional step, since Emacs Lisp source code does not -necessarily have to be byte-compiled. It will yield a speed increase, -though. - -A working copy of Emacs or XEmacs is needed in order to compile ERC. By -default, the program that is installed with the name @command{emacs} -will be used. - -If you want to use the @command{xemacs} binary to perform the -compilation, you would need to edit @file{Makefile} in the top-level -directory as follows. You can put either a full path to an Emacs or -XEmacs binary or just the command name, as long as it is in the -@env{PATH}. - -@example -EMACS = xemacs -SITEFLAG = -no-site-file -@end example - -Running @code{make} should compile the ERC source files in the -@file{lisp} directory. - -@subsubheading Installation - -ERC may be installed into your file hierarchy by doing the following. - -Edit the @file{Makefile} file so that @env{ELISPDIR} points to where you -want the source and compiled ERC files to be installed and -@env{INFODIR} indicates where to put the ERC manual. Of course, you -will want to edit @env{EMACS} and @env{SITEFLAG} as shown in the -Compilation section if you are using XEmacs. - -If you are installing ERC on a Debian system, you might want to change -the value of @env{INSTALLINFO} as specified in @file{Makefile}. - -Run @code{make} as a normal user. - -Run @code{make install} as the root user if you have chosen installation -locations that require this. - @node Getting Started @chapter Getting Started @cindex settings -To use ERC, add the directory containing its files to your -@code{load-path} variable, in your @file{.emacs} file. Then, load ERC -itself. An example follows. - -@lisp -(require 'erc) -@end lisp - -Once ERC is loaded, the command @kbd{M-x erc} will start ERC and -prompt for the server to connect to. +The command @kbd{M-x erc} will start ERC and prompt for the server to +connect to. If you want to place ERC settings in their own file, you can place them in @file{~/.emacs.d/.ercrc.el}, creating it if necessary. @@ -936,31 +730,20 @@ or if you have bugs to report, there are several places you can go. @item @uref{http://www.emacswiki.org/cgi-bin/wiki/ERC} is the -emacswiki.org page for ERC. Anyone may add tips, hints, or bug -descriptions to it. +emacswiki.org page for ERC. Anyone may add tips, hints, etc. to it. @item -There are several mailing lists for ERC. To subscribe, visit -@uref{http://savannah.gnu.org/mail/?group=erc}. - -The mailing lists are also available on Gmane. -(@url{http://gmane.org/}). Gmane provides additional methods for -accessing the mailing lists, adding content to them, and searching them. - -@enumerate -@item gmane.emacs.erc.announce: Announcements - -@item gmane.emacs.erc.discuss: General discussion - -@item gmane.emacs.erc.cvs: Log messages for changes to the ERC source code - -@end enumerate +You can ask questions about using ERC on the Emacs mailing list, +@uref{http://lists.gnu.org/mailman/listinfo/help-gnu-emacs}. @item You can visit the IRC Freenode channel @samp{#emacs}. Many of the contributors are frequently around and willing to answer your questions. +@item +To report a bug in ERC, use @kbd{M-x report-emacs-bug}. + @end itemize @@ -1027,6 +810,11 @@ our revision control system. Our mailing list address changed as well. We switched to using git for our version control system. +@item 2009+ + +Since about 2009, ERC is no longer developed as a separate project, but +is maintained as part of Emacs. + @end itemize @node Copying From 123ec157692a9e776056d66f447c5fee59b72b13 Mon Sep 17 00:00:00 2001 From: Julian Scheid Date: Fri, 5 Oct 2012 19:20:36 -0700 Subject: [PATCH 040/272] color-hsl-to-rgb fix (tiny change) * lisp/color.el (color-hsl-to-rgb): Fix incorrect results for small and large hue values. Fixes: debbugs:12559 --- lisp/ChangeLog | 5 +++++ lisp/color.el | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1010fc0ae11..861022aae88 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-06 Julian Scheid (tiny change) + + * color.el (color-hsl-to-rgb): Fix incorrect results for + small and large hue values. (Bug#12559) + 2012-10-05 Fabián Ezequiel Gallina Enhancements to docstring formatting when filling paragraphs. diff --git a/lisp/color.el b/lisp/color.el index f618d47a540..b915beacb0a 100644 --- a/lisp/color.el +++ b/lisp/color.el @@ -113,9 +113,9 @@ inclusive." (- (+ L S) (* L S)))) (m1 (- (* 2.0 L) m2))) (list - (color-hue-to-rgb m1 m2 (+ H (/ 1.0 3))) + (color-hue-to-rgb m1 m2 (mod (+ H (/ 1.0 3)) 1)) (color-hue-to-rgb m1 m2 H) - (color-hue-to-rgb m1 m2 (- H (/ 1.0 3))))))) + (color-hue-to-rgb m1 m2 (mod (- H (/ 1.0 3)) 1)))))) (defun color-complement-hex (color) "Return the color that is the complement of COLOR, in hexadecimal format." From d5acb99a199d83cde1a43482709c3e9d4ec34b2f Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Fri, 5 Oct 2012 19:47:26 -0700 Subject: [PATCH 041/272] * subr.el (read-passwd): Allow C-u to erase entry. Fixes: debbugs:12570 --- lisp/ChangeLog | 4 ++++ lisp/subr.el | 12 ++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 861022aae88..0d793285246 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-10-06 Glenn Morris + + * subr.el (read-passwd): Allow C-u to erase entry. (Bug#12570) + 2012-10-06 Julian Scheid (tiny change) * color.el (color-hsl-to-rgb): Fix incorrect results for diff --git a/lisp/subr.el b/lisp/subr.el index b0ffb0db746..72bedc69c3c 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -2182,8 +2182,16 @@ by doing (clear-string STRING)." (set (make-local-variable 'post-self-insert-hook) nil) (add-hook 'after-change-functions hide-chars-fun nil 'local)) (unwind-protect - (let ((enable-recursive-minibuffers t)) - (read-string prompt nil t default)) ; t = "no history" + (let ((enable-recursive-minibuffers t) + (map minibuffer-local-map) + result) + (define-key map "\C-u" ; bug#12570 + (lambda () (interactive) (delete-minibuffer-contents))) + (setq result + ;; t = no history. + (read-from-minibuffer prompt nil map nil t default)) + (if (and (equal "" result) default) default + result)) (when (buffer-live-p minibuf) (with-current-buffer minibuf ;; Not sure why but it seems that there might be cases where the From 2b89bca49d55cec1a004353354a76de2972c68f3 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Sat, 6 Oct 2012 21:35:04 +0900 Subject: [PATCH 042/272] international/characters.el: Fix simple mistake ((car chars) -> elt), delete duplicated code. --- lisp/ChangeLog | 5 +++++ lisp/international/characters.el | 8 +------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5d1a7eea095..6704b26cf7d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-06 Ikumi Keita (tiny change) + + * international/characters.el: Fix simple mistake ((car chars) -> + elt), delete duplicated code. + 2012-09-30 Jan Djärv * term/ns-win.el (x-file-dialog): New function. diff --git a/lisp/international/characters.el b/lisp/international/characters.el index c75ca8106ac..0a51c324d61 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -226,7 +226,7 @@ with L, LRE, or LRO Unicode bidi character type.") (map-charset-chars #'modify-syntax-entry 'japanese-jisx0208 "_" #x2821 #x287E) (let ((chars '(?ー ?゛ ?゜ ?ヽ ?ヾ ?ゝ ?ゞ ?〃 ?仝 ?々 ?〆 ?〇))) (dolist (elt chars) - (modify-syntax-entry (car chars) "w"))) + (modify-syntax-entry elt "w"))) (map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?A #x2321 #x237E) (map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?H #x2421 #x247E) @@ -234,12 +234,6 @@ with L, LRE, or LRO Unicode bidi character type.") (map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?G #x2621 #x267E) (map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?Y #x2721 #x277E) (map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?C #x3021 #x7E7E) -(modify-category-entry ?ー ?K) -(let ((chars '(?゛ ?゜))) - (while chars - (modify-category-entry (car chars) ?K) - (modify-category-entry (car chars) ?H) - (setq chars (cdr chars)))) (let ((chars '(?仝 ?々 ?〆 ?〇))) (while chars (modify-category-entry (car chars) ?C) From c6b68a2899a6d42c197b6c84c42eed1c6804b534 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sat, 6 Oct 2012 22:18:03 +0800 Subject: [PATCH 043/272] * doc/emacs/mini.texi (Passwords): Fix typo. --- doc/emacs/ChangeLog | 4 ++++ doc/emacs/mini.texi | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 572cc4f5532..60b3bf234f7 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,7 @@ +2012-10-06 Chong Yidong + + * mini.texi (Passwords): Fix typo. + 2012-10-02 Glenn Morris * maintaining.texi (VC Directory Commands): diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi index 5d2fc804498..cb47a966f64 100644 --- a/doc/emacs/mini.texi +++ b/doc/emacs/mini.texi @@ -727,7 +727,7 @@ completion, and you cannot change windows or perform any other action with Emacs until you have submitted the password. While you are typing the password, you may press @key{DEL} to delete -backwards, removing the last character entered. @key{C-u} deletes +backwards, removing the last character entered. @kbd{C-u} deletes everything you have typed so far. @kbd{C-g} quits the password prompt (@pxref{Quitting}). @kbd{C-y} inserts the current kill into the password (@pxref{Killing}). You may type either @key{RET} or From 9414dd8d50cc49464c97a5cb81f38796ff1fbec1 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sat, 6 Oct 2012 22:18:35 +0800 Subject: [PATCH 044/272] Move bovine-grammar and wisent-grammar into lisp/ directory. * lisp/files.el (auto-mode-alist): Add .by and .wy (Semantic grammars). * cedet/semantic/bovine/grammar.el: * cedet/semantic/wisent/grammar.el: Move from admin/grammars. Add autoloads for bovine-grammar-mode and wisent-grammar-mode. --- admin/ChangeLog | 5 +++++ lisp/ChangeLog | 4 ++++ lisp/cedet/ChangeLog | 6 ++++++ .../cedet/semantic/bovine/grammar.el | 17 ++++++++--------- .../cedet/semantic/wisent/grammar.el | 14 +++++++------- lisp/files.el | 2 ++ 6 files changed, 32 insertions(+), 16 deletions(-) rename admin/grammars/bovine-grammar.el => lisp/cedet/semantic/bovine/grammar.el (98%) rename admin/grammars/wisent-grammar.el => lisp/cedet/semantic/wisent/grammar.el (99%) diff --git a/admin/ChangeLog b/admin/ChangeLog index 2da65523116..8fe82ca36cb 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,8 @@ +2012-10-01 David Engster + + * grammars/bovine-grammar.el: + * grammars/wisent-grammar.el: Move to lisp directory. + 2012-10-01 David Engster * grammars/bovine-grammar.el (bovine--grammar-newstyle-unquote): diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 87b54707e0a..5d93a386a21 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-10-06 Chong Yidong + + * files.el (auto-mode-alist): Add .by and .wy (Semantic grammars). + 2012-10-06 Ikumi Keita (tiny change) * international/characters.el: Fix simple mistake ((car chars) -> diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog index e066368d011..9e20b4fbb4e 100644 --- a/lisp/cedet/ChangeLog +++ b/lisp/cedet/ChangeLog @@ -1,3 +1,9 @@ +2012-10-06 Chong Yidong + + * semantic/bovine/grammar.el: + * semantic/wisent/grammar.el: Move from admin/grammars. Add + autoloads for bovine-grammar-mode and wisent-grammar-mode. + 2012-10-02 Chong Yidong * srecode.el, ede.el: Restore Version header. diff --git a/admin/grammars/bovine-grammar.el b/lisp/cedet/semantic/bovine/grammar.el similarity index 98% rename from admin/grammars/bovine-grammar.el rename to lisp/cedet/semantic/bovine/grammar.el index a7289f6bafe..cc27c5b0646 100644 --- a/admin/grammars/bovine-grammar.el +++ b/lisp/cedet/semantic/bovine/grammar.el @@ -1,4 +1,4 @@ -;;; bovine-grammar.el --- Bovine's input grammar mode +;;; semantic/bovine/grammar.el --- Bovine's input grammar mode ;; ;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; @@ -143,7 +143,7 @@ expanded from elsewhere." (setq first (car form) form (cdr form)) ;; Hack for dealing with new reading of unquotes outside of - ;; backquote (introduced in rev. 102591 in emacs-bzr). + ;; backquote (introduced in 2010-12-06T16:37:26Z!monnier@iro.umontreal.ca). (when (and (>= emacs-major-version 24) (listp first) (or (equal (car first) '\,) @@ -413,18 +413,17 @@ manual." "")))) (defvar bovine-grammar-menu - '("BY Grammar" - ) + '("BY Grammar") "BY mode specific grammar menu. Menu items are appended to the common grammar menu.") +;;;###autoload (define-derived-mode bovine-grammar-mode semantic-grammar-mode "BY" "Major mode for editing Bovine grammars." (semantic-grammar-setup-menu bovine-grammar-menu) (semantic-install-function-overrides '((grammar-parsetable-builder . bovine-grammar-parsetable-builder) - (grammar-setupcode-builder . bovine-grammar-setupcode-builder) - ))) + (grammar-setupcode-builder . bovine-grammar-setupcode-builder)))) (add-to-list 'auto-mode-alist '("\\.by\\'" . bovine-grammar-mode)) @@ -444,8 +443,6 @@ Menu items are appended to the common grammar menu.") ) "Semantic grammar macros used in bovine grammars.") -(provide 'semantic/bovine/grammar) - (defun bovine-make-parsers () "Generate Emacs' built-in Bovine-based parser files." (interactive) @@ -504,4 +501,6 @@ Menu items are appended to the common grammar menu.") (replace-match packagename nil nil nil 1) (save-buffer)))))) -;;; bovine-grammar.el ends here +(provide 'semantic/bovine/grammar) + +;;; semantic/bovine/grammar.el ends here diff --git a/admin/grammars/wisent-grammar.el b/lisp/cedet/semantic/wisent/grammar.el similarity index 99% rename from admin/grammars/wisent-grammar.el rename to lisp/cedet/semantic/wisent/grammar.el index 25dba5be2d8..6fa52dc2adc 100644 --- a/admin/grammars/wisent-grammar.el +++ b/lisp/cedet/semantic/wisent/grammar.el @@ -1,4 +1,4 @@ -;;; wisent-grammar.el --- Wisent's input grammar mode +;;; semantic/wisent/grammar.el --- Wisent's input grammar mode ;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; @@ -323,15 +323,13 @@ Return the expanded expression." "WY mode specific grammar menu. Menu items are appended to the common grammar menu.") +;;;###autoload (define-derived-mode wisent-grammar-mode semantic-grammar-mode "WY" "Major mode for editing Wisent grammars." (semantic-grammar-setup-menu wisent-grammar-menu) (semantic-install-function-overrides '((grammar-parsetable-builder . wisent-grammar-parsetable-builder) - (grammar-setupcode-builder . wisent-grammar-setupcode-builder) - ))) - -(add-to-list 'auto-mode-alist '("\\.wy\\'" . wisent-grammar-mode)) + (grammar-setupcode-builder . wisent-grammar-setupcode-builder)))) (defvar-mode-local wisent-grammar-mode semantic-grammar-macros '( @@ -498,7 +496,7 @@ Menu items are appended to the common grammar menu.") (insert-file-contents filename) ;; Fix copyright header: (goto-char (point-min)) - (when additional-copyright + (when additional-copyright (re-search-forward "Copyright (C).*$") (insert "\n;; " additional-copyright)) (re-search-forward "^;; Author:") @@ -523,4 +521,6 @@ Menu items are appended to the common grammar menu.") (delete-trailing-whitespace) (write-region nil nil (expand-file-name filename)))))))) -;;; wisent-grammar.el ends here +(provide 'semantic/wisent/grammar) + +;;; semantic/wisent/grammar.el ends here diff --git a/lisp/files.el b/lisp/files.el index c3f9e1ef1a0..e030aff0ae2 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -2326,6 +2326,8 @@ ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\|7Z\\)\\'" . archive-mode) ("\\.js\\'" . javascript-mode) ("\\.json\\'" . javascript-mode) ("\\.[ds]?vh?\\'" . verilog-mode) + ("\\.by\\'" . bovine-grammar-mode) + ("\\.wy\\'" . wisent-grammar-mode) ;; .emacs or .gnus or .viper following a directory delimiter in ;; Unix, MSDOG or VMS syntax. ("[]>:/\\]\\..*\\(emacs\\|gnus\\|viper\\)\\'" . emacs-lisp-mode) From 0db901c17a90b38c81b4b03e0c83c61e814a6c0b Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sat, 6 Oct 2012 22:22:31 +0800 Subject: [PATCH 045/272] Update for admin/grammars/README. --- admin/grammars/README | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/admin/grammars/README b/admin/grammars/README index 419797e0dcb..e38260952a5 100644 --- a/admin/grammars/README +++ b/admin/grammars/README @@ -3,8 +3,8 @@ generate the parser data in the lisp/semantic/bovine/ and lisp/semantic/wisent/ directories. You can run the parser generators with -emacs -batch -Q -l bovine-grammar.el -f bovine-make-parsers -emacs -batch -Q -l wisent-grammar.el -f wisent-make-parsers +emacs -batch -Q -l semantic/bovine/grammar -f bovine-make-parsers +emacs -batch -Q -l semantic/wisent/grammar -f wisent-make-parsers Currently, the parser files in lisp/ are not generated directly from these grammar files when making Emacs. This state of affairs, and the From 50d92e32c2770a98fed777e3a676fca1205d28ae Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 09:59:01 -0700 Subject: [PATCH 046/272] Fix previous read-passwd change --- lisp/subr.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lisp/subr.el b/lisp/subr.el index 72bedc69c3c..e8eef541f27 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -2183,8 +2183,9 @@ by doing (clear-string STRING)." (add-hook 'after-change-functions hide-chars-fun nil 'local)) (unwind-protect (let ((enable-recursive-minibuffers t) - (map minibuffer-local-map) + (map (make-sparse-keymap)) result) + (set-keymap-parent map minibuffer-local-map) (define-key map "\C-u" ; bug#12570 (lambda () (interactive) (delete-minibuffer-contents))) (setq result From 5694896dfc322e90c0e7e064002cf25296394d75 Mon Sep 17 00:00:00 2001 From: Jambunathan K Date: Sat, 6 Oct 2012 13:16:26 -0400 Subject: [PATCH 047/272] * lisp/register.el (append-to-register, prepend-to-register): Deactivate mark, as does `copy-to-register'. Fixes: debbugs:12389 --- lisp/ChangeLog | 15 ++++++++++----- lisp/register.el | 2 ++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5d93a386a21..6235f9f28ca 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-06 Jambunathan K + + * register.el (append-to-register, prepend-to-register): + Deactivate mark, as does `copy-to-register' (bug#12389). + 2012-10-06 Chong Yidong * files.el (auto-mode-alist): Add .by and .wy (Semantic grammars). @@ -68,7 +73,7 @@ (python-fill-decorator-function, python-fill-paren-function): Remove :safe for defcustoms. (python-fill-string-style): New defcustom - (python-fill-paragraph-function): Enhanced context detection. + (python-fill-paragraph-function): Enhance context detection. (python-fill-string): Honor python-fill-string-style settings. 2012-10-04 Martin Rudalics @@ -100,8 +105,8 @@ 2012-10-02 Chong Yidong - * progmodes/hideif.el (hif-lookup, hif-defined): Handle - semantic-c-takeover-hideif. + * progmodes/hideif.el (hif-lookup, hif-defined): + Handle semantic-c-takeover-hideif. 2012-10-02 Paul Eggert @@ -117,8 +122,8 @@ 2012-10-02 Sergio Durigan Junior (tiny change) - * net/eudcb-bbdb.el (eudc-bbdb-format-record-as-result): Fix - querying BBDB for entries without a last name (Bug#11580). + * net/eudcb-bbdb.el (eudc-bbdb-format-record-as-result): + Fix querying BBDB for entries without a last name (Bug#11580). 2012-10-02 Chong Yidong diff --git a/lisp/register.el b/lisp/register.el index fb35a26a653..7c2d9337fa2 100644 --- a/lisp/register.el +++ b/lisp/register.el @@ -382,6 +382,7 @@ START and END are buffer positions indicating what to append." register (cond ((not reg) text) ((stringp reg) (concat reg separator text)) (t (error "Register does not contain text"))))) + (setq deactivate-mark t) (cond (delete-flag (delete-region start end)) ((called-interactively-p 'interactive) @@ -400,6 +401,7 @@ START and END are buffer positions indicating what to prepend." register (cond ((not reg) text) ((stringp reg) (concat text separator reg)) (t (error "Register does not contain text"))))) + (setq deactivate-mark t) (cond (delete-flag (delete-region start end)) ((called-interactively-p 'interactive) From d39109c3e111bf2403f6e636ff1273f2701683e7 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sat, 6 Oct 2012 13:29:15 -0400 Subject: [PATCH 048/272] * lisp/subr.el (read-passwd-map): New var. (read-passwd): Use `read-string' again. * lisp/minibuffer.el (delete-minibuffer-contents): Make it interactive. --- lisp/ChangeLog | 6 ++++++ lisp/minibuffer.el | 1 + lisp/subr.el | 21 ++++++++++----------- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6235f9f28ca..292a536f2c9 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2012-10-06 Stefan Monnier + + * subr.el (read-passwd-map): New var. + (read-passwd): Use `read-string' again. + * minibuffer.el (delete-minibuffer-contents): Make it interactive. + 2012-10-06 Jambunathan K * register.el (append-to-register, prepend-to-register): diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index cf990019abc..a9be1749423 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -632,6 +632,7 @@ That is what completion commands operate on." (defun delete-minibuffer-contents () "Delete all user input in a minibuffer. If the current buffer is not a minibuffer, erase its entire contents." + (interactive) ;; We used to do `delete-field' here, but when file name shadowing ;; is on, the field doesn't cover the entire minibuffer contents. (delete-region (minibuffer-prompt-end) (point-max))) diff --git a/lisp/subr.el b/lisp/subr.el index e8eef541f27..e438a860cbc 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -2143,6 +2143,13 @@ any other non-digit terminates the character code and is then used as input.")) (setq first nil)) code)) +(defconst read-passwd-map + (let ((map (make-sparse-keymap))) + (set-keymap-parent map minibuffer-local-map) + (define-key map "\C-u" #'delete-minibuffer-contents) ;bug#12570 + map) + "Keymap used while reading passwords.") + (defun read-passwd (prompt &optional confirm default) "Read a password, prompting with PROMPT, and return it. If optional CONFIRM is non-nil, read the password twice to make sure. @@ -2180,19 +2187,11 @@ by doing (clear-string STRING)." (setq minibuf (current-buffer)) ;; Turn off electricity. (set (make-local-variable 'post-self-insert-hook) nil) + (use-local-map read-passwd-map) (add-hook 'after-change-functions hide-chars-fun nil 'local)) (unwind-protect - (let ((enable-recursive-minibuffers t) - (map (make-sparse-keymap)) - result) - (set-keymap-parent map minibuffer-local-map) - (define-key map "\C-u" ; bug#12570 - (lambda () (interactive) (delete-minibuffer-contents))) - (setq result - ;; t = no history. - (read-from-minibuffer prompt nil map nil t default)) - (if (and (equal "" result) default) default - result)) + (let ((enable-recursive-minibuffers t)) + (read-string prompt nil t default)) ; t = "no history" (when (buffer-live-p minibuf) (with-current-buffer minibuf ;; Not sure why but it seems that there might be cases where the From 04fafa467506fe9ca9b77d9cdc3f8e25cb8fd5d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Sat, 6 Oct 2012 19:31:11 +0200 Subject: [PATCH 049/272] Handle fullscreen parameter in initial/defult-frame-alist for NS. * nsfns.m (Fx_create_frame): Call x_default_parameter with fullscreen/Fullscreen. * nsterm.h (EmacsView): Rename tbar_height to tibar_height. tobar_height is new. * nsterm.m (x_make_frame_visible): Check for fullscreen. (ns_fullscreen_hook): Activate old style fullscreen with a timer. (ns_term_init): Set activateIgnoringOtherApps if old style fullscreen. (windowDidResize:): Check for correct window if old style fullscreen. Capitalize word in comment. Remove incorrect comment. (initFrameFromEmacs:): tbar_height renamed tibar_height. (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix error in drawing background. (toggleFullScreen:): Remove comment. Rearrange calls. Set toolbar values to zero, save old height in tobar_height. Restore tool bar height when leaving fullscreen. (canBecomeMainWindow): New function. --- src/ChangeLog | 21 +++++++++++++ src/nsfns.m | 2 ++ src/nsterm.h | 3 +- src/nsterm.m | 87 ++++++++++++++++++++++++++++++++++++++++----------- 4 files changed, 94 insertions(+), 19 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 956e78e6c7e..b960837eaab 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,24 @@ +2012-10-06 Jan Djärv + + * nsfns.m (Fx_create_frame): Call x_default_parameter with + fullscreen/Fullscreen. + + * nsterm.h (EmacsView): Rename tbar_height to tibar_height. + tobar_height is new. + + * nsterm.m (x_make_frame_visible): Check for fullscreen. + (ns_fullscreen_hook): Activate old style fullscreen with a timer. + (ns_term_init): Set activateIgnoringOtherApps if old style fullscreen. + (windowDidResize:): Check for correct window if old style fullscreen. + Capitalize word in comment. Remove incorrect comment. + (initFrameFromEmacs:): tbar_height renamed tibar_height. + (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix + error in drawing background. + (toggleFullScreen:): Remove comment. Rearrange calls. + Set toolbar values to zero, save old height in tobar_height. + Restore tool bar height when leaving fullscreen. + (canBecomeMainWindow): New function. + 2012-10-06 Paul Eggert * keyboard.c (read_char): Remove unnecessary 'volatile's and label. diff --git a/src/nsfns.m b/src/nsfns.m index 1efadf0cb98..f22198401e0 100644 --- a/src/nsfns.m +++ b/src/nsfns.m @@ -1346,6 +1346,8 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side RES_TYPE_NUMBER); x_default_parameter (f, parms, Qalpha, Qnil, "alpha", "Alpha", RES_TYPE_NUMBER); + x_default_parameter (f, parms, Qfullscreen, Qnil, + "fullscreen", "Fullscreen", RES_TYPE_SYMBOL); width = FRAME_COLS (f); height = FRAME_LINES (f); diff --git a/src/nsterm.h b/src/nsterm.h index f06e0cb0f7f..f1cd7458bdc 100644 --- a/src/nsterm.h +++ b/src/nsterm.h @@ -86,7 +86,8 @@ along with GNU Emacs. If not, see . */ BOOL windowClosing; NSString *workingText; BOOL processingCompose; - int fs_state, fs_before_fs, next_maximized, tbar_height, bwidth; + int fs_state, fs_before_fs, next_maximized; + int tibar_height, tobar_height, bwidth; int maximized_width, maximized_height; NSWindow *nonfs_window; @public diff --git a/src/nsterm.m b/src/nsterm.m index 2df0e1a1ad5..0d0be9281ee 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -1068,8 +1068,23 @@ Free a pool and temporary objects it refers to (callable from C) if this ends up the case again, comment this out again. */ if (!FRAME_VISIBLE_P (f)) { + EmacsView *view = (EmacsView *)FRAME_NS_VIEW (f); f->async_visible = 1; ns_raise_frame (f); + +#ifdef NEW_STYLE_FS + /* Making a new frame from a fullscreen frame will make the new frame + fullscreen also. So skip handleFS as this will print an error. */ + if (f->want_fullscreen == FULLSCREEN_BOTH + && ([[view window] styleMask] & NSFullScreenWindowMask) != 0) + return; +#endif + if (f->want_fullscreen != FULLSCREEN_NONE) + { + block_input (); + [view handleFS]; + unblock_input (); + } } } @@ -1317,6 +1332,18 @@ Free a pool and temporary objects it refers to (callable from C) EmacsView *view = (EmacsView *)FRAME_NS_VIEW (f); if (! f->async_visible) return; +#ifndef NEW_STYLE_FS + if (f->want_fullscreen == FULLSCREEN_BOTH) + { + /* Old style fs don't initiate correctly if created from + init/default-frame alist, so use a timer (not nice...). + */ + [NSTimer scheduledTimerWithTimeInterval: 0.5 target: view + selector: @selector (handleFS) + userInfo: nil repeats: NO]; + return; + } +#endif block_input (); [view handleFS]; @@ -4210,6 +4237,11 @@ Needs to be here because ns_initialize_display_info () uses AppKit classes. NSColorPboardType, NSFontPboardType, nil] retain]; +#ifndef NEW_STYLE_FS + /* If fullscreen is in init/default-frame-alist, focus isn't set + right for fullscreen windows, so set this. */ + [NSApp activateIgnoringOtherApps:YES]; +#endif [NSApp run]; ns_do_open_file = YES; @@ -5505,10 +5537,17 @@ - (NSSize)windowWillResize: (NSWindow *)sender toSize: (NSSize)frameSize - (void)windowDidResize: (NSNotification *)notification { + +#if !defined (NEW_STYLE_FS) && ! defined (NS_IMPL_GNUSTEP) + NSWindow *theWindow = [notification object]; + /* We can get notification on the non-FS window when in fullscreen mode. */ + if ([self window] != theWindow) return; +#endif + #ifdef NS_IMPL_GNUSTEP NSWindow *theWindow = [notification object]; - /* in GNUstep, at least currently, it's possible to get a didResize + /* In GNUstep, at least currently, it's possible to get a didResize without getting a willResize.. therefore we need to act as if we got the willResize now */ NSSize sz = [theWindow frame].size; @@ -5526,10 +5565,6 @@ - (void)windowDidResize: (NSNotification *)notification } #endif /* NS_IMPL_COCOA */ - /* Avoid loop under GNUstep due to call at beginning of this function. - (x_set_window_size causes a resize which causes - a "windowDidResize" which calls x_set_window_size). */ -#ifndef NS_IMPL_GNUSTEP if (cols > 0 && rows > 0) { if (ns_in_resize) @@ -5539,7 +5574,6 @@ - (void)windowDidResize: (NSNotification *)notification [self updateFrameSize: YES]; } } -#endif ns_send_appdefined (-1); } @@ -5661,7 +5695,7 @@ - (BOOL)isOpaque wr = [win frame]; bwidth = f->border_width = wr.size.width - r.size.width; - tbar_height = FRAME_NS_TITLEBAR_HEIGHT (f) = wr.size.height - r.size.height; + tibar_height = FRAME_NS_TITLEBAR_HEIGHT (f) = wr.size.height - r.size.height; [win setAcceptsMouseMovedEvents: YES]; [win setDelegate: self]; @@ -5870,8 +5904,16 @@ - (void)windowWillEnterFullScreen:(NSNotification *)notification - (void)windowDidEnterFullScreen:(NSNotification *)notification { [self setFSValue: FULLSCREEN_BOTH]; -#ifndef NEW_STYLE_FS +#ifdef NEW_STYLE_FS + // Fix bad background. + if ([toolbar isVisible]) + { + [toolbar setVisible:NO]; + [toolbar setVisible:YES]; + } +#else [self windowDidBecomeKey:notification]; + [nonfs_window orderOut:self]; #endif } @@ -5891,11 +5933,6 @@ - (void)windowDidExitFullScreen:(NSNotification *)notification - (void)toggleFullScreen: (id)sender { - /* Bugs remain: - 1) Having fullscreen in initial/default frame alist. - 2) Fullscreen in default frame alist only applied to first frame. - */ - #ifdef NEW_STYLE_FS [[self window] toggleFullScreen:sender]; #else @@ -5904,7 +5941,7 @@ - (void)toggleFullScreen: (id)sender isEqual:[[NSScreen screens] objectAtIndex:0]]; struct frame *f = emacsframe; NSSize sz; - NSRect r; + NSRect r, wr = [w frame]; NSColor *col = ns_lookup_indexed_color (NS_FACE_BACKGROUND (FRAME_DEFAULT_FACE (f)), f); @@ -5930,7 +5967,7 @@ - (void)toggleFullScreen: (id)sender } fw = [[EmacsFSWindow alloc] - initWithContentRect:[w contentRectForFrameRect:[w frame]] + initWithContentRect:[w contentRectForFrameRect:wr] styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:YES @@ -5938,9 +5975,7 @@ - (void)toggleFullScreen: (id)sender [fw setContentView:[w contentView]]; [fw setTitle:[w title]]; - [fw makeKeyAndOrderFront:NSApp]; [fw setDelegate:self]; - [fw makeFirstResponder:self]; [fw setAcceptsMouseMovedEvents: YES]; [fw useOptimizedDrawing: YES]; [fw setResizeIncrements: sz]; @@ -5950,18 +5985,26 @@ - (void)toggleFullScreen: (id)sender f->border_width = 0; FRAME_NS_TITLEBAR_HEIGHT (f) = 0; + tobar_height = FRAME_TOOLBAR_HEIGHT (f); + FRAME_TOOLBAR_HEIGHT (f) = 0; + FRAME_EXTERNAL_TOOL_BAR (f) = 0; nonfs_window = w; + [self windowWillEnterFullScreen:nil]; + [fw makeKeyAndOrderFront:NSApp]; + [fw makeFirstResponder:self]; [w orderOut:self]; r = [fw frameRectForContentRect:[[fw screen] frame]]; [fw setFrame: r display:YES animate:YES]; [self windowDidEnterFullScreen:nil]; + [fw display]; } else { fw = w; w = nonfs_window; + nonfs_window = nil; if (onFirstScreen) { @@ -5980,7 +6023,10 @@ - (void)toggleFullScreen: (id)sender [w setOpaque: NO]; f->border_width = bwidth; - FRAME_NS_TITLEBAR_HEIGHT (f) = tbar_height; + FRAME_NS_TITLEBAR_HEIGHT (f) = tibar_height; + FRAME_TOOLBAR_HEIGHT (f) = tobar_height; + if (tobar_height) + FRAME_EXTERNAL_TOOL_BAR (f) = 1; [self windowWillExitFullScreen:nil]; [fw setFrame: [w frame] display:YES animate:YES]; @@ -6553,6 +6599,11 @@ - (BOOL)canBecomeKeyWindow return YES; } +- (BOOL)canBecomeMainWindow +{ + return YES; +} + @end /* ========================================================================== From 685f87b00f477c8072bcd15818d9564e7b7d8808 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sat, 6 Oct 2012 13:34:57 -0400 Subject: [PATCH 050/272] * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Improve docstring. --- lisp/ChangeLog | 2 ++ lisp/emacs-lisp/cl-loaddefs.el | 7 ++++--- lisp/emacs-lisp/cl-macs.el | 5 +++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 292a536f2c9..e4597b072fb 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,7 @@ 2012-10-06 Stefan Monnier + * emacs-lisp/cl-macs.el (cl-defstruct): Improve docstring. + * subr.el (read-passwd-map): New var. (read-passwd): Use `read-string' again. * minibuffer.el (delete-minibuffer-contents): Make it interactive. diff --git a/lisp/emacs-lisp/cl-loaddefs.el b/lisp/emacs-lisp/cl-loaddefs.el index 922c9856208..e25ac5f9708 100644 --- a/lisp/emacs-lisp/cl-loaddefs.el +++ b/lisp/emacs-lisp/cl-loaddefs.el @@ -260,7 +260,7 @@ Remove from SYMBOL's plist the property PROPNAME and its value. ;;;;;; cl-typecase cl-ecase cl-case cl-load-time-value cl-eval-when ;;;;;; cl-destructuring-bind cl-function cl-defmacro cl-defun cl-gentemp ;;;;;; cl-gensym cl--compiler-macro-cXXr cl--compiler-macro-list*) -;;;;;; "cl-macs" "cl-macs.el" "da92f58f688ff6fb4d0098eb0f3acf0b") +;;;;;; "cl-macs" "cl-macs.el" "6951d080daefb5194b1d21fe9b2deae4") ;;; Generated autoloads from cl-macs.el (autoload 'cl--compiler-macro-list* "cl-macs" "\ @@ -657,8 +657,9 @@ copier, a `NAME-p' predicate, and slot accessors named `NAME-SLOT'. You can use the accessors to set the corresponding slots, via `setf'. NAME may instead take the form (NAME OPTIONS...), where each -OPTION is either a single keyword or (KEYWORD VALUE). -See Info node `(cl)Structures' for a list of valid keywords. +OPTION is either a single keyword or (KEYWORD VALUE) where +KEYWORD can be one of :conc-name, :constructor, :copier, :predicate, +:type, :named, :initial-offset, :print-function, or :include. Each SLOT may instead take the form (SLOT SLOT-OPTS...), where SLOT-OPTS are keyword-value pairs for that slot. Currently, only diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 56e698bec0a..99bae1944e8 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -2154,8 +2154,9 @@ copier, a `NAME-p' predicate, and slot accessors named `NAME-SLOT'. You can use the accessors to set the corresponding slots, via `setf'. NAME may instead take the form (NAME OPTIONS...), where each -OPTION is either a single keyword or (KEYWORD VALUE). -See Info node `(cl)Structures' for a list of valid keywords. +OPTION is either a single keyword or (KEYWORD VALUE) where +KEYWORD can be one of :conc-name, :constructor, :copier, :predicate, +:type, :named, :initial-offset, :print-function, or :include. Each SLOT may instead take the form (SLOT SLOT-OPTS...), where SLOT-OPTS are keyword-value pairs for that slot. Currently, only From f1f4dba09f9c42fc61c5bb3bf4f1e7214a2513ca Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 11:34:23 -0700 Subject: [PATCH 051/272] Rename a new cal-tex function, document it * lisp/calendar/cal-tex.el (cal-tex-diary, cal-tex-cursor-week) (cal-tex-cursor-week2, cal-tex-cursor-week-iso) (cal-tex-cursor-week-monday): Doc fixes. (cal-tex-cursor-week2-summary): Doc fix. Rename from cal-tex-cursor-week-at-a-glance. * lisp/calendar/calendar.el (calendar-mode-map): Add cal-tex-cursor-week2-summary. * lisp/calendar/cal-menu.el (cal-menu-context-mouse-menu): Tweak week descriptions. Add cal-tex-cursor-week2-summary. * doc/emacs/calendar.texi (Writing Calendar Files): Tweak week descriptions. Mention cal-tex-cursor-week2-summary. --- doc/emacs/ChangeLog | 5 +++ doc/emacs/calendar.texi | 11 ++++-- etc/NEWS | 3 ++ lisp/ChangeLog | 14 +++++++ lisp/calendar/cal-menu.el | 9 +++-- lisp/calendar/cal-tex.el | 81 +++++++++++++++++++++++---------------- lisp/calendar/calendar.el | 5 ++- 7 files changed, 85 insertions(+), 43 deletions(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 60b3bf234f7..067574b9a0d 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,8 @@ +2012-10-06 Glenn Morris + + * calendar.texi (Writing Calendar Files): Tweak week descriptions. + Mention cal-tex-cursor-week2-summary. + 2012-10-06 Chong Yidong * mini.texi (Passwords): Fix typo. diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi index fdf1c65fcd6..d46e26cddcf 100644 --- a/doc/emacs/calendar.texi +++ b/doc/emacs/calendar.texi @@ -396,17 +396,20 @@ Generate a sideways-printing one-month calendar Generate a one-day calendar (@code{cal-tex-cursor-day}). @item t w 1 -Generate a one-page calendar for one week +Generate a one-page calendar for one week, with hours (@code{cal-tex-cursor-week}). @item t w 2 -Generate a two-page calendar for one week +Generate a two-page calendar for one week, with hours (@code{cal-tex-cursor-week2}). @item t w 3 -Generate an ISO-style calendar for one week +Generate an ISO-style calendar for one week, without hours (@code{cal-tex-cursor-week-iso}). @item t w 4 -Generate a calendar for one Monday-starting week +Generate a calendar for one Monday-starting week, with hours (@code{cal-tex-cursor-week-monday}). +@item t w W +Generate a two-page calendar for one week, without hours +(@code{cal-tex-cursor-week2-summary}). @item t f w Generate a Filofax-style two-weeks-at-a-glance calendar (@code{cal-tex-cursor-filofax-2week}). diff --git a/etc/NEWS b/etc/NEWS index be75b665c1d..e4086bf038e 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -281,6 +281,9 @@ Use `Buffer-menu-name-width' and `Buffer-menu-size-width' instead. *** You can customize the header text that appears above each calendar month. See the variable `calendar-month-header'. ++++ +*** New LaTeX calendar style, produced by `cal-tex-cursor-week2-summary'. + *** The calendars produced by cal-html include holidays. Customize cal-html-holidays to change this. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e4597b072fb..42835b59a26 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,17 @@ +2012-10-06 Glenn Morris + + * calendar/cal-tex.el (cal-tex-diary, cal-tex-cursor-week) + (cal-tex-cursor-week2, cal-tex-cursor-week-iso) + (cal-tex-cursor-week-monday): Doc fixes. + (cal-tex-cursor-week2-summary): Doc fix. + Rename from cal-tex-cursor-week-at-a-glance. + + * calendar/cal-menu.el (cal-menu-context-mouse-menu): + Tweak week descriptions. Add cal-tex-cursor-week2-summary. + + * calendar/calendar.el (calendar-mode-map): + Add cal-tex-cursor-week2-summary. + 2012-10-06 Stefan Monnier * emacs-lisp/cl-macs.el (cl-defstruct): Improve docstring. diff --git a/lisp/calendar/cal-menu.el b/lisp/calendar/cal-menu.el index d4546125f3e..52c82b661e8 100644 --- a/lisp/calendar/cal-menu.el +++ b/lisp/calendar/cal-menu.el @@ -237,10 +237,11 @@ is non-nil." ;; These did not work if called without calendar window selected. ("Prepare LaTeX buffer" ["Daily (1 page)" cal-tex-cursor-day] - ["Weekly (1 page)" cal-tex-cursor-week] - ["Weekly (2 pages)" cal-tex-cursor-week2] - ["Weekly (other style; 1 page)" cal-tex-cursor-week-iso] - ["Weekly (yet another style; 1 page)" cal-tex-cursor-week-monday] + ["Weekly (1 page, with hours)" cal-tex-cursor-week] + ["Weekly (2 pages, with hours)" cal-tex-cursor-week2] + ["Weekly (1 page, no hours)" cal-tex-cursor-week-iso] + ["Weekly (1 page, with hours, different style)" cal-tex-cursor-week-monday] + ["Weekly (2 pages, no hours)" cal-tex-cursor-week2-summary] ["Monthly" cal-tex-cursor-month] ["Monthly (landscape)" cal-tex-cursor-month-landscape] ["Yearly" cal-tex-cursor-year] diff --git a/lisp/calendar/cal-tex.el b/lisp/calendar/cal-tex.el index 325ac3e8146..e4c2765940a 100644 --- a/lisp/calendar/cal-tex.el +++ b/lisp/calendar/cal-tex.el @@ -37,6 +37,7 @@ ;; cal-tex-cursor-month ;; cal-tex-cursor-week ;; cal-tex-cursor-week2 +;; cal-tex-cursor-week2-summary ;; cal-tex-cursor-week-iso ;; cal-tex-cursor-week-monday ;; cal-tex-cursor-filofax-2week @@ -82,8 +83,6 @@ Setting this to nil may speed up calendar generation." (defcustom cal-tex-diary nil "Non-nil means diary entries are printed in LaTeX calendars that support it. -At present, this only affects the monthly, filofax, and iso-week -calendars (i.e. not the yearly, plain weekly, or daily calendars). Setting this to nil may speed up calendar generation." :type 'boolean :group 'calendar-tex) @@ -717,11 +716,15 @@ this is only an upper bound." ;; TODO respect cal-tex-daily-start,end (see cal-tex-week-hours). ;;;###cal-autoload (defun cal-tex-cursor-week (&optional n event) - "Make a LaTeX calendar buffer for a two-page one-week calendar. -It applies to the week that point is in. The optional prefix -argument N specifies number of weeks (default 1). The calendar -shows holidays if `cal-tex-holidays' is non-nil (note that diary -entries are not shown). The calendar shows the hours 8-12am, 1-5pm." + "Make a one page LaTeX calendar for one week, showing hours of the day. +There are two columns; with 8-12am in the first and 1-5pm in the second. +It shows holidays if `cal-tex-holidays' is non-nil. +It does not show diary entries. + +The optional prefix argument N specifies a number of weeks (default 1). + +By default, the calendar is for the week at point; the optional +argument EVENT specifies a different buffer position." (interactive (list (prefix-numeric-value current-prefix-arg) last-nonmenu-event)) (or n (setq n 1)) @@ -768,12 +771,15 @@ entries are not shown). The calendar shows the hours 8-12am, 1-5pm." ;; TODO respect cal-tex-daily-start,end (see cal-tex-week-hours). ;;;###cal-autoload (defun cal-tex-cursor-week2 (&optional n event) - "Make a LaTeX calendar buffer for a two-page one-week calendar. -It applies to the week that point is in. Optional prefix -argument N specifies number of weeks (default 1). The calendar -shows holidays if `cal-tex-holidays' is non-nil (note that diary -entries are not shown). The calendar shows the hours 8-12am, 1-5pm. -Optional EVENT indicates a buffer position to use instead of point." + "Make a two page LaTeX calendar for one week, showing hours of the day. +There are two columns; with 8-12am in the first and 1-5pm in the second. +It shows holidays if `cal-tex-holidays' is non-nil. +It does not show diary entries. + +The optional prefix argument N specifies a number of weeks (default 1). + +By default, the calendar is for the week at point; the optional +argument EVENT specifies a different buffer position." (interactive (list (prefix-numeric-value current-prefix-arg) last-nonmenu-event)) (or n (setq n 1)) @@ -848,12 +854,15 @@ Optional EVENT indicates a buffer position to use instead of point." ;;;###cal-autoload (defun cal-tex-cursor-week-iso (&optional n event) - "Make a LaTeX calendar buffer for a one page ISO-style weekly calendar. -Optional prefix argument N specifies number of weeks (default 1). -The calendar shows holiday and diary entries if -`cal-tex-holidays' and `cal-tex-diary', respectively, are non-nil. -It does not show hours of the day. Optional EVENT indicates a buffer -position to use instead of point." + "Make a one page LaTeX calendar for one week, in the ISO-style. +It does not show hours of the day. +It shows holidays if `cal-tex-holidays' is non-nil. +It shows diary entries if `cal-tex-diary' is non-nil. + +The optional prefix argument N specifies a number of weeks (default 1). + +By default, the calendar is for the week at point; the optional +argument EVENT specifies a different buffer position." (interactive (list (prefix-numeric-value current-prefix-arg) last-nonmenu-event)) (or n (setq n 1)) @@ -976,13 +985,16 @@ shown are hard-coded to 8-12, 13-17." ;; TODO respect cal-tex-daily-start,end (see cal-tex-weekly4-box). ;;;###cal-autoload (defun cal-tex-cursor-week-monday (&optional n event) - "Make a LaTeX calendar buffer for a two-page one-week calendar. -It applies to the week that point is in, and starts on Monday. -Optional prefix argument N specifies number of weeks (default 1). -The calendar shows holidays if `cal-tex-holidays' is -non-nil (note that diary entries are not shown). The calendar shows -the hours 8-12am, 1-5pm. Optional EVENT indicates a buffer position -to use instead of point." + "Make a one page LaTeX calendar for one week, showing hours of the day. +There are two columns; with M-W in the first and T-S in the second. +It shows the hours 8-12am and 1-5pm. +It shows holidays if `cal-tex-holidays' is non-nil. +It does not show diary entries. + +The optional prefix argument N specifies a number of weeks (default 1). + +By default, the calendar is for the week at point; the optional +argument EVENT specifies a different buffer position." (interactive (list (prefix-numeric-value current-prefix-arg) last-nonmenu-event)) (or n (setq n 1)) @@ -1203,13 +1215,16 @@ shown are hard-coded to 8-12, 13-17." (run-hooks 'cal-tex-hook))) ;;;###cal-autoload -(defun cal-tex-cursor-week-at-a-glance (&optional n event) - "One-week-at-a-glance full page calendar for week indicated by cursor. -Optional prefix argument N specifies number of weeks (default 1), -starting on Mondays. The calendar shows holiday and diary entries -if `cal-tex-holidays' and `cal-tex-diary', respectively, are non-nil. -It does not show hours of the day. Optional EVENT indicates a buffer -position to use instead of point." +(defun cal-tex-cursor-week2-summary (&optional n event) + "Make a two page LaTeX calendar for one week, with optional diary entries. +It does not show hours of the day. +It shows holidays if `cal-tex-holidays' is non-nil. +It shows diary entries if `cal-tex-diary' is non-nil. + +The optional prefix argument N specifies a number of weeks (default 1). + +By default, the calendar is for the week at point; the optional +argument EVENT specifies a different buffer position." (interactive (list (prefix-numeric-value current-prefix-arg) last-nonmenu-event)) (cal-tex-weekly-common n event)) diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el index 6f8311f4c55..96a5725ef69 100644 --- a/lisp/calendar/calendar.el +++ b/lisp/calendar/calendar.el @@ -1683,8 +1683,9 @@ line." (define-key map "td" 'cal-tex-cursor-day) (define-key map "tw1" 'cal-tex-cursor-week) (define-key map "tw2" 'cal-tex-cursor-week2) - (define-key map "tw3" 'cal-tex-cursor-week-iso) - (define-key map "tw4" 'cal-tex-cursor-week-monday) + (define-key map "tw3" 'cal-tex-cursor-week-iso) ; FIXME twi ? + (define-key map "tw4" 'cal-tex-cursor-week-monday) ; twm ? + (define-key map "twW" 'cal-tex-cursor-week2-summary) (define-key map "tfd" 'cal-tex-cursor-filofax-daily) (define-key map "tfw" 'cal-tex-cursor-filofax-2week) (define-key map "tfW" 'cal-tex-cursor-filofax-week) From 27359e9976597097d92791b79c65cb10411c8658 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 12:50:29 -0700 Subject: [PATCH 052/272] ChangeLog fix --- lisp/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 42835b59a26..f2cda6f9f6a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1592,7 +1592,7 @@ 2012-09-08 Jambunathan K * register.el (register): New group. - (register-separator): New user option. + (separator-register): New user option. (increment-register): Route it to `append-to-register', if register contains text. Implication is that `C-x r +' can now be used for appending to a text register (bug#12217). From d1aae61450d42c7ce84ae7df9e35628f0f221a19 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 12:55:47 -0700 Subject: [PATCH 053/272] Aliases to defcustoms must come before the defcustom. * strokes.el (strokes-modeline-string): * emulation/crisp.el (crisp-mode-modeline-string): * eshell/esh-mode.el (eshell-status-in-modeline): Aliases to defcustoms must come before the defcustom. --- lisp/ChangeLog | 5 +++++ lisp/emulation/crisp.el | 6 +++--- lisp/eshell/esh-mode.el | 6 +++--- lisp/strokes.el | 5 +++-- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f2cda6f9f6a..07f68f155c3 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,10 @@ 2012-10-06 Glenn Morris + * strokes.el (strokes-modeline-string): + * emulation/crisp.el (crisp-mode-modeline-string): + * eshell/esh-mode.el (eshell-status-in-modeline): + Aliases to defcustoms must come before the defcustom. + * calendar/cal-tex.el (cal-tex-diary, cal-tex-cursor-week) (cal-tex-cursor-week2, cal-tex-cursor-week-iso) (cal-tex-cursor-week-monday): Doc fixes. diff --git a/lisp/emulation/crisp.el b/lisp/emulation/crisp.el index c9822b7ec27..01d202f87b5 100644 --- a/lisp/emulation/crisp.el +++ b/lisp/emulation/crisp.el @@ -171,14 +171,14 @@ All the bindings are done here instead of globally to try and be nice to the world.") +(define-obsolete-variable-alias 'crisp-mode-modeline-string + 'crisp-mode-mode-line-string "24.3") + (defcustom crisp-mode-mode-line-string " *CRiSP*" "String to display in the mode line when CRiSP emulation mode is enabled." :type 'string :group 'crisp) -(define-obsolete-variable-alias 'crisp-mode-modeline-string - 'crisp-mode-mode-line-string "24.3") - ;;;###autoload (defcustom crisp-mode nil "Track status of CRiSP emulation mode. diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el index 8a9107e5470..673632400f2 100644 --- a/lisp/eshell/esh-mode.el +++ b/lisp/eshell/esh-mode.el @@ -193,14 +193,14 @@ This is used by `eshell-watch-for-password-prompt'." :type '(choice (const nil) function) :group 'eshell-mode) +(define-obsolete-variable-alias 'eshell-status-in-modeline + 'eshell-status-in-mode-line "24.3") + (defcustom eshell-status-in-mode-line t "If non-nil, let the user know a command is running in the mode line." :type 'boolean :group 'eshell-mode) -(define-obsolete-variable-alias 'eshell-status-in-modeline - 'eshell-status-in-mode-line "24.3") - (defvar eshell-first-time-p t "A variable which is non-nil the first time Eshell is loaded.") diff --git a/lisp/strokes.el b/lisp/strokes.el index 62a8528f25d..9a3a7608d2b 100644 --- a/lisp/strokes.el +++ b/lisp/strokes.el @@ -212,13 +212,14 @@ static char * stroke_xpm[] = { :link '(emacs-commentary-link "strokes") :group 'mouse) +(define-obsolete-variable-alias 'strokes-modeline-string 'strokes-lighter + "24.3") + (defcustom strokes-lighter " Strokes" "Mode line identifier for Strokes mode." :type 'string :group 'strokes) -(define-obsolete-variable-alias 'strokes-modeline-string 'strokes-lighter "24.3") - (defcustom strokes-character ?@ "Character used when drawing strokes in the strokes buffer. \(The default is `@', which works well.\)" From ef35abb4ad34ef7038ee99742c8646fc6f9914ed Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 13:05:39 -0700 Subject: [PATCH 054/272] * timeclock.el (timeclock-modeline-display): Add missing obsolete alias --- lisp/ChangeLog | 3 +++ lisp/calendar/timeclock.el | 3 +++ 2 files changed, 6 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 07f68f155c3..65754ab089e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2012-10-06 Glenn Morris + * calendar/timeclock.el (timeclock-modeline-display): + Add missing obsolete alias for renamed user option. + * strokes.el (strokes-modeline-string): * emulation/crisp.el (crisp-mode-modeline-string): * eshell/esh-mode.el (eshell-status-in-modeline): diff --git a/lisp/calendar/timeclock.el b/lisp/calendar/timeclock.el index 3151ce145de..7e7a737549f 100644 --- a/lisp/calendar/timeclock.el +++ b/lisp/calendar/timeclock.el @@ -321,6 +321,9 @@ display (non-nil means on)." (force-mode-line-update) (setq timeclock-mode-line-display on-p))) +(define-obsolete-variable-alias 'timeclock-modeline-display + 'timeclock-mode-line-display "24.3") + ;; This has to be here so that the function definition of ;; `timeclock-mode-line-display' is known to the "set" function. (defcustom timeclock-mode-line-display nil From d1a1c7e649e0ad44f1426abce72a5ff45a07e8fc Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 13:30:26 -0700 Subject: [PATCH 055/272] Add missing :version tags * profiler.el (profiler): Add missing group :version tag. * avoid.el (mouse-avoidance-banish-position): * proced.el (proced-renice-command): * calc/calc.el (calc-ensure-consistent-units): * calendar/icalendar.el (icalendar-import-format-uid): * net/tramp.el (tramp-save-ad-hoc-proxies): * progmodes/bug-reference.el (bug-reference-bug-regexp): * progmodes/flymake.el (flymake-error-bitmap) (flymake-warning-bitmap, flymake-fringe-indicator-position): * progmodes/sh-script.el (sh-indent-after-continuation): * progmodes/verilog-mode.el (verilog-auto-template-warn-unused) (verilog-before-save-font-hook, verilog-after-save-font-hook): * progmodes/vhdl-mode.el (vhdl-makefile-default-targets) (vhdl-array-index-record-field-in-sensitivity-list) (vhdl-indent-comment-like-next-code-line): * textmodes/reftex-vars.el (reftex-ref-style-alist) (reftex-ref-macro-prompt, reftex-ref-style-default-list) (reftex-cite-key-separator, reftex-create-bibtex-header) (reftex-create-bibtex-footer): * textmodes/rst.el (rst-new-adornment-down, rst-indent-field) (rst-indent-literal-normal, rst-indent-literal-minimized) (rst-indent-comment): Add missing custom :version tags. * cedet/semantic/complete.el (semantic-displayor-tooltip-mode) (semantic-displayor-tooltip-initial-max-tags) (semantic-displayor-tooltip-max-tags): Add missing custom :version tags. * cedet/ede/linux.el (project-linux): Add missing group :version tag. * cedet/semantic/complete.el (semantic-displayor-tooltip-max-tags): Doc fix. * erc/erc.el (erc-lurker): * erc/erc-desktop-notifications.el (erc-notifications): Add missing group :version tags. * gnus/gnus-notifications.el (gnus-notifications): Add missing group :version tag. * gnus/gnus-msg.el (gnus-gcc-pre-body-encode-hook) (gnus-gcc-post-body-encode-hook): * gnus/gnus-sync.el (gnus-sync-lesync-name) (gnus-sync-lesync-install-topics): Add missing custom :version tags. --- lisp/ChangeLog | 23 +++++++++++++++++++++++ lisp/avoid.el | 1 + lisp/calc/calc.el | 1 + lisp/calendar/icalendar.el | 1 + lisp/cedet/ChangeLog | 9 +++++++++ lisp/cedet/ede/linux.el | 2 +- lisp/cedet/semantic/complete.el | 22 ++++++++++++---------- lisp/erc/ChangeLog | 9 +++++++-- lisp/erc/erc-desktop-notifications.el | 1 + lisp/erc/erc.el | 1 + lisp/gnus/ChangeLog | 9 +++++++++ lisp/gnus/gnus-msg.el | 2 ++ lisp/gnus/gnus-notifications.el | 1 + lisp/gnus/gnus-sync.el | 4 +++- lisp/net/tramp.el | 1 + lisp/proced.el | 1 + lisp/profiler.el | 1 + lisp/progmodes/bug-reference.el | 1 + lisp/progmodes/flymake.el | 3 +++ lisp/progmodes/sh-script.el | 1 + lisp/progmodes/verilog-mode.el | 3 +++ lisp/progmodes/vhdl-mode.el | 3 +++ lisp/textmodes/reftex-vars.el | 6 ++++++ lisp/textmodes/rst.el | 5 +++++ 24 files changed, 97 insertions(+), 14 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 65754ab089e..861038b17bd 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,28 @@ 2012-10-06 Glenn Morris + * profiler.el (profiler): Add missing group :version tag. + * avoid.el (mouse-avoidance-banish-position): + * proced.el (proced-renice-command): + * calc/calc.el (calc-ensure-consistent-units): + * calendar/icalendar.el (icalendar-import-format-uid): + * net/tramp.el (tramp-save-ad-hoc-proxies): + * progmodes/bug-reference.el (bug-reference-bug-regexp): + * progmodes/flymake.el (flymake-error-bitmap) + (flymake-warning-bitmap, flymake-fringe-indicator-position): + * progmodes/sh-script.el (sh-indent-after-continuation): + * progmodes/verilog-mode.el (verilog-auto-template-warn-unused) + (verilog-before-save-font-hook, verilog-after-save-font-hook): + * progmodes/vhdl-mode.el (vhdl-makefile-default-targets) + (vhdl-array-index-record-field-in-sensitivity-list) + (vhdl-indent-comment-like-next-code-line): + * textmodes/reftex-vars.el (reftex-ref-style-alist) + (reftex-ref-macro-prompt, reftex-ref-style-default-list) + (reftex-cite-key-separator, reftex-create-bibtex-header) + (reftex-create-bibtex-footer): + * textmodes/rst.el (rst-new-adornment-down, rst-indent-field) + (rst-indent-literal-normal, rst-indent-literal-minimized) + (rst-indent-comment): Add missing custom :version tags. + * calendar/timeclock.el (timeclock-modeline-display): Add missing obsolete alias for renamed user option. diff --git a/lisp/avoid.el b/lisp/avoid.el index 2fa6ef39e70..7f4b78bf5e0 100644 --- a/lisp/avoid.el +++ b/lisp/avoid.el @@ -128,6 +128,7 @@ SIDE-POS: Distance from right or left edge of frame or window. TOP-OR-BOTTOM: banish the mouse to top or bottom of frame or window. TOP-OR-BOTTOM-POS: Distance from top or bottom edge of frame or window." :group 'avoid + :version "24.3" :type '(alist :key-type symbol :value-type symbol) :options '(frame-or-window side (side-pos integer) top-or-bottom (top-or-bottom-pos integer))) diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el index 25f591a3945..f1643b10a76 100644 --- a/lisp/calc/calc.el +++ b/lisp/calc/calc.el @@ -423,6 +423,7 @@ in normal mode." "If non-nil, make sure new units are consistent with current units when converting units." :group 'calc + :version "24.3" :type 'boolean) (defcustom calc-undo-length diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el index 39b83d4c831..27e7261263e 100644 --- a/lisp/calendar/icalendar.el +++ b/lisp/calendar/icalendar.el @@ -186,6 +186,7 @@ the URL." This applies only if the UID is not empty! `%s' is replaced by the UID." :type 'string + :version "24.3" :group 'icalendar) (defcustom icalendar-import-format-status diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog index 9e20b4fbb4e..ff5b603833d 100644 --- a/lisp/cedet/ChangeLog +++ b/lisp/cedet/ChangeLog @@ -1,3 +1,12 @@ +2012-10-06 Glenn Morris + + * semantic/complete.el (semantic-displayor-tooltip-max-tags): Doc fix. + + * semantic/complete.el (semantic-displayor-tooltip-mode) + (semantic-displayor-tooltip-initial-max-tags) + (semantic-displayor-tooltip-max-tags): Add missing custom :version tags. + * ede/linux.el (project-linux): Add missing group :version tag. + 2012-10-06 Chong Yidong * semantic/bovine/grammar.el: diff --git a/lisp/cedet/ede/linux.el b/lisp/cedet/ede/linux.el index 7cd066f8b3b..5c708039ec4 100644 --- a/lisp/cedet/ede/linux.el +++ b/lisp/cedet/ede/linux.el @@ -44,7 +44,7 @@ "File and tag browser frame." :group 'tools :group 'ede - ) + :version "24.3") (defcustom project-linux-compile-target-command (concat ede-make-command " -k -C %s SUBDIRS=%s") "*Default command used to compile a target." diff --git a/lisp/cedet/semantic/complete.el b/lisp/cedet/semantic/complete.el index 61760dd3fe8..9c2da9faefa 100644 --- a/lisp/cedet/semantic/complete.el +++ b/lisp/cedet/semantic/complete.el @@ -1564,6 +1564,7 @@ Verbose: Always show all completions available. The absolute maximum number of completions for all mode is determined through `semantic-displayor-tooltip-max-tags'." :group 'semantic + :version "24.3" :type '(choice (const :tag "Standard" standard) (const :tag "Quiet" quiet) (const :tag "Verbose" verbose))) @@ -1573,24 +1574,25 @@ determined through `semantic-displayor-tooltip-max-tags'." "Maximum number of tags to be displayed initially. See doc-string of `semantic-displayor-tooltip-mode' for details." :group 'semantic + :version "24.3" :type 'integer) (defcustom semantic-displayor-tooltip-max-tags 25 - "The maximum number of tags to be displayed. + "The maximum number of tags to be displayed. Maximum number of completions where we have activated the extended completion list through typing TAB or SPACE multiple times. This limit needs to fit on your screen! Note: If available, customizing this variable increases -'x-max-tooltip-size' to force over-sized tooltips when necessary. -This will not happen if you directly set this variable via -`setq'." - :group 'semantic - :type 'integer - :set '(lambda (sym var) - (set-default sym var) - (when (boundp 'x-max-tooltip-size) - (setcdr x-max-tooltip-size (max (1+ var) (cdr x-max-tooltip-size)))))) +`x-max-tooltip-size' to force over-sized tooltips when necessary. +This will not happen if you directly set this variable via `setq'." + :group 'semantic + :version "24.3" + :type 'integer + :set '(lambda (sym var) + (set-default sym var) + (when (boundp 'x-max-tooltip-size) + (setcdr x-max-tooltip-size (max (1+ var) (cdr x-max-tooltip-size)))))) (defclass semantic-displayor-tooltip (semantic-displayor-traditional) diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 3558a8a90b5..9be0d3241ad 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -1,3 +1,9 @@ +2012-10-06 Glenn Morris + + * erc.el (erc-lurker): + * erc-desktop-notifications.el (erc-notifications): + Add missing group :version tags. + 2012-10-04 Julien Danjou * erc-desktop-notifications.el: Rename from erc-notifications to @@ -9,8 +15,7 @@ 2012-09-17 Chong Yidong - * erc-page.el (erc-page-function): - + * erc-page.el (erc-page-function): * erc-stamp.el (erc-stamp): Doc fix. 2012-08-21 Josh Feinstein diff --git a/lisp/erc/erc-desktop-notifications.el b/lisp/erc/erc-desktop-notifications.el index 57b93f43219..2cc3c80a8ea 100644 --- a/lisp/erc/erc-desktop-notifications.el +++ b/lisp/erc/erc-desktop-notifications.el @@ -35,6 +35,7 @@ (defgroup erc-notifications nil "Send notifications on PRIVMSG or mentions." + :version "24.3" :group 'erc) (defvar erc-notifications-last-notification nil diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index 687e60da28a..bbd9dad4310 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -102,6 +102,7 @@ (defgroup erc-lurker nil "Hide specified message types sent by lurkers" + :version "24.3" :group 'erc-ignore) (defgroup erc-query nil diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 983d09e2589..f79353ebfb3 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,12 @@ +2012-10-06 Glenn Morris + + * gnus-notifications.el (gnus-notifications): + Add missing group :version tag. + * gnus-msg.el (gnus-gcc-pre-body-encode-hook) + (gnus-gcc-post-body-encode-hook): + * gnus-sync.el (gnus-sync-lesync-name) + (gnus-sync-lesync-install-topics): Add missing custom :version tags. + 2012-09-25 Katsumi Yamaoka * gnus-art.el (gnus-article-browse-delete-temp-files): Never ask again diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el index c2f79e70d1e..77bb6281bc4 100644 --- a/lisp/gnus/gnus-msg.el +++ b/lisp/gnus/gnus-msg.el @@ -319,6 +319,7 @@ The current buffer (when the hook is run) contains the message including the message header. Changes made to the message will only affect the Gcc copy, but not the original message." :group 'gnus-message + :version "24.3" :type 'hook) (defcustom gnus-gcc-post-body-encode-hook nil @@ -327,6 +328,7 @@ The current buffer (when the hook is run) contains the message including the message header. Changes made to the message will only affect the Gcc copy, but not the original message." :group 'gnus-message + :version "24.3" :type 'hook) (autoload 'gnus-message-citation-mode "gnus-cite" nil t) diff --git a/lisp/gnus/gnus-notifications.el b/lisp/gnus/gnus-notifications.el index 5104a56c6e7..3848dee8d4f 100644 --- a/lisp/gnus/gnus-notifications.el +++ b/lisp/gnus/gnus-notifications.el @@ -42,6 +42,7 @@ (defgroup gnus-notifications nil "Send notifications on new message in Gnus." + :version "24.3" :group 'gnus) (defcustom gnus-notifications-use-google-contacts t diff --git a/lisp/gnus/gnus-sync.el b/lisp/gnus/gnus-sync.el index ca8662ff936..b5f8379e367 100644 --- a/lisp/gnus/gnus-sync.el +++ b/lisp/gnus/gnus-sync.el @@ -134,11 +134,13 @@ and `gnus-topic-alist'. Also see `gnus-variable-list'." (defcustom gnus-sync-lesync-name (system-name) "The LeSync name for this machine." :group 'gnus-sync + :version "24.3" :type 'string) -(defcustom gnus-sync-lesync-install-topics 'ask +(defcustom gnus-sync-lesync-install-topics 'ask "Should LeSync install the recorded topics?" :group 'gnus-sync + :version "24.3" :type '(choice (const :tag "Never Install" nil) (const :tag "Always Install" t) (const :tag "Ask Me Once" ask))) diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 019ab1eef0f..b1532eb2ae4 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -403,6 +403,7 @@ interpreted as a regular expression which always matches." (defcustom tramp-save-ad-hoc-proxies nil "Whether to save ad-hoc proxies persistently." :group 'tramp + :version "24.3" :type 'boolean) (defcustom tramp-restricted-shell-hosts-alist diff --git a/lisp/proced.el b/lisp/proced.el index ec41ce65ef5..e3ff9fb5c95 100644 --- a/lisp/proced.el +++ b/lisp/proced.el @@ -68,6 +68,7 @@ the external command (usually \"kill\")." (defcustom proced-renice-command "renice" "Name of renice command." :group 'proced + :version "24.3" :type '(string :tag "command")) (defcustom proced-signal-list diff --git a/lisp/profiler.el b/lisp/profiler.el index 5e605957833..e9261eb1af7 100644 --- a/lisp/profiler.el +++ b/lisp/profiler.el @@ -29,6 +29,7 @@ (defgroup profiler nil "Emacs profiler." :group 'lisp + :version "24.3" :prefix "profiler-") (defconst profiler-version "24.3") diff --git a/lisp/progmodes/bug-reference.el b/lisp/progmodes/bug-reference.el index 97fcb6874dd..3561105e59d 100644 --- a/lisp/progmodes/bug-reference.el +++ b/lisp/progmodes/bug-reference.el @@ -74,6 +74,7 @@ so that it is considered safe, see `enable-local-variables'.") The second subexpression should match the bug reference (usually a number)." :type 'string :safe 'stringp + :version "24.3" ; previously defconst :group 'bug-reference) (defun bug-reference-set-overlay-properties () diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 10d5fdf9c64..26d4a399c2d 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el @@ -768,6 +768,7 @@ line number outside the file being compiled." The value may also be a list of two elements where the second element specifies the face for the bitmap." :group 'flymake + :version "24.3" :type 'symbol) (defcustom flymake-warning-bitmap 'question-mark @@ -775,6 +776,7 @@ element specifies the face for the bitmap." The value may also be a list of two elements where the second element specifies the face for the bitmap." :group 'flymake + :version "24.3" :type 'symbol) (defcustom flymake-fringe-indicator-position 'left-fringe @@ -782,6 +784,7 @@ element specifies the face for the bitmap." The value can be nil, left-fringe or right-fringe. Fringe indicators are disabled if nil." :group 'flymake + :version "24.3" :type '(choice (const left-fringe) (const right-fringe) (const :tag "No fringe indicators" nil))) diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index e94919ee2a9..16acf2547a2 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el @@ -1767,6 +1767,7 @@ Does not preserve point." (defcustom sh-indent-after-continuation t "If non-nil, try to make sure text is indented after a line continuation." + :version "24.3" :type 'boolean) (defun sh-smie--continuation-start-indent () diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el index 8c4167b6724..6ffe88f721e 100644 --- a/lisp/progmodes/verilog-mode.el +++ b/lisp/progmodes/verilog-mode.el @@ -1159,6 +1159,7 @@ See the \\[verilog-faq] for examples on using this." "Non-nil means report warning if an AUTO_TEMPLATE line is not used. This feature is not supported before Emacs 21.1 or XEmacs 21.4." :group 'verilog-mode-auto + :version "24.3" :type 'boolean) (put 'verilog-auto-template-warn-unused 'safe-local-variable 'verilog-booleanp) @@ -1230,11 +1231,13 @@ For example, \"_t$\" matches typedefs named with _t, as in the C language." (defcustom verilog-before-save-font-hook nil "Hook run before `verilog-save-font-mods' removes highlighting." :group 'verilog-mode-auto + :version "24.3" :type 'hook) (defcustom verilog-after-save-font-hook nil "Hook run after `verilog-save-font-mods' restores highlighting." :group 'verilog-mode-auto + :version "24.3" :type 'hook) (defvar verilog-imenu-generic-expression diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index 52757b9eede..6ad7d3b168a 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el @@ -483,6 +483,7 @@ with other user Makefiles." :type '(list (string :tag "Compile entire design") (string :tag "Clean entire design ") (string :tag "Create design library")) + :version "24.3" :group 'vhdl-compile) (defcustom vhdl-makefile-generation-hook nil @@ -772,6 +773,7 @@ index, the record field or array index is included with the record name in the sensitivity list (e.g. \"in1(0)\", \"in2.f0\"). Otherwise, only the record name is included (e.g. \"in1\", \"in2\")." :type 'boolean + :version "24.3" :group 'vhdl-style) (defgroup vhdl-naming nil @@ -1849,6 +1851,7 @@ Otherwise, comment lines are indented like the preceding code line. Indenting comment lines like the following code line gives nicer indentation when comments precede the code that they refer to." :type 'boolean + :version "24.3" :group 'vhdl-misc) (defcustom vhdl-word-completion-case-sensitive nil diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el index df3d729adca..264d6e21839 100644 --- a/lisp/textmodes/reftex-vars.el +++ b/lisp/textmodes/reftex-vars.el @@ -968,6 +968,7 @@ the macro type is being prompted for. (See also `reftex-ref-macro-prompt'.) The keys, represented as characters, have to be unique." :group 'reftex-referencing-labels + :version "24.3" :type '(alist :key-type (string :tag "Style name") :value-type (group (choice :tag "Package" (const :tag "Any package" t) @@ -979,6 +980,7 @@ have to be unique." (defcustom reftex-ref-macro-prompt t "If non-nil, `reftex-reference' prompts for the reference macro." :group 'reftex-referencing-labels + :version "24.3" :type 'boolean) (defcustom reftex-vref-is-default nil @@ -1014,6 +1016,7 @@ can be cycled in the buffer for selecting a label. The entries in the list have to match the respective reference style names used in the variable `reftex-ref-style-alist'." :group 'reftex-referencing-labels + :version "24.3" :type `(set ,@(mapcar (lambda (x) (list 'const (car x))) reftex-ref-style-alist))) @@ -1257,16 +1260,19 @@ should return the string to insert into the buffer." (defcustom reftex-cite-key-separator "," "String to be used for separating several keys in a \\cite macro." :group 'reftex-citation-support + :version "24.3" :type 'string) (defcustom reftex-create-bibtex-header nil "Header to insert in BibTeX files generated by RefTeX." :group 'reftex-citation-support + :version "24.3" :type 'string) (defcustom reftex-create-bibtex-footer nil "Footer to insert in BibTeX files generated by RefTeX." :group 'reftex-citation-support + :version "24.3" :type 'string) ;; Index Support Configuration diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el index 869da63064a..202c36c2e4a 100644 --- a/lisp/textmodes/rst.el +++ b/lisp/textmodes/rst.el @@ -1545,6 +1545,7 @@ b. a negative numerical argument, which generally inverts the :type '(choice (const :tag "Same level as previous one" nil) (const :tag "One level down relative to the previous one" t)) + :version "24.3" :package-version '(rst . "1.1.0")) (rst-testcover-defcustom) @@ -2845,24 +2846,28 @@ here." (defcustom rst-indent-field 3 "Indentation for first line after a field or 0 to always indent for content." :group 'rst-indent + :version "24.3" :type '(integer)) (rst-testcover-defcustom) (defcustom rst-indent-literal-normal 3 "Default indentation for literal block after a markup on an own line." :group 'rst-indent + :version "24.3" :type '(integer)) (rst-testcover-defcustom) (defcustom rst-indent-literal-minimized 2 "Default indentation for literal block after a minimized markup." :group 'rst-indent + :version "24.3" :type '(integer)) (rst-testcover-defcustom) (defcustom rst-indent-comment 3 "Default indentation for first line of a comment." :group 'rst-indent + :version "24.3" :type '(integer)) (rst-testcover-defcustom) From 18dec75063c85fac15822929827356f7cdfc5b2d Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 13:33:23 -0700 Subject: [PATCH 056/272] Clarify some rst.el obsolescence versions * lisp/textmodes/rst.el (rst-preferred-decorations) (rst-shift-basic-offset): Clarify obsolescence versions. --- lisp/ChangeLog | 3 +++ lisp/textmodes/rst.el | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 861038b17bd..53e38365b00 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2012-10-06 Glenn Morris + * textmodes/rst.el (rst-preferred-decorations) + (rst-shift-basic-offset): Clarify obsolescence versions. + * profiler.el (profiler): Add missing group :version tag. * avoid.el (mouse-avoidance-banish-position): * proced.el (proced-renice-command): diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el index 202c36c2e4a..02bb1e6371f 100644 --- a/lisp/textmodes/rst.el +++ b/lisp/textmodes/rst.el @@ -967,7 +967,7 @@ for modes derived from Text mode, like Mail mode." :version "21.1") (define-obsolete-variable-alias - 'rst-preferred-decorations 'rst-preferred-adornments "1.0.0") + 'rst-preferred-decorations 'rst-preferred-adornments "rst 1.0.0") (defcustom rst-preferred-adornments '((?= over-and-under 1) (?= simple 0) (?- simple 0) @@ -2836,7 +2836,7 @@ here." :package-version '(rst . "1.1.0")) (define-obsolete-variable-alias - 'rst-shift-basic-offset 'rst-indent-width "1.0.0") + 'rst-shift-basic-offset 'rst-indent-width "rst 1.0.0") (defcustom rst-indent-width 2 "Indentation when there is no more indentation point given." :group 'rst-indent From 67667c704b55444a23d4b84fb4735b5f809f0d32 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 13:34:45 -0700 Subject: [PATCH 057/272] * progmodes/sh-script.el (sh-indent-after-continuation): Add explicit :group. --- lisp/ChangeLog | 3 +++ lisp/progmodes/sh-script.el | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 53e38365b00..0bd07a9c48d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2012-10-06 Glenn Morris + * progmodes/sh-script.el (sh-indent-after-continuation): + Add explicit :group. + * textmodes/rst.el (rst-preferred-decorations) (rst-shift-basic-offset): Clarify obsolescence versions. diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index 16acf2547a2..06ded5fb53d 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el @@ -1768,7 +1768,8 @@ Does not preserve point." (defcustom sh-indent-after-continuation t "If non-nil, try to make sure text is indented after a line continuation." :version "24.3" - :type 'boolean) + :type 'boolean + :group 'sh-indentation) (defun sh-smie--continuation-start-indent () "Return the initial indentation of a continued line. From 460042b854a0b89b445725e046dd4947481c43ce Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 13:38:39 -0700 Subject: [PATCH 058/272] Fix some reftex custom types * lisp/textmodes/reftex-vars.el (reftex-create-bibtex-header) (reftex-create-bibtex-footer): Fix custom types. --- lisp/ChangeLog | 3 +++ lisp/textmodes/reftex-vars.el | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 0bd07a9c48d..7bf0f18eb21 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2012-10-06 Glenn Morris + * textmodes/reftex-vars.el (reftex-create-bibtex-header) + (reftex-create-bibtex-footer): Fix custom types. + * progmodes/sh-script.el (sh-indent-after-continuation): Add explicit :group. diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el index 264d6e21839..2c1fc972057 100644 --- a/lisp/textmodes/reftex-vars.el +++ b/lisp/textmodes/reftex-vars.el @@ -1267,13 +1267,13 @@ should return the string to insert into the buffer." "Header to insert in BibTeX files generated by RefTeX." :group 'reftex-citation-support :version "24.3" - :type 'string) + :type '(choice (const :tag "No header" nil) string)) (defcustom reftex-create-bibtex-footer nil "Footer to insert in BibTeX files generated by RefTeX." :group 'reftex-citation-support :version "24.3" - :type 'string) + :type '(choice (const :tag "No footer" nil) string)) ;; Index Support Configuration From 1a316a53933885ed963f758c6463368cfe472d8f Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 14:15:03 -0700 Subject: [PATCH 059/272] Handle group :version in cusver-check * admin/admin.el (cusver-new-version): New variable. (cusver-scan): Check if containing group has a :version. (cusver-check): Add VERSION argument. --- admin/ChangeLog | 6 ++++++ admin/admin.el | 35 ++++++++++++++++++++++++++--------- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/admin/ChangeLog b/admin/ChangeLog index 8fe82ca36cb..82a01887b57 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,9 @@ +2012-10-06 Glenn Morris + + * admin.el (cusver-new-version): New variable. + (cusver-scan): Check if containing group has a :version. + (cusver-check): Add VERSION argument. + 2012-10-01 David Engster * grammars/bovine-grammar.el: diff --git a/admin/admin.el b/admin/admin.el index c71e6539413..60a09a1e2f2 100644 --- a/admin/admin.el +++ b/admin/admin.el @@ -442,8 +442,12 @@ If optional OLD is non-nil, also include defvars." )) "{}" "+")) -;; TODO if a defgroup with a version tag, apply to all customs in that -;; group (eg for new files). +; FIXME Calculate default based on running emacs-version. +(defvar cusver-new-version nil + "Version number that new defcustoms should have.") + +;; TODO do something about renamed variables with aliases to the old name? +;; Scan old cus-start.el to find variables moved from C to lisp? (defun cusver-scan (file &optional old) "Scan FILE for `defcustom' calls. Return a list with elements of the form (VAR . VER), @@ -452,8 +456,8 @@ a :version tag having value VER (may be nil). If optional argument OLD is non-nil, also scan for defvars." (let ((m (format "Scanning %s..." file)) (re (format "^[ \t]*\\((def%s\\)[ \t\n]" - (if old "\\(?:custom\\|var\\)" "custom"))) - alist var ver form) + (if old "\\(custom\\|var\\)" "\\(custom\\|group\\)"))) + alist var ver form glist grp) (message "%s" m) (with-temp-buffer (insert-file-contents file) @@ -461,11 +465,23 @@ If optional argument OLD is non-nil, also scan for defvars." (while (re-search-forward re nil t) (goto-char (match-beginning 1)) (if (and (setq form (ignore-errors (read (current-buffer)))) - (setq var (car-safe (cdr-safe form))) + (setq var (car-safe (cdr-safe form))) ;; Exclude macros, eg (defcustom ,varname ...). (symbolp var)) - (setq ver (car (cdr-safe (memq :version form))) - alist (cons (cons var ver) alist)) + (progn + (setq ver (car (cdr-safe (memq :version form)))) + (if (equal "group" (match-string 2)) + ;; Group :version could be old. + (if (equal ver cusver-new-version) + (setq glist (cons (cons var ver) glist))) + ;; If it specifies a group and the whole group has a + ;; version. use that. + (unless ver + (setq grp (car (cdr-safe (memq :group form)))) + (and grp + (setq grp (car (cdr-safe grp))) ; (quote foo) -> foo + (setq ver (assq grp glist)))) + (setq alist (cons (cons var ver) alist)))) (if form (message "Malformed defcustom: `%s'" form))))) (message "%sdone" m) alist)) @@ -490,7 +506,7 @@ If optional argument OLD is non-nil, also scan for defvars." ;; TODO handle renamed things with aliases to the old names. ;; What to do about new files? Does everything in there need a :version, ;; or eg just the defgroup? -(defun cusver-check (newdir olddir) +(defun cusver-check (newdir olddir version) "Check that defcustoms have :version tags where needed. NEWDIR is the current lisp/ directory, OLDDIR is that from the previous release. A defcustom that is only in NEWDIR should have a :version @@ -499,11 +515,12 @@ just converting a defvar to a defcustom does not require a :version bump. Note that a :version tag should also be added if the value of a defcustom changes (in a non-trivial way). This function does not check for that." - (interactive "DNew Lisp directory: \nDOld Lisp directory: ") + (interactive "DNew Lisp directory: \nDOld Lisp directory: \nsNew version number: ") (or (file-directory-p (setq newdir (expand-file-name newdir))) (error "Directory `%s' not found" newdir)) (or (file-directory-p (setq olddir (expand-file-name olddir))) (error "Directory `%s' not found" olddir)) + (setq cusver-new-version version) (let* ((newfiles (progn (message "Finding new files with defcustoms...") (cusver-find-files newdir))) (oldfiles (progn (message "Finding old files with defcustoms...") From 5b9c45a6d194abacc0c47bdd3537bdd6d428c2a2 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 15:52:52 -0700 Subject: [PATCH 060/272] Further ChangeLog fix --- lisp/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7bf0f18eb21..1a2ccb5e4f6 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1637,7 +1637,7 @@ register contains text. Implication is that `C-x r +' can now be used for appending to a text register (bug#12217). (append-to-register, prepend-to-register): Add separator based on - `register-separator. + `separator-register'. 2012-09-08 Alan Mackenzie From addc11ed80db5e01c96ad587c4d848df0abc1cd2 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 16:16:40 -0700 Subject: [PATCH 061/272] * lisp/ehelp.el (electric-help-mode): Fix major-mode setting. Fixes: debbugs:10917 --- lisp/ChangeLog | 3 +++ lisp/ehelp.el | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1a2ccb5e4f6..c573b9de5b9 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2012-10-06 Glenn Morris + * ehelp.el (electric-help-mode): Use help-mode rather than + non-existent mode `help'. (Bug#10917) + * textmodes/reftex-vars.el (reftex-create-bibtex-header) (reftex-create-bibtex-footer): Fix custom types. diff --git a/lisp/ehelp.el b/lisp/ehelp.el index 281148d9cf6..52ac5434ce1 100644 --- a/lisp/ehelp.el +++ b/lisp/ehelp.el @@ -102,7 +102,7 @@ (setq buffer-read-only t) (setq electric-help-orig-major-mode major-mode) (setq mode-name "Help") - (setq major-mode 'help) + (setq major-mode 'help-mode) (setq mode-line-buffer-identification '(" Help: %b")) (use-local-map electric-help-map) (add-hook 'mouse-leave-buffer-hook 'electric-help-retain) From 32939005d60a106798ebc8bdd3c4a6180e19902d Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 16:22:52 -0700 Subject: [PATCH 062/272] * lisp/ehelp.el (electric-help-map): Use button-buffer-map. Fixes: debbugs:10917 --- lisp/ChangeLog | 3 ++- lisp/ehelp.el | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c573b9de5b9..2453dc2177a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,7 +1,8 @@ 2012-10-06 Glenn Morris * ehelp.el (electric-help-mode): Use help-mode rather than - non-existent mode `help'. (Bug#10917) + non-existent mode `help'. + (electric-help-map): Use button-buffer-map. (Bug#10917) * textmodes/reftex-vars.el (reftex-create-bibtex-header) (reftex-create-bibtex-footer): Fix custom types. diff --git a/lisp/ehelp.el b/lisp/ehelp.el index 52ac5434ce1..a1bd4d65385 100644 --- a/lisp/ehelp.el +++ b/lisp/ehelp.el @@ -61,6 +61,8 @@ (defvar electric-help-map (let ((map (make-keymap))) + ;; FIXME fragile. Should derive from help-mode-map in a smarter way. + (set-keymap-parent map button-buffer-map) ;; allow all non-self-inserting keys - search, scroll, etc, but ;; let M-x and C-x exit ehelp mode and retain buffer: (suppress-keymap map) From 82ed3ab40dfa2ac4f9a20b0dd8333058e45e1cfb Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 17:07:03 -0700 Subject: [PATCH 063/272] * lisp/hi-lock.el (hi-lock-face-phrase-buffer): Doc fix. --- lisp/ChangeLog | 4 ++++ lisp/hi-lock.el | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2453dc2177a..4469c6112f8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-10-07 Glenn Morris + + * hi-lock.el (hi-lock-face-phrase-buffer): Doc fix. + 2012-10-06 Glenn Morris * ehelp.el (electric-help-mode): Use help-mode rather than diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el index f92e2ab0af2..0bbb3150874 100644 --- a/lisp/hi-lock.el +++ b/lisp/hi-lock.el @@ -444,8 +444,8 @@ updated as you type." ;;;###autoload (defun hi-lock-face-phrase-buffer (regexp &optional face) "Set face of each match of phrase REGEXP to FACE. -Whitespace in REGEXP converted to arbitrary whitespace and initial -lower-case letters made case insensitive. +If called interactively, replaces whitespace in REGEXP with +arbitrary whitespace and makes initial lower-case letters case-insensitive. If Font Lock mode is enabled in the buffer, it is used to highlight REGEXP. If Font Lock mode is disabled, overlays are @@ -544,9 +544,11 @@ be found in variable `hi-lock-interactive-patterns'." Blanks in PHRASE replaced by regexp that matches arbitrary whitespace and initial lower-case letters made case insensitive." (let ((mod-phrase nil)) + ;; FIXME fragile; better to just bind case-fold-search? (Bug#7161) (setq mod-phrase (replace-regexp-in-string "\\<[a-z]" (lambda (m) (format "[%s%s]" (upcase m) m)) phrase)) + ;; FIXME fragile; better to use search-spaces-regexp? (setq mod-phrase (replace-regexp-in-string "\\s-+" "[ \t\n]+" mod-phrase nil t)))) From 1595ecfac950d69ae94c270fb9829529a421c56c Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 17:27:31 -0700 Subject: [PATCH 064/272] * lisp/hi-lock.el (hi-lock-process-phrase): Try to make it less fragile. Fixes: debbugs:7161 --- lisp/ChangeLog | 3 +++ lisp/hi-lock.el | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4469c6112f8..b91d9715bfa 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2012-10-07 Glenn Morris + * hi-lock.el (hi-lock-process-phrase): + Try to make it less fragile. (Bug#7161) + * hi-lock.el (hi-lock-face-phrase-buffer): Doc fix. 2012-10-06 Glenn Morris diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el index 0bbb3150874..59743124cc5 100644 --- a/lisp/hi-lock.el +++ b/lisp/hi-lock.el @@ -547,7 +547,11 @@ and initial lower-case letters made case insensitive." ;; FIXME fragile; better to just bind case-fold-search? (Bug#7161) (setq mod-phrase (replace-regexp-in-string - "\\<[a-z]" (lambda (m) (format "[%s%s]" (upcase m) m)) phrase)) + "\\(^\\|\\s-\\)\\([a-z]\\)" + (lambda (m) (format "%s[%s%s]" + (match-string 1 m) + (upcase (match-string 2 m)) + (match-string 2 m))) phrase)) ;; FIXME fragile; better to use search-spaces-regexp? (setq mod-phrase (replace-regexp-in-string From 5407f8d23491f3e7886865facc0ae6446142ba48 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 17:54:36 -0700 Subject: [PATCH 065/272] Improve cusver-check's handling of the version number * admin/admin.el (cusver-new-version): Set default. (cusver-check): Improve interactive argument reading. --- admin/ChangeLog | 5 +++++ admin/admin.el | 10 +++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/admin/ChangeLog b/admin/ChangeLog index 82a01887b57..7d4921887ce 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,8 @@ +2012-10-07 Glenn Morris + + * admin.el (cusver-new-version): Set default. + (cusver-check): Improve interactive argument reading. + 2012-10-06 Glenn Morris * admin.el (cusver-new-version): New variable. diff --git a/admin/admin.el b/admin/admin.el index 60a09a1e2f2..3e3fbba7202 100644 --- a/admin/admin.el +++ b/admin/admin.el @@ -442,8 +442,8 @@ If optional OLD is non-nil, also include defvars." )) "{}" "+")) -; FIXME Calculate default based on running emacs-version. -(defvar cusver-new-version nil +(defvar cusver-new-version (format "%s.%s" emacs-major-version + (1+ emacs-minor-version)) "Version number that new defcustoms should have.") ;; TODO do something about renamed variables with aliases to the old name? @@ -515,7 +515,11 @@ just converting a defvar to a defcustom does not require a :version bump. Note that a :version tag should also be added if the value of a defcustom changes (in a non-trivial way). This function does not check for that." - (interactive "DNew Lisp directory: \nDOld Lisp directory: \nsNew version number: ") + (interactive (list (read-directory-name "New Lisp directory: ") + (read-directory-name "Old Lisp directory: ") + (number-to-string + (read-number "New version number: " + (string-to-number cusver-new-version))))) (or (file-directory-p (setq newdir (expand-file-name newdir))) (error "Directory `%s' not found" newdir)) (or (file-directory-p (setq olddir (expand-file-name olddir))) From 87a95afe81dc7775ef134a94548dea68ed0cc3c3 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 18:28:04 -0700 Subject: [PATCH 066/272] * lisp/erc/erc-backend.el (NICK): Handle pre-existing buffers. Fixes: debbugs:12002 --- lisp/erc/ChangeLog | 4 ++++ lisp/erc/erc-backend.el | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 9be0d3241ad..8b1cd18545c 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -1,3 +1,7 @@ +2012-10-07 Glenn Morris + + * erc-backend.el (NICK): Handle pre-existing buffers. (Bug#12002) + 2012-10-06 Glenn Morris * erc.el (erc-lurker): diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el index 75f0047bf06..20ccd071b95 100644 --- a/lisp/erc/erc-backend.el +++ b/lisp/erc/erc-backend.el @@ -1316,7 +1316,7 @@ add things to `%s' instead." (when (equal (erc-default-target) nick) (setq erc-default-recipients (cons nn (cdr erc-default-recipients))) - (rename-buffer nn) + (rename-buffer nn t) ; bug#12002 (erc-update-mode-line) (add-to-list 'bufs (current-buffer))))) (erc-update-user-nick nick nn host nil nil login) From 1bac999506468ca481c118b87893c44ec54afc4b Mon Sep 17 00:00:00 2001 From: Antoine Levitt Date: Sat, 6 Oct 2012 18:41:03 -0700 Subject: [PATCH 067/272] Small fix for invisible timestamps * lisp/erc/erc-stamp.el (erc-format-timestamp): Don't apply intangible property to invisible stamps. Fixes: debbugs:11706 --- lisp/erc/ChangeLog | 5 +++++ lisp/erc/erc-stamp.el | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 8b1cd18545c..6906430eb7b 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -1,3 +1,8 @@ +2012-10-07 Antoine Levitt + + * erc-stamp.el (erc-format-timestamp): Don't apply intangible + property to invisible stamps. (Bug#11706) + 2012-10-07 Glenn Morris * erc-backend.el (NICK): Handle pre-existing buffers. (Bug#12002) diff --git a/lisp/erc/erc-stamp.el b/lisp/erc/erc-stamp.el index 1613d03912c..4fa3f9f5915 100644 --- a/lisp/erc/erc-stamp.el +++ b/lisp/erc/erc-stamp.el @@ -353,8 +353,9 @@ Return the empty string if FORMAT is nil." 'isearch-open-invisible 'timestamp ts) ;; N.B. Later use categories instead of this harmless, but ;; inelegant, hack. -- BPT - (when erc-timestamp-intangible - (erc-put-text-property 0 (length ts) 'intangible t ts)) + (and erc-timestamp-intangible + (not erc-hide-timestamps) ; bug#11706 + (erc-put-text-property 0 (length ts) 'intangible t ts)) ts) "")) From 2255788d775663c13f57fc0617b6d27398ae769d Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 18:45:03 -0700 Subject: [PATCH 068/272] * lisp/erc/erc-button.el (erc-button-alist): Remove "finger". Fixes: debbugs:4443 --- lisp/erc/ChangeLog | 4 ++++ lisp/erc/erc-button.el | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 6906430eb7b..7fad769bdc6 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -1,3 +1,7 @@ +2012-10-07 Glenn Morris + + * erc-button.el (erc-button-alist): Remove "finger". (Bug#4443) + 2012-10-07 Antoine Levitt * erc-stamp.el (erc-format-timestamp): Don't apply intangible diff --git a/lisp/erc/erc-button.el b/lisp/erc/erc-button.el index 687d11d144e..433ffc05340 100644 --- a/lisp/erc/erc-button.el +++ b/lisp/erc/erc-button.el @@ -135,7 +135,7 @@ longer than `erc-fill-column'." '(('nicknames 0 erc-button-buttonize-nicks erc-nick-popup 0) (erc-button-url-regexp 0 t browse-url 0) (" ]+\\) *>" 0 t browse-url 1) - ("(\\(\\([^~\n \t@][^\n \t@]*\\)@\\([a-zA-Z0-9.:-]+\\)\\)" 1 t finger 2 3) +;;; ("(\\(\\([^~\n \t@][^\n \t@]*\\)@\\([a-zA-Z0-9.:-]+\\)\\)" 1 t finger 2 3) ;; emacs internal ("[`]\\([a-zA-Z][-a-zA-Z_0-9]+\\)[']" 1 t erc-button-describe-symbol 1) ;; pseudo links @@ -183,6 +183,7 @@ PAR is a number of a regexp grouping whose text will be passed to 'nicknames, these are ignored, and CALLBACK will be called with the nickname matched as the argument." :group 'erc-button + :version "24.3" ; remove finger (bug#4443) :type '(repeat (list :tag "Button" (choice :tag "Matches" From b68f89c4e3bc88e21f70da947875caec023aa2cb Mon Sep 17 00:00:00 2001 From: Deniz Dogan Date: Sat, 6 Oct 2012 19:05:04 -0700 Subject: [PATCH 069/272] * lisp/erc/erc-log.el (erc-generate-log-file-name-function): Clarify tags Fixes: debbugs:11186 --- lisp/erc/ChangeLog | 5 +++++ lisp/erc/erc-log.el | 10 ++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 7fad769bdc6..37bc2922d22 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -1,3 +1,8 @@ +2012-10-07 Deniz Dogan + + * erc-log.el (erc-generate-log-file-name-function): + Clarify tags for various choices. (Bug#11186) + 2012-10-07 Glenn Morris * erc-button.el (erc-button-alist): Remove "finger". (Bug#4443) diff --git a/lisp/erc/erc-log.el b/lisp/erc/erc-log.el index 9e6c587bd12..aa6b332eb90 100644 --- a/lisp/erc/erc-log.el +++ b/lisp/erc/erc-log.el @@ -114,11 +114,13 @@ If you want to write logs into different directories, make a custom function which returns the directory part and set `erc-log-channels-directory' to its name." :group 'erc-log - :type '(choice (const :tag "Long style" erc-generate-log-file-name-long) - (const :tag "Long, but with network name rather than server" + :type '(choice (const :tag "#channel!nick server:port.txt" + erc-generate-log-file-name-long) + (const :tag "#channel!nick network.txt" erc-generate-log-file-name-network) - (const :tag "Short" erc-generate-log-file-name-short) - (const :tag "With date" erc-generate-log-file-name-with-date) + (const :tag "#channel.txt" erc-generate-log-file-name-short) + (const :tag "#channel date.txt" + erc-generate-log-file-name-with-date) (function :tag "Other function"))) (defcustom erc-truncate-buffer-on-save nil From 559e479cbb1e1fb88325c90a22f7b7fdb5c3c95b Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 6 Oct 2012 19:07:46 -0700 Subject: [PATCH 070/272] Remove tiny change marker for author with assignment --- lisp/ChangeLog.15 | 4 ++-- lisp/erc/ChangeLog | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog.15 b/lisp/ChangeLog.15 index 65a7baf44c4..83657a98bfd 100644 --- a/lisp/ChangeLog.15 +++ b/lisp/ChangeLog.15 @@ -10962,7 +10962,7 @@ * Version 23.2 released. -2010-05-07 Deniz Dogan (tiny change) +2010-05-07 Deniz Dogan Stefan Monnier Highlight vendor specific properties. @@ -15541,7 +15541,7 @@ * window.el (move-to-window-line-last-op): Remove. (move-to-window-line-top-bottom): Reuse recenter-last-op instead. -2009-11-23 Deniz Dogan (tiny change) +2009-11-23 Deniz Dogan Make M-r mirror the new cycling behavior of C-l. * window.el (move-to-window-line-last-op): New var. diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 37bc2922d22..8b4df6099bc 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -126,7 +126,7 @@ (erc-autojoin-after-ident): Ditto. (erc-autojoin-channels-alist): Mention auth-source. -2012-04-10 Deniz Dogan (tiny change) +2012-04-10 Deniz Dogan * erc.el (erc-display-prompt): Adds the field text property to the ERC prompt. This allows users to use `kill-whole-line' to kill From c622b48f7894fc904cdc95edff47f2173240f0cf Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 6 Oct 2012 19:26:03 -0700 Subject: [PATCH 071/272] Improve sys_siglist detection. * configure.ac (sys_siglist): Look for its decl in . Otherwise, it's not found in either Fedora 17 or Solaris 11. * src/sysdep.c (sys_siglist, init_signals): Use _sys_siglist if it's defined as a macro, as is done in Solaris. (sys_siglist_entries): New macro. (save_strsignal): Use it. * src/syssignal.h (safe_strsignal): Now ATTRIBUTE_CONST, to pacify GCC 4.7.2 on Fedora 17 with the fixed sys_siglist detection. --- ChangeLog | 6 ++++++ configure.ac | 6 ++++-- src/ChangeLog | 10 ++++++++++ src/sysdep.c | 18 ++++++++++++++---- src/syssignal.h | 2 +- 5 files changed, 35 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 90b57c4c3da..2d4d7a66eb0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2012-10-07 Paul Eggert + + Improve sys_siglist detection. + * configure.ac (sys_siglist): Look for its decl in . + Otherwise, it's not found in either Fedora 17 or Solaris 11. + 2012-10-04 Paul Eggert Merge from gnulib, incorporating: diff --git a/configure.ac b/configure.ac index edbae29c59f..626395220bd 100644 --- a/configure.ac +++ b/configure.ac @@ -1284,10 +1284,12 @@ dnl On Solaris 8 there's a compilation warning for term.h because dnl it doesn't define `bool'. AC_CHECK_HEADERS(term.h, , , -) AC_HEADER_TIME -AC_CHECK_DECLS([sys_siglist]) +AC_CHECK_DECLS([sys_siglist], [], [], [[#include + ]]) if test $ac_cv_have_decl_sys_siglist != yes; then # For Tru64, at least: - AC_CHECK_DECLS([__sys_siglist]) + AC_CHECK_DECLS([__sys_siglist], [], [], [[#include + ]]) if test $ac_cv_have_decl___sys_siglist = yes; then AC_DEFINE(sys_siglist, __sys_siglist, [Define to any substitute for sys_siglist.]) diff --git a/src/ChangeLog b/src/ChangeLog index b960837eaab..a30dde5e4ea 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,13 @@ +2012-10-07 Paul Eggert + + Improve sys_siglist detection. + * sysdep.c (sys_siglist, init_signals): Use _sys_siglist if it's + defined as a macro, as is done in Solaris. + (sys_siglist_entries): New macro. + (save_strsignal): Use it. + * syssignal.h (safe_strsignal): Now ATTRIBUTE_CONST, to pacify + GCC 4.7.2 on Fedora 17 with the fixed sys_siglist detection. + 2012-10-06 Jan Djärv * nsfns.m (Fx_create_frame): Call x_default_parameter with diff --git a/src/sysdep.c b/src/sysdep.c index 74617fcaf0f..35beeaa7202 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -1545,8 +1545,18 @@ deliver_thread_signal (int sig, signal_handler_t handler) #if !HAVE_DECL_SYS_SIGLIST # undef sys_siglist -# define sys_siglist my_sys_siglist +# ifdef _sys_siglist +# define sys_siglist _sys_siglist +# else +# define sys_siglist my_sys_siglist static char const *sys_siglist[NSIG]; +# endif +#endif + +#ifdef _sys_nsig +# define sys_siglist_entries _sys_nsig +#else +# define sys_siglist_entries NSIG #endif /* Handle bus errors, invalid instruction, etc. */ @@ -1609,7 +1619,7 @@ init_signals (bool dumping) main_thread = pthread_self (); #endif -#if !HAVE_DECL_SYS_SIGLIST +#if !HAVE_DECL_SYS_SIGLIST && !defined _sys_siglist if (! initialized) { sys_siglist[SIGABRT] = "Aborted"; @@ -1757,7 +1767,7 @@ init_signals (bool dumping) sys_siglist[SIGXFSZ] = "File size limit exceeded"; # endif } -#endif /* !HAVE_DECL_SYS_SIGLIST */ +#endif /* !HAVE_DECL_SYS_SIGLIST && !_sys_siglist */ /* Don't alter signal handlers if dumping. On some machines, changing signal handlers sets static data that would make signals @@ -2285,7 +2295,7 @@ safe_strsignal (int code) { char const *signame = 0; - if (0 <= code && code < NSIG) + if (0 <= code && code < sys_siglist_entries) signame = sys_siglist[code]; if (! signame) signame = "Unknown signal"; diff --git a/src/syssignal.h b/src/syssignal.h index 83ab19698dd..2bf2f046aa5 100644 --- a/src/syssignal.h +++ b/src/syssignal.h @@ -43,7 +43,7 @@ extern sigset_t empty_mask; typedef void (*signal_handler_t) (int); extern void emacs_sigaction_init (struct sigaction *, signal_handler_t); -char const *safe_strsignal (int); +char const *safe_strsignal (int) ATTRIBUTE_CONST; #if NSIG < NSIG_MINIMUM # undef NSIG From 08f18c3d4d86ba60c9f31512c310fffd1a60f9eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabi=C3=A1n=20Ezequiel=20Gallina?= Date: Sun, 7 Oct 2012 01:33:16 -0300 Subject: [PATCH 072/272] Fix shell output retrieval and comint-prompt-regexp init. * progmodes/python.el (inferior-python-mode): (python-shell-make-comint): Fix initialization of comint-prompt-regexp from copied file local variables. (python-shell-fetched-lines): Remove var. (python-shell-output-filter-in-progress): Rename from python-shell-fetch-lines-in-progress. (python-shell-output-filter-buffer): Rename from python-shell-fetch-lines-string. (python-shell-fetch-lines-filter): Delete function. (python-shell-output-filter): New function. (python-shell-send-string-no-output): Use them. --- lisp/ChangeLog | 15 ++++++++ lisp/progmodes/python.el | 75 ++++++++++++++++++++++++---------------- 2 files changed, 60 insertions(+), 30 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b91d9715bfa..d138e6c84fa 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,18 @@ +2012-10-07 Fabián Ezequiel Gallina + + Fix shell output retrieval and comint-prompt-regexp init. + * progmodes/python.el (inferior-python-mode): + (python-shell-make-comint): Fix initialization of + comint-prompt-regexp from copied file local variables. + (python-shell-fetched-lines): Remove var. + (python-shell-output-filter-in-progress): Rename from + python-shell-fetch-lines-in-progress. + (python-shell-output-filter-buffer): Rename from + python-shell-fetch-lines-string. + (python-shell-fetch-lines-filter): Delete function. + (python-shell-output-filter): New function. + (python-shell-send-string-no-output): Use them. + 2012-10-07 Glenn Morris * hi-lock.el (hi-lock-process-phrase): diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index b3b3b0181d7..726c0b2d542 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -1667,10 +1667,6 @@ variable. \(Type \\[describe-mode] in the process buffer for a list of commands.)" (set-syntax-table python-mode-syntax-table) (setq mode-line-process '(":%s")) - (setq comint-prompt-regexp (format "^\\(?:%s\\|%s\\|%s\\)" - python-shell-prompt-regexp - python-shell-prompt-block-regexp - python-shell-prompt-pdb-regexp)) (make-local-variable 'comint-output-filter-functions) (add-hook 'comint-output-filter-functions 'python-comint-output-filter-function) @@ -1720,7 +1716,11 @@ killed." (process (get-buffer-process buffer))) (with-current-buffer buffer (inferior-python-mode) - (python-util-clone-local-variables current-buffer)) + (python-util-clone-local-variables current-buffer) + (setq comint-prompt-regexp (format "^\\(?:%s\\|%s\\|%s\\)" + python-shell-prompt-regexp + python-shell-prompt-block-regexp + python-shell-prompt-pdb-regexp))) (accept-process-output process) (and pop (pop-to-buffer buffer t)) (and internal (set-process-query-on-exit-flag process nil)))) @@ -1861,26 +1861,39 @@ When MSG is non-nil messages the first line of STRING." (string-match "\n[ \t].*\n?$" string)) (comint-send-string process "\n"))))) -;; Shell output catching stolen from gud-gdb -(defvar python-shell-fetch-lines-in-progress nil) -(defvar python-shell-fetch-lines-string nil) -(defvar python-shell-fetched-lines nil) +(defvar python-shell-output-filter-in-progress nil) +(defvar python-shell-output-filter-buffer nil) -(defun python-shell-fetch-lines-filter (string) - "Filter used to read the list of lines output by a command. -STRING is the output to filter." - (setq string (concat python-shell-fetch-lines-string string)) - (while (string-match "\n" string) - (push (substring string 0 (match-beginning 0)) - python-shell-fetched-lines) - (setq string (substring string (match-end 0)))) - (if (equal (string-match comint-prompt-regexp string) 0) - (progn - (setq python-shell-fetch-lines-in-progress nil) - string) - (progn - (setq python-shell-fetch-lines-string string) - ""))) +(defun python-shell-output-filter (string) + "Filter used in `python-shell-send-string-no-output' to grab output. +STRING is the output received to this point from the process. +This filter saves received output from the process in +`python-shell-output-filter-buffer' and stops receiving it after +detecting a prompt at the end of the buffer." + (setq + string (ansi-color-filter-apply string) + python-shell-output-filter-buffer + (concat python-shell-output-filter-buffer string)) + (when (string-match + (format "\n\\(?:%s\\|%s\\|%s\\)$" + python-shell-prompt-regexp + python-shell-prompt-block-regexp + python-shell-prompt-pdb-regexp) + python-shell-output-filter-buffer) + ;; Output ends when `python-shell-output-filter-buffer' contains + ;; the prompt attached at the end of it. + (setq python-shell-output-filter-in-progress nil + python-shell-output-filter-buffer + (substring python-shell-output-filter-buffer + 0 (match-beginning 0))) + (when (and (> (length python-shell-prompt-output-regexp) 0) + (string-match (concat "^" python-shell-prompt-output-regexp) + python-shell-output-filter-buffer)) + ;; Some shells, like iPython might append a prompt before the + ;; output, clean that. + (setq python-shell-output-filter-buffer + (substring python-shell-output-filter-buffer (match-end 0))))) + "") (defun python-shell-send-string-no-output (string &optional process msg) "Send STRING to PROCESS and inhibit output. @@ -1888,18 +1901,20 @@ When MSG is non-nil messages the first line of STRING. Return the output." (let ((process (or process (python-shell-get-or-create-process))) (comint-preoutput-filter-functions - '(python-shell-fetch-lines-filter)) - (python-shell-fetch-lines-in-progress t) + '(python-shell-output-filter)) + (python-shell-output-filter-in-progress t) (inhibit-quit t)) (or (with-local-quit (python-shell-send-string string process msg) - (while python-shell-fetch-lines-in-progress + (while python-shell-output-filter-in-progress + ;; `python-shell-output-filter' takes care of setting + ;; `python-shell-output-filter-in-progress' to NIL after it + ;; detects end of output. (accept-process-output process)) (prog1 - (mapconcat #'identity - (reverse python-shell-fetched-lines) "\n") - (setq python-shell-fetched-lines nil))) + python-shell-output-filter-buffer + (setq python-shell-output-filter-buffer nil))) (with-current-buffer (process-buffer process) (comint-interrupt-subjob))))) From 99a1e701100ef02907d2ab64a7f05024bc2983be Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sun, 7 Oct 2012 00:49:16 -0700 Subject: [PATCH 073/272] Fix infloop in rmailmm on multipart messages with epilogues * lisp/mail/rmailmm.el (rmail-mime-process-multipart): Do not confuse a multipart message with an epilogue with a "truncated" one; fixes 2011-06-27 change. Fixes: debbugs:10101 --- lisp/ChangeLog | 6 ++++++ lisp/mail/rmailmm.el | 13 ++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d138e6c84fa..e54e82233a2 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2012-10-07 Glenn Morris + + * mail/rmailmm.el (rmail-mime-process-multipart): + Do not confuse a multipart message with an epilogue + with a "truncated" one; fixes 2011-06-27 change. (Bug#10101) + 2012-10-07 Fabián Ezequiel Gallina Fix shell output retrieval and comint-prompt-regexp init. diff --git a/lisp/mail/rmailmm.el b/lisp/mail/rmailmm.el index 2cc57963ef7..11bccd59765 100644 --- a/lisp/mail/rmailmm.el +++ b/lisp/mail/rmailmm.el @@ -832,7 +832,7 @@ The other arguments are the same as `rmail-mime-multipart-handler'." (let ((boundary (cdr (assq 'boundary content-type))) (subtype (cadr (split-string (car content-type) "/"))) (index 0) - beg end next entities truncated) + beg end next entities truncated last) (unless boundary (rmail-mm-get-boundary-error-message "No boundary defined" content-type content-disposition @@ -867,7 +867,13 @@ The other arguments are the same as `rmail-mime-multipart-handler'." ;; Handle the rest of the truncated message ;; (if it isn't empty) by pretending that the boundary ;; appears at the end of the message. - (and (save-excursion + ;; We use `last' to distinguish this from the more + ;; likely situation of there being an epilogue + ;; after the last boundary, which should be ignored. + ;; See rmailmm-test-multipart-handler for an example, + ;; and also bug#10101. + (and (not last) + (save-excursion (skip-chars-forward "\n") (> (point-max) (point))) (setq truncated t end (point-max)))) @@ -875,7 +881,8 @@ The other arguments are the same as `rmail-mime-multipart-handler'." ;; epilogue, else hide the boundary only. Use a marker for ;; `next' because `rmail-mime-show' may change the buffer. (cond ((looking-at "--[ \t]*$") - (setq next (point-max-marker))) + (setq next (point-max-marker) + last t)) ((looking-at "[ \t]*\n") (setq next (copy-marker (match-end 0) t))) (truncated From 31bcb42062a9c80f9b7b6116a73353f37aac07f7 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sun, 7 Oct 2012 00:54:41 -0700 Subject: [PATCH 074/272] Un-mung previous erc-log change (error due to committer, not author) --- lisp/erc/erc-log.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lisp/erc/erc-log.el b/lisp/erc/erc-log.el index aa6b332eb90..b3f3f5865a1 100644 --- a/lisp/erc/erc-log.el +++ b/lisp/erc/erc-log.el @@ -114,12 +114,12 @@ If you want to write logs into different directories, make a custom function which returns the directory part and set `erc-log-channels-directory' to its name." :group 'erc-log - :type '(choice (const :tag "#channel!nick server:port.txt" + :type '(choice (const :tag "#channel!nick@server:port.txt" erc-generate-log-file-name-long) - (const :tag "#channel!nick network.txt" + (const :tag "#channel!nick@network.txt" erc-generate-log-file-name-network) (const :tag "#channel.txt" erc-generate-log-file-name-short) - (const :tag "#channel date.txt" + (const :tag "#channel@date.txt" erc-generate-log-file-name-with-date) (function :tag "Other function"))) From 3bc0a2f7e99de90d469b55fcfc9f3f82a99eb0b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Sun, 7 Oct 2012 11:17:17 +0200 Subject: [PATCH 075/272] * nsfns.m (ns_in_resize): Remove. (x_set_icon_name, ns_set_name, ns_set_name_as_filename): Remove ns_in_resize check. * nsterm.m (ns_in_resize): Remove. (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove. (ns_clear_frame, sendEvent, windowDidResize, drawRect:): Remove ns_in_resize check. (ns_clear_frame_area): Remove resize handle code. Fixes: debbugs:12479 --- src/ChangeLog | 12 +++++ src/nsfns.m | 10 +--- src/nsterm.m | 136 +------------------------------------------------- 3 files changed, 15 insertions(+), 143 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index a30dde5e4ea..44dc7286278 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,15 @@ +2012-10-07 Jan Djärv + + * nsterm.m (ns_in_resize): Remove (Bug#12479). + (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove. + (ns_clear_frame, sendEvent, windowDidResize, drawRect:): Remove ns_in_resize + check. + (ns_clear_frame_area): Remove resize handle code. + + * nsfns.m (ns_in_resize): Remove. + (x_set_icon_name, ns_set_name, ns_set_name_as_filename): Remove ns_in_resize + check. + 2012-10-07 Paul Eggert Improve sys_siglist detection. diff --git a/src/nsfns.m b/src/nsfns.m index f22198401e0..d66b1c32b07 100644 --- a/src/nsfns.m +++ b/src/nsfns.m @@ -93,8 +93,6 @@ Updated by Christian Limpach (chris@nice.ch) /* Need forward declaration here to preserve organizational integrity of file */ Lisp_Object Fx_open_connection (Lisp_Object, Lisp_Object, Lisp_Object); -extern BOOL ns_in_resize; - /* Static variables to handle applescript execution. */ static Lisp_Object as_script, *as_result; static int as_status; @@ -433,9 +431,6 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side NSView *view = FRAME_NS_VIEW (f); NSTRACE (x_set_icon_name); - if (ns_in_resize) - return; - /* see if it's changed */ if (STRINGP (arg)) { @@ -511,9 +506,6 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side { NSTRACE (ns_set_name); - if (ns_in_resize) - return; - /* Make sure that requests from lisp code override requests from Emacs redisplay code. */ if (explicit) @@ -612,7 +604,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side NSString *str; NSTRACE (ns_set_name_as_filename); - if (f->explicit_name || ! NILP (f->title) || ns_in_resize) + if (f->explicit_name || ! NILP (f->title)) return; block_input (); diff --git a/src/nsterm.m b/src/nsterm.m index 0d0be9281ee..75f33fea75e 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -183,7 +183,6 @@ Updated by Christian Limpach (chris@nice.ch) static NSRect uRect; #endif static BOOL gsaved = NO; -BOOL ns_in_resize = NO; static BOOL ns_fake_keydown = NO; int ns_tmp_flags; /* FIXME */ struct nsfont_info *ns_tmp_font; /* FIXME */ @@ -493,17 +492,6 @@ Free a pool and temporary objects it refers to (callable from C) ========================================================================== */ -static NSRect -ns_resize_handle_rect (NSWindow *window) -{ - NSRect r = [window frame]; - r.origin.x = r.size.width - RESIZE_HANDLE_SIZE; - r.origin.y = 0; - r.size.width = r.size.height = RESIZE_HANDLE_SIZE; - return r; -} - - // // Window constraining // ------------------- @@ -1983,8 +1971,6 @@ Free a pool and temporary objects it refers to (callable from C) NSRect r; NSTRACE (ns_clear_frame); - if (ns_in_resize) - return; /* comes on initial frame because we have after-make-frame-functions = select-frame */ @@ -2004,10 +1990,6 @@ Free a pool and temporary objects it refers to (callable from C) NSRectFill (r); ns_unfocus (f); -#ifdef NS_IMPL_COCOA - [[view window] display]; /* redraw resize handle */ -#endif - /* as of 2006/11 or so this is now needed */ ns_redraw_scroll_bars (f); unblock_input (); @@ -2033,35 +2015,8 @@ Free a pool and temporary objects it refers to (callable from C) ns_focus (f, &r, 1); [ns_lookup_indexed_color (NS_FACE_BACKGROUND (face), f) set]; -#ifdef NS_IMPL_COCOA - { - /* clip out the resize handle */ - NSWindow *window = [FRAME_NS_VIEW (f) window]; - NSRect ir - = [view convertRect: ns_resize_handle_rect (window) fromView: nil]; - - ir = NSIntersectionRect (r, ir); - if (NSIsEmptyRect (ir)) - { -#endif - NSRectFill (r); -#ifdef NS_IMPL_COCOA - } - else - { - NSRect r1 = r, r2 = r; /* upper and lower non-intersecting */ - r1.size.height -= ir.size.height; - r2.origin.y += r1.size.height; - r2.size.width -= ir.size.width; - r2.size.height = ir.size.height; - NSRectFill (r1); - NSRectFill (r2); - } - } -#endif - ns_unfocus (f); return; } @@ -4314,34 +4269,6 @@ - (void)sendEvent: (NSEvent *)theEvent return; } -#ifdef NS_IMPL_COCOA - /* pass mouse down in resize handle and subsequent drags directly to - EmacsWindow so we can generate continuous redisplays */ - if (ns_in_resize) - { - if (type == NSLeftMouseDragged) - { - [window mouseDragged: theEvent]; - return; - } - else if (type == NSLeftMouseUp) - { - [window mouseUp: theEvent]; - return; - } - } - else if (type == NSLeftMouseDown) - { - NSRect r = ns_resize_handle_rect (window); - if (NSPointInRect ([theEvent locationInWindow], r)) - { - ns_in_resize = YES; - [window mouseDown: theEvent]; - return; - } - } -#endif - if (type == NSApplicationDefined) { /* Events posted by ns_send_appdefined interrupt the run loop here. @@ -5567,12 +5494,7 @@ - (void)windowDidResize: (NSNotification *)notification if (cols > 0 && rows > 0) { - if (ns_in_resize) - x_set_window_size (emacsframe, 0, cols, rows); - else - { - [self updateFrameSize: YES]; - } + [self updateFrameSize: YES]; } ns_send_appdefined (-1); @@ -6198,7 +6120,7 @@ - (void)drawRect: (NSRect)rect NSTRACE (drawRect); - if (!emacsframe || !emacsframe->output_data.ns || ns_in_resize) + if (!emacsframe || !emacsframe->output_data.ns) return; ns_clear_frame_area (emacsframe, x, y, width, height); @@ -6535,60 +6457,6 @@ - (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen return [super constrainFrameRect:frameRect toScreen:screen]; } - -/* called only on resize clicks by special case in EmacsApp-sendEvent */ -- (void)mouseDown: (NSEvent *)theEvent -{ - if (ns_in_resize) - { - NSSize size = [[theEvent window] frame].size; - grabOffset = [theEvent locationInWindow]; - grabOffset.x = size.width - grabOffset.x; - } - else - [super mouseDown: theEvent]; -} - - -/* stop resizing */ -- (void)mouseUp: (NSEvent *)theEvent -{ - if (ns_in_resize) - { - struct frame *f = ((EmacsView *)[self delegate])->emacsframe; - ns_in_resize = NO; - ns_set_name_as_filename (f); - [self display]; - ns_send_appdefined (-1); - } - else - [super mouseUp: theEvent]; -} - - -/* send resize events */ -- (void)mouseDragged: (NSEvent *)theEvent -{ - if (ns_in_resize) - { - NSPoint p = [theEvent locationInWindow]; - NSSize size, vettedSize, origSize = [self frame].size; - - size.width = p.x + grabOffset.x; - size.height = origSize.height - p.y + grabOffset.y; - - if (size.width == origSize.width && size.height == origSize.height) - return; - - vettedSize = [[self delegate] windowWillResize: self toSize: size]; - [[NSNotificationCenter defaultCenter] - postNotificationName: NSWindowDidResizeNotification - object: self]; - } - else - [super mouseDragged: theEvent]; -} - @end /* EmacsWindow */ From 335f5ae44485d32ac632bd8d27d5ac00acd63477 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Sun, 7 Oct 2012 12:07:23 +0200 Subject: [PATCH 076/272] Check for OSX >= 10.4 to match what the maunal says and what we actually support. * configure.ac: Check that OSX is 10.4 or newer. * etc/NEWS (NextStep/OSX port changes): OSX 10.4 or newer is required. * src/nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4. (ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4. * src/nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger. * src/nsmenu.m (fillWithWidgetValue:): Remove code for < MAC_OS_X_VERSION_10_2. * src/nsselect.m (ns_string_from_pasteboard): Remove check for >= MAC_OS_X_VERSION_10_4. * src/nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove. (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4. (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3. --- ChangeLog | 4 ++++ configure.ac | 16 ++++++++++++++++ etc/ChangeLog | 4 ++++ etc/NEWS | 2 ++ src/ChangeLog | 18 ++++++++++++++++++ src/nsfns.m | 35 ++++++++++++++++------------------- src/nsimage.m | 8 +++----- src/nsmenu.m | 5 ----- src/nsselect.m | 4 ++-- src/nsterm.h | 13 ++++--------- src/nsterm.m | 5 +---- 11 files changed, 70 insertions(+), 44 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2d4d7a66eb0..1a7b9f61828 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2012-10-07 Jan Djärv + + * configure.ac: Check that OSX is 10.4 or newer. + 2012-10-07 Paul Eggert Improve sys_siglist detection. diff --git a/configure.ac b/configure.ac index 626395220bd..748f435aec2 100644 --- a/configure.ac +++ b/configure.ac @@ -1510,10 +1510,26 @@ fail; AC_CHECK_HEADER([AppKit/AppKit.h], [HAVE_NS=yes], [AC_MSG_ERROR([`--with-ns' was specified, but the include files are missing or cannot be compiled.])]) + + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], + [ +#ifdef MAC_OS_X_VERSION_MAX_ALLOWED +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040 + ; /* OK */ +#else +#error "OSX 10.4 or newer required" +#endif +#endif + ])], + ns_osx_have_104=yes, + ns_osx_have_104=no) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], [NSInteger i;])], ns_have_nsinteger=yes, ns_have_nsinteger=no) + if test $ns_osx_have_104 = no; then + AC_MSG_ERROR([`OSX 10.4 or newer is required']); + fi if test $ns_have_nsinteger = yes; then AC_DEFINE(NS_HAVE_NSINTEGER, 1, [Define to 1 if `NSInteger' is defined.]) fi diff --git a/etc/ChangeLog b/etc/ChangeLog index ad6c6395e49..001bfe271af 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,3 +1,7 @@ +2012-10-07 Jan Djärv + + * NEWS (NextStep/OSX port changes): OSX 10.4 or newer is required. + 2012-10-05 Douglas Lewan (tiny change) * tutorials/TUTORIAL.pt_BR: Fix typo. (Bug#12557) diff --git a/etc/NEWS b/etc/NEWS index e4086bf038e..1a7eb82967d 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -191,6 +191,8 @@ The PCL-CVS commands are still available via the keyboard. ** NextStep/OSX port changes. --- +*** OSX 10.4 or newer is required to build Emacs. +--- *** Fullscreen and frame parameter fullscreen is supported. --- *** A file dialog is used when open/saved is done from the menu/toolbar. diff --git a/src/ChangeLog b/src/ChangeLog index 44dc7286278..45e3c8a8a57 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,23 @@ 2012-10-07 Jan Djärv + * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of + MAC_OS_X_VERSION_10_6. + (syms_of_nsterm): Remove comment about Panther and above for ns-antialias-text. + + * nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove. + (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4. + (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3. + + * nsselect.m (ns_string_from_pasteboard): Remove check for >= + MAC_OS_X_VERSION_10_4. + + * nsmenu.m (fillWithWidgetValue:): Remove code for < MAC_OS_X_VERSION_10_2. + + * nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger. + + * nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4. + (ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4. + * nsterm.m (ns_in_resize): Remove (Bug#12479). (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove. (ns_clear_frame, sendEvent, windowDidResize, drawRect:): Remove ns_in_resize diff --git a/src/nsfns.m b/src/nsfns.m index d66b1c32b07..7a22ac547c3 100644 --- a/src/nsfns.m +++ b/src/nsfns.m @@ -1949,32 +1949,29 @@ and GNUstep implementations ("distributor-specific release check_ns (); svcs = [[NSMenu alloc] initWithTitle: @"Services"]; - [NSApp setServicesMenu: svcs]; /* this and next rebuild on <10.4 */ + [NSApp setServicesMenu: svcs]; [NSApp registerServicesMenuSendTypes: ns_send_types returnTypes: ns_return_types]; /* On Tiger, services menu updating was made lazier (waits for user to actually click on the menu), so we have to force things along: */ #ifdef NS_IMPL_COCOA - if (NSAppKitVersionNumber >= 744.0) + delegate = [svcs delegate]; + if (delegate != nil) { - delegate = [svcs delegate]; - if (delegate != nil) + if ([delegate respondsToSelector: @selector (menuNeedsUpdate:)]) + [delegate menuNeedsUpdate: svcs]; + if ([delegate respondsToSelector: + @selector (menu:updateItem:atIndex:shouldCancel:)]) { - if ([delegate respondsToSelector: @selector (menuNeedsUpdate:)]) - [delegate menuNeedsUpdate: svcs]; - if ([delegate respondsToSelector: - @selector (menu:updateItem:atIndex:shouldCancel:)]) - { - int i, len = [delegate numberOfItemsInMenu: svcs]; - for (i =0; i= MAC_OS_X_VERSION_10_4 +#if defined (NS_IMPL_COCOA) (typeUTF16ExternalRepresentation == [returnDescriptor descriptorType]) || #endif diff --git a/src/nsimage.m b/src/nsimage.m index 370cf832c7c..884c0763fd4 100644 --- a/src/nsimage.m +++ b/src/nsimage.m @@ -403,7 +403,6 @@ - (void) setPixmapData if ([rep respondsToSelector: @selector (getBitmapDataPlanes:)]) { bmRep = (NSBitmapImageRep *) rep; - onTiger = [bmRep respondsToSelector: @selector (colorAtX:y:)]; if ([bmRep numberOfPlanes] >= 3) [bmRep getBitmapDataPlanes: pixmapData]; @@ -435,7 +434,7 @@ - (unsigned long) getPixelAtX: (int)x Y: (int)y | (pixmapData[0][loc] << 16) | (pixmapData[1][loc] << 8) | (pixmapData[2][loc]); } - else if (onTiger) + else { NSColor *color = [bmRep colorAtX: x y: y]; CGFloat r, g, b, a; @@ -445,7 +444,6 @@ - (unsigned long) getPixelAtX: (int)x Y: (int)y | ((int)(b * 255.0)); } - return 0; } - (void) setPixelAtX: (int)x Y: (int)y toRed: (unsigned char)r @@ -463,7 +461,7 @@ - (void) setPixelAtX: (int)x Y: (int)y toRed: (unsigned char)r pixmapData[2][loc] = b; pixmapData[3][loc] = a; } - else if (onTiger) + else { [bmRep setColor: [NSColor colorWithCalibratedRed: (r/255.0) green: (g/255.0) @@ -483,7 +481,7 @@ - (void) setAlphaAtX: (int) x Y: (int) y to: (unsigned char) a pixmapData[3][loc] = a; } - else if (onTiger) + else { NSColor *color = [bmRep colorAtX: x y: y]; color = [color colorWithAlphaComponent: (a / 255.0)]; diff --git a/src/nsmenu.m b/src/nsmenu.m index b60cc005c5f..9af732c6c45 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -722,11 +722,6 @@ - (void)fillWithWidgetValue: (void *)wvptr #ifdef NS_IMPL_GNUSTEP if ([[self window] isVisible]) [self sizeToFit]; -#else -#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_2 - if ([self supermenu] == nil) - [self sizeToFit]; -#endif #endif } diff --git a/src/nsselect.m b/src/nsselect.m index 95bc1a95957..c0c412c6fb2 100644 --- a/src/nsselect.m +++ b/src/nsselect.m @@ -295,7 +295,7 @@ Updated by Christian Limpach (chris@nice.ch) utfStr = [mstr UTF8String]; length = [mstr lengthOfBytesUsingEncoding: NSUTF8StringEncoding]; -#if ! defined (NS_IMPL_COCOA) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_4 +#if ! defined (NS_IMPL_COCOA) if (!utfStr) { utfStr = [mstr cString]; @@ -306,7 +306,7 @@ Updated by Christian Limpach (chris@nice.ch) NS_HANDLER { message1 ("ns_string_from_pasteboard: UTF8String failed\n"); -#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4 +#if defined (NS_IMPL_COCOA) utfStr = "Conversion failed"; #else utfStr = [str lossyCString]; diff --git a/src/nsterm.h b/src/nsterm.h index f1cd7458bdc..958d1ce7853 100644 --- a/src/nsterm.h +++ b/src/nsterm.h @@ -26,9 +26,6 @@ along with GNU Emacs. If not, see . */ #ifdef HAVE_NS #ifdef NS_IMPL_COCOA -#ifndef MAC_OS_X_VERSION_10_3 -#define MAC_OS_X_VERSION_10_3 1030 -#endif #ifndef MAC_OS_X_VERSION_10_4 #define MAC_OS_X_VERSION_10_4 1040 #endif @@ -286,7 +283,6 @@ along with GNU Emacs. If not, see . */ int refCount; NSBitmapImageRep *bmRep; /* used for accessing pixel data */ unsigned char *pixmapData[5]; /* shortcut to access pixel data */ - BOOL onTiger; NSColor *stippleMask; } + allocInitFromFile: (Lisp_Object)file; @@ -355,7 +351,7 @@ along with GNU Emacs. If not, see . */ /* ========================================================================== - Rendering on Panther and above + Rendering ========================================================================== */ @@ -380,7 +376,7 @@ extern NSString *ns_app_name; extern EmacsMenu *mainMenu, *svcsMenu, *dockMenu; /* Apple removed the declaration, but kept the implementation */ -#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4 +#if defined (NS_IMPL_COCOA) @interface NSApplication (EmacsApp) - (void)setAppleMenu: (NSMenu *)menu; @end @@ -483,10 +479,9 @@ struct nsfont_info float size; #ifdef __OBJC__ NSFont *nsfont; - /* cgfont and synthItal are used only on OS X 10.3+ */ -#if defined (NS_IMPL_COCOA) && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3) +#if defined (NS_IMPL_COCOA) CGFontRef cgfont; -#else /* GNUstep or OS X < 10.3 */ +#else /* GNUstep */ void *cgfont; #endif #else /* ! OBJC */ diff --git a/src/nsterm.m b/src/nsterm.m index 75f33fea75e..d6689c08aa2 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -569,9 +569,6 @@ Free a pool and temporary objects it refers to (callable from C) static void ns_update_auto_hide_menu_bar (void) { -#ifndef MAC_OS_X_VERSION_10_6 -#define MAC_OS_X_VERSION_10_6 1060 -#endif #ifdef NS_IMPL_COCOA #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 block_input (); @@ -7087,7 +7084,7 @@ Convert an X font name (XLFD) to an NS font name. ns_function_modifier = Qnone; DEFVAR_LISP ("ns-antialias-text", ns_antialias_text, - "Non-nil (the default) means to render text antialiased. Only has an effect on OS X Panther and above."); + "Non-nil (the default) means to render text antialiased."); ns_antialias_text = Qt; DEFVAR_LISP ("ns-confirm-quit", ns_confirm_quit, From dc67e786892c66f49d577d7447fe1bc407661818 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sun, 7 Oct 2012 06:19:00 -0400 Subject: [PATCH 077/272] Auto-commit of generated files. --- autogen/configure | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/autogen/configure b/autogen/configure index f08dd5503a2..623d93bb39c 100755 --- a/autogen/configure +++ b/autogen/configure @@ -8814,7 +8814,9 @@ $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi -ac_fn_c_check_decl "$LINENO" "sys_siglist" "ac_cv_have_decl_sys_siglist" "$ac_includes_default" +ac_fn_c_check_decl "$LINENO" "sys_siglist" "ac_cv_have_decl_sys_siglist" "#include + +" if test "x$ac_cv_have_decl_sys_siglist" = x""yes; then : ac_have_decl=1 else @@ -8827,7 +8829,9 @@ _ACEOF if test $ac_cv_have_decl_sys_siglist != yes; then # For Tru64, at least: - ac_fn_c_check_decl "$LINENO" "__sys_siglist" "ac_cv_have_decl___sys_siglist" "$ac_includes_default" + ac_fn_c_check_decl "$LINENO" "__sys_siglist" "ac_cv_have_decl___sys_siglist" "#include + +" if test "x$ac_cv_have_decl___sys_siglist" = x""yes; then : ac_have_decl=1 else @@ -9510,6 +9514,32 @@ else fi + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + +#ifdef MAC_OS_X_VERSION_MAX_ALLOWED +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040 + ; /* OK */ +#else +#error "OSX 10.4 or newer required" +#endif +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ns_osx_have_104=yes +else + ns_osx_have_104=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include @@ -9527,6 +9557,9 @@ else ns_have_nsinteger=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ns_osx_have_104 = no; then + as_fn_error "\`OSX 10.4 or newer is required'" "$LINENO" 5; + fi if test $ns_have_nsinteger = yes; then $as_echo "#define NS_HAVE_NSINTEGER 1" >>confdefs.h From 817330b512a1453571c619e01114a02fd6d9aba9 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sun, 7 Oct 2012 06:23:48 -0400 Subject: [PATCH 078/272] Auto-commit of loaddefs files. --- lisp/mail/rmail.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index 828cd6e72e7..c75a1989e8e 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el @@ -4605,7 +4605,7 @@ With prefix argument N moves forward N messages with these labels. ;;;*** -;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "0c18b83f914803d1216e1a9df7ea5275") +;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "f1937f85a1258de8880a089fa5ae5621") ;;; Generated autoloads from rmailmm.el (autoload 'rmail-mime "rmailmm" "\ From 493b5b1c4a7e8b27a0e57c596a83e8b4acad591c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Sun, 7 Oct 2012 13:09:04 +0200 Subject: [PATCH 079/272] * nsterm.m (ns_dumpglyphs_image): Only draw slize of image (Bug#12506). --- src/ChangeLog | 3 ++- src/nsterm.m | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 45e3c8a8a57..492b966a256 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,9 +1,10 @@ 2012-10-07 Jan Djärv + * nsterm.m (ns_dumpglyphs_image): Only draw slize of image (Bug#12506). + * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of MAC_OS_X_VERSION_10_6. (syms_of_nsterm): Remove comment about Panther and above for ns-antialias-text. - * nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove. (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4. (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3. diff --git a/src/nsterm.m b/src/nsterm.m index d6689c08aa2..6b739befeeb 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -2975,8 +2975,10 @@ Function modeled after x_draw_glyph_string_box (). { #if !defined (NS_IMPL_COCOA) || MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 NSRect dr = NSMakeRect (x, y, s->slice.width, s->slice.height); + NSRect ir = NSMakeRect (s->slice.x, s->slice.y, + s->slice.width, s->slice.height); [img drawInRect: dr - fromRect: NSZeroRect + fromRect: ir operation: NSCompositeSourceOver fraction: 1.0 respectFlipped: YES From 78d876b90e52400b7bbb086ca1a471d3d20d0e98 Mon Sep 17 00:00:00 2001 From: Stefan Merten Date: Sun, 7 Oct 2012 14:48:09 +0200 Subject: [PATCH 080/272] * textmodes/rst.el (rst-new-adornment-down, rst-indent-field) (rst-indent-literal-normal, rst-indent-literal-minimized) (rst-indent-comment): Correct :version tag. --- lisp/ChangeLog | 6 ++++++ lisp/textmodes/rst.el | 13 ++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e54e82233a2..f0621a89538 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2012-10-07 Stefan Merten + + * textmodes/rst.el (rst-new-adornment-down, rst-indent-field) + (rst-indent-literal-normal, rst-indent-literal-minimized) + (rst-indent-comment): Correct :version tag. + 2012-10-07 Glenn Morris * mail/rmailmm.el (rmail-mime-process-multipart): diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el index 02bb1e6371f..f2c74dfb941 100644 --- a/lisp/textmodes/rst.el +++ b/lisp/textmodes/rst.el @@ -218,7 +218,7 @@ and before TAIL-RE and DELIM-RE in VAR or DEFAULT for no match." ;; Use CVSHeader to really get information from CVS and not other version ;; control systems. (defconst rst-cvs-header - "$CVSHeader: sm/rst_el/rst.el,v 1.327.2.2 2012-09-23 14:44:25 stefan Exp $") + "$CVSHeader: sm/rst_el/rst.el,v 1.327.2.5 2012-10-07 12:44:34 stefan Exp $") (defconst rst-cvs-rev (rst-extract-version "\\$" "CVSHeader: \\S + " "[0-9]+\\(?:\\.[0-9]+\\)+" " .*" rst-cvs-header "0.0") @@ -247,7 +247,7 @@ SVN revision is the upstream (docutils) revision.") "Official version of the package.") (defconst rst-official-cvs-rev (rst-extract-version "[%$]" "Revision: " "[0-9]+\\(?:\\.[0-9]+\\)+" " " - "$Revision: 1.327.2.2 $") + "$Revision: 1.327.2.5 $") "CVS revision of this file in the official version.") (defconst rst-version @@ -1545,7 +1545,6 @@ b. a negative numerical argument, which generally inverts the :type '(choice (const :tag "Same level as previous one" nil) (const :tag "One level down relative to the previous one" t)) - :version "24.3" :package-version '(rst . "1.1.0")) (rst-testcover-defcustom) @@ -2846,28 +2845,28 @@ here." (defcustom rst-indent-field 3 "Indentation for first line after a field or 0 to always indent for content." :group 'rst-indent - :version "24.3" + :package-version '(rst . "1.1.0") :type '(integer)) (rst-testcover-defcustom) (defcustom rst-indent-literal-normal 3 "Default indentation for literal block after a markup on an own line." :group 'rst-indent - :version "24.3" + :package-version '(rst . "1.1.0") :type '(integer)) (rst-testcover-defcustom) (defcustom rst-indent-literal-minimized 2 "Default indentation for literal block after a minimized markup." :group 'rst-indent - :version "24.3" + :package-version '(rst . "1.1.0") :type '(integer)) (rst-testcover-defcustom) (defcustom rst-indent-comment 3 "Default indentation for first line of a comment." :group 'rst-indent - :version "24.3" + :package-version '(rst . "1.1.0") :type '(integer)) (rst-testcover-defcustom) From 6aa75fb62f6cdc4164d935ef14d57feec5ed6e0a Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Sun, 7 Oct 2012 21:48:44 +0900 Subject: [PATCH 081/272] international/mule-conf.el (compound-text-with-extensions): Add :mime-charset property as x-ctext. --- lisp/ChangeLog | 5 +++++ lisp/international/mule-conf.el | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 87b54707e0a..bc8840819a3 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-07 Kenichi Handa + + * international/mule-conf.el (compound-text-with-extensions): Add + :mime-charset property as x-ctext. + 2012-10-06 Ikumi Keita (tiny change) * international/characters.el: Fix simple mistake ((car chars) -> diff --git a/lisp/international/mule-conf.el b/lisp/international/mule-conf.el index 4647b778e59..11207b0b78d 100644 --- a/lisp/international/mule-conf.el +++ b/lisp/international/mule-conf.el @@ -1458,7 +1458,8 @@ for decoding and encoding files, process I/O, etc." :flags '(ascii-at-eol ascii-at-cntl long-form designation locking-shift single-shift) :post-read-conversion 'ctext-post-read-conversion - :pre-write-conversion 'ctext-pre-write-conversion) + :pre-write-conversion 'ctext-pre-write-conversion + :mime-charset 'x-ctext) (define-coding-system-alias 'x-ctext-with-extensions 'compound-text-with-extensions) From 557337e9a22da64445d64bb9577d178e4d7024d7 Mon Sep 17 00:00:00 2001 From: Stefan Merten Date: Sun, 7 Oct 2012 15:09:35 +0200 Subject: [PATCH 082/272] textmodes/rst.el (rst-official-cvs-rev): Correct version string. --- lisp/ChangeLog | 1 + lisp/textmodes/rst.el | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b2cc65a0ca3..c7fd6eaf2b6 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -8,6 +8,7 @@ * textmodes/rst.el (rst-new-adornment-down, rst-indent-field) (rst-indent-literal-normal, rst-indent-literal-minimized) (rst-indent-comment): Correct :version tag. + (rst-official-cvs-rev): Correct version string. 2012-10-07 Glenn Morris diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el index f2c74dfb941..b0adb35f768 100644 --- a/lisp/textmodes/rst.el +++ b/lisp/textmodes/rst.el @@ -218,7 +218,7 @@ and before TAIL-RE and DELIM-RE in VAR or DEFAULT for no match." ;; Use CVSHeader to really get information from CVS and not other version ;; control systems. (defconst rst-cvs-header - "$CVSHeader: sm/rst_el/rst.el,v 1.327.2.5 2012-10-07 12:44:34 stefan Exp $") + "$CVSHeader: sm/rst_el/rst.el,v 1.327.2.6 2012-10-07 13:05:50 stefan Exp $") (defconst rst-cvs-rev (rst-extract-version "\\$" "CVSHeader: \\S + " "[0-9]+\\(?:\\.[0-9]+\\)+" " .*" rst-cvs-header "0.0") @@ -247,7 +247,7 @@ SVN revision is the upstream (docutils) revision.") "Official version of the package.") (defconst rst-official-cvs-rev (rst-extract-version "[%$]" "Revision: " "[0-9]+\\(?:\\.[0-9]+\\)+" " " - "$Revision: 1.327.2.5 $") + "%Revision: 1.327 %") "CVS revision of this file in the official version.") (defconst rst-version From d263a63399d2b9d20ff2fc963b7d01817c3d3368 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 7 Oct 2012 16:50:29 +0200 Subject: [PATCH 083/272] Add a comment with overview of how Emacs input works on MS-Windows. --- src/w32fns.c | 21 +++++++++++++++++++++ src/w32term.c | 3 +++ 2 files changed, 24 insertions(+) diff --git a/src/w32fns.c b/src/w32fns.c index 6d5d6822354..0dbeb232db9 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -2246,6 +2246,27 @@ unregister_hot_keys (HWND hwnd) } } +/* Here's an overview of how Emacs input works on MS-Windows. + + System messages are read and processed by w32_msg_pump below. This + function runs in a separate thread. It handles a small number of + custom WM_EMACS_* messages (posted by the main thread, look for + PostMessage calls), and dispatches the rest to w32_wnd_proc, which + is the main window procedure for the entire Emacs application. + + w32_wnd_proc also runs in the same separate input thread. It + handles some messages, mostly those that need GDI calls, by itself. + For the others, it calls my_post_msg, which inserts the messages + into the input queue serviced by w32_read_socket. + + w32_read_socket runs in the main (a.k.a. "Lisp") thread, and is + called synchronously from keyboard.c when it is known or suspected + that some input is available. w32_read_socket either handles + messages immediately, or converts them messages into Emacs input + events and stuffs them into kbd_buffer, where kbd_buffer_get_event + can get at them and process them when read_char and its callers + require input. */ + /* Main message dispatch loop. */ static void diff --git a/src/w32term.c b/src/w32term.c index 1cc8bd2adef..517813672c4 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -4138,6 +4138,9 @@ static char dbcs_lead = 0; This routine is called by the SIGIO handler. We return as soon as there are no more events to be read. + For an overview of how Emacs input works on MS-Windows, see the + commentary before w32_msg_pump in w32fns.c. + We return the number of characters stored into the buffer, thus pretending to be `read'. From 17917e7468f85af6691ed2de56650cede65b749a Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 7 Oct 2012 16:54:01 +0200 Subject: [PATCH 084/272] Fixa typo in last commit. --- src/w32fns.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/w32fns.c b/src/w32fns.c index 0dbeb232db9..db3b3e64b2d 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -2262,10 +2262,10 @@ unregister_hot_keys (HWND hwnd) w32_read_socket runs in the main (a.k.a. "Lisp") thread, and is called synchronously from keyboard.c when it is known or suspected that some input is available. w32_read_socket either handles - messages immediately, or converts them messages into Emacs input - events and stuffs them into kbd_buffer, where kbd_buffer_get_event - can get at them and process them when read_char and its callers - require input. */ + messages immediately, or converts them into Emacs input events and + stuffs them into kbd_buffer, where kbd_buffer_get_event can get at + them and process them when read_char and its callers require + input. */ /* Main message dispatch loop. */ From 13af0d109fc8d2595c0f9f103993e27690f616a3 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sun, 7 Oct 2012 11:15:16 -0400 Subject: [PATCH 085/272] * lisp/emacs-lisp/autoload.el (make-autoload): Add `cl-defmacro' to the forms that define macros. Fixes: debbugs:12593 --- lisp/ChangeLog | 9 +++++++-- lisp/comint.el | 7 ++----- lisp/emacs-lisp/autoload.el | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c7fd6eaf2b6..132cea20bdc 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,7 +1,12 @@ +2012-10-07 Stefan Monnier + + * emacs-lisp/autoload.el (make-autoload): Add `cl-defmacro' to the + forms that define macros (bug#12593). + 2012-10-07 Kenichi Handa - * international/mule-conf.el (compound-text-with-extensions): Add - :mime-charset property as x-ctext. + * international/mule-conf.el (compound-text-with-extensions): + Add :mime-charset property as x-ctext. 2012-10-07 Stefan Merten diff --git a/lisp/comint.el b/lisp/comint.el index fea9cecfa03..080b12e0cdf 100644 --- a/lisp/comint.el +++ b/lisp/comint.el @@ -2783,11 +2783,8 @@ the load or compile." (if (and buff (buffer-modified-p buff) (y-or-n-p (format "Save buffer %s first? " (buffer-name buff)))) - ;; save BUFF. - (let ((old-buffer (current-buffer))) - (set-buffer buff) - (save-buffer) - (set-buffer old-buffer))))) + (with-current-buffer buff + (save-buffer))))) (defun comint-extract-string () "Return string around point, or nil." diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el index e6e2d1e60e0..382e25f3121 100644 --- a/lisp/emacs-lisp/autoload.el +++ b/lisp/emacs-lisp/autoload.el @@ -153,7 +153,7 @@ expression, in which case we want to handle forms differently." easy-mmode-define-minor-mode define-minor-mode cl-defun defun* cl-defmacro defmacro* define-overloadable-function)) - (let* ((macrop (memq car '(defmacro defmacro*))) + (let* ((macrop (memq car '(defmacro cl-defmacro defmacro*))) (name (nth 1 form)) (args (pcase car ((or `defun `defmacro From 662a9d0e1ca5f7e2de9aa2d4d59a038aa93ab146 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sun, 7 Oct 2012 11:54:30 -0400 Subject: [PATCH 086/272] * lisp/window.el (internal--before-save-selected-window) (internal--after-save-selected-window): New functions extracted from save-selected-window. Make sure we return the `alist' we construct. (save-selected-window): Use them. * lisp/textmodes/tex-mode.el (tex-recenter-output-buffer): Use with-selected-window. --- lisp/ChangeLog | 8 ++++++ lisp/textmodes/tex-mode.el | 3 +- lisp/window.el | 56 +++++++++++++++++++++----------------- 3 files changed, 40 insertions(+), 27 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 132cea20bdc..fe225a9ddd2 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,13 @@ 2012-10-07 Stefan Monnier + * window.el (internal--before-save-selected-window) + (internal--after-save-selected-window): New functions extracted from + save-selected-window. Make sure we return the `alist' we construct. + (save-selected-window): Use them. + + * textmodes/tex-mode.el (tex-recenter-output-buffer): + Use with-selected-window. + * emacs-lisp/autoload.el (make-autoload): Add `cl-defmacro' to the forms that define macros (bug#12593). diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el index a324daa9283..062f43be57b 100644 --- a/lisp/textmodes/tex-mode.el +++ b/lisp/textmodes/tex-mode.el @@ -2565,8 +2565,7 @@ line LINE of the window, or centered if LINE is nil." (if (null tex-shell) (message "No TeX output buffer") (setq window (display-buffer tex-shell)) - (save-selected-window - (select-window window) + (with-selected-window window (bury-buffer tex-shell) (goto-char (point-max)) (recenter (if linenum diff --git a/lisp/window.el b/lisp/window.el index 41af7f9f44b..f9761366b62 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -28,6 +28,35 @@ ;;; Code: +(defun internal--before-save-selected-window () + (cons (selected-window) + ;; We save and restore all frames' selected windows, because + ;; `select-window' can change the frame-selected-window of + ;; whatever frame that window is in. Each text terminal's + ;; top-frame is preserved by putting it last in the list. + (apply #'append + (mapcar (lambda (terminal) + (let ((frames (frames-on-display-list terminal)) + (top-frame (tty-top-frame terminal)) + alist) + (if top-frame + (setq frames + (cons top-frame + (delq top-frame frames)))) + (dolist (f frames) + (push (cons f (frame-selected-window f)) + alist)) + alist)) + (terminal-list))))) + +(defun internal--after-save-selected-window (state) + (dolist (elt (cdr state)) + (and (frame-live-p (car elt)) + (window-live-p (cdr elt)) + (set-frame-selected-window (car elt) (cdr elt) 'norecord))) + (when (window-live-p (car state)) + (select-window (car state) 'norecord))) + (defmacro save-selected-window (&rest body) "Execute BODY, then select the previously selected window. The value returned is the value of the last form in BODY. @@ -44,34 +73,11 @@ its normal operation could make a different buffer current. The order of recently selected windows and the buffer list ordering are not altered by this macro (unless they are altered in BODY)." (declare (indent 0) (debug t)) - `(let ((save-selected-window-window (selected-window)) - ;; We save and restore all frames' selected windows, because - ;; `select-window' can change the frame-selected-window of - ;; whatever frame that window is in. Each text terminal's - ;; top-frame is preserved by putting it last in the list. - (save-selected-window-alist - (apply 'append - (mapcar (lambda (terminal) - (let ((frames (frames-on-display-list terminal)) - (top-frame (tty-top-frame terminal)) - alist) - (if top-frame - (setq frames - (cons top-frame - (delq top-frame frames)))) - (dolist (f frames) - (push (cons f (frame-selected-window f)) - alist)))) - (terminal-list))))) + `(let ((save-selected-window--state (internal--before-save-selected-window))) (save-current-buffer (unwind-protect (progn ,@body) - (dolist (elt save-selected-window-alist) - (and (frame-live-p (car elt)) - (window-live-p (cdr elt)) - (set-frame-selected-window (car elt) (cdr elt) 'norecord))) - (when (window-live-p save-selected-window-window) - (select-window save-selected-window-window 'norecord)))))) + (internal--after-save-selected-window save-selected-window--state))))) (defvar temp-buffer-window-setup-hook nil "Normal hook run by `with-temp-buffer-window' before buffer display. From be0d5baecc14ae4dea87e159b803e7f8b1043451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabi=C3=A1n=20Ezequiel=20Gallina?= Date: Sun, 7 Oct 2012 13:13:52 -0300 Subject: [PATCH 087/272] Enhancements to indentation. * lisp/progmodes/python.el (python-indent-context): Give priority to inside-string context. Make comments indentation markers. (python-indent-region): Do not mess with strings, unless it's the enclosing set of quotes. --- lisp/ChangeLog | 8 ++++++++ lisp/progmodes/python.el | 19 ++++++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index fe225a9ddd2..64b5d0828cd 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2012-10-07 Fabián Ezequiel Gallina + + Enhancements to indentation. + * progmodes/python.el (python-indent-context): Give priority to + inside-string context. Make comments indentation markers. + (python-indent-region): Do not mess with strings, unless it's the + enclosing set of quotes. + 2012-10-07 Stefan Monnier * window.el (internal--before-save-selected-window) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 726c0b2d542..3ac871981e4 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -676,12 +676,12 @@ START is the buffer position where the sexp starts." (goto-char (line-beginning-position)) (bobp)) 'no-indent) - ;; Inside a paren - ((setq start (python-syntax-context 'paren ppss)) - 'inside-paren) ;; Inside string ((setq start (python-syntax-context 'string ppss)) 'inside-string) + ;; Inside a paren + ((setq start (python-syntax-context 'paren ppss)) + 'inside-paren) ;; After backslash ((setq start (when (not (or (python-syntax-context 'string ppss) (python-syntax-context 'comment ppss))) @@ -710,7 +710,7 @@ START is the buffer position where the sexp starts." ;; After normal line ((setq start (save-excursion (back-to-indentation) - (python-util-forward-comment -1) + (skip-chars-backward (rx (or whitespace ?\n))) (python-nav-beginning-of-statement) (point-marker))) 'after-line) @@ -973,7 +973,16 @@ Called from a program, START and END specify the region to indent." (back-to-indentation) (setq word (current-word)) (forward-line 1) - (when word + (when (and word + ;; Don't mess with strings, unless it's the + ;; enclosing set of quotes. + (or (not (python-syntax-context 'string)) + (eq + (syntax-after + (+ (1- (point)) + (current-indentation) + (python-syntax-count-quotes (char-after) (point)))) + (string-to-syntax "|")))) (beginning-of-line) (delete-horizontal-space) (indent-to (python-indent-calculate-indentation))))) From 8ad5b73b601fba3328b7e75ecd64c8cd0eef9fac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Sun, 7 Oct 2012 18:54:43 +0200 Subject: [PATCH 088/272] Reformat last entries to fit 80 columns. --- src/ChangeLog | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 492b966a256..526043c158e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,10 +1,11 @@ 2012-10-07 Jan Djärv - * nsterm.m (ns_dumpglyphs_image): Only draw slize of image (Bug#12506). + * nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506). * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of MAC_OS_X_VERSION_10_6. - (syms_of_nsterm): Remove comment about Panther and above for ns-antialias-text. + (syms_of_nsterm): Remove comment about Panther and above for + ns-antialias-text. * nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove. (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4. (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3. @@ -12,7 +13,8 @@ * nsselect.m (ns_string_from_pasteboard): Remove check for >= MAC_OS_X_VERSION_10_4. - * nsmenu.m (fillWithWidgetValue:): Remove code for < MAC_OS_X_VERSION_10_2. + * nsmenu.m (fillWithWidgetValue:): Remove code for < + MAC_OS_X_VERSION_10_2. * nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger. @@ -21,13 +23,13 @@ * nsterm.m (ns_in_resize): Remove (Bug#12479). (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove. - (ns_clear_frame, sendEvent, windowDidResize, drawRect:): Remove ns_in_resize - check. + (ns_clear_frame, sendEvent, windowDidResize, drawRect:): Remove + ns_in_resize check. (ns_clear_frame_area): Remove resize handle code. * nsfns.m (ns_in_resize): Remove. - (x_set_icon_name, ns_set_name, ns_set_name_as_filename): Remove ns_in_resize - check. + (x_set_icon_name, ns_set_name, ns_set_name_as_filename): Remove + ns_in_resize check. 2012-10-07 Paul Eggert From fcacb55843700a851e10402c2274d71d5b522349 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Sun, 7 Oct 2012 19:47:41 +0200 Subject: [PATCH 089/272] * lisp/term/ns-win.el (ns-read-file-name): Update declaration to match nsfns.m. (ns-respond-to-change-font): Change fontsize separatly so we are sure it is set when font is acted upon. --- lisp/ChangeLog | 7 +++++++ lisp/term/ns-win.el | 7 ++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 64b5d0828cd..718a9417cef 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2012-10-07 Jan Djärv + + * term/ns-win.el (ns-read-file-name): Update declaration to match + nsfns.m. + (ns-respond-to-change-font): Change fontsize separatly so we are sure + it is set when font is acted upon. + 2012-10-07 Fabián Ezequiel Gallina Enhancements to indentation. diff --git a/lisp/term/ns-win.el b/lisp/term/ns-win.el index c229ec14dd5..ebfa35f3f8c 100644 --- a/lisp/term/ns-win.el +++ b/lisp/term/ns-win.el @@ -448,7 +448,7 @@ Lines are highlighted according to `ns-input-line'." ;; nsterm.m (declare-function ns-read-file-name "nsfns.m" - (prompt &optional dir isLoad init)) + (prompt &optional dir mustmatch init dir_only_p)) ;;;; File handling. @@ -633,8 +633,9 @@ This function has been overloaded in Nextstep.") `ns-input-fontsize' of new font." (interactive) (modify-frame-parameters (selected-frame) - (list (cons 'font ns-input-font) - (cons 'fontsize ns-input-fontsize))) + (list (cons 'fontsize ns-input-fontsize))) + (modify-frame-parameters (selected-frame) + (list (cons 'font ns-input-font))) (set-frame-font ns-input-font)) From 9322b306fc1a44411b69587995f422e7f61ab1c5 Mon Sep 17 00:00:00 2001 From: David Engster Date: Sun, 7 Oct 2012 20:12:46 +0200 Subject: [PATCH 090/272] * semantic.el (semantic-new-buffer-setup-functions): Remove setup function for `f90-mode', since the parser only exists upstream. --- lisp/cedet/ChangeLog | 5 +++++ lisp/cedet/semantic.el | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog index ff5b603833d..524eec4ad5f 100644 --- a/lisp/cedet/ChangeLog +++ b/lisp/cedet/ChangeLog @@ -1,3 +1,8 @@ +2012-10-07 David Engster + + * semantic.el (semantic-new-buffer-setup-functions): Remove setup + function for `f90-mode', since the parser only exists upstream. + 2012-10-06 Glenn Morris * semantic/complete.el (semantic-displayor-tooltip-max-tags): Doc fix. diff --git a/lisp/cedet/semantic.el b/lisp/cedet/semantic.el index 5182a38327c..e02790cbfa8 100644 --- a/lisp/cedet/semantic.el +++ b/lisp/cedet/semantic.el @@ -273,7 +273,6 @@ setup to use Semantic." (js-mode . wisent-javascript-setup-parser) (python-mode . wisent-python-default-setup) (scheme-mode . semantic-default-scheme-setup) - (f90-mode . semantic-default-f90-setup) (srecode-template-mode . srecode-template-setup-parser) (texinfo-mode . semantic-default-texi-setup) (makefile-automake-mode . semantic-default-make-setup) From 31e4cc2a189ef7b0de5057a90580d80634bd3d06 Mon Sep 17 00:00:00 2001 From: David Engster Date: Sun, 7 Oct 2012 20:19:58 +0200 Subject: [PATCH 091/272] * semantic/ede-grammar.el (project-compile-target): Fix grammar compilation after introduction of %provide statement. --- lisp/cedet/ChangeLog | 5 +++++ lisp/cedet/semantic/ede-grammar.el | 10 ++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog index 524eec4ad5f..453939e6ce1 100644 --- a/lisp/cedet/ChangeLog +++ b/lisp/cedet/ChangeLog @@ -1,3 +1,8 @@ +2012-10-07 David Engster + + * semantic/ede-grammar.el (project-compile-target): Fix grammar + compilation after introduction of %provide statement. + 2012-10-07 David Engster * semantic.el (semantic-new-buffer-setup-functions): Remove setup diff --git a/lisp/cedet/semantic/ede-grammar.el b/lisp/cedet/semantic/ede-grammar.el index c92fcabecb1..16cf0ca96a2 100644 --- a/lisp/cedet/semantic/ede-grammar.el +++ b/lisp/cedet/semantic/ede-grammar.el @@ -143,12 +143,10 @@ Lays claim to all -by.el, and -wy.el files." (utd 0)) (mapc (lambda (src) (with-current-buffer (find-file-noselect src) - (save-excursion - (semantic-grammar-create-package)) - ;; After compile, the current buffer is the compiled grammar. - ;; Save and compile it. - (save-buffer) - (let* ((src (buffer-file-name)) + (let* ((package (semantic-grammar-create-package)) + (fname (progn (string-match ".*/\\(.+\\.el\\)" package) + (match-string 1 package))) + (src (with-current-buffer fname (buffer-file-name))) (csrc (concat (file-name-sans-extension src) ".elc"))) (if (< emacs-major-version 24) ;; Does not have `byte-recompile-file' From 740877cd2346da5fa3e2085185cd51912eebf0a0 Mon Sep 17 00:00:00 2001 From: David Engster Date: Sun, 7 Oct 2012 20:23:50 +0200 Subject: [PATCH 092/272] * semantic/wisent/python.el (semantic-ctxt-current-function) (semantic-ctxt-current-assignment): New overrides, simply returning nil. The defaults do not work correctly and can send the parser in an inifinite loop (bug#12458). --- lisp/cedet/ChangeLog | 7 +++++++ lisp/cedet/semantic/wisent/python.el | 16 ++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog index 453939e6ce1..0aeeeebc562 100644 --- a/lisp/cedet/ChangeLog +++ b/lisp/cedet/ChangeLog @@ -1,3 +1,10 @@ +2012-10-07 David Engster + + * semantic/wisent/python.el (semantic-ctxt-current-function) + (semantic-ctxt-current-assignment): New overrides, simply + returning nil. The defaults do not work correctly and can send + the parser in an inifinite loop (bug#12458). + 2012-10-07 David Engster * semantic/ede-grammar.el (project-compile-target): Fix grammar diff --git a/lisp/cedet/semantic/wisent/python.el b/lisp/cedet/semantic/wisent/python.el index ea603f251bb..a0ea488f0fe 100644 --- a/lisp/cedet/semantic/wisent/python.el +++ b/lisp/cedet/semantic/wisent/python.el @@ -478,6 +478,22 @@ To be implemented for Python! For now just return nil." (let ((name (semantic-tag-name tag))) (concat (mapconcat 'identity (split-string name "\\.") "/") ".py"))) +;; Override ctxt-current-function/assignment defaults, since they do +;; not work properly with Python code, even leading to endless loops +;; (see bug #xxxxx). +(define-mode-local-override semantic-ctxt-current-function python-mode (&optional point) + "Return the current function call the cursor is in at POINT. +The function returned is the one accepting the arguments that +the cursor is currently in. It will not return function symbol if the +cursor is on the text representing that function." + nil) + +(define-mode-local-override semantic-ctxt-current-assignment python-mode (&optional point) + "Return the current assignment near the cursor at POINT. +Return a list as per `semantic-ctxt-current-symbol'. +Return nil if there is nothing relevant." + nil) + ;;; Enable Semantic in `python-mode'. ;; From 98daa89356f6523c2c6663110d0c715f018b1a8b Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 7 Oct 2012 20:33:10 +0200 Subject: [PATCH 093/272] Don't abort when ralloc.c:relinquish cannot return a heap to the system. src/ralloc.c (relinquish): If a heap is ready to be relinquished, but it still has blocs in it, don't return it to the system, instead of aborting. (Bug#12402) --- src/ChangeLog | 6 ++++++ src/ralloc.c | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 526043c158e..29e831a2eb8 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2012-10-07 Eli Zaretskii + + * ralloc.c (relinquish): If a heap is ready to be relinquished, + but it still has blocs in it, don't return it to the system, + instead of aborting. (Bug#12402) + 2012-10-07 Jan Djärv * nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506). diff --git a/src/ralloc.c b/src/ralloc.c index e4a8fe9c6da..11897411930 100644 --- a/src/ralloc.c +++ b/src/ralloc.c @@ -327,10 +327,11 @@ relinquish (void) if ((char *)last_heap->end - (char *)last_heap->bloc_start <= excess) { - /* This heap should have no blocs in it. */ + /* This heap should have no blocs in it. If it does, we + cannot return it to the system. */ if (last_heap->first_bloc != NIL_BLOC || last_heap->last_bloc != NIL_BLOC) - emacs_abort (); + return; /* Return the last heap, with its header, to the system. */ excess = (char *)last_heap->end - (char *)last_heap->start; From f27c99dc7ef8f19e7a378001d8b3d906ca907dae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabi=C3=A1n=20Ezequiel=20Gallina?= Date: Sun, 7 Oct 2012 16:37:37 -0300 Subject: [PATCH 094/272] * progmodes/python.el (inferior-python-mode) (python-shell-make-comint): Fixed initialization of local variables copied from parent buffer. --- lisp/ChangeLog | 6 ++++++ lisp/progmodes/python.el | 17 ++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 718a9417cef..d873fbbc656 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2012-10-07 Fabián Ezequiel Gallina + + * progmodes/python.el (inferior-python-mode) + (python-shell-make-comint): Fixed initialization of local + variables copied from parent buffer. + 2012-10-07 Jan Djärv * term/ns-win.el (ns-read-file-name): Update declaration to match diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 3ac871981e4..ffb2e66ca9d 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -1652,6 +1652,8 @@ uniqueness for different types of configurations." OUTPUT is a string with the contents of the buffer." (ansi-color-filter-apply output)) +(defvar python-shell--parent-buffer nil) + (define-derived-mode inferior-python-mode comint-mode "Inferior Python" "Major mode for Python inferior process. Runs a Python interpreter as a subprocess of Emacs, with Python @@ -1674,6 +1676,12 @@ initialization of the interpreter via `python-shell-setup-codes' variable. \(Type \\[describe-mode] in the process buffer for a list of commands.)" + (and python-shell--parent-buffer + (python-util-clone-local-variables python-shell--parent-buffer)) + (setq comint-prompt-regexp (format "^\\(?:%s\\|%s\\|%s\\)" + python-shell-prompt-regexp + python-shell-prompt-block-regexp + python-shell-prompt-pdb-regexp)) (set-syntax-table python-mode-syntax-table) (setq mode-line-process '(":%s")) (make-local-variable 'comint-output-filter-functions) @@ -1721,15 +1729,10 @@ killed." (let* ((cmdlist (split-string-and-unquote cmd)) (buffer (apply #'make-comint-in-buffer proc-name proc-buffer-name (car cmdlist) nil (cdr cmdlist))) - (current-buffer (current-buffer)) + (python-shell--parent-buffer (current-buffer)) (process (get-buffer-process buffer))) (with-current-buffer buffer - (inferior-python-mode) - (python-util-clone-local-variables current-buffer) - (setq comint-prompt-regexp (format "^\\(?:%s\\|%s\\|%s\\)" - python-shell-prompt-regexp - python-shell-prompt-block-regexp - python-shell-prompt-pdb-regexp))) + (inferior-python-mode)) (accept-process-output process) (and pop (pop-to-buffer buffer t)) (and internal (set-process-query-on-exit-flag process nil)))) From 795b1482a9e314cda32d62ac2988f573d359366e Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sun, 7 Oct 2012 15:48:02 -0400 Subject: [PATCH 095/272] * lisp/subr.el (read-passwd-map): Don't use `defconst'. (read-passwd): Remove a few more potential sources of leaks. Fixes: debbugs:12597 --- lisp/ChangeLog | 7 ++++++- lisp/newcomment.el | 4 ++-- lisp/subr.el | 8 ++++++-- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d873fbbc656..b0f896aa086 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,7 +1,12 @@ +2012-10-07 Stefan Monnier + + * subr.el (read-passwd-map): Don't use `defconst' (bug#12597). + (read-passwd): Remove a few more potential sources of leaks. + 2012-10-07 Fabián Ezequiel Gallina * progmodes/python.el (inferior-python-mode) - (python-shell-make-comint): Fixed initialization of local + (python-shell-make-comint): Fix initialization of local variables copied from parent buffer. 2012-10-07 Jan Djärv diff --git a/lisp/newcomment.el b/lisp/newcomment.el index a7fedf20f53..6d2eed71948 100644 --- a/lisp/newcomment.el +++ b/lisp/newcomment.el @@ -327,8 +327,8 @@ terminated by the end of line (i.e. `comment-end' is empty)." ;;;###autoload (defun comment-normalize-vars (&optional noerror) "Check and setup the variables needed by other commenting functions. -Functions autoloaded from newcomment.el, being entry points, should call -this function before any other, so the rest of the code can assume that +Any command calling functions from newcomment.el, being entry points, should +call this function before any other, so the rest of the code can assume that the variables are properly set." (unless (and (not comment-start) noerror) (unless comment-start diff --git a/lisp/subr.el b/lisp/subr.el index e438a860cbc..ec2d16e6529 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -2143,7 +2143,9 @@ any other non-digit terminates the character code and is then used as input.")) (setq first nil)) code)) -(defconst read-passwd-map +(defvar read-passwd-map + ;; BEWARE: `defconst' would purecopy it, breaking the sharing with + ;; minibuffer-local-map along the way! (let ((map (make-sparse-keymap))) (set-keymap-parent map minibuffer-local-map) (define-key map "\C-u" #'delete-minibuffer-contents) ;bug#12570 @@ -2186,7 +2188,9 @@ by doing (clear-string STRING)." (lambda () (setq minibuf (current-buffer)) ;; Turn off electricity. - (set (make-local-variable 'post-self-insert-hook) nil) + (setq-local post-self-insert-hook nil) + (setq-local buffer-undo-list t) + (setq-local select-active-regions nil) (use-local-map read-passwd-map) (add-hook 'after-change-functions hide-chars-fun nil 'local)) (unwind-protect From 5acd2b3ece740bbe487e9474f30665317db6f190 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sun, 7 Oct 2012 20:12:26 -0400 Subject: [PATCH 096/272] * lisp/comint.el (comint-preinput-scroll-to-bottom): Preserve the frame-selected-windows. --- lisp/ChangeLog | 5 +++++ lisp/comint.el | 9 +++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b0f896aa086..eaeca11ca09 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-08 Stefan Monnier + + * comint.el (comint-preinput-scroll-to-bottom): Preserve the + frame-selected-windows. + 2012-10-07 Stefan Monnier * subr.el (read-passwd-map): Don't use `defconst' (bug#12597). diff --git a/lisp/comint.el b/lisp/comint.el index 080b12e0cdf..cff9afee0df 100644 --- a/lisp/comint.el +++ b/lisp/comint.el @@ -2088,8 +2088,7 @@ This function should be a pre-command hook." (if (and comint-scroll-to-bottom-on-input (memq this-command '(self-insert-command comint-magic-space yank hilit-yank))) - (let* ((selected (selected-window)) - (current (current-buffer)) + (let* ((current (current-buffer)) (process (get-buffer-process current)) (scroll comint-scroll-to-bottom-on-input)) (if (and process (< (point) (process-mark process))) @@ -2099,10 +2098,8 @@ This function should be a pre-command hook." (lambda (window) (if (and (eq (window-buffer window) current) (or (eq scroll t) (eq scroll 'all))) - (progn - (select-window window) - (goto-char (point-max)) - (select-window selected)))) + (with-selected-window window + (goto-char (point-max))))) nil t)))))) (defvar follow-mode) From 8dbce54cc73d16375b8d233da7271054eb4cda34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabi=C3=A1n=20Ezequiel=20Gallina?= Date: Mon, 8 Oct 2012 02:19:15 -0300 Subject: [PATCH 097/272] Enhancements on forward-sexp movement. * progmodes/python.el (python-nav-beginning-of-statement) (python-nav-end-of-statement): Return point-marker. (python-nav-forward-sexp): lisp-like forward-sexp behavior. (python-info-current-symbol) (python-info-statement-starts-block-p): Rename from python-info-beginning-of-block-p. (python-info-statement-ends-block-p): Rename from python-info-end-of-block-p. (python-info-beginning-of-statement-p) (python-info-end-of-statement-p) (python-info-beginning-of-block-p, python-info-end-of-block-p): New functions. --- lisp/ChangeLog | 16 +++ lisp/progmodes/python.el | 276 +++++++++++++++++++-------------------- 2 files changed, 147 insertions(+), 145 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index eaeca11ca09..4f21112f3af 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,19 @@ +2012-10-08 Fabián Ezequiel Gallina + + Enhancements on forward-sexp movement. + * progmodes/python.el (python-nav-beginning-of-statement) + (python-nav-end-of-statement): Return point-marker. + (python-nav-forward-sexp): lisp-like forward-sexp behavior. + (python-info-current-symbol) + (python-info-statement-starts-block-p): Rename from + python-info-beginning-of-block-p. + (python-info-statement-ends-block-p): Rename from + python-info-end-of-block-p. + (python-info-beginning-of-statement-p) + (python-info-end-of-statement-p) + (python-info-beginning-of-block-p, python-info-end-of-block-p): + New functions. + 2012-10-08 Stefan Monnier * comint.el (comint-preinput-scroll-to-bottom): Preserve the diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index ffb2e66ca9d..6b0dc954ca7 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -1169,7 +1169,8 @@ Returns nil if point is not in a def or class." (python-info-line-ends-backslash-p)) (python-syntax-context 'string) (python-syntax-context 'paren)) - (forward-line -1))))) + (forward-line -1)))) + (point-marker)) (defun python-nav-end-of-statement () "Move to end of current statement." @@ -1180,7 +1181,8 @@ Returns nil if point is not in a def or class." (python-info-line-ends-backslash-p) (python-syntax-context 'string) (python-syntax-context 'paren)) - (forward-line 1))))) + (forward-line 1)))) + (point-marker)) (defun python-nav-backward-statement (&optional arg) "Move backward to previous statement. @@ -1295,151 +1297,104 @@ When ARG > 0 move forward, else if ARG is < 0." (while (and (funcall search-fn paren-regexp nil t) (python-syntax-context 'paren))))))) -(defun python-nav--forward-sexp () - "Move to forward sexp." - (case (python-syntax-context-type) - (string - ;; Inside of a string, get out of it. - (while (and (re-search-forward "[\"']" nil t) - (python-syntax-context 'string)))) - (comment - ;; Inside of a comment, just move forward. - (python-util-forward-comment)) - (paren - (python-nav-lisp-forward-sexp-safe 1)) - (t - (if (and (not (eobp)) - (= (syntax-class (syntax-after (point))) 4)) - ;; Looking an open-paren - (python-nav-lisp-forward-sexp-safe 1) - (let ((block-starting-pos - (save-excursion (python-nav-beginning-of-block))) - (block-ending-pos - (save-excursion (python-nav-end-of-block))) - (next-block-starting-pos - (save-excursion (python-nav-forward-block)))) - (cond - ((not block-starting-pos) - ;; Not inside a block, move to closest one. - (and next-block-starting-pos - (goto-char next-block-starting-pos))) - ((= (point) block-starting-pos) - ;; Point is at beginning of block - (if (and next-block-starting-pos - (< next-block-starting-pos block-ending-pos)) - ;; Beginning of next block is closer than current's - ;; end, move to it. - (goto-char next-block-starting-pos) - (goto-char block-ending-pos))) - ((= block-ending-pos (point)) - ;; Point is at end of current block - (let ((parent-block-end-pos - (save-excursion - (python-util-forward-comment) - (python-nav-beginning-of-block) - (python-nav-end-of-block)))) - (if (and parent-block-end-pos - (or (not next-block-starting-pos) - (> next-block-starting-pos parent-block-end-pos))) - ;; If the parent block ends before next block - ;; starts move to it. - (goto-char parent-block-end-pos) - (and next-block-starting-pos - (goto-char next-block-starting-pos))))) - (t (python-nav-end-of-block)))))))) +(defun python-nav--forward-sexp (&optional dir) + "Move to forward sexp. +With positive Optional argument DIR direction move forward, else +backwards." + (setq dir (or dir 1)) + (unless (= dir 0) + (let* ((forward-p (if (> dir 0) + (and (setq dir 1) t) + (and (setq dir -1) nil))) + (re-search-fn (if forward-p + 're-search-forward + 're-search-backward)) + (context-type (python-syntax-context-type))) + (cond + ((eq context-type 'string) + ;; Inside of a string, get out of it. + (while (and (funcall re-search-fn "[\"']" nil t) + (python-syntax-context 'string)))) + ((eq context-type 'comment) + ;; Inside of a comment, just move forward. + (python-util-forward-comment dir)) + ((or (eq context-type 'paren) + (and forward-p (looking-at (python-rx open-paren))) + (and (not forward-p) + (eq (syntax-class (syntax-after (1- (point)))) + (car (string-to-syntax ")"))))) + ;; Inside a paren or looking at it, lisp knows what to do. + (python-nav-lisp-forward-sexp-safe dir)) + (t + ;; This part handles the lispy feel of + ;; `python-nav-forward-sexp'. Knowing everything about the + ;; current context and the context of the next sexp tries to + ;; follow the lisp sexp motion commands in a symmetric manner. + (let* ((context + (cond + ((python-info-beginning-of-block-p) 'block-start) + ((python-info-end-of-block-p) 'block-end) + ((python-info-beginning-of-statement-p) 'statement-start) + ((python-info-end-of-statement-p) 'statement-end))) + (next-sexp-pos + (save-excursion + (python-nav-lisp-forward-sexp-safe dir) + (point))) + (next-sexp-context + (save-excursion + (goto-char next-sexp-pos) + (cond + ((python-info-beginning-of-block-p) 'block-start) + ((python-info-end-of-block-p) 'block-end) + ((python-info-beginning-of-statement-p) 'statement-start) + ((python-info-end-of-statement-p) 'statement-end) + ((python-info-statement-starts-block-p) 'starts-block) + ((python-info-statement-ends-block-p) 'ends-block))))) + (if forward-p + (cond ((and (not (eobp)) + (python-info-current-line-empty-p)) + (python-util-forward-comment dir) + (python-nav--forward-sexp dir)) + ((eq context 'block-start) + (python-nav-end-of-block)) + ((eq context 'statement-start) + (python-nav-end-of-statement)) + ((and (memq context '(statement-end block-end)) + (eq next-sexp-context 'ends-block)) + (goto-char next-sexp-pos) + (python-nav-end-of-block)) + ((and (memq context '(statement-end block-end)) + (eq next-sexp-context 'starts-block)) + (goto-char next-sexp-pos) + (python-nav-end-of-block)) + ((memq context '(statement-end block-end)) + (goto-char next-sexp-pos) + (python-nav-end-of-statement)) + (t (goto-char next-sexp-pos))) + (cond ((and (not (bobp)) + (python-info-current-line-empty-p)) + (python-util-forward-comment dir) + (python-nav--forward-sexp dir)) + ((eq context 'block-end) + (python-nav-beginning-of-block)) + ((eq context 'statement-end) + (python-nav-beginning-of-statement)) + ((and (memq context '(statement-start block-start)) + (eq next-sexp-context 'starts-block)) + (goto-char next-sexp-pos) + (python-nav-beginning-of-block)) + ((and (memq context '(statement-start block-start)) + (eq next-sexp-context 'ends-block)) + (goto-char next-sexp-pos) + (python-nav-beginning-of-block)) + ((memq context '(statement-start block-start)) + (goto-char next-sexp-pos) + (python-nav-beginning-of-statement)) + (t (goto-char next-sexp-pos)))))))))) (defun python-nav--backward-sexp () "Move to backward sexp." - (case (python-syntax-context-type) - (string - ;; Inside of a string, get out of it. - (while (and (re-search-backward "[\"']" nil t) - (python-syntax-context 'string)))) - (comment - ;; Inside of a comment, just move backward. - (python-util-forward-comment -1)) - (paren - ;; Handle parens like we are lisp. - (python-nav-lisp-forward-sexp-safe -1)) - (t - (let* ((block-starting-pos - (save-excursion (python-nav-beginning-of-block))) - (block-ending-pos - (save-excursion (python-nav-end-of-block))) - (prev-block-ending-pos - (save-excursion (when (python-nav-backward-block) - (python-nav-end-of-block)))) - (prev-block-parent-ending-pos - (save-excursion - (when prev-block-ending-pos - (goto-char prev-block-ending-pos) - (python-util-forward-comment) - (python-nav-beginning-of-block) - (python-nav-end-of-block))))) - (if (and (not (bobp)) - (= (syntax-class (syntax-after (1- (point)))) 5)) - ;; Char before point is a paren closing char, handle it - ;; like we are lisp. - (python-nav-lisp-forward-sexp-safe -1) - (cond - ((not block-ending-pos) - ;; Not in and ending pos, move to end of previous block. - (and (python-nav-backward-block) - (python-nav-end-of-block))) - ((= (point) block-ending-pos) - ;; In ending pos, we need to search backwards for the - ;; closest point looking the list of candidates from here. - (let ((candidates)) - (dolist (name - '(prev-block-parent-ending-pos - prev-block-ending-pos - block-ending-pos - block-starting-pos)) - (when (and (symbol-value name) - (< (symbol-value name) (point))) - (add-to-list 'candidates (symbol-value name)))) - (goto-char (apply 'max candidates)))) - ((> (point) block-ending-pos) - ;; After an ending position, move to it. - (goto-char block-ending-pos)) - ((= (point) block-starting-pos) - ;; On a block starting position. - (if (not (> (point) (or prev-block-ending-pos (point)))) - ;; Point is after the end position of the block that - ;; wraps the current one, just move a block backward. - (python-nav-backward-block) - ;; If we got here we are facing a case like this one: - ;; - ;; try: - ;; return here() - ;; except Exception as e: - ;; - ;; Where point is on the "except" and must move to the - ;; end of "here()". - (goto-char prev-block-ending-pos) - (let ((parent-block-ending-pos - (save-excursion - (python-nav-forward-sexp) - (and (not (looking-at (python-rx block-start))) - (point))))) - (when (and parent-block-ending-pos - (> parent-block-ending-pos prev-block-ending-pos)) - ;; If we got here we are facing a case like this one: - ;; - ;; except ImportError: - ;; if predicate(): - ;; processing() - ;; here() - ;; except AttributeError: - ;; - ;; Where point is on the "except" and must move to - ;; the end of "here()". Without this extra step we'd - ;; just get to the end of processing(). - (goto-char parent-block-ending-pos))))) - (t - (if (and prev-block-ending-pos (< prev-block-ending-pos (point))) - (goto-char prev-block-ending-pos) - (python-nav-beginning-of-block))))))))) + (python-nav--forward-sexp -1)) (defun python-nav-forward-sexp (&optional arg) "Move forward across one block of code. @@ -2891,12 +2846,43 @@ parent defun name." ".") ".") name))))))) -(defsubst python-info-beginning-of-block-statement-p () +(defun python-info-statement-starts-block-p () "Return non-nil if current statement opens a block." (save-excursion (python-nav-beginning-of-statement) (looking-at (python-rx block-start)))) +(defun python-info-statement-ends-block-p () + "Return non-nil if point is at end of block." + (let ((end-of-block-pos (save-excursion + (python-nav-end-of-block))) + (end-of-statement-pos (save-excursion + (python-nav-end-of-statement)))) + (and end-of-block-pos end-of-statement-pos + (= end-of-block-pos end-of-statement-pos)))) + +(defun python-info-beginning-of-statement-p () + "Return non-nil if point is at beginning of statement." + (= (point) (save-excursion + (python-nav-beginning-of-statement) + (point)))) + +(defun python-info-end-of-statement-p () + "Return non-nil if point is at end of statement." + (= (point) (save-excursion + (python-nav-end-of-statement) + (point)))) + +(defun python-info-beginning-of-block-p () + "Return non-nil if point is at beginning of block." + (and (python-info-beginning-of-statement-p) + (python-info-statement-starts-block-p))) + +(defun python-info-end-of-block-p () + "Return non-nil if point is at end of block." + (and (python-info-end-of-statement-p) + (python-info-statement-ends-block-p))) + (defun python-info-closing-block () "Return the point of the block the current line closes." (let ((closing-word (save-excursion From 6a0886306eeabccd66330ded9001602194ae5fd3 Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Mon, 8 Oct 2012 08:42:29 +0200 Subject: [PATCH 098/272] In edebug-pop-to-buffer don't try to split the minibuffer window (Bug#10851). * emacs-lisp/edebug.el (edebug-pop-to-buffer): Don't try to split the minibuffer window (Bug#10851). --- lisp/ChangeLog | 5 +++++ lisp/emacs-lisp/edebug.el | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4f21112f3af..5ced15cd58f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-08 Martin Rudalics + + * emacs-lisp/edebug.el (edebug-pop-to-buffer): Don't try to split + the minibuffer window (Bug#10851). + 2012-10-08 Fabián Ezequiel Gallina Enhancements on forward-sexp movement. diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el index 18d1661e985..483ed64de20 100644 --- a/lisp/emacs-lisp/edebug.el +++ b/lisp/emacs-lisp/edebug.el @@ -371,7 +371,7 @@ Return the result of the last expression in BODY." ((get-buffer-window buffer 0)) ((one-window-p 'nomini) ;; When there's one window only, split it. - (split-window)) + (split-window (minibuffer-selected-window))) ((let ((trace-window (get-buffer-window edebug-trace-buffer))) (catch 'found (dolist (elt (window-list nil 'nomini)) @@ -382,7 +382,7 @@ Return the result of the last expression in BODY." (throw 'found elt)))))) ;; All windows are dedicated or show `edebug-trace-buffer', split ;; selected one. - (t (split-window)))) + (t (split-window (minibuffer-selected-window))))) (set-window-buffer window buffer) (select-window window) (set-window-hscroll window 0)) ;; should this be?? From e499e60744fbb692201564743fc9859fa63a1196 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sun, 7 Oct 2012 23:58:36 -0700 Subject: [PATCH 099/272] Fix ChangeLog typo --- lisp/cedet/ChangeLog | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog index 0aeeeebc562..ea102dddf2f 100644 --- a/lisp/cedet/ChangeLog +++ b/lisp/cedet/ChangeLog @@ -3,15 +3,11 @@ * semantic/wisent/python.el (semantic-ctxt-current-function) (semantic-ctxt-current-assignment): New overrides, simply returning nil. The defaults do not work correctly and can send - the parser in an inifinite loop (bug#12458). - -2012-10-07 David Engster + the parser in an infinite loop (bug#12458). * semantic/ede-grammar.el (project-compile-target): Fix grammar compilation after introduction of %provide statement. -2012-10-07 David Engster - * semantic.el (semantic-new-buffer-setup-functions): Remove setup function for `f90-mode', since the parser only exists upstream. From b859a3833a3eaa13b81ffba18812c38ab023de9f Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 8 Oct 2012 00:00:24 -0700 Subject: [PATCH 100/272] Document cal-html-holidays * doc/emacs/calendar.texi (Writing Calendar Files): Mention cal-html-holidays. * etc/NEWS: Related edit. --- doc/emacs/ChangeLog | 4 ++++ doc/emacs/calendar.texi | 11 ++++++----- etc/NEWS | 3 ++- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 067574b9a0d..4938ae193a8 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,7 @@ +2012-10-08 Glenn Morris + + * calendar.texi (Writing Calendar Files): Mention cal-html-holidays. + 2012-10-06 Glenn Morris * calendar.texi (Writing Calendar Files): Tweak week descriptions. diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi index d46e26cddcf..d1ddd0dce90 100644 --- a/doc/emacs/calendar.texi +++ b/doc/emacs/calendar.texi @@ -349,11 +349,12 @@ calendar deletes or iconifies that frame depending on the value of @cindex calendar and HTML The Calendar HTML commands produce files of HTML code that contain -calendar and diary entries. Each file applies to one month, and has a -name of the format @file{@var{yyyy}-@var{mm}.html}, where @var{yyyy} and -@var{mm} are the four-digit year and two-digit month, respectively. The -variable @code{cal-html-directory} specifies the default output -directory for the HTML files. +calendar, holiday, and diary entries. Each file applies to one month, +and has a name of the format @file{@var{yyyy}-@var{mm}.html}, where +@var{yyyy} and @var{mm} are the four-digit year and two-digit month, +respectively. The variable @code{cal-html-directory} specifies the +default output directory for the HTML files. To prevent holidays +from being shown, customize @code{cal-html-holidays}. @vindex cal-html-css-default Diary entries enclosed by @code{<} and @code{>} are interpreted as diff --git a/etc/NEWS b/etc/NEWS index 1a7eb82967d..cd8be6fe2e8 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -286,8 +286,9 @@ See the variable `calendar-month-header'. +++ *** New LaTeX calendar style, produced by `cal-tex-cursor-week2-summary'. ++++ *** The calendars produced by cal-html include holidays. -Customize cal-html-holidays to change this. +Customize `cal-html-holidays' to change this. ** CL From 3ab44929c89416860d7569d2356bead6204b67d5 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 8 Oct 2012 00:05:21 -0700 Subject: [PATCH 101/272] * lisp/calendar/calendar.el (calendar-intermonth-header): Doc fix. --- lisp/ChangeLog | 4 ++++ lisp/calendar/calendar.el | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5ced15cd58f..471d1e506f1 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-10-08 Glenn Morris + + * calendar/calendar.el (calendar-intermonth-header): Doc fix. + 2012-10-08 Martin Rudalics * emacs-lisp/edebug.el (edebug-pop-to-buffer): Don't try to split diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el index 96a5725ef69..02d1e3b54e9 100644 --- a/lisp/calendar/calendar.el +++ b/lisp/calendar/calendar.el @@ -511,7 +511,7 @@ Must be at least one less than `calendar-column-width'." :version "23.1") (defcustom calendar-intermonth-header nil - "Header text display in the space to the left of each calendar month. + "Header text to display in the space to the left of each calendar month. See `calendar-intermonth-text'." :group 'calendar :initialize 'custom-initialize-default From cad4f2902ed577f2bbf9d13b0d4a81d236031f4e Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 8 Oct 2012 00:06:36 -0700 Subject: [PATCH 102/272] Document calendar-month-header * doc/emacs/cal-xtra.texi (Calendar Customizing): Mention calendar-month-header. * etc/NEWS: Related edit. --- doc/emacs/ChangeLog | 2 ++ doc/emacs/cal-xtra.texi | 5 +++++ etc/NEWS | 1 + 3 files changed, 8 insertions(+) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 4938ae193a8..87ff64b576d 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,5 +1,7 @@ 2012-10-08 Glenn Morris + * cal-xtra.texi (Calendar Customizing): Mention calendar-month-header. + * calendar.texi (Writing Calendar Files): Mention cal-html-holidays. 2012-10-06 Glenn Morris diff --git a/doc/emacs/cal-xtra.texi b/doc/emacs/cal-xtra.texi index b29a8526625..09beabc40cb 100644 --- a/doc/emacs/cal-xtra.texi +++ b/doc/emacs/cal-xtra.texi @@ -41,6 +41,11 @@ To display text @emph{between} the months, for example week numbers, customize the variables @code{calendar-intermonth-header} and @code{calendar-intermonth-text} as described in their documentation. +@vindex calendar-month-header + The variable @code{calendar-month-header} controls the text that +appears above each month in the calendar. By default, it shows the +month and year. + @vindex calendar-holiday-marker @vindex diary-entry-marker @vindex calendar-today-marker diff --git a/etc/NEWS b/etc/NEWS index cd8be6fe2e8..c2ebfaad231 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -280,6 +280,7 @@ Use `Buffer-menu-name-width' and `Buffer-menu-size-width' instead. ** Calendar ++++ *** You can customize the header text that appears above each calendar month. See the variable `calendar-month-header'. From d71a6517cbea35ce30f53810e51b8517a7df3605 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 8 Oct 2012 00:10:21 -0700 Subject: [PATCH 103/272] Trivial NEWS copyedits --- etc/NEWS | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index c2ebfaad231..be0f50d9e46 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -23,18 +23,36 @@ so we will look at it and add it to the manual. * Installation Changes in Emacs 24.3 +--- +** The default toolkit has been changed to Gtk+ version 3. +If you don't pass --with-x-toolkit to configure or if you pass +--with-x-toolkit=gtk or --with-x-toolkit=yes, configure will try to build +with Gtk+ version 3, and if that fails, try Gtk+ version 2. +You can explicitly require a specific version by passing +--with-x-toolkit=gtk2 or --with-x-toolkit=gtk3 to configure. + +--- ** New configure option '--without-all' to disable additional features. This disables most of the features that are normally enabled by default. +--- ** New configure option '--enable-link-time-optimization' to utilize an appropriate feature provided by GCC since version 4.5.0. +--- ** New configure option '--enable-gcc-warnings', intended for developers. If building with GCC, this enables compile-time checks that warn about possibly-questionable C code. On a recent GNU system there should be no warnings; on older and on non-GNU systems the generated warnings may be useful. +--- +** The configuration option '--enable-use-lisp-union-type' has been +renamed to '--enable-check-lisp-object-type', as the resulting +Lisp_Object type no longer uses a union to implement the compile time +check that this option enables. + +--- ** The configure option '--disable-maintainer-mode' has been removed, as it was confusingly-named and rarely useful. @@ -60,19 +78,6 @@ directories to the search path. You must add them yourself if you want them. (from the bin and libexec directories, respectively). The former is no longer relevant, the latter is replaced by lisp (in vc-sccs.el). -** The configuration option '--enable-use-lisp-union-type' has been -renamed to '--enable-check-lisp-object-type', as the resulting -Lisp_Object type no longer uses a union to implement the compile time -check that this option enables. - ---- -** The default toolkit has been changed to Gtk+ version 3. -If you don't pass --with-x-toolkit to configure or if you pass ---with-x-toolkit=gtk or --with-x-toolkit=yes, configure will try to build -with Gtk+ version 3, and if that fails, try Gtk+ version 2. -You can explicitly require a specific version by passing ---with-x-toolkit=gtk2 or --with-x-toolkit=gtk3 to configure. - * Startup Changes in Emacs 24.3 From 57f1dee445d407ac413378654d7289ab92fdf2d1 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 8 Oct 2012 00:18:02 -0700 Subject: [PATCH 104/272] * lisp/cus-start.el (message-log-max): Set :version. * etc/NEWS: No need to mention a simple customization option whose default has changed, since the :version tag does that. --- etc/NEWS | 2 -- lisp/ChangeLog | 2 ++ lisp/cus-start.el | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index be0f50d9e46..055caeed10d 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -165,8 +165,6 @@ On encountering a fatal error, Emacs now outputs a textual description of the fatal signal, and a short backtrace on platforms like glibc that support backtraces. -** `message-log-max' now defaults to 1000, not 100. - --- ** If your Emacs was built from a bzr checkout, the new variable `emacs-bzr-version' contains information about the bzr revision used. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 471d1e506f1..036205885ff 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,7 @@ 2012-10-08 Glenn Morris + * cus-start.el (message-log-max): Set :version. + * calendar/calendar.el (calendar-intermonth-header): Doc fix. 2012-10-08 Martin Rudalics diff --git a/lisp/cus-start.el b/lisp/cus-start.el index 28c1d3e3026..579551c9a91 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el @@ -452,7 +452,8 @@ since it could result in memory overflow and make Emacs crash." (message-log-max debug (choice (const :tag "Disable" nil) (integer :menu-tag "lines" :format "%v") - (other :tag "Unlimited" t))) + (other :tag "Unlimited" t)) + "24.3") (unibyte-display-via-language-environment mule boolean) (blink-cursor-alist cursor alist "22.1") (overline-margin display integer "22.1") From 63820c5c02ecdf5adf099d4a01fb94aa6d2ebae7 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 8 Oct 2012 00:23:49 -0700 Subject: [PATCH 105/272] Trivial NEWS copyedits --- etc/NEWS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 055caeed10d..e43775b47dd 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -708,7 +708,7 @@ are deprecated and will be removed eventually. *** `compile-internal' *** `mode-line-inverse-video' *** `cvs-commit-buffer-require-final-newline' -(use `'log-edit-require-final-newline'instead) +(use `log-edit-require-final-newline' instead) *** `cvs-changelog-full-paragraphs' (use `log-edit-changelog-full-paragraphs' instead) *** `cvs-diff-ignore-marks', `cvs-diff-buffer-name' @@ -837,7 +837,7 @@ macro-calls to be left for later expansion (as before), but will also result in a warning ("Eager macro-expansion skipped due to cycle") describing the cycle. -** Misc new functions: +** Miscellaneous new functions: *** `autoloadp' *** `autoload-do-load'. From 97fbed87597d0b1b93159095170fb296b307d6b0 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 8 Oct 2012 00:47:23 -0700 Subject: [PATCH 106/272] Fix for url-https.el neing merged into url-http.el * lisp/url/url-methods.el (url-scheme-get-property): url-https.el was merged into url-http.el, so load the latter for https. Fixes: debbugs:12599 --- lisp/url/ChangeLog | 5 +++++ lisp/url/url-methods.el | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index 01248a91cf2..c7fc4fcbfe1 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog @@ -1,3 +1,8 @@ +2012-10-08 Glenn Morris + + * url-methods.el (url-scheme-get-property): url-https.el was + merged into url-http.el, so load the latter for https. (Bug#12599) + 2012-10-02 Stefan Monnier * url-http.el (url-http-user-agent-string): Leak less info. diff --git a/lisp/url/url-methods.el b/lisp/url/url-methods.el index 26fe72014f7..3168d5aab3f 100644 --- a/lisp/url/url-methods.el +++ b/lisp/url/url-methods.el @@ -118,7 +118,9 @@ it has not already been loaded." (let* ((stub (concat "url-" scheme)) (loader (intern stub))) (condition-case () - (require loader) + ;; url-https.el was merged into url-http because of 8+3 + ;; filename limitations, so we have to do this dance. + (require (if (equal "https" scheme) 'url-http loader)) (error nil)) (if (fboundp loader) (progn From e08348a0e6d440d5c2764c101de0a95fc12168c7 Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Sun, 7 Oct 2012 23:58:40 -0800 Subject: [PATCH 107/272] Changelog entries for cygw32 --- ChangeLog | 9 +++ lib-src/ChangeLog | 13 +++++ lisp/ChangeLog | 67 ++++++++++++++++++++++ src/ChangeLog | 138 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 227 insertions(+) diff --git a/ChangeLog b/ChangeLog index 1a7b9f61828..c2b61b24e66 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2012-10-08 Daniel Colascione + + * configure.ac: Add --with-w32 as a window system option. Limit + it to Cygwin for now. Integrate w32 into the refactored window + system configuration and set TERM_HEADER to w32term.h when w32 is + configured. + + (CYGWIN_OBJ): Add cygw32.o. + 2012-10-07 Jan Djärv * configure.ac: Check that OSX is 10.4 or newer. diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 2a8ac9b8131..a4234693a82 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,16 @@ +2012-10-08 Daniel Colascione + + * emacsclient.c: Include windows.h when HAVE_NTGUI. + (alt_display): New variable. We send the display held by this + variable when the primary display is either unsupported or not + present. + (longopts): Allow display everywhere. + (w32_set_user_model_id): Move lower in file, inside HAVE_NTGUI + section. + (decode_options): Use alt_display. Explain why. + (main): Retry connection with alt_display if connection with main + display fails. + 2012-10-01 Fabrice Popineau * make-docfile.c (write_globals): Special-case diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b0f896aa086..a4a1d0eeb2b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,70 @@ +2012-10-08 Daniel Colascione + + * battery.el (battery-status-function): Check for + w32-battery-status itself, not system-time windows-nt. + + * frame.el: Require cl-lib. + (display-format-alist): New variable mapping frame types to + functions that initialize them. + (window-system-for-display): New function: interprets + display-format-alist. + (make-frame-on-display): Remove existing display-selection logic + and just forward to make-frame, which will now DTRT. + (make-frame): Restructure to use window-system-for-display to + figure out how to create a frame on a given display. + (display-mouse-p): Look for frame-type w32, not a particular + system-type. + + * loadup.el: Load w32 lisp code when we have the w32 feature. + + * mouse.el (mouse-yank-primarY): Look for frame-type w32, not + system-type windows-nt. + + * server.el (server-create-window-system-frame): Look for window + type. + (server-proces-filter): Only force a window system when windows-nt + _and_ w32. Explain why. + + * simple.el (normal-erase-is-backspace-mode): Add w32 to the list + of window systems we configure for the mode. + + * startup.el (command-line): Mark window system is initialized + after we've done it. + + * common-win.el (x-select-text): Look for w32, not windows-nt. + + * ns-win.el: Require cl-lib. Add ourselves to + display-format-alist. + (ns-initialize-window-system): Assert we're not initialized twice. + + * w32-win.el: Enable lexical binding; require cl-lib; add + ourselves to display-format-alist. + (w32-handle-dropped-file): Convert incoming dropped files from + Windows paths to Cygwin ones before passing them on to the rest of + Emacs. + (w32-drag-n-drop): New paramter new-frame. Simplify logic. + (w32-initialize-window-system): Assert we're not initialized twice. + + * x-win.el: Require cl-lib; add ourselves to display-format-alist. + (x-initialize-window-system): Assert we're not initialized twice. + + * w32-common-fns.el: New File. + (w32-version, w32-using-nt, w32-get-clipboard-data) + (w32-set-clipboard-data, x-set-selection, x-get-selection) + (w32-charset-info-alist, x-last-selected, text) + (x-get-selection-value, x-selection-value): Move here. + + * w32-fns.el: Require w32-common-fns. + (w32-version, w32-using-nt, w32-get-clipboard-data) + (w32-set-clipboard-data, x-set-selection, x-get-selection) + (w32-charset-info-alist, x-last-selected, text) + (x-get-selection-value, x-selection-value): Move to + w32-common-fns. + + * w32-vars.el: + (w32-allow-system-shell, w32-system-shells): Define only in + non-cygwin case. + 2012-10-07 Stefan Monnier * subr.el (read-passwd-map): Don't use `defconst' (bug#12597). diff --git a/src/ChangeLog b/src/ChangeLog index 29e831a2eb8..2a312199512 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,141 @@ +2012-10-08 Daniel Colascione + + * xfaces.c, xdisp.c, window.c, w32xfns.c, w32term.h, w32term.c, + w32select.h w32select.c, w32proc.c, w32menu.c, w32inevt.c, + w32help.c, w32font.c, w32font.c, w32fns.c, w32console.c, w32.h, + w32.c, unexw32.c, termhooks.h, process.c, menu.c, keyboard.h, + keyboard.c, image.c, frame.h, frame.c, fontset.c, font.h, font.c, + emacs.c, dispextern.h, cygw32.h, cygw32.c, conf_post.h, + Makefile.in: use HAVE_NTGUI for W32 GUI and WINDOWSNT for the + operating system. defined(HAVE_NTGUI) && !defined(WINDOWSNT) is + now a supported configuration. + + * Makefile.in: consolidate image variables into LIBIMAGE; add + W32_OBJ and W32_LIBS. Compile new files. + + * conf_post.h: + (_DebPrint) declare tracing facility for W32 debugging. We need + to unify tracing later. + + (NTGUI_UNICODE) Define when compiling for Cygwin to allow the + unconditional use of W32 Unicode functions. Cygwin runs only on + 100% Unicode operating systems. + + * cygw32.c: New file. Define Cygwin-specific facilities. + (Fcygwin_convert_path_to_windows) + (Fcygwin_convert_path_from_windows): New user functions for + accessing Cygwin path-munging routines. + + * cygw32.h: New file. + (WCSDATA, to_unicode, from_unicode): Define facilities for storing + UTF-16LE strings temporarily inside non-Lisp-visible string + objects. + + (w32_strerror): Just what it says on the tin. + + * emacs.c: Make the NS fork-then-exec code for daemon-launching + also run for Cygwin; both systems have the same problem with using + GUI facilities in a forked child. Also call syms_of_cygw32, + syms_of_w32select in correct places. + + (DAEMON_MUST_EXEC): new macro defined to signal that a platform + needs fork-then-exec for daemon launching. + + * font.h: Include frame.h. + + * image.c: Use the image library cache machinery only when we're + compiling for native WINDOWSNT; Cygwin can use shared libraries + like any other Unixlike system. + + * keyboard.c: Clarify a comment regarding the input loop. + + * menu.c: When NTGUI_UNICODE is defined, use Unicode menu + functions directly instead of trying to detect at runtime that our + host operating system supports them. We make this change for two + reasons: Cygwin lacks support for the multibyte character + conversion functions used by the legacy menu code, and Cygwin + never needs to rely on non-Unicode APIs. + + * unexw32.c (hinst): Declare extern. + + * w32.c: Change header order; + (w32_strerror): Move to w32fns.c because we need it for + non-WINDOWSNT builds. + + * w32.h: Add #error macro to make sure we don't include w32.h for + Cygwin builds. Remove w32select declarations. + + * w32console.c (w32_sys_ring_bell, Fset_message_beep): Move to + w32fns.c. w32console.c is WINDOWSNT-only. + + * w32fns.c: Include cygw32.h or w32.h depending on CYGWIN; more + NTGUI_UNICODE tweaks. (See above.) Change _snprintf to the more + POSIXy alternative. + (faked_key, sysinfo_cache, osinfo_cahce, syspage_mask) + (w32_major_version, w32_minor_version, w32_build_number) + (os_subtype, sound_type): Define here + (w32_defined_color): Make color parameter const for consistency + with other _defined_color functions. + (w32_createwindow): Unconditionally call w32_init_class instead of + doing so only when hprevinst is non-NULL. Plumbing hprevinst + through the code is complex and unnecessary because class + registration is practically free. + (w32_name_of_message): New EMACSDEBUG-only function. + (Fset_message_beep): Move here + (Fx_open_connection): Require that the display name for Windows be + "w32" for consistency, emacsclient disambiguation, and maybe, one + day, multi-window-system support. + (file_dialog_callback): NTGUI_UNICODE changes; encode and decode + Cygwin files for W32 GUI facilities, since these clearly don't + expect Cygwin names. + (_DebPrint): Define. + (w32_strerror, w32_console_toggle_lock_key, w32_kbd_mods_to_emacs) + (w32_kbd_patch_key, w32_sys_ring_bell): Move here. + (Ssystem_move_file_to_trash): Define only for native WINDOWSNT. + (w32_last_error): Remove. + + * w32font.c: Define _strlwr to strlwr for non-WINDOWSNT builds. + + * w32heap.c (syspage_mask): Declare here. + (cache_system_info): Remove. + + * w32inevt.c (faked_key): Define globally, not statically. + (w32_kbd_mods_to_emacs, w32_kbd_patch_key, faked_key) + (w32_console_toggle_lock_key): Move to w32fns.c. + + * w32menu.c: Include setjmp.h. NTGUI_UNICODE changes throughout. + + * w32proc.c (_DebPrint): Move to w32fns.c. + * w32select.c: Include string.h, stdio.h for Cygwin. + * w32select.h: New File. + + * w32term.c: Include io.h for non-CYGWIN builds; needed for + get_osfhandle. + (w32_message_fd): New variable. Under Cygwin, holds the file + descriptor the system used to tell us about pending thread + messages. + + (w32_init_term): Remove incorrect calls to fcntl and init_sigio + that prevented compilation under non-WINDOWSNT systems. + + (w32_initialize): Open /dev/windows and assign it to + w32_message_fd. Provide w32 feature. + + * w32term.h: Include frame.h, atimer.h. Declare various frame functions. + (WM_EMACS_INPUT_READY): add. + (prepend_msg, w32_message_fd): Declare globally. + + * w32xfns.c: + (keyboard_handle): Use only when WINDOWSNT. + (notify_msg_ready): New function. Posts a message to the main + thread's message queue under CYGWIN, which wakes up the main + thread from select(2) by making the /dev/windows file descriptor + ready. Under WINDOWSNT, it sets an event the same way the old + code did. + + (post, prepend_msg): Actually call notify_msg_ready instead of + setting the input event directly. + 2012-10-07 Eli Zaretskii * ralloc.c (relinquish): If a heap is ready to be relinquished, From de6e3a605daa95ecbf427deb00a86c583262ce2c Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Mon, 8 Oct 2012 00:11:21 -0800 Subject: [PATCH 108/272] Add NEWS entries for cygw32 --- etc/NEWS | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index 1a7eb82967d..ef7ef0c3d38 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -72,6 +72,10 @@ If you don't pass --with-x-toolkit to configure or if you pass with Gtk+ version 3, and if that fails, try Gtk+ version 2. You can explicitly require a specific version by passing --with-x-toolkit=gtk2 or --with-x-toolkit=gtk3 to configure. +-- +** The native Windows user interface is available for Cygwin. Passing +--with-w32 will configure a Cygwin emacs to use the Windows user +interface instead of the default, X11. * Startup Changes in Emacs 24.3 @@ -877,6 +881,11 @@ is detected. Emacs now supports mouse highlight, help-echo (in the echo area), and mouse-autoselect-window. +** Two new functions are available in Cygwin builds of Emacs: +cygwin-convert-path-from-windows and cygwin-convert-path-to-windows. +These functions allows lisp code to access the Cygwin path mapping +machinery to convert between Cygwin and Windows-native paths. + ** On MS-Windows Vista and later Emacs now supports symbolic links. * Changes in Emacs 24.2 From a28a3ae36276ad96cd41c1843d9ae0881390c840 Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Mon, 8 Oct 2012 00:18:01 -0800 Subject: [PATCH 109/272] fix NT build --- src/w32heap.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/w32heap.c b/src/w32heap.c index bc8aa356923..0ff473fb0a8 100644 --- a/src/w32heap.c +++ b/src/w32heap.c @@ -35,8 +35,6 @@ SYSTEM_INFO sysinfo_cache; extern unsigned long syspage_mask; OSVERSIONINFO osinfo_cache; -size_t syspage_mask = 0; - /* The major and minor versions of NT. */ int w32_major_version; int w32_minor_version; From 2ae3a8a712890fa8dd4223c4c68a9fe88b42a5c5 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 8 Oct 2012 11:19:20 +0200 Subject: [PATCH 110/272] Temporary fix for changes in 2012-10-08T08:23:13Z!dancol@dancol.org. --- src/image.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/image.c b/src/image.c index 6fc459f0bbc..8139979bda9 100644 --- a/src/image.c +++ b/src/image.c @@ -3240,13 +3240,13 @@ init_xpm_functions (void) #endif /* WINDOWSNT */ -#ifdef HAVE_NTGUI +#if defined (HAVE_NTGUI) && !defined (WINDOWSNT) /* Glue for code below */ #define fn_XpmReadFileToImage XpmReadFileToImage #define fn_XpmCreateImageFromBuffer XpmCreateImageFromBuffer #define fn_XImageFree XImageFree #define fn_XpmFreeAttributes XpmFreeAttributes -#endif /* HAVE_NTGUI */ +#endif /* HAVE_NTGUI && !WINDOWSNT */ /* Value is true if COLOR_SYMBOLS is a valid color symbols list for XPM images. Such a list must consist of conses whose car and @@ -6061,9 +6061,11 @@ jpeg_image_p (Lisp_Object object) #define __WIN32__ 1 #endif +#if 0 /* FIXME */ /* Work around conflict between jpeg boolean and rpcndr.h under Windows. */ #define boolean jpeg_boolean +#endif #include #include From 64a261b1eac2c0507b679c05711655a4a114f323 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 8 Oct 2012 11:23:31 +0200 Subject: [PATCH 111/272] etc/NEWS: Fix wording in the Cygwin-related entries of the last change. --- etc/NEWS | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 81a84e0445b..8364b6dd557 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -887,10 +887,10 @@ is detected. Emacs now supports mouse highlight, help-echo (in the echo area), and mouse-autoselect-window. -** Two new functions are available in Cygwin builds of Emacs: +** Two new functions are available in Cygwin builds of Emacs: cygwin-convert-path-from-windows and cygwin-convert-path-to-windows. -These functions allows lisp code to access the Cygwin path mapping -machinery to convert between Cygwin and Windows-native paths. +These functions allow Lisp code to access the Cygwin file-name mapping +machinery to convert between Cygwin and Windows-native file names. ** On MS-Windows Vista and later Emacs now supports symbolic links. From 8db5e1790b8dd515be68f65f01579ac9ddb272ba Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 8 Oct 2012 11:32:40 +0200 Subject: [PATCH 112/272] Fix the MSDOS configury due to changes in 2012-10-08T08:23:13Z!dancol@dancol.org. msdos/sed1v2.inp (W32_LIBS, W32_OBJ): Edit to empty. --- msdos/ChangeLog | 4 ++++ msdos/sed1v2.inp | 2 ++ 2 files changed, 6 insertions(+) diff --git a/msdos/ChangeLog b/msdos/ChangeLog index d3d9bc657cc..4d90e8356e3 100644 --- a/msdos/ChangeLog +++ b/msdos/ChangeLog @@ -1,3 +1,7 @@ +2012-10-08 Eli Zaretskii + + * sed1v2.inp (W32_LIBS, W32_OBJ): Edit to empty. + 2012-10-04 Paul Eggert Merge from gnulib. diff --git a/msdos/sed1v2.inp b/msdos/sed1v2.inp index fbee1dd03f9..553d69038fe 100644 --- a/msdos/sed1v2.inp +++ b/msdos/sed1v2.inp @@ -128,6 +128,8 @@ s/\.h\.in/.h-in/ /^CANNOT_DUMP *=/s/@CANNOT_DUMP@/no/ /^DEPFLAGS *=/s/@DEPFLAGS@// /^MKDEPDIR *=/s/@MKDEPDIR@// +/^W32_OBJ *=/s/@W32_OBJ@// +/^W32_LIBS *=/s/@W32_LIBS@// /^version *=/s/@[^@\n]*@// /^@SET_MAKE@$/s/@SET_MAKE@// /^ [ ]*\$(libsrc)\/make-docfile.*>.*\/DOC/s!make-docfile!make-docfile -o $(etc)/DOC! From 245dc6da184da2bde51055912fafedf714a1a74a Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 8 Oct 2012 11:41:04 +0200 Subject: [PATCH 113/272] Fix copyright years in new cygw32 files. --- src/cygw32.c | 2 +- src/cygw32.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cygw32.c b/src/cygw32.c index 065ab948118..ab7ee91a138 100644 --- a/src/cygw32.c +++ b/src/cygw32.c @@ -1,5 +1,5 @@ /* Cygwin support routines. - Copyright (C) 2011 Free Software Foundation, Inc. + Copyright (C) 2011-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/cygw32.h b/src/cygw32.h index c63343c3f5a..4b87b92dd24 100644 --- a/src/cygw32.h +++ b/src/cygw32.h @@ -1,5 +1,5 @@ /* Header for Cygwin support routines. - Copyright (C) 2011 Free Software Foundation, Inc. + Copyright (C) 2011-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. From bb84afd5709ffae6ddec82ed7b5867912e34cba5 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 8 Oct 2012 11:52:25 +0200 Subject: [PATCH 114/272] Fix comments in src/cygw32.h. --- src/cygw32.h | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/cygw32.h b/src/cygw32.h index 4b87b92dd24..22b6f5692da 100644 --- a/src/cygw32.h +++ b/src/cygw32.h @@ -38,13 +38,12 @@ along with GNU Emacs. If not, see . */ /* Access the wide-character string stored in a Lisp string object. */ #define WCSDATA(x) ((wchar_t *) SDATA (x)) -/* Convert the Emacs string in STR to UTF-16LE and store a new string - containing the encoded version of STR into *BUF. BUF may safely - point to STR on entry. */ +/* Convert the multi-byte string in STR to UTF-16LE encoded unibyte + string, and store it in *BUF. BUF may safely point to STR on entry. */ extern wchar_t *to_unicode (Lisp_Object str, Lisp_Object *buf); -/* Convert STR, a UTF-16LE encoded string embedded in an Emacs string - object, to a normal Emacs string and return it. */ +/* Convert STR, a UTF-16LE encoded string embedded in a unibyte string + object, to a multi-byte Emacs string, and return it. */ extern Lisp_Object from_unicode (Lisp_Object str); /* *** Path conversion. *** */ From d424f3d8f564f64b0f44f4e240c16529ec9cf34f Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 8 Oct 2012 12:01:59 +0200 Subject: [PATCH 115/272] Fix conditional macros in emacs.c, introduced by cygw32 addition. src/emacs.c (DAEMON_MUST_EXEC) [HAVE_NTGUI]: Define this only on Cygwin. --- src/ChangeLog | 5 +++++ src/emacs.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 2a312199512..c7c3330df30 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-10-08 Eli Zaretskii + + * emacs.c (DAEMON_MUST_EXEC) [HAVE_NTGUI]: Define this only on + Cygwin. + 2012-10-08 Daniel Colascione * xfaces.c, xdisp.c, window.c, w32xfns.c, w32term.h, w32term.c, diff --git a/src/emacs.c b/src/emacs.c index 6cc50a23d66..0a9cc484f7a 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -179,7 +179,7 @@ static uprintmax_t heap_bss_diff; We mark being in the exec'd process by a daemon name argument of form "--daemon=\nFD0,FD1\nNAME" where FD are the pipe file descriptors, NAME is the original daemon name, if any. */ -#if defined (NS_IMPL_COCOA) || defined (HAVE_NTGUI) +#if defined (NS_IMPL_COCOA) || (defined (HAVE_NTGUI) && defined (CYGWIN)) # define DAEMON_MUST_EXEC #endif From a1d638346fcb0c67f304e3520a4d1afa3661aaf6 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 8 Oct 2012 12:05:50 +0200 Subject: [PATCH 116/272] Remove CHECK_LIB_AVAILABLE from image.c, mistakenly reintroduced by cygw32. src/image.c (CHECK_LIB_AVAILABLE): Remove, no longer used. --- src/image.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/image.c b/src/image.c index 8139979bda9..790ede4c35e 100644 --- a/src/image.c +++ b/src/image.c @@ -8783,16 +8783,6 @@ DEFUN ("lookup-image", Flookup_image, Slookup_image, 1, 1, 0, "") Initialization ***********************************************************************/ -#ifdef WINDOWSNT -/* Image types that rely on external libraries are loaded dynamically - if the library is available. */ -#define CHECK_LIB_AVAILABLE(image_type, init_lib_fn, libraries) \ - define_image_type (image_type, init_lib_fn (libraries)) -#else -#define CHECK_LIB_AVAILABLE(image_type, init_lib_fn, libraries) \ - define_image_type (image_type, 1) -#endif /* WINDOWSNT */ - DEFUN ("init-image-library", Finit_image_library, Sinit_image_library, 1, 1, 0, doc: /* Initialize image library implementing image type TYPE. Return non-nil if TYPE is a supported image type. From 8ee4c6ce7699b6e6f5d52a4cd5066dc167f6471b Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 8 Oct 2012 12:07:16 +0200 Subject: [PATCH 117/272] Commit ChangeLog for last change. --- src/ChangeLog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index c7c3330df30..250024ba6c5 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,7 @@ 2012-10-08 Eli Zaretskii + * image.c (CHECK_LIB_AVAILABLE): Remove, no longer used. + * emacs.c (DAEMON_MUST_EXEC) [HAVE_NTGUI]: Define this only on Cygwin. From 5c0255d90bf07b0fc59a7fe74f35f4b704ebbab4 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 8 Oct 2012 06:17:36 -0400 Subject: [PATCH 118/272] Auto-commit of generated files. --- autogen/Makefile.in | 2 + autogen/config.in | 3 + autogen/configure | 160 ++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 160 insertions(+), 5 deletions(-) diff --git a/autogen/Makefile.in b/autogen/Makefile.in index 14cb3c9c9c1..db60a006a21 100644 --- a/autogen/Makefile.in +++ b/autogen/Makefile.in @@ -753,6 +753,8 @@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VERSION = @VERSION@ VMLIMIT_OBJ = @VMLIMIT_OBJ@ +W32_LIBS = @W32_LIBS@ +W32_OBJ = @W32_OBJ@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ diff --git a/autogen/config.in b/autogen/config.in index 8a8799db1cf..7aaf6650fa0 100644 --- a/autogen/config.in +++ b/autogen/config.in @@ -692,6 +692,9 @@ along with GNU Emacs. If not, see . */ Mac OS X. */ #undef HAVE_NS +/* Define to use native Windows GUI. */ +#undef HAVE_NTGUI + /* Define to 1 if libotf has OTF_get_variation_glyphs. */ #undef HAVE_OTF_GET_VARIATION_GLYPHS diff --git a/autogen/configure b/autogen/configure index 623d93bb39c..163bbaf8719 100755 --- a/autogen/configure +++ b/autogen/configure @@ -1204,6 +1204,8 @@ LIB_PTHREAD VMLIMIT_OBJ GMALLOC_OBJ HAVE_XSERVER +W32_LIBS +W32_OBJ LIB_STANDARD NS_OBJC_OBJ NS_OBJ @@ -1362,6 +1364,7 @@ with_toolkit_scroll_bars with_xaw3d with_xim with_ns +with_w32 with_gpm with_dbus with_gconf @@ -2081,6 +2084,7 @@ Optional Packages: --without-xaw3d don't use Xaw3d --without-xim don't use X11 XIM --with-ns use NeXTstep (Cocoa or GNUstep) windowing system + --with-w32 use native Windows GUI --without-gpm don't use -lgpm for mouse support on a GNU/Linux console --without-dbus don't compile with D-Bus support @@ -4093,6 +4097,14 @@ else fi +# Check whether --with-w32 was given. +if test "${with_w32+set}" = set; then : + withval=$with_w32; +else + with_w32=no +fi + + # Check whether --with-gpm was given. if test "${with_gpm+set}" = set; then : @@ -9568,6 +9580,7 @@ $as_echo "#define NS_HAVE_NSINTEGER 1" >>confdefs.h fi + INSTALL_ARCH_INDEP_EXTRA=install-etc ns_self_contained=no NS_OBJ= @@ -9603,6 +9616,38 @@ CPPFLAGS="$tmp_CPPFLAGS" +HAVE_W32=no +W32_OBJ= +W32_LIBS= +if test "${with_w32}" != no; then + if test "${opsys}" != "cygwin"; then + as_fn_error "Using w32 with an autotools build is only supported for Cygwin." "$LINENO" 5 + fi + ac_fn_c_check_header_mongrel "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default" +if test "x$ac_cv_header_windows_h" = x""yes; then : + HAVE_W32=yes +else + as_fn_error "\`--with-w32' was specified, but windows.h + cannot be found." "$LINENO" 5 +fi + + + +$as_echo "#define HAVE_NTGUI 1" >>confdefs.h + + W32_OBJ="w32fns.o w32menu.o w32reg.o w32font.o w32term.o" + W32_OBJ="$W32_OBJ w32xfns.o w32select.o w32uniscribe.o" + W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32" + W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool" +fi + + + +if test "${HAVE_W32}" = "yes"; then + window_system=w32 + with_xft=no +fi + ## $window_system is now set to the window system we will ## ultimately use. @@ -9635,6 +9680,9 @@ case "${window_system}" in nextstep ) term_header=nsterm.h ;; + w32 ) + term_header=w32term.h + ;; esac if test -n "${term_header}"; then @@ -11700,6 +11748,10 @@ if test "${with_toolkit_scroll_bars}" != "no"; then elif test "${HAVE_NS}" = "yes"; then $as_echo "#define USE_TOOLKIT_SCROLL_BARS 1" >>confdefs.h + USE_TOOLKIT_SCROLL_BARS=yes + elif test "${HAVE_W32}" = "yes"; then + $as_echo "#define USE_TOOLKIT_SCROLL_BARS 1" >>confdefs.h + USE_TOOLKIT_SCROLL_BARS=yes fi fi @@ -12262,6 +12314,99 @@ fi ### Use -lXpm if available, unless `--with-xpm=no'. HAVE_XPM=no LIBXPM= + +if test "${HAVE_W32}" = "yes"; then + if test "${with_xpm}" != "no"; then + SAVE_CPPFLAGS="$CPPFLAGS" + SAVE_LDFLAGS="$LDFLAGS" + CPPFLAGS="$CPPFLAGS -I/usr/include/noX" + LDFLAGS="$LDFLAGS -L/usr/lib/noX" + ac_fn_c_check_header_mongrel "$LINENO" "X11/xpm.h" "ac_cv_header_X11_xpm_h" "$ac_includes_default" +if test "x$ac_cv_header_X11_xpm_h" = x""yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpmReadFileToImage in -lXpm" >&5 +$as_echo_n "checking for XpmReadFileToImage in -lXpm... " >&6; } +if test "${ac_cv_lib_Xpm_XpmReadFileToImage+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lXpm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XpmReadFileToImage (); +int +main () +{ +return XpmReadFileToImage (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_Xpm_XpmReadFileToImage=yes +else + ac_cv_lib_Xpm_XpmReadFileToImage=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xpm_XpmReadFileToImage" >&5 +$as_echo "$ac_cv_lib_Xpm_XpmReadFileToImage" >&6; } +if test "x$ac_cv_lib_Xpm_XpmReadFileToImage" = x""yes; then : + HAVE_XPM=yes +fi + +fi + + + if test "${HAVE_XPM}" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpmReturnAllocPixels preprocessor define" >&5 +$as_echo_n "checking for XpmReturnAllocPixels preprocessor define... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include "X11/xpm.h" +#ifndef XpmReturnAllocPixels +no_return_alloc_pixels +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "no_return_alloc_pixels" >/dev/null 2>&1; then : + HAVE_XPM=no +else + HAVE_XPM=yes +fi +rm -f conftest* + + + if test "${HAVE_XPM}" = "yes"; then + REAL_CPPFLAGS="$REAL_CPPFLAGS -I/usr/include/noX" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + CPPFLAGS="$SAVE_CPPFLAGS" + LDFLAGS="$SAVE_LDFLAGS" + fi + fi + fi + + if test "${HAVE_XPM}" = "yes"; then + +$as_echo "#define HAVE_XPM 1" >>confdefs.h + + LIBXPM=-lXpm + fi +fi + if test "${HAVE_X11}" = "yes"; then if test "${with_xpm}" != "no"; then ac_fn_c_check_header_mongrel "$LINENO" "X11/xpm.h" "ac_cv_header_X11_xpm_h" "$ac_includes_default" @@ -12348,10 +12493,11 @@ $as_echo "#define HAVE_XPM 1" >>confdefs.h fi + ### Use -ljpeg if available, unless `--with-jpeg=no'. HAVE_JPEG=no LIBJPEG= -if test "${HAVE_X11}" = "yes"; then +if test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then if test "${with_jpeg}" != "no"; then ac_fn_c_check_header_mongrel "$LINENO" "jerror.h" "ac_cv_header_jerror_h" "$ac_includes_default" if test "x$ac_cv_header_jerror_h" = x""yes; then : @@ -12430,7 +12576,7 @@ fi ### Use -lpng if available, unless `--with-png=no'. HAVE_PNG=no LIBPNG= -if test "${HAVE_X11}" = "yes"; then +if test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then if test "${with_png}" != "no"; then # Debian unstable as of July 2003 has multiple libpngs, and puts png.h # in /usr/include/libpng. @@ -12520,7 +12666,7 @@ fi ### Use -ltiff if available, unless `--with-tiff=no'. HAVE_TIFF=no LIBTIFF= -if test "${HAVE_X11}" = "yes"; then +if test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then if test "${with_tiff}" != "no"; then ac_fn_c_check_header_mongrel "$LINENO" "tiffio.h" "ac_cv_header_tiffio_h" "$ac_includes_default" if test "x$ac_cv_header_tiffio_h" = x""yes; then : @@ -12584,7 +12730,8 @@ fi ### Use -lgif or -lungif if available, unless `--with-gif=no'. HAVE_GIF=no LIBGIF= -if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no"; then +if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no" \ + || test "${HAVE_W32}" = "yes"; then ac_fn_c_check_header_mongrel "$LINENO" "gif_lib.h" "ac_cv_header_gif_lib_h" "$ac_includes_default" if test "x$ac_cv_header_gif_lib_h" = x""yes; then : # EGifPutExtensionLast only exists from version libungif-4.1.0b1. @@ -12805,6 +12952,9 @@ $as_echo "#define NS_IMPL_GNUSTEP 1" >>confdefs.h OTHER_FILES=ns-app fi +if test "${HAVE_W32}" = "yes"; then + HAVE_MENUS=yes +fi ### Use session management (-lSM -lICE) if available HAVE_X_SM=no @@ -16078,7 +16228,7 @@ fi if test "$opsys" = "cygwin"; then - CYGWIN_OBJ="sheap.o" + CYGWIN_OBJ="sheap.o cygw32.o" ## Cygwin differs because of its unexec(). PRE_ALLOC_OBJ= POST_ALLOC_OBJ=lastfile.o From 93aa5c811f28ab0d3f7a8d0a37971efd35dfbcab Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Mon, 8 Oct 2012 02:26:10 -0800 Subject: [PATCH 119/272] Improve fix for jpeglib build break --- src/ChangeLog | 5 +++++ src/image.c | 25 +++++++++++++++---------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 250024ba6c5..f9a47ebb4b6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-10-08 Daniel Colascione + + * image.c: Permanent fix for JPEG compilation issue --- limit + jpeglib `boolean' redefinition to Cygwin builds. + 2012-10-08 Eli Zaretskii * image.c (CHECK_LIB_AVAILABLE): Remove, no longer used. diff --git a/src/image.c b/src/image.c index 790ede4c35e..6058bdf444c 100644 --- a/src/image.c +++ b/src/image.c @@ -6061,21 +6061,26 @@ jpeg_image_p (Lisp_Object object) #define __WIN32__ 1 #endif -#if 0 /* FIXME */ -/* Work around conflict between jpeg boolean and rpcndr.h - under Windows. */ +/* rpcndr.h (via windows.h) and jpeglib.h both define boolean types. + Some versions of jpeglib try to detect whether rpcndr.h is loaded, + using the Windows boolean type instead of the jpeglib boolean type + if so. Cygwin jpeglib, however, doesn't try to detect whether its + headers are included along with windows.h, so under Cygwin, jpeglib + attempts to define a conflicting boolean type. Worse, forcing + Cygwin jpeglib headers to use the Windows boolean type doesn't work + because it created an ABI incompatibility between the + already-compiled jpeg library and the header interface definition. + + The best we can do is to define jpeglib's boolean type to a + different name. This name, jpeg_boolean, remains in effect through + the rest of image.c. +*/ +#if defined (CYGWIN) && defined (HAVE_NTGUI) #define boolean jpeg_boolean #endif #include #include -/* Don't undefine boolean --- use the JPEG boolean - through the rest of the file. */ - -#ifdef HAVE_STLIB_H_1 -#define HAVE_STDLIB_H 1 -#endif - #ifdef WINDOWSNT /* JPEG library details. */ From 303cc1d110b98ef0186126a07436234d0950b8ea Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 8 Oct 2012 13:03:00 +0200 Subject: [PATCH 120/272] Fix wording of comments in w32fns.c. --- src/w32fns.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/w32fns.c b/src/w32fns.c index 7f0e6d5e5bf..996c37f57f9 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -6128,8 +6128,8 @@ Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. */) /* Note: under NTGUI_UNICODE, we do _NOT_ use ENCODE_FILE: the system file encoding expected by the platform APIs (e.g. Cygwin's - POSIX implementation) may not the same as the encoding expected - by the Windows API! */ + POSIX implementation) may not be the same as the encoding expected + by the Windows "ANSI" APIs! */ CHECK_STRING (prompt); CHECK_STRING (dir); @@ -6215,6 +6215,7 @@ Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. */) { int count = SPECPDL_INDEX (); + /* Prevent redisplay. */ specbind (Qinhibit_redisplay, Qt); block_input (); file_details->lpfnHook = file_dialog_callback; From b6f4e30044100e223954a31eb7753d024d6413f6 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 8 Oct 2012 13:19:35 +0200 Subject: [PATCH 121/272] Avoid compiler warnings on w32, caused by cygw32 changes. src/w32fns.c (w32_color_map_lookup, x_to_w32_color): Argument is now 'const char *'. (x_to_w32_color): Don't modify the argument, modify a copy instead. --- src/ChangeLog | 6 ++++++ src/w32fns.c | 15 +++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index f9a47ebb4b6..7d2509b88cf 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2012-10-08 Eli Zaretskii + + * w32fns.c (w32_color_map_lookup, x_to_w32_color): Argument is now + 'const char *'. + (x_to_w32_color): Don't modify the argument, modify a copy instead. + 2012-10-08 Daniel Colascione * image.c: Permanent fix for JPEG compilation issue --- limit diff --git a/src/w32fns.c b/src/w32fns.c index 996c37f57f9..8620fa8b1e8 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -697,7 +697,7 @@ DEFUN ("w32-default-color-map", Fw32_default_color_map, Sw32_default_color_map, } static Lisp_Object -w32_color_map_lookup (char *colorname) +w32_color_map_lookup (const char *colorname) { Lisp_Object tail, ret = Qnil; @@ -776,7 +776,7 @@ add_system_logical_colors_to_map (Lisp_Object *system_colors) static Lisp_Object -x_to_w32_color (char * colorname) +x_to_w32_color (const char * colorname) { register Lisp_Object ret = Qnil; @@ -785,11 +785,10 @@ x_to_w32_color (char * colorname) if (colorname[0] == '#') { /* Could be an old-style RGB Device specification. */ - char *color; - int size; - color = colorname + 1; + int size = strlen (colorname + 1); + char *color = alloca (size + 1); - size = strlen (color); + strcpy (color, colorname + 1); if (size == 3 || size == 6 || size == 9 || size == 12) { UINT colorval; @@ -843,7 +842,7 @@ x_to_w32_color (char * colorname) } else if (strnicmp (colorname, "rgb:", 4) == 0) { - char *color; + const char *color; UINT colorval; int i, pos; pos = 0; @@ -899,7 +898,7 @@ x_to_w32_color (char * colorname) else if (strnicmp (colorname, "rgbi:", 5) == 0) { /* This is an RGB Intensity specification. */ - char *color; + const char *color; UINT colorval; int i, pos; pos = 0; From c54ebba4e076caeb6105c6bb682252b139a169fa Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 8 Oct 2012 14:21:04 +0200 Subject: [PATCH 122/272] Update w32 dependencies in the wake of cygw32 changes. src/makefile.w32-in (FONT_H): Add $(FRAME_H). (W32TERM_H): Add $(ATIMER_H) and $(FRAME_H). ($(BLD)/emacs.$(O), $(BLD)/w32console.$(O)): Update dependencies. (GLOBAL_SOURCES): Add cygw32.c. lib-src/makefile.w32-in (obj): Add cygw32.o. --- lib-src/ChangeLog | 4 ++++ lib-src/makefile.w32-in | 2 +- src/ChangeLog | 5 +++++ src/makefile.w32-in | 8 +++++++- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index a4234693a82..85351d7f08d 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-08 Eli Zaretskii + + * makefile.w32-in (obj): Add cygw32.o. + 2012-10-08 Daniel Colascione * emacsclient.c: Include windows.h when HAVE_NTGUI. diff --git a/lib-src/makefile.w32-in b/lib-src/makefile.w32-in index 23ef71de10c..ecc5fb866b3 100644 --- a/lib-src/makefile.w32-in +++ b/lib-src/makefile.w32-in @@ -124,7 +124,7 @@ $(BLD)/profile.exe: $(PROFILEOBJS) obj = dosfns.o msdos.o \ xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \ fontset.o menu.o \ - w32.o w32console.o w32fns.o w32heap.o w32inevt.o \ + w32.o w32console.o w32fns.o w32heap.o w32inevt.o cygw32.o \ w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o \ font.o w32font.o w32uniscribe.o \ dispnew.o frame.o scroll.o xdisp.o window.o bidi.o \ diff --git a/src/ChangeLog b/src/ChangeLog index 7d2509b88cf..9e8377c2f7c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,10 @@ 2012-10-08 Eli Zaretskii + * makefile.w32-in (FONT_H): Add $(FRAME_H). + (W32TERM_H): Add $(ATIMER_H) and $(FRAME_H). + ($(BLD)/emacs.$(O), $(BLD)/w32console.$(O)): Update dependencies. + (GLOBAL_SOURCES): Add cygw32.c. + * w32fns.c (w32_color_map_lookup, x_to_w32_color): Argument is now 'const char *'. (x_to_w32_color): Don't modify the argument, modify a copy instead. diff --git a/src/makefile.w32-in b/src/makefile.w32-in index c6fbf59fb5a..120fda9ec43 100644 --- a/src/makefile.w32-in +++ b/src/makefile.w32-in @@ -207,7 +207,7 @@ make-buildobj-SH: GLOBAL_SOURCES = dosfns.c msdos.c \ xterm.c xfns.c xmenu.c xselect.c xrdb.c xsmfns.c fringe.c image.c \ fontset.c menu.c dbusbind.c \ - w32.c w32console.c w32fns.c w32heap.c w32inevt.c \ + w32.c w32console.c w32fns.c w32heap.c w32inevt.c cygw32.c \ w32menu.c w32proc.c w32reg.c w32select.c w32term.c w32xfns.c \ font.c w32font.c w32uniscribe.c \ dispnew.c frame.c scroll.c xdisp.c window.c bidi.c \ @@ -424,6 +424,7 @@ DISPEXTERN_H = $(SRC)/dispextern.h \ FILEMODE_H = $(GNU_LIB)/filemode.h \ $(NT_INC)/sys/stat.h FONT_H = $(SRC)/font.h \ + $(FRAME_H) \ $(CCL_H) FRAME_H = $(SRC)/frame.h \ $(DISPEXTERN_H) @@ -476,6 +477,8 @@ TERMHOOKS_H = $(SRC)/termhooks.h \ W32FONT_H = $(SRC)/w32font.h \ $(FONT_H) W32TERM_H = $(SRC)/w32term.h \ + $(ATIMER_H) \ + $(FRAME_H) \ $(W32GUI_H) WINDOW_H = $(SRC)/window.h \ $(DISPEXTERN_H) @@ -796,6 +799,8 @@ $(BLD)/emacs.$(O) : \ $(SRC)/unexec.h \ $(SRC)/w32.h \ $(SRC)/w32heap.h \ + $(SRC)/w32select.h \ + $(SRC)/w32font.h \ $(NT_INC)/sys/file.h \ $(NT_INC)/unistd.h \ $(GNU_LIB)/ignore-value.h \ @@ -1233,6 +1238,7 @@ $(BLD)/w32console.$(O) : \ $(FRAME_H) \ $(LISP_H) \ $(TERMHOOKS_H) \ + $(W32TERM_H) \ $(WINDOW_H) $(BLD)/print.$(O) : \ From 501199a3dbccc83f91a561c6664ae4c1d3dde20a Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Mon, 8 Oct 2012 04:53:18 -0800 Subject: [PATCH 123/272] Code cleanup for cygw32 --- src/ChangeLog | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ src/Makefile.in | 2 +- src/cygw32.c | 8 ++++---- src/cygw32.h | 5 ----- src/emacs.c | 9 ++++---- src/unexcw.c | 1 + src/unexw32.c | 1 + src/w32.c | 1 + src/w32common.h | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ src/w32console.c | 2 +- src/w32fns.c | 19 ++++++++++------- src/w32heap.c | 16 +-------------- src/w32heap.h | 23 --------------------- src/w32menu.c | 2 +- src/w32proc.c | 1 + src/w32select.c | 2 +- src/w32select.h | 2 -- src/w32term.h | 6 +++--- 18 files changed, 139 insertions(+), 67 deletions(-) create mode 100644 src/w32common.h diff --git a/src/ChangeLog b/src/ChangeLog index 9e8377c2f7c..b252f5deef8 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -9,6 +9,59 @@ 'const char *'. (x_to_w32_color): Don't modify the argument, modify a copy instead. +2012-10-08 Daniel Colascione + + * w32term.h (WM_EMACS_BRINGTOTOP, WM_EMACS_INPUT_READY) + (WM_EMACS_END): Change WM_EMACS_BRINGTOTOP from 22 to 21 to close + accidental message numbering hole. Change other messages to + match. + + * w32select.h (HAVE_W32SELECT): Remove. + + * w32select.c, w32proc.c, w32menu.c, w32console.c, w32.c: Include + w32common.h instead of w32heap.h + + * w32heap.h (ROUND_UP, ROUND_DOWN, get_page_size) + (get_allocation_unit, get_processor_type, get_w32_major_version) + (get_w32_minor_version, sysinfo_cache, osinfo_cache) + (w32_major_version, w32_minor_version, w32_build_number, OS_9X) + (OS_NT, os_subtype, cache_system_info): Move declarations to + w32common. + + * w32heap.c: Include w32common.h. + (sysinfo_cache, syspage_mask, osinfo_cache, w32_major_version) + (w32_minor_version, w32_build_number, w32_subtype): Remove + duplicate definitions. + + * w32fns.c: Include w32common.h; include w32heap.h only in + WINDOWSNT. + + (Fx_file_dialog): Clarify comment on GetOpenFileName structure. + Use `report_file_error' instead of `error' in order to better + inform users of what went wrong. Increase NTGUI_UNICODE file + dialog box file name length to 32k, the maximum allowed by the NT + kernel. + + * w32common.h: New file. + (ROUND_UP, ROUND_DOWN, get_page_size) + (get_allocation_unit, get_processor_type, get_w32_major_version) + (get_w32_minor_version, sysinfo_cache, osinfo_cache) + (w32_major_version, w32_minor_version, w32_build_number, OS_9X) + (OS_NT, os_subtype, cache_system_info): Move here. + + * unexw32.c, unexcw.c: Include w32common.h. + + * emacs.c (main): Use (defined (WINDOWSNT) || defined + HAVE_NTGUI) instead of removed HAVE_W32SELECT to decide whether + to call syms_of_w32select. + + * cygw32.h: Remove obsolete EXFUN declarations. + + * cygw32.c (Qutf_16_le): Rename to Qutf_16le. + + * Makefile.in (SOME_MACHINE_OBJECTS): Reverse accidental removal + of w32inevt.o from SOME_MACHINE_OBJECTS. + 2012-10-08 Daniel Colascione * image.c: Permanent fix for JPEG compilation issue --- limit diff --git a/src/Makefile.in b/src/Makefile.in index e704f2f5c0c..c24e421bbbc 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -357,7 +357,7 @@ SOME_MACHINE_OBJECTS = dosfns.o msdos.o \ xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \ fontset.o dbusbind.o cygw32.o \ nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \ - w32.o w32console.o w32fns.o w32heap.o \ + w32.o w32console.o w32fns.o w32heap.o w32inevt.o \ w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o \ w16select.o widget.o xfont.o ftfont.o xftfont.o ftxfont.o gtkutil.o \ xsettings.o xgselect.o termcap.o diff --git a/src/cygw32.c b/src/cygw32.c index ab7ee91a138..c45a45648e9 100644 --- a/src/cygw32.c +++ b/src/cygw32.c @@ -22,7 +22,7 @@ along with GNU Emacs. If not, see . */ #include "buffer.h" #include #include -static Lisp_Object Qutf_16_le; +static Lisp_Object Qutf_16le; static Lisp_Object fchdir_unwind (Lisp_Object dir_fd) @@ -117,13 +117,13 @@ from_unicode (Lisp_Object str) str = Fsubstring (str, make_number (0), make_number (-1)); } - return code_convert_string_norecord (str, Qutf_16_le, 0); + return code_convert_string_norecord (str, Qutf_16le, 0); } wchar_t * to_unicode (Lisp_Object str, Lisp_Object *buf) { - *buf = code_convert_string_norecord (str, Qutf_16_le, 1); + *buf = code_convert_string_norecord (str, Qutf_16le, 1); /* We need to make a another copy (in addition to the one made by code_convert_string_norecord) to ensure that the final string is _doubly_ zero terminated --- that is, that the string is @@ -163,7 +163,7 @@ void syms_of_cygw32 (void) { /* No, not utf-16-le: that one has a BOM. */ - DEFSYM (Qutf_16_le, "utf-16le"); + DEFSYM (Qutf_16le, "utf-16le"); defsubr (&Scygwin_convert_path_from_windows); defsubr (&Scygwin_convert_path_to_windows); } diff --git a/src/cygw32.h b/src/cygw32.h index 22b6f5692da..78e77a9a141 100644 --- a/src/cygw32.h +++ b/src/cygw32.h @@ -46,11 +46,6 @@ extern wchar_t *to_unicode (Lisp_Object str, Lisp_Object *buf); object, to a multi-byte Emacs string, and return it. */ extern Lisp_Object from_unicode (Lisp_Object str); -/* *** Path conversion. *** */ - -EXFUN (Fcygwin_convert_path_to_windows, 2); -EXFUN (Fcygwin_convert_path_from_windows, 2); - /* *** Misc *** */ extern void syms_of_cygw32 (void); extern char * w32_strerror (int error_no); diff --git a/src/emacs.c b/src/emacs.c index 0a9cc484f7a..203514fe204 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -1415,9 +1415,9 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem syms_of_fontset (); #endif /* HAVE_NTGUI */ -#ifdef HAVE_W32SELECT +#if defined (WINDOWSNT) || defined (HAVE_NTGUI) syms_of_w32select (); -#endif /* HAVE_W32SELECT */ +#endif /* WINDOWSNT || HAVE_NTGUI */ #ifdef MSDOS syms_of_xmenu (); @@ -1465,9 +1465,10 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem globals_of_w32menu (); #endif /* HAVE_NTGUI */ -#ifdef HAVE_W32SELECT +#if defined (WINDOWSNT) || defined (HAVE_NTGUI) globals_of_w32select (); -#endif /* HAVE_W32SELECT */ +#endif /* WINDOWSNT || HAVE_NTGUI */ + } init_charset (); diff --git a/src/unexcw.c b/src/unexcw.c index 96c4b4a9aec..8c5d574530d 100644 --- a/src/unexcw.c +++ b/src/unexcw.c @@ -20,6 +20,7 @@ along with GNU Emacs. If not, see . */ #include #include "unexec.h" +#include "w32common.h" #include #include diff --git a/src/unexw32.c b/src/unexw32.c index d57378b2421..82671d0f120 100644 --- a/src/unexw32.c +++ b/src/unexw32.c @@ -22,6 +22,7 @@ along with GNU Emacs. If not, see . */ #include #include "unexec.h" +#include "w32common.h" #include #include diff --git a/src/w32.c b/src/w32.c index 85210cb8e4c..b50cd13517d 100644 --- a/src/w32.c +++ b/src/w32.c @@ -173,6 +173,7 @@ typedef struct _REPARSE_DATA_BUFFER { #include "w32.h" #include "ndir.h" +#include "w32common.h" #include "w32heap.h" #include "systime.h" #include "dispextern.h" /* for xstrcasecmp */ diff --git a/src/w32common.h b/src/w32common.h new file mode 100644 index 00000000000..50724e5553c --- /dev/null +++ b/src/w32common.h @@ -0,0 +1,53 @@ +/* Common functions for Microsoft Windows builds of Emacs + Copyright (C) 2012 Free Software Foundation, Inc. + +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 . + +*/ + +#ifndef W32COMMON_H +#define W32COMMON_H + +#include + +#define ROUND_UP(p, align) (((DWORD_PTR)(p) + (align)-1) & ~((DWORD_PTR)(align)-1)) +#define ROUND_DOWN(p, align) ((DWORD_PTR)(p) & ~((DWORD_PTR)(align)-1)) + +#define get_page_size() sysinfo_cache.dwPageSize +#define get_allocation_unit() sysinfo_cache.dwAllocationGranularity +#define get_processor_type() sysinfo_cache.dwProcessorType +#define get_w32_major_version() w32_major_version +#define get_w32_minor_version() w32_minor_version + +extern SYSTEM_INFO sysinfo_cache; +extern OSVERSIONINFO osinfo_cache; +extern unsigned long syspage_mask; + +extern int w32_major_version; +extern int w32_minor_version; +extern int w32_build_number; + +enum { + OS_9X = 1, + OS_NT +}; + +extern int os_subtype; + +/* Cache system info, e.g., the NT page size. */ +extern void cache_system_info (void); + +#endif /* W32COMMON_H */ diff --git a/src/w32console.c b/src/w32console.c index 5a44d3748a2..f0574689bf1 100644 --- a/src/w32console.c +++ b/src/w32console.c @@ -37,7 +37,7 @@ along with GNU Emacs. If not, see . */ #include "termchar.h" #include "dispextern.h" #include "w32term.h" -#include "w32heap.h" /* for os_subtype */ +#include "w32common.h" /* for os_subtype */ #include "w32inevt.h" /* from window.c */ diff --git a/src/w32fns.c b/src/w32fns.c index 8620fa8b1e8..e728d19a9b3 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -45,7 +45,11 @@ along with GNU Emacs. If not, see . */ #include "systime.h" #include "termhooks.h" +#include "w32common.h" + +#ifdef WINDOWSNT #include "w32heap.h" +#endif /* WINDOWSNT */ #if CYGWIN #include "cygw32.h" @@ -6111,7 +6115,7 @@ Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. */) } new_file_details; #ifdef NTGUI_UNICODE - wchar_t filename_buf[MAX_PATH + 1]; + wchar_t filename_buf[32*1024 + 1]; // NT kernel maximum OPENFILENAMEW * file_details = &new_file_details.details; #else /* not NTGUI_UNICODE */ char filename_buf[MAX_PATH + 1]; @@ -6173,11 +6177,12 @@ Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. */) unixtodos_filename (SDATA (filename)); #endif /* NTGUI_UNICODE */ - /* Fill in the structure for the call to GetOpenFileName below. For - NTGUI_UNICODE builds (which run only on NT), we just use the - actual size of the structure. For non-NTGUI_UNICODE builds, we - tell the OS we're using an old version of the structure if it's not - new enough to support the newer version. */ + /* Fill in the structure for the call to GetOpenFileName below. + For NTGUI_UNICODE builds (which run only on NT), we just use + the actual size of the structure. For non-NTGUI_UNICODE + builds, we tell the OS we're using an old version of the + structure if the OS isn't new enough to support the newer + version. */ memset (&new_file_details, 0, sizeof (new_file_details)); if (w32_major_version > 4 && w32_major_version < 95) @@ -6187,7 +6192,7 @@ Otherwise, if ONLY-DIR-P is non-nil, the user can only select directories. */) /* Set up the inout parameter for the selected file name. */ if (SBYTES (filename) + 1 > sizeof (filename_buf)) - error ("filename too long"); + report_file_error ("filename too long", default_filename); memcpy (filename_buf, SDATA (filename), SBYTES (filename) + 1); file_details->lpstrFile = filename_buf; diff --git a/src/w32heap.c b/src/w32heap.c index 0ff473fb0a8..311e1064434 100644 --- a/src/w32heap.c +++ b/src/w32heap.c @@ -23,26 +23,12 @@ along with GNU Emacs. If not, see . */ #include #include +#include "w32common.h" #include "w32heap.h" #include "lisp.h" /* for VALMASK */ #define RVA_TO_PTR(rva) ((unsigned char *)((DWORD_PTR)(rva) + (DWORD_PTR)GetModuleHandle (NULL))) -/* This gives us the page size and the size of the allocation unit on NT. */ -SYSTEM_INFO sysinfo_cache; - -/* This gives us version, build, and platform identification. */ -extern unsigned long syspage_mask; -OSVERSIONINFO osinfo_cache; - -/* The major and minor versions of NT. */ -int w32_major_version; -int w32_minor_version; -int w32_build_number; - -/* Distinguish between Windows NT and Windows 95. */ -int os_subtype; - /* Emulate getpagesize. */ int getpagesize (void) diff --git a/src/w32heap.h b/src/w32heap.h index aae4845b4cc..1630864875f 100644 --- a/src/w32heap.h +++ b/src/w32heap.h @@ -24,9 +24,6 @@ along with GNU Emacs. If not, see . #include -#define ROUND_UP(p, align) (((DWORD_PTR)(p) + (align)-1) & ~((DWORD_PTR)(align)-1)) -#define ROUND_DOWN(p, align) ((DWORD_PTR)(p) & ~((DWORD_PTR)(align)-1)) - /* * Heap related stuff. */ @@ -34,28 +31,11 @@ along with GNU Emacs. If not, see . #define get_committed_heap_size() (get_data_end () - get_data_start ()) #define get_heap_start() get_data_start () #define get_heap_end() get_data_end () -#define get_page_size() sysinfo_cache.dwPageSize -#define get_allocation_unit() sysinfo_cache.dwAllocationGranularity -#define get_processor_type() sysinfo_cache.dwProcessorType -#define get_w32_major_version() w32_major_version -#define get_w32_minor_version() w32_minor_version extern unsigned char *get_data_start (void); extern unsigned char *get_data_end (void); extern size_t reserved_heap_size; -extern SYSTEM_INFO sysinfo_cache; -extern OSVERSIONINFO osinfo_cache; extern BOOL using_dynamic_heap; -extern int w32_major_version; -extern int w32_minor_version; -extern int w32_build_number; - -enum { - OS_9X = 1, - OS_NT -}; - -extern int os_subtype; /* Emulation of Unix sbrk(). */ extern void *sbrk (ptrdiff_t size); @@ -66,9 +46,6 @@ extern void init_heap (void); /* Round the heap to this size. */ extern void round_heap (size_t size); -/* Cache system info, e.g., the NT page size. */ -extern void cache_system_info (void); - /* ----------------------------------------------------------------- */ /* Useful routines for manipulating memory-mapped files. */ diff --git a/src/w32menu.c b/src/w32menu.c index 40ee82d42d5..36bf9574fdc 100644 --- a/src/w32menu.c +++ b/src/w32menu.c @@ -56,7 +56,7 @@ along with GNU Emacs. If not, see . */ #include "dispextern.h" -#include "w32heap.h" /* for osinfo_cache */ +#include "w32common.h" /* for osinfo_cache */ #undef HAVE_DIALOGS /* TODO: Implement native dialogs. */ diff --git a/src/w32proc.c b/src/w32proc.c index 7d0039d0d5e..7e8183b0e82 100644 --- a/src/w32proc.c +++ b/src/w32proc.c @@ -51,6 +51,7 @@ extern BOOL WINAPI IsValidLocale (LCID, DWORD); #include "lisp.h" #include "w32.h" +#include "w32common.h" #include "w32heap.h" #include "systime.h" #include "syswait.h" diff --git a/src/w32select.c b/src/w32select.c index 1690c3b7824..ee0e6d16b11 100644 --- a/src/w32select.c +++ b/src/w32select.c @@ -75,7 +75,7 @@ along with GNU Emacs. If not, see . */ #include #include "lisp.h" #include "w32term.h" /* for all of the w32 includes */ -#include "w32heap.h" /* os_subtype */ +#include "w32common.h" /* os_subtype */ #include "blockinput.h" #include "charset.h" #include "coding.h" diff --git a/src/w32select.h b/src/w32select.h index 6924d4d51ae..e895c3d9bf2 100644 --- a/src/w32select.h +++ b/src/w32select.h @@ -21,8 +21,6 @@ along with GNU Emacs. If not, see . */ #define W32SELECT_H #include -#define HAVE_W32SELECT 1 - extern void syms_of_w32select (void); extern void globals_of_w32select (void); extern void term_w32select (void); diff --git a/src/w32term.h b/src/w32term.h index 9fb37b9f030..83f9e7b98dc 100644 --- a/src/w32term.h +++ b/src/w32term.h @@ -619,9 +619,9 @@ do { \ #define WM_EMACS_HIDE_CARET (WM_EMACS_START + 18) #define WM_EMACS_SETCURSOR (WM_EMACS_START + 19) #define WM_EMACS_PAINT (WM_EMACS_START + 20) -#define WM_EMACS_BRINGTOTOP (WM_EMACS_START + 22) -#define WM_EMACS_INPUT_READY (WM_EMACS_START + 23) -#define WM_EMACS_END (WM_EMACS_START + 24) +#define WM_EMACS_BRINGTOTOP (WM_EMACS_START + 21) +#define WM_EMACS_INPUT_READY (WM_EMACS_START + 22) +#define WM_EMACS_END (WM_EMACS_START + 23) #define WND_FONTWIDTH_INDEX (0) #define WND_LINEHEIGHT_INDEX (4) From 15c720a3607ccbac1a5ff4bd10810f9342db0ad1 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 8 Oct 2012 15:31:14 +0200 Subject: [PATCH 124/272] Fix w32 dependencies due to introduction of w32common.h. src/makefile.w32-in ($(BLD)/unexw32.$(O)): ($(BLD)/w32.$(O)): ($(BLD)/w32console.$(O)): ($(BLD)/w32fns.$(O)): ($(BLD)/w32heap.$(O)): ($(BLD)/w32menu.$(O)): ($(BLD)/w32proc.$(O)): Add w32common.h. --- src/ChangeLog | 7 +++++++ src/makefile.w32-in | 11 ++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index b252f5deef8..44e6f18922c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -4,6 +4,13 @@ (W32TERM_H): Add $(ATIMER_H) and $(FRAME_H). ($(BLD)/emacs.$(O), $(BLD)/w32console.$(O)): Update dependencies. (GLOBAL_SOURCES): Add cygw32.c. + ($(BLD)/unexw32.$(O)): + ($(BLD)/w32.$(O)): + ($(BLD)/w32console.$(O)): + ($(BLD)/w32fns.$(O)): + ($(BLD)/w32heap.$(O)): + ($(BLD)/w32menu.$(O)): + ($(BLD)/w32proc.$(O)): Add w32common.h. * w32fns.c (w32_color_map_lookup, x_to_w32_color): Argument is now 'const char *'. diff --git a/src/makefile.w32-in b/src/makefile.w32-in index 120fda9ec43..66127d5ba6a 100644 --- a/src/makefile.w32-in +++ b/src/makefile.w32-in @@ -1172,6 +1172,7 @@ $(BLD)/w32.$(O) : \ $(SRC)/w32.c \ $(SRC)/ndir.h \ $(SRC)/w32.h \ + $(SRC)/w32common.h \ $(SRC)/w32heap.h \ $(NT_INC)/pwd.h \ $(NT_INC)/sys/file.h \ @@ -1190,6 +1191,7 @@ $(BLD)/w32.$(O) : \ $(BLD)/w32heap.$(O) : \ $(SRC)/w32heap.c \ $(SRC)/w32heap.h \ + $(SRC)/w32common.h \ $(CONFIG_H) \ $(LISP_H) @@ -1212,6 +1214,7 @@ $(BLD)/w32proc.$(O) : \ $(SRC)/w32proc.c \ $(SRC)/syswait.h \ $(SRC)/w32.h \ + $(SRC)/w32common.h \ $(SRC)/w32heap.h \ $(NT_INC)/nl_types.h \ $(NT_INC)/sys/file.h \ @@ -1229,7 +1232,7 @@ $(BLD)/w32console.$(O) : \ $(SRC)/w32console.c \ $(SRC)/disptab.h \ $(SRC)/termchar.h \ - $(SRC)/w32heap.h \ + $(SRC)/w32common.h \ $(SRC)/w32inevt.h \ $(CHARACTER_H) \ $(CODING_H) \ @@ -1467,6 +1470,7 @@ $(BLD)/undo.$(O) : \ $(BLD)/unexw32.$(O) : \ $(SRC)/unexw32.c \ $(SRC)/unexec.h \ + $(SRC)/w32common.h \ $(SRC)/w32heap.h \ $(CONFIG_H) @@ -1553,6 +1557,7 @@ $(BLD)/w32fns.$(O) : \ $(SRC)/epaths.h \ $(SRC)/fontset.h \ $(SRC)/w32.h \ + $(SRC)/w32common.h \ $(SRC)/w32heap.h \ $(BUFFER_H) \ $(CCL_H) \ @@ -1576,7 +1581,7 @@ $(BLD)/w32menu.$(O) : \ $(SRC)/w32menu.c \ $(SRC)/blockinput.h \ $(SRC)/keymap.h \ - $(SRC)/w32heap.h \ + $(SRC)/w32common.h \ $(BUFFER_H) \ $(CHARACTER_H) \ $(CHARSET_H) \ @@ -1626,7 +1631,7 @@ $(BLD)/w32select.$(O) : \ $(SRC)/w32select.c \ $(SRC)/blockinput.h \ $(SRC)/composite.h \ - $(SRC)/w32heap.h \ + $(SRC)/w32common.h \ $(CHARSET_H) \ $(CODING_H) \ $(CONFIG_H) \ From 607446ba2c440487bcc4ac493beaa65df7415914 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Mon, 8 Oct 2012 15:46:03 +0200 Subject: [PATCH 125/272] src/w32term.c: Remove leftover declaration of keyboard_codepage. --- src/ChangeLog | 4 ++++ src/w32term.c | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 44e6f18922c..e7159d5e9a3 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-08 Juanma Barranquero + + * w32term.c: Remove leftover declaration of keyboard_codepage. + 2012-10-08 Eli Zaretskii * makefile.w32-in (FONT_H): Add $(FRAME_H). diff --git a/src/w32term.c b/src/w32term.c index 627ff54394b..4cc0b860947 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -201,9 +201,6 @@ static int input_signal_count; int w32_message_fd = -1; #endif /* CYGWIN */ -/* Keyboard code page - may be changed by language-change events. */ -static int keyboard_codepage; - static void x_update_window_end (struct window *, int, int); static void w32_handle_tool_bar_click (struct frame *, struct input_event *); From 775a132d58804935a757d958aecaf53b44d9a78a Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Mon, 8 Oct 2012 15:59:18 +0200 Subject: [PATCH 126/272] * ffap.el (ffap-replace-file-component): Support Tramp file name syntax, not only ange-ftp's one. --- lisp/ChangeLog | 5 +++++ lisp/ffap.el | 18 ++++++------------ 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 97d24ebf4d6..810c76d553d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-08 Michael Albinus + + * ffap.el (ffap-replace-file-component): Support Tramp file name + syntax, not only ange-ftp's one. + 2012-10-08 Glenn Morris * cus-start.el (message-log-max): Set :version. diff --git a/lisp/ffap.el b/lisp/ffap.el index f3e8d4c194e..4c75609fe01 100644 --- a/lisp/ffap.el +++ b/lisp/ffap.el @@ -482,18 +482,12 @@ Returned values: (defun ffap-replace-file-component (fullname name) "In remote FULLNAME, replace path with NAME. May return nil." - ;; Use ange-ftp or efs if loaded, but do not load them otherwise. - (let (found) - (mapc - (function (lambda (sym) (and (fboundp sym) (setq found sym)))) - '( - efs-replace-path-component - ange-ftp-replace-path-component - ange-ftp-replace-name-component - )) - (and found - (fset 'ffap-replace-file-component found) - (funcall found fullname name)))) + ;; Use efs if loaded, but do not load it otherwise. + (if (fboundp 'efs-replace-path-component) + (funcall efs-replace-path-component fullname name) + (and (stringp fullname) + (stringp name) + (concat (file-remote-p fullname) name)))) ;; (ffap-replace-file-component "/who@foo.com:/whatever" "/new") (defun ffap-file-suffix (file) From fd5125adfe80551fd9496c78550fac0368e0ce15 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Mon, 8 Oct 2012 16:14:22 +0200 Subject: [PATCH 127/272] nt/config.nt: Sync with autogen/config.in. (HAVE_NTGUI): New macro. src/makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now in nt/config.nt. --- nt/ChangeLog | 5 +++++ nt/config.nt | 3 +++ src/ChangeLog | 3 +++ src/makefile.w32-in | 2 +- 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/nt/ChangeLog b/nt/ChangeLog index b0dcb9982f1..e659b87eb76 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,8 @@ +2012-10-08 Juanma Barranquero + + * config.nt: Sync with autogen/config.in. + (HAVE_NTGUI): New macro. + 2012-10-02 Eli Zaretskii * preprep.c (RVA_TO_PTR): Cast the result to 'void *', to avoid diff --git a/nt/config.nt b/nt/config.nt index e342c78e20f..cd695bc4e34 100644 --- a/nt/config.nt +++ b/nt/config.nt @@ -701,6 +701,9 @@ along with GNU Emacs. If not, see . */ Mac OS X. */ #undef HAVE_NS +/* Define to use native Windows GUI. */ +#define HAVE_NTGUI 1 + /* Define to 1 if libotf has OTF_get_variation_glyphs. */ #undef HAVE_OTF_GET_VARIATION_GLYPHS diff --git a/src/ChangeLog b/src/ChangeLog index e7159d5e9a3..1bf35dfcc85 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,8 @@ 2012-10-08 Juanma Barranquero + * makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now + in nt/config.nt. + * w32term.c: Remove leftover declaration of keyboard_codepage. 2012-10-08 Eli Zaretskii diff --git a/src/makefile.w32-in b/src/makefile.w32-in index 66127d5ba6a..8e0e1d23dfd 100644 --- a/src/makefile.w32-in +++ b/src/makefile.w32-in @@ -27,7 +27,7 @@ EMACSLOADPATH=$(CURDIR)/../lisp # Size in MBs of the static heap in temacs.exe. HEAPSIZE = $(EMACS_HEAPSIZE) -LOCAL_FLAGS = -Demacs=1 -I../lib -I../nt/inc -DHAVE_NTGUI=1 $(EMACS_EXTRA_C_FLAGS) +LOCAL_FLAGS = -Demacs=1 -I../lib -I../nt/inc $(EMACS_EXTRA_C_FLAGS) SRC = . EMACS = $(BLD)/emacs.exe From 46979e0b4ecceaf0676f0b9237e70c64fdc5b479 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Mon, 8 Oct 2012 16:37:04 +0200 Subject: [PATCH 128/272] src/makefile.w32-in: Update dependencies. --- src/ChangeLog | 3 +++ src/makefile.w32-in | 10 +++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 1bf35dfcc85..122e0d19655 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -2,6 +2,9 @@ * makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now in nt/config.nt. + (FONT_H): Define after FRAME_H. + ($(BLD)/emacs.$(O), $(BLD)/process.$(O), $(BLD)/w32heap.$(O)): + Update dependencies. * w32term.c: Remove leftover declaration of keyboard_codepage. diff --git a/src/makefile.w32-in b/src/makefile.w32-in index 8e0e1d23dfd..2ff56fbb8f8 100644 --- a/src/makefile.w32-in +++ b/src/makefile.w32-in @@ -423,11 +423,11 @@ DISPEXTERN_H = $(SRC)/dispextern.h \ $(W32GUI_H) FILEMODE_H = $(GNU_LIB)/filemode.h \ $(NT_INC)/sys/stat.h -FONT_H = $(SRC)/font.h \ - $(FRAME_H) \ - $(CCL_H) FRAME_H = $(SRC)/frame.h \ $(DISPEXTERN_H) +FONT_H = $(SRC)/font.h \ + $(CCL_H) \ + $(FRAME_H) FTOASTR_H = $(GNU_LIB)/ftoastr.h \ $(GNU_LIB)/intprops.h GRP_H = $(NT_INC)/grp.h \ @@ -800,7 +800,6 @@ $(BLD)/emacs.$(O) : \ $(SRC)/w32.h \ $(SRC)/w32heap.h \ $(SRC)/w32select.h \ - $(SRC)/w32font.h \ $(NT_INC)/sys/file.h \ $(NT_INC)/unistd.h \ $(GNU_LIB)/ignore-value.h \ @@ -816,6 +815,7 @@ $(BLD)/emacs.$(O) : \ $(SYSSIGNAL_H) \ $(SYSTTY_H) \ $(TERMHOOKS_H) \ + $(W32FONT_H) \ $(W32TERM_H) \ $(WINDOW_H) @@ -1190,8 +1190,8 @@ $(BLD)/w32.$(O) : \ $(BLD)/w32heap.$(O) : \ $(SRC)/w32heap.c \ - $(SRC)/w32heap.h \ $(SRC)/w32common.h \ + $(SRC)/w32heap.h \ $(CONFIG_H) \ $(LISP_H) From dc098568e25e0af8538298214e9951a5bbbeef2e Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 8 Oct 2012 09:09:00 -0700 Subject: [PATCH 129/272] Distinguish MS Windows --- configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 3679424e664..5520dd6a903 100644 --- a/configure.ac +++ b/configure.ac @@ -177,7 +177,7 @@ OPTION_DEFAULT_ON([toolkit-scroll-bars],[don't use Motif or Xaw3d scroll bars]) OPTION_DEFAULT_ON([xaw3d],[don't use Xaw3d]) OPTION_DEFAULT_ON([xim],[don't use X11 XIM]) OPTION_DEFAULT_OFF([ns],[use NeXTstep (Cocoa or GNUstep) windowing system]) -OPTION_DEFAULT_OFF([w32], [use native Windows GUI]) +OPTION_DEFAULT_OFF([w32], [use native MS Windows GUI]) OPTION_DEFAULT_ON([gpm],[don't use -lgpm for mouse support on a GNU/Linux console]) OPTION_DEFAULT_ON([dbus],[don't compile with D-Bus support]) @@ -1586,7 +1586,7 @@ if test "${with_w32}" != no; then AC_CHECK_HEADER([windows.h], [HAVE_W32=yes], [AC_MSG_ERROR([`--with-w32' was specified, but windows.h cannot be found.])]) - AC_DEFINE(HAVE_NTGUI, 1, [Define to use native Windows GUI.]) + AC_DEFINE(HAVE_NTGUI, 1, [Define to use native MS Windows GUI.]) W32_OBJ="w32fns.o w32menu.o w32reg.o w32font.o w32term.o" W32_OBJ="$W32_OBJ w32xfns.o w32select.o w32uniscribe.o" W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32" From 6b49792308dd84fdea8ae8daff5abdad0c978509 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 8 Oct 2012 09:11:41 -0700 Subject: [PATCH 130/272] Add 2012 to copyright years --- src/w32select.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/w32select.h b/src/w32select.h index e895c3d9bf2..4f4de59f7fe 100644 --- a/src/w32select.h +++ b/src/w32select.h @@ -1,6 +1,6 @@ /* Selection processing for Emacs on the Microsoft W32 API. -Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc. +Copyright (C) 1993-1994, 2001-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. From 1337353856dbf0dcfe8378ccf96f26442eee73e9 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Mon, 8 Oct 2012 18:20:59 +0200 Subject: [PATCH 131/272] lisp/generic-x.el: Make javascript-generic-mode an obsolete alias of js-mode. --- etc/NEWS | 3 ++ lisp/ChangeLog | 5 +++ lisp/generic-x.el | 79 ++--------------------------------------------- 3 files changed, 11 insertions(+), 76 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 8364b6dd557..2b934741c2c 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -431,6 +431,9 @@ The option `follow-intercept-processes' has been removed. specifying URL types which should be converted to remote file names at the FFAP prompt. The default is now '("ftp"). +** Generic-x +`javascript-generic-mode' is now an obsolete alias for `js-mode'. + ** Ibuffer *** New `derived-mode' filter, bound to `/ M'. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 810c76d553d..06b0f6f9506 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-08 Juanma Barranquero + + * generic-x.el (javascript-generic-mode, javascript-generic-mode-hook): + Make obsolete aliases of js-mode and js-mode-hook (from js.el). + 2012-10-08 Michael Albinus * ffap.el (ffap-replace-file-component): Support Tramp file name diff --git a/lisp/generic-x.el b/lisp/generic-x.el index ce1599b9010..878021ec5c5 100644 --- a/lisp/generic-x.el +++ b/lisp/generic-x.el @@ -646,83 +646,10 @@ like an INI file. You can add this hook to `find-file-hook'." "Generic mode for Sys V pkginfo files.")) ;; Javascript mode -;; Includes extra keywords from Armando Singer [asinger@MAIL.COLGATE.EDU] +;; Obsolete; defer to js-mode from js.el. (when (memq 'javascript-generic-mode generic-extras-enable-list) - -(define-generic-mode javascript-generic-mode - '("//" ("/*" . "*/")) - '("break" - "case" - "continue" - "default" - "delete" - "do" - "else" - "export" - "for" - "function" - "if" - "import" - "in" - "new" - "return" - "switch" - "this" - "typeof" - "var" - "void" - "while" - "with" - ;; words reserved for ECMA extensions below - "catch" - "class" - "const" - "debugger" - "enum" - "extends" - "finally" - "super" - "throw" - "try" - ;; Java Keywords reserved by JavaScript - "abstract" - "boolean" - "byte" - "char" - "double" - "false" - "final" - "float" - "goto" - "implements" - "instanceof" - "int" - "interface" - "long" - "native" - "null" - "package" - "private" - "protected" - "public" - "short" - "static" - "synchronized" - "throws" - "transient" - "true") - '(("^\\s-*function\\s-+\\([A-Za-z0-9_]+\\)" - (1 font-lock-function-name-face)) - ("^\\s-*var\\s-+\\([A-Za-z0-9_]+\\)" - (1 font-lock-variable-name-face))) - '("\\.js\\'") - (list - (function - (lambda () - (setq imenu-generic-expression - '((nil "^function\\s-+\\([A-Za-z0-9_]+\\)" 1) - ("*Variables*" "^var\\s-+\\([A-Za-z0-9_]+\\)" 1)))))) - "Generic mode for JavaScript files.")) + (define-obsolete-function-alias 'javascript-generic-mode 'js-mode "24.3") + (define-obsolete-variable-alias 'javascript-generic-mode-hook 'js-mode-hook "24.3")) ;; VRML files (when (memq 'vrml-generic-mode generic-extras-enable-list) From 62c480c90a5fedee7dfa7d4d3c7c045ca9e0e892 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Mon, 8 Oct 2012 20:31:39 +0200 Subject: [PATCH 132/272] Fix wide-int related error and cache error in NS font handling. * nsfont.m (Vfonts_in_cache): New variable. (nsfont_open): Use unsignedLongLongValue for cache in case wide ints are used. Add cached fonts to Vfonts_in_cache. (syms_of_nsfont): Initialize and staticpro Vfonts_in_cache. --- src/ChangeLog | 7 +++++++ src/nsfont.m | 19 ++++++++++++++----- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 122e0d19655..b348ec06538 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2012-10-08 Jan Djärv + + * nsfont.m (Vfonts_in_cache): New variable. + (nsfont_open): Use unsignedLongLongValue for cache in case wide ints + are used. Add cached fonts to Vfonts_in_cache. + (syms_of_nsfont): Initialize and staticpro Vfonts_in_cache. + 2012-10-08 Juanma Barranquero * makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now diff --git a/src/nsfont.m b/src/nsfont.m index b13c96aa6ed..20a8f5d4028 100644 --- a/src/nsfont.m +++ b/src/nsfont.m @@ -53,6 +53,9 @@ extern int ns_tmp_flags; extern struct nsfont_info *ns_tmp_font; +static Lisp_Object Vfonts_in_cache; + + /* font glyph and metrics caching functions, implemented at end */ static void ns_uni_to_glyphs (struct nsfont_info *font_info, unsigned char block); @@ -799,8 +802,7 @@ when setting family in ns_spec_to_descriptor(). */ { if (NSFONT_TRACE) fprintf(stderr, "*** nsfont_open CACHE HIT!\n"); - /* FIXME: Cast from (unsigned long) to Lisp_Object. */ - XHASH (font_object) = [cached unsignedLongValue]; + XHASH (font_object) = [cached unsignedLongLongValue]; return font_object; } else @@ -808,9 +810,13 @@ when setting family in ns_spec_to_descriptor(). */ font_object = font_make_object (VECSIZE (struct nsfont_info), font_entity, pixel_size); if (!synthItal) - [fontCache setObject: [NSNumber numberWithUnsignedLong: - (unsigned long) XHASH (font_object)] - forKey: nsfont]; + { + [fontCache setObject: [NSNumber + numberWithUnsignedLongLong: + (unsigned long long) XHASH (font_object)] + forKey: nsfont]; + Vfonts_in_cache = Fcons (font_object, Vfonts_in_cache); + } } font_info = (struct nsfont_info *) XFONT_OBJECT (font_object); @@ -1529,4 +1535,7 @@ - (void)setIntAttribute: (NSInteger)attributeTag value: (NSInteger)val doc: /* Internal use: maps font registry to Unicode script. */); ascii_printable = NULL; + + Vfonts_in_cache = Qnil; + staticpro (&Vfonts_in_cache); } From 821812e2477f45ac5f2572dd7d469b8408e351aa Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Mon, 8 Oct 2012 10:44:42 -0800 Subject: [PATCH 133/272] * w32fns.c (Fx_display_color_cells): Instead of using NCOLORS, which is broke under remote desktop, calculating the number of colors available for a display based on the display's number of planes and number of bits per pixel per plane. (bug#10397). --- src/ChangeLog | 7 +++++++ src/w32fns.c | 18 +++++------------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 122e0d19655..1d90b7bb9e1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2012-10-08 Daniel Colascione + + * w32fns.c (Fx_display_color_cells): Instead of using NCOLORS, + which is broke under remote desktop, calculating the number of + colors available for a display based on the display's number of + planes and number of bits per pixel per plane. (bug#10397). + 2012-10-08 Juanma Barranquero * makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now diff --git a/src/w32fns.c b/src/w32fns.c index e728d19a9b3..ff8e5fef439 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -4642,22 +4642,14 @@ If omitted or nil, that stands for the selected frame's display. */) (Lisp_Object display) { struct w32_display_info *dpyinfo = check_x_display_info (display); - HDC hdc; int cap; - hdc = GetDC (dpyinfo->root_window); - if (dpyinfo->has_palette) - cap = GetDeviceCaps (hdc, SIZEPALETTE); - else - cap = GetDeviceCaps (hdc, NUMCOLORS); - - /* We force 24+ bit depths to 24-bit, both to prevent an overflow - and because probably is more meaningful on Windows anyway */ - if (cap < 0) - cap = 1 << min (dpyinfo->n_planes * dpyinfo->n_cbits, 24); - - ReleaseDC (dpyinfo->root_window, hdc); + /* Don't use NCOLORS: it returns incorrect results under remote + * desktop. We force 24+ bit depths to 24-bit, both to prevent an + * overflow and because probably is more meaningful on Windows + * anyway. */ + cap = 1 << min (dpyinfo->n_planes * dpyinfo->n_cbits, 24); return make_number (cap); } From f99714cef2fd9ea5adbe5ea202cacd01478b3710 Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Mon, 8 Oct 2012 11:22:42 -0800 Subject: [PATCH 134/272] * xdisp.c (start_hourglass): Call w32_note_current_window when HAVE_NTGUI but not WINDOWSNT, resolving a problem that caused Emacs to display the hourglass cursor forever. --- src/ChangeLog | 6 ++++++ src/xdisp.c | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 4531cee8dba..c2c6a72d43f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2012-10-08 Daniel Colascione + + * xdisp.c (start_hourglass): Call w32_note_current_window when + HAVE_NTGUI but not WINDOWSNT, resolving a problem that caused + Emacs to display the hourglass cursor forever. + 2012-10-08 Jan Djärv * nsfont.m (Vfonts_in_cache): New variable. (nsfont_open): Use unsignedLongLongValue for cache in case wide ints diff --git a/src/xdisp.c b/src/xdisp.c index 2047c0e78c1..1e61a74068b 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -29379,9 +29379,10 @@ start_hourglass (void) else delay = make_emacs_time (DEFAULT_HOURGLASS_DELAY, 0); -#ifdef WINDOWSNT +#ifdef HAVE_NTGUI + extern void w32_note_current_window (void); w32_note_current_window (); -#endif +#endif /* HAVE_NTGUI */ hourglass_atimer = start_atimer (ATIMER_RELATIVE, delay, show_hourglass, NULL); From caec1ef5a053b51b6d160d0ca8b231f3c4225b1d Mon Sep 17 00:00:00 2001 From: David Engster Date: Mon, 8 Oct 2012 21:40:50 +0200 Subject: [PATCH 135/272] * semantic/bovine/el.el: Add `semantic-default-elisp-setup' to `emacs-lisp-mode-hook'. This was accidentally removed during the CEDET update (2012-10-01T18:10:29Z!cyd@gnu.org). --- lisp/cedet/ChangeLog | 6 ++++++ lisp/cedet/semantic/bovine/el.el | 2 ++ 2 files changed, 8 insertions(+) diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog index ea102dddf2f..14e8d6c1d64 100644 --- a/lisp/cedet/ChangeLog +++ b/lisp/cedet/ChangeLog @@ -1,3 +1,9 @@ +2012-10-08 David Engster > + + * semantic/bovine/el.el: Add `semantic-default-elisp-setup' to + `emacs-lisp-mode-hook'. This was accidentally removed during the + CEDET update (2012-10-01T18:10:29Z!cyd@gnu.org). + 2012-10-07 David Engster * semantic/wisent/python.el (semantic-ctxt-current-function) diff --git a/lisp/cedet/semantic/bovine/el.el b/lisp/cedet/semantic/bovine/el.el index 7bad1483dc3..ea99df9edb9 100644 --- a/lisp/cedet/semantic/bovine/el.el +++ b/lisp/cedet/semantic/bovine/el.el @@ -944,6 +944,8 @@ ELisp variables can be pretty long, so track this one too.") "Setup hook function for Emacs Lisp files and Semantic." ) +(add-hook 'emacs-lisp-mode-hook 'semantic-default-elisp-setup) + ;;; LISP MODE ;; ;; @TODO: Lisp supports syntaxes that Emacs Lisp does not. From 2b1f11ed71db0344deb3c469bba09bd2cda3f0bd Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 8 Oct 2012 21:58:54 +0200 Subject: [PATCH 136/272] Fix wording in src/ChangeLog entries from last commits. --- src/ChangeLog | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index c2c6a72d43f..7470a1d0968 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,8 +1,8 @@ 2012-10-08 Daniel Colascione * xdisp.c (start_hourglass): Call w32_note_current_window when - HAVE_NTGUI but not WINDOWSNT, resolving a problem that caused - Emacs to display the hourglass cursor forever. + HAVE_NTGUI, not just WINDOWSNT, resolving a problem in the cygw32 + build that caused Emacs to display the hourglass cursor forever. 2012-10-08 Jan Djärv * nsfont.m (Vfonts_in_cache): New variable. @@ -12,7 +12,7 @@ 2012-10-08 Daniel Colascione * w32fns.c (Fx_display_color_cells): Instead of using NCOLORS, - which is broke under remote desktop, calculating the number of + which is broken under remote desktop, calculate the number of colors available for a display based on the display's number of planes and number of bits per pixel per plane. (bug#10397). From a5b773c40ce950ac004be26b9f1bc4fcf985276b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabi=C3=A1n=20Ezequiel=20Gallina?= Date: Mon, 8 Oct 2012 18:30:36 -0300 Subject: [PATCH 137/272] Fix shell handling of unbalanced quotes and parens in output. * progmodes/python.el (python-rx-constituents): Added string-delimiter. (python-syntax-propertize-function): Use it. (python-shell-output-syntax-table): New var. (inferior-python-mode): Prevent unbalanced parens/quotes from previous output mess with current input context. --- lisp/ChangeLog | 10 ++++++ lisp/progmodes/python.el | 70 +++++++++++++++++++++++++++------------- 2 files changed, 57 insertions(+), 23 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 06b0f6f9506..1d7d2af60c7 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,13 @@ +2012-10-08 Fabián Ezequiel Gallina + + Fix shell handling of unbalanced quotes and parens in output. + * progmodes/python.el (python-rx-constituents): Added + string-delimiter. + (python-syntax-propertize-function): Use it. + (python-shell-output-syntax-table): New var. + (inferior-python-mode): Prevent unbalanced parens/quotes from + previous output mess with current input context. + 2012-10-08 Juanma Barranquero * generic-x.el (javascript-generic-mode, javascript-generic-mode-hook): diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 6b0dc954ca7..d35dbc69a48 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -337,19 +337,28 @@ "==" ">=" "is" "not"))) ;; FIXME: Use regexp-opt. (assignment-operator . ,(rx (or "=" "+=" "-=" "*=" "/=" "//=" "%=" "**=" - ">>=" "<<=" "&=" "^=" "|=")))) - "Additional Python specific sexps for `python-rx'")) + ">>=" "<<=" "&=" "^=" "|="))) + (string-delimiter . ,(rx (and + ;; Match even number of backslashes. + (or (not (any ?\\ ?\' ?\")) point + ;; Quotes might be preceded by a escaped quote. + (and (or (not (any ?\\)) point) ?\\ + (* ?\\ ?\\) (any ?\' ?\"))) + (* ?\\ ?\\) + ;; Match single or triple quotes of any kind. + (group (or "\"" "\"\"\"" "'" "'''")))))) + "Additional Python specific sexps for `python-rx'") -(defmacro python-rx (&rest regexps) - "Python mode specialized rx macro. + (defmacro python-rx (&rest regexps) + "Python mode specialized rx macro. This variant of `rx' supports common python named REGEXPS." - (let ((rx-constituents (append python-rx-constituents rx-constituents))) - (cond ((null regexps) - (error "No regexp")) - ((cdr regexps) - (rx-to-string `(and ,@regexps) t)) - (t - (rx-to-string (car regexps) t))))) + (let ((rx-constituents (append python-rx-constituents rx-constituents))) + (cond ((null regexps) + (error "No regexp")) + ((cdr regexps) + (rx-to-string `(and ,@regexps) t)) + (t + (rx-to-string (car regexps) t)))))) ;;; Font-lock and syntax @@ -498,16 +507,7 @@ The type returned can be `comment', `string' or `paren'." (defconst python-syntax-propertize-function (syntax-propertize-rules - ((rx - (and - ;; Match even number of backslashes. - (or (not (any ?\\ ?\' ?\")) point - ;; Quotes might be preceded by a escaped quote. - (and (or (not (any ?\\)) point) ?\\ - (* ?\\ ?\\) (any ?\' ?\"))) - (* ?\\ ?\\) - ;; Match single or triple quotes of any kind. - (group (or "\"" "\"\"\"" "'" "'''")))) + ((python-rx string-delimiter) (0 (ignore (python-syntax-stringify)))))) (defsubst python-syntax-count-quotes (quote-char &optional point limit) @@ -1609,6 +1609,20 @@ OUTPUT is a string with the contents of the buffer." (defvar python-shell--parent-buffer nil) +(defvar python-shell-output-syntax-table + (let ((table (make-syntax-table python-dotty-syntax-table))) + (modify-syntax-entry ?\' "." table) + (modify-syntax-entry ?\" "." table) + (modify-syntax-entry ?\( "." table) + (modify-syntax-entry ?\[ "." table) + (modify-syntax-entry ?\{ "." table) + (modify-syntax-entry ?\) "." table) + (modify-syntax-entry ?\] "." table) + (modify-syntax-entry ?\} "." table) + table) + "Syntax table for shell output. +It makes parens and quotes be treated as punctuation chars.") + (define-derived-mode inferior-python-mode comint-mode "Inferior Python" "Major mode for Python inferior process. Runs a Python interpreter as a subprocess of Emacs, with Python @@ -1637,7 +1651,6 @@ variable. python-shell-prompt-regexp python-shell-prompt-block-regexp python-shell-prompt-pdb-regexp)) - (set-syntax-table python-mode-syntax-table) (setq mode-line-process '(":%s")) (make-local-variable 'comint-output-filter-functions) (add-hook 'comint-output-filter-functions @@ -1658,10 +1671,21 @@ variable. (make-local-variable 'python-pdbtrack-tracked-buffer) (make-local-variable 'python-shell-internal-last-output) (when python-shell-enable-font-lock + (set-syntax-table python-mode-syntax-table) (set (make-local-variable 'font-lock-defaults) '(python-font-lock-keywords nil nil nil nil)) (set (make-local-variable 'syntax-propertize-function) - python-syntax-propertize-function)) + (syntax-propertize-rules + (comint-prompt-regexp + (0 (ignore + (put-text-property + comint-last-input-start end 'syntax-table + python-shell-output-syntax-table) + (font-lock-unfontify-region comint-last-input-start end)))) + ((python-rx string-delimiter) + (0 (ignore + (and (not (eq (get-text-property start 'field) 'output)) + (python-syntax-stringify)))))))) (compilation-shell-minor-mode 1)) (defun python-shell-make-comint (cmd proc-name &optional pop internal) From 51867ae22506264c0893b5e1a9ec7967157b6d96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabi=C3=A1n=20Ezequiel=20Gallina?= Date: Mon, 8 Oct 2012 18:51:02 -0300 Subject: [PATCH 138/272] * progmodes/python.el (python-shell-output-filter): Handle extra carriage return in OSX. Fixes: debbugs:12409 --- lisp/ChangeLog | 5 +++++ lisp/progmodes/python.el | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1d7d2af60c7..d3275ce3671 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-08 Fabián Ezequiel Gallina + + * progmodes/python.el (python-shell-output-filter): Handle extra + carriage return in OSX (Bug#12409). + 2012-10-08 Fabián Ezequiel Gallina Fix shell handling of unbalanced quotes and parens in output. diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index d35dbc69a48..018d6a7a1f2 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -1866,7 +1866,9 @@ detecting a prompt at the end of the buffer." python-shell-output-filter-buffer (concat python-shell-output-filter-buffer string)) (when (string-match - (format "\n\\(?:%s\\|%s\\|%s\\)$" + ;; XXX: It seems on OSX an extra carriage return is attached + ;; at the end of output, this handles that too. + (format "\r?\n\\(?:%s\\|%s\\|%s\\)$" python-shell-prompt-regexp python-shell-prompt-block-regexp python-shell-prompt-pdb-regexp) From a9e7a9d5430ba48645cc475c101a26b6531acfd6 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 8 Oct 2012 15:14:39 -0700 Subject: [PATCH 139/272] Minor tweaks to recently-changed code. Space before paren, avoid overparenthesization, etc. --- src/conf_post.h | 16 ++++++++-------- src/emacs.c | 24 ++++++++++-------------- src/image.c | 25 +++++++++++++------------ src/keyboard.c | 6 +++--- src/termhooks.h | 2 +- 5 files changed, 35 insertions(+), 38 deletions(-) diff --git a/src/conf_post.h b/src/conf_post.h index 53fc941f464..aa008107ba6 100644 --- a/src/conf_post.h +++ b/src/conf_post.h @@ -142,19 +142,19 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */ #endif #endif -#if defined(HAVE_NTGUI) && !defined(DebPrint) -# if defined(EMACSDEBUG) +#if defined HAVE_NTGUI && !defined DebPrint +# ifdef EMACSDEBUG extern void _DebPrint (const char *fmt, ...); # define DebPrint(stuff) _DebPrint stuff # else # define DebPrint(stuff) -# endif /* EMACSDEBUG */ -#endif /* DebPrint */ +# endif +#endif -#if defined(CYGWIN) && defined(HAVE_NTGUI) -#define NTGUI_UNICODE /* Cygwin runs only on UNICODE-supporting systems */ -#define _WIN32_WINNT 0x500 /* Win2k */ -#endif /* CYGWIN && HAVE_NTGUI */ +#if defined CYGWIN && defined HAVE_NTGUI +# define NTGUI_UNICODE /* Cygwin runs only on UNICODE-supporting systems */ +# define _WIN32_WINNT 0x500 /* Win2k */ +#endif #ifdef emacs /* Don't do this for lib-src. */ /* Tell regex.c to use a type compatible with Emacs. */ diff --git a/src/emacs.c b/src/emacs.c index 203514fe204..0a2a60bee0c 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -34,18 +34,15 @@ along with GNU Emacs. If not, see . */ #ifdef WINDOWSNT #include #include "w32.h" -#endif - -#if defined (WINDOWSNT) #include "w32heap.h" #endif -#if defined (WINDOWSNT) || defined (HAVE_NTGUI) +#if defined WINDOWSNT || defined HAVE_NTGUI #include "w32select.h" #include "w32font.h" #endif -#if defined (HAVE_NTGUI) && defined (CYGWIN) +#if defined HAVE_NTGUI && defined CYGWIN #include "cygw32.h" #endif @@ -179,7 +176,7 @@ static uprintmax_t heap_bss_diff; We mark being in the exec'd process by a daemon name argument of form "--daemon=\nFD0,FD1\nNAME" where FD are the pipe file descriptors, NAME is the original daemon name, if any. */ -#if defined (NS_IMPL_COCOA) || (defined (HAVE_NTGUI) && defined (CYGWIN)) +#if defined NS_IMPL_COCOA || (defined HAVE_NTGUI && defined CYGWIN) # define DAEMON_MUST_EXEC #endif @@ -698,7 +695,7 @@ main (int argc, char **argv) char *dname_arg = 0; #ifdef DAEMON_MUST_EXEC char dname_arg2[80]; -#endif /* DAEMON_MUST_EXEC */ +#endif char *ch_to_dir; #if GC_MARK_STACK @@ -1378,9 +1375,9 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem #ifdef WINDOWSNT syms_of_ntproc (); #endif /* WINDOWSNT */ -#if defined (CYGWIN) && defined (HAVE_NTGUI) +#if defined CYGWIN && defined HAVE_NTGUI syms_of_cygw32 (); -#endif /* defined(CYGWIN) && defined (HAVE_NTGUI) */ +#endif syms_of_window (); syms_of_xdisp (); syms_of_font (); @@ -1415,9 +1412,9 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem syms_of_fontset (); #endif /* HAVE_NTGUI */ -#if defined (WINDOWSNT) || defined (HAVE_NTGUI) +#if defined WINDOWSNT || defined HAVE_NTGUI syms_of_w32select (); -#endif /* WINDOWSNT || HAVE_NTGUI */ +#endif #ifdef MSDOS syms_of_xmenu (); @@ -1465,10 +1462,9 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem globals_of_w32menu (); #endif /* HAVE_NTGUI */ -#if defined (WINDOWSNT) || defined (HAVE_NTGUI) +#if defined WINDOWSNT || defined HAVE_NTGUI globals_of_w32select (); -#endif /* WINDOWSNT || HAVE_NTGUI */ - +#endif } init_charset (); diff --git a/src/image.c b/src/image.c index 6058bdf444c..9b41cf74993 100644 --- a/src/image.c +++ b/src/image.c @@ -75,11 +75,12 @@ typedef struct x_bitmap_record Bitmap_Record; #endif /* HAVE_X_WINDOWS */ #ifdef HAVE_NTGUI -# ifdef WINDOWSNT -/* We only need (or want) w32.h when we're _not_ - * compiling for Cygwin */ + +/* We need (or want) w32.h only when we're _not_ compiling for Cygwin. */ +#ifdef WINDOWSNT # include "w32.h" -# endif /* WINDOWSNT */ +#endif + /* W32_TODO : Color tables on W32. */ #undef COLOR_TABLE_SUPPORT @@ -571,7 +572,7 @@ extern Lisp_Object Vlibrary_cache; do { Vlibrary_cache = Fcons (Fcons (type, status), Vlibrary_cache); } while (0) #else #define CACHE_IMAGE_TYPE(type, status) -#endif /* WINDOWSNT */ +#endif #define ADD_IMAGE_TYPE(type) \ do { Vimage_types = Fcons (type, Vimage_types); } while (0) @@ -594,7 +595,7 @@ define_image_type (struct image_type *type) if (type->init) { -#if defined (HAVE_NTGUI) && defined (WINDOWSNT) +#if defined HAVE_NTGUI && defined WINDOWSNT /* If we failed to load the library before, don't try again. */ Lisp_Object tested = Fassq (target_type, Vlibrary_cache); if (CONSP (tested) && NILP (XCDR (tested))) @@ -3013,7 +3014,7 @@ static const struct image_keyword xpm_format[XPM_LAST] = {":background", IMAGE_STRING_OR_NIL_VALUE, 0} }; -#if defined(HAVE_NTGUI) && defined(WINDOWSNT) +#if defined HAVE_NTGUI && defined WINDOWSNT static bool init_xpm_functions (void); #else #define init_xpm_functions NULL @@ -3240,7 +3241,7 @@ init_xpm_functions (void) #endif /* WINDOWSNT */ -#if defined (HAVE_NTGUI) && !defined (WINDOWSNT) +#if defined HAVE_NTGUI && !defined WINDOWSNT /* Glue for code below */ #define fn_XpmReadFileToImage XpmReadFileToImage #define fn_XpmCreateImageFromBuffer XpmCreateImageFromBuffer @@ -5352,7 +5353,7 @@ static const struct image_keyword png_format[PNG_LAST] = {":background", IMAGE_STRING_OR_NIL_VALUE, 0} }; -#if defined(HAVE_NTGUI) && defined (WINDOWSNT) +#if defined HAVE_NTGUI && defined WINDOWSNT static bool init_png_functions (void); #else #define init_png_functions NULL @@ -6011,7 +6012,7 @@ static const struct image_keyword jpeg_format[JPEG_LAST] = {":background", IMAGE_STRING_OR_NIL_VALUE, 0} }; -#if defined(HAVE_NTGUI) && defined(WINDOWSNT) +#if defined HAVE_NTGUI && defined WINDOWSNT static bool init_jpeg_functions (void); #else #define init_jpeg_functions NULL @@ -6075,7 +6076,7 @@ jpeg_image_p (Lisp_Object object) different name. This name, jpeg_boolean, remains in effect through the rest of image.c. */ -#if defined (CYGWIN) && defined (HAVE_NTGUI) +#if defined CYGWIN && defined HAVE_NTGUI #define boolean jpeg_boolean #endif #include @@ -7071,7 +7072,7 @@ static const struct image_keyword gif_format[GIF_LAST] = {":background", IMAGE_STRING_OR_NIL_VALUE, 0} }; -#if defined(HAVE_NTGUI) && defined(WINDOWSNT) +#if defined HAVE_NTGUI && defined WINDOWSNT static bool init_gif_functions (void); #else #define init_gif_functions NULL diff --git a/src/keyboard.c b/src/keyboard.c index 05b9a9dde01..61481c5f0f6 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -313,7 +313,7 @@ static Lisp_Object Qmouse_fixup_help_message; /* Symbols to denote kinds of events. */ static Lisp_Object Qfunction_key; Lisp_Object Qmouse_click; -#if defined (HAVE_NTGUI) +#ifdef HAVE_NTGUI Lisp_Object Qlanguage_change; #endif static Lisp_Object Qdrag_n_drop; @@ -3947,7 +3947,7 @@ kbd_buffer_get_event (KBOARD **kbp, x_activate_menubar (XFRAME (event->frame_or_window)); } #endif -#if defined (HAVE_NTGUI) +#ifdef HAVE_NTGUI else if (event->kind == LANGUAGE_CHANGE_EVENT) { /* Make an event (language-change (FRAME CODEPAGE LANGUAGE-ID)). */ @@ -11394,7 +11394,7 @@ syms_of_keyboard (void) DEFSYM (Qconfig_changed_event, "config-changed-event"); DEFSYM (Qmenu_enable, "menu-enable"); -#if defined (HAVE_NTGUI) +#ifdef HAVE_NTGUI DEFSYM (Qlanguage_change, "language-change"); #endif diff --git a/src/termhooks.h b/src/termhooks.h index 42f2e16e577..c33c2dd1587 100644 --- a/src/termhooks.h +++ b/src/termhooks.h @@ -107,7 +107,7 @@ enum event_kind HORIZ_WHEEL_EVENT, /* A wheel event generated by a second horizontal wheel that is present on some mice. See WHEEL_EVENT. */ -#if defined (HAVE_NTGUI) +#ifdef HAVE_NTGUI LANGUAGE_CHANGE_EVENT, /* A LANGUAGE_CHANGE_EVENT is generated when HAVE_NTGUI or on Mac OS when the keyboard layout or input From 24517d82a98eaeb33f44854e72bfbf342bf24ea4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabi=C3=A1n=20Ezequiel=20Gallina?= Date: Mon, 8 Oct 2012 19:18:05 -0300 Subject: [PATCH 140/272] * progmodes/python.el (python-fill-paragraph): Rename from python-fill-paragraph-function. Fixed fill-paragraph for decorators. Fixes: debbugs:12605 --- lisp/ChangeLog | 6 ++++++ lisp/progmodes/python.el | 23 +++++++++++------------ 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d3275ce3671..5472f1bed36 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2012-10-08 Fabián Ezequiel Gallina + + * progmodes/python.el (python-fill-paragraph): Rename from + python-fill-paragraph-function. Fixed fill-paragraph for + decorators (Bug#12605). + 2012-10-08 Fabián Ezequiel Gallina * progmodes/python.el (python-shell-output-filter): Handle extra diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 018d6a7a1f2..0bde8ce3334 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -2272,28 +2272,28 @@ inferior python process is updated properly." (defcustom python-fill-comment-function 'python-fill-comment "Function to fill comments. -This is the function used by `python-fill-paragraph-function' to +This is the function used by `python-fill-paragraph' to fill comments." :type 'symbol :group 'python) (defcustom python-fill-string-function 'python-fill-string "Function to fill strings. -This is the function used by `python-fill-paragraph-function' to +This is the function used by `python-fill-paragraph' to fill strings." :type 'symbol :group 'python) (defcustom python-fill-decorator-function 'python-fill-decorator "Function to fill decorators. -This is the function used by `python-fill-paragraph-function' to +This is the function used by `python-fill-paragraph' to fill decorators." :type 'symbol :group 'python) (defcustom python-fill-paren-function 'python-fill-paren "Function to fill parens. -This is the function used by `python-fill-paragraph-function' to +This is the function used by `python-fill-paragraph' to fill parens." :type 'symbol :group 'python) @@ -2370,7 +2370,7 @@ SYMMETRIC: :safe (lambda (val) (memq val '(django onetwo pep-257 pep-257-nn symmetric nil)))) -(defun python-fill-paragraph-function (&optional justify) +(defun python-fill-paragraph (&optional justify) "`fill-paragraph-function' handling multi-line strings and possibly comments. If any of the current line is in or at the end of a multi-line string, fill the string or the paragraph of it that point is in, preserving @@ -2389,8 +2389,7 @@ Optional argument JUSTIFY defines if the paragraph should be justified." (funcall python-fill-string-function justify)) ;; Decorators ((equal (char-after (save-excursion - (back-to-indentation) - (point))) ?@) + (python-nav-beginning-of-statement))) ?@) (funcall python-fill-decorator-function justify)) ;; Parens ((or (python-syntax-context 'paren) @@ -2402,12 +2401,12 @@ Optional argument JUSTIFY defines if the paragraph should be justified." (t t)))) (defun python-fill-comment (&optional justify) - "Comment fill function for `python-fill-paragraph-function'. + "Comment fill function for `python-fill-paragraph'. JUSTIFY should be used (if applicable) as in `fill-paragraph'." (fill-comment-paragraph justify)) (defun python-fill-string (&optional justify) - "String fill function for `python-fill-paragraph-function'. + "String fill function for `python-fill-paragraph'. JUSTIFY should be used (if applicable) as in `fill-paragraph'." (let* ((marker (point-marker)) (str-start-pos @@ -2477,12 +2476,12 @@ JUSTIFY should be used (if applicable) as in `fill-paragraph'." (indent-according-to-mode))))) t) (defun python-fill-decorator (&optional justify) - "Decorator fill function for `python-fill-paragraph-function'. + "Decorator fill function for `python-fill-paragraph'. JUSTIFY should be used (if applicable) as in `fill-paragraph'." t) (defun python-fill-paren (&optional justify) - "Paren fill function for `python-fill-paragraph-function'. + "Paren fill function for `python-fill-paragraph'. JUSTIFY should be used (if applicable) as in `fill-paragraph'." (save-restriction (narrow-to-region (progn @@ -3133,7 +3132,7 @@ if that value is non-nil." (set (make-local-variable 'paragraph-start) "\\s-*$") (set (make-local-variable 'fill-paragraph-function) - 'python-fill-paragraph-function) + 'python-fill-paragraph) (set (make-local-variable 'beginning-of-defun-function) #'python-beginning-of-defun-function) From a4ff7fe1452e56d2c11ca31652bd145868e87e17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabi=C3=A1n=20Ezequiel=20Gallina?= Date: Mon, 8 Oct 2012 23:07:26 -0300 Subject: [PATCH 141/272] Implemented `backward-up-list'-like navigation. * progmodes/python.el (python-nav-up-list) (python-nav-backward-up-list): New functions. (python-mode-map): Define substitute key for backward-up-list to python-nav-backward-up-list. --- lisp/ChangeLog | 8 +++++ lisp/progmodes/python.el | 64 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5472f1bed36..dc78d925544 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2012-10-09 Fabián Ezequiel Gallina + + Implemented `backward-up-list'-like navigation. + * progmodes/python.el (python-nav-up-list) + (python-nav-backward-up-list): New functions. + (python-mode-map): Define substitute key for backward-up-list to + python-nav-backward-up-list. + 2012-10-08 Fabián Ezequiel Gallina * progmodes/python.el (python-fill-paragraph): Rename from diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 0bde8ce3334..5bf64c18f99 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -235,6 +235,9 @@ (substitute-key-definition 'forward-sentence 'python-nav-forward-block map global-map) + (substitute-key-definition 'backward-up-list + 'python-nav-backward-up-list + map global-map) (define-key map "\C-c\C-j" 'imenu) ;; Indent specific (define-key map "\177" 'python-indent-dedent-line-backspace) @@ -1409,6 +1412,67 @@ move backward N times." (python-nav--backward-sexp) (setq arg (1+ arg)))) +(defun python-nav--up-list (&optional dir) + "Internal implementation of `python-nav-up-list'. +DIR is always 1 or -1 and comes sanitized from +`python-nav-up-list' calls." + (let ((context (python-syntax-context-type)) + (forward-p (> dir 0))) + (cond + ((memq context '(string comment))) + ((eq context 'paren) + (let ((forward-sexp-function)) + (up-list dir))) + ((and forward-p (python-info-end-of-block-p)) + (let ((parent-end-pos + (save-excursion + (let ((indentation (and + (python-nav-beginning-of-block) + (current-indentation)))) + (while (and indentation + (> indentation 0) + (>= (current-indentation) indentation) + (python-nav-backward-block))) + (python-nav-end-of-block))))) + (and (> (or parent-end-pos (point)) (point)) + (goto-char parent-end-pos)))) + (forward-p (python-nav-end-of-block)) + ((and (not forward-p) + (> (current-indentation) 0) + (python-info-beginning-of-block-p)) + (let ((prev-block-pos + (save-excursion + (let ((indentation (current-indentation))) + (while (and (python-nav-backward-block) + (> (current-indentation) indentation)))) + (point)))) + (and (> (point) prev-block-pos) + (goto-char prev-block-pos)))) + ((not forward-p) (python-nav-beginning-of-block))))) + +(defun python-nav-up-list (&optional arg) + "Move forward out of one level of parentheses (or blocks). +With ARG, do this that many times. +A negative argument means move backward but still to a less deep spot. +This command assumes point is not in a string or comment." + (interactive "^p") + (or arg (setq arg 1)) + (while (> arg 0) + (python-nav--up-list 1) + (setq arg (1- arg))) + (while (< arg 0) + (python-nav--up-list -1) + (setq arg (1+ arg)))) + +(defun python-nav-backward-up-list (&optional arg) + "Move backward out of one level of parentheses (or blocks). +With ARG, do this that many times. +A negative argument means move backward but still to a less deep spot. +This command assumes point is not in a string or comment." + (interactive "^p") + (or arg (setq arg 1)) + (python-nav-up-list (- arg))) + ;;; Shell integration From 7518fc1221d36f911b60abcaec42759c42292d78 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Tue, 9 Oct 2012 02:28:34 +0000 Subject: [PATCH 142/272] shr.el (shr-insert): \r is also not inserted, so don't try to delete it --- lisp/gnus/ChangeLog | 5 +++++ lisp/gnus/shr.el | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index f79353ebfb3..c6b2a4c37a7 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,8 @@ +2012-10-09 Lars Magne Ingebrigtsen + + * shr.el (shr-insert): \r is also not inserted, so don't try to delete + it. + 2012-10-06 Glenn Morris * gnus-notifications.el (gnus-notifications): diff --git a/lisp/gnus/shr.el b/lisp/gnus/shr.el index e7a6c5d2081..03704554459 100644 --- a/lisp/gnus/shr.el +++ b/lisp/gnus/shr.el @@ -391,7 +391,7 @@ size, and full-buffer size." (shr-indent)) (end-of-line)) (insert " "))) - (unless (string-match "[ \t\n]\\'" text) + (unless (string-match "[ \t\r\n]\\'" text) (delete-char -1))))) (defun shr-find-fill-point () From 94c66ce57bb8992de45349f8e8849797d4bdd3a7 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 9 Oct 2012 02:01:10 -0400 Subject: [PATCH 143/272] * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Obey the :read-only property. --- lisp/ChangeLog | 7 ++++-- lisp/emacs-lisp/cl-loaddefs.el | 2 +- lisp/emacs-lisp/cl-macs.el | 43 ++++++++++++++++++---------------- 3 files changed, 29 insertions(+), 23 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index dc78d925544..184356f99fa 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-10-09 Stefan Monnier + + * emacs-lisp/cl-macs.el (cl-defstruct): Obey the :read-only property. + 2012-10-09 Fabián Ezequiel Gallina Implemented `backward-up-list'-like navigation. @@ -20,8 +24,7 @@ 2012-10-08 Fabián Ezequiel Gallina Fix shell handling of unbalanced quotes and parens in output. - * progmodes/python.el (python-rx-constituents): Added - string-delimiter. + * progmodes/python.el (python-rx-constituents): Add string-delimiter. (python-syntax-propertize-function): Use it. (python-shell-output-syntax-table): New var. (inferior-python-mode): Prevent unbalanced parens/quotes from diff --git a/lisp/emacs-lisp/cl-loaddefs.el b/lisp/emacs-lisp/cl-loaddefs.el index e25ac5f9708..d05fbc42060 100644 --- a/lisp/emacs-lisp/cl-loaddefs.el +++ b/lisp/emacs-lisp/cl-loaddefs.el @@ -260,7 +260,7 @@ Remove from SYMBOL's plist the property PROPNAME and its value. ;;;;;; cl-typecase cl-ecase cl-case cl-load-time-value cl-eval-when ;;;;;; cl-destructuring-bind cl-function cl-defmacro cl-defun cl-gentemp ;;;;;; cl-gensym cl--compiler-macro-cXXr cl--compiler-macro-list*) -;;;;;; "cl-macs" "cl-macs.el" "6951d080daefb5194b1d21fe9b2deae4") +;;;;;; "cl-macs" "cl-macs.el" "885919e79dbcd11081cfb2e039b470c7") ;;; Generated autoloads from cl-macs.el (autoload 'cl--compiler-macro-list* "cl-macs" "\ diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 99bae1944e8..592c33d21c5 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -2324,26 +2324,29 @@ value, that slot cannot be set via `setf'. (if (= pos 0) '(car cl-x) `(nth ,pos cl-x)))) forms) (push (cons accessor t) side-eff) - ;; Don't bother defining a setf-expander, since gv-get can use - ;; the compiler macro to get the same result. - ;;(push `(gv-define-setter ,accessor (cl-val cl-x) - ;; ,(if (cadr (memq :read-only (cddr desc))) - ;; `(progn (ignore cl-x cl-val) - ;; (error "%s is a read-only slot" - ;; ',accessor)) - ;; ;; If cl is loaded only for compilation, - ;; ;; the call to cl--struct-setf-expander would - ;; ;; cause a warning because it may not be - ;; ;; defined at run time. Suppress that warning. - ;; `(progn - ;; (declare-function - ;; cl--struct-setf-expander "cl-macs" - ;; (x name accessor pred-form pos)) - ;; (cl--struct-setf-expander - ;; cl-val cl-x ',name ',accessor - ;; ,(and pred-check `',pred-check) - ;; ,pos)))) - ;; forms) + (if (cadr (memq :read-only (cddr desc))) + (push `(gv-define-expander ,accessor + (lambda (_cl-do _cl-x) + (error "%s is a read-only slot" ',accessor))) + forms) + ;; For normal slots, we don't need to define a setf-expander, + ;; since gv-get can use the compiler macro to get the + ;; same result. + ;; (push `(gv-define-setter ,accessor (cl-val cl-x) + ;; ;; If cl is loaded only for compilation, + ;; ;; the call to cl--struct-setf-expander would + ;; ;; cause a warning because it may not be + ;; ;; defined at run time. Suppress that warning. + ;; (progn + ;; (declare-function + ;; cl--struct-setf-expander "cl-macs" + ;; (x name accessor pred-form pos)) + ;; (cl--struct-setf-expander + ;; cl-val cl-x ',name ',accessor + ;; ,(and pred-check `',pred-check) + ;; ,pos))) + ;; forms) + ) (if print-auto (nconc print-func (list `(princ ,(format " %s" slot) cl-s) From fd59cb292fa47be30b79a2190a0f404d4f673344 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 8 Oct 2012 23:33:51 -0700 Subject: [PATCH 144/272] ChangeLog fixes --- src/ChangeLog | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 7470a1d0968..1acf2e0b5f9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -4,18 +4,18 @@ HAVE_NTGUI, not just WINDOWSNT, resolving a problem in the cygw32 build that caused Emacs to display the hourglass cursor forever. -2012-10-08 Jan Djärv - * nsfont.m (Vfonts_in_cache): New variable. - (nsfont_open): Use unsignedLongLongValue for cache in case wide ints - are used. Add cached fonts to Vfonts_in_cache. - (syms_of_nsfont): Initialize and staticpro Vfonts_in_cache. - -2012-10-08 Daniel Colascione * w32fns.c (Fx_display_color_cells): Instead of using NCOLORS, which is broken under remote desktop, calculate the number of colors available for a display based on the display's number of planes and number of bits per pixel per plane. (bug#10397). +2012-10-08 Jan Djärv + + * nsfont.m (Vfonts_in_cache): New variable. + (nsfont_open): Use unsignedLongLongValue for cache in case wide ints + are used. Add cached fonts to Vfonts_in_cache. + (syms_of_nsfont): Initialize and staticpro Vfonts_in_cache. + 2012-10-08 Juanma Barranquero * makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now @@ -32,12 +32,12 @@ (W32TERM_H): Add $(ATIMER_H) and $(FRAME_H). ($(BLD)/emacs.$(O), $(BLD)/w32console.$(O)): Update dependencies. (GLOBAL_SOURCES): Add cygw32.c. - ($(BLD)/unexw32.$(O)): - ($(BLD)/w32.$(O)): - ($(BLD)/w32console.$(O)): - ($(BLD)/w32fns.$(O)): - ($(BLD)/w32heap.$(O)): - ($(BLD)/w32menu.$(O)): + ($(BLD)/unexw32.$(O)): + ($(BLD)/w32.$(O)): + ($(BLD)/w32console.$(O)): + ($(BLD)/w32fns.$(O)): + ($(BLD)/w32heap.$(O)): + ($(BLD)/w32menu.$(O)): ($(BLD)/w32proc.$(O)): Add w32common.h. * w32fns.c (w32_color_map_lookup, x_to_w32_color): Argument is now From f754db08a70b573fe81f3409cf20a057f9aa0636 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 9 Oct 2012 02:36:16 -0400 Subject: [PATCH 145/272] * lisp/progmodes/cc-bytecomp.el (cc-bytecomp-defmacro): Remove, unused. * lisp/progmodes/cc-vars.el (bq-process): Remove, unused. --- lisp/ChangeLog | 3 +++ lisp/progmodes/cc-bytecomp.el | 24 ------------------------ lisp/progmodes/cc-vars.el | 10 ---------- 3 files changed, 3 insertions(+), 34 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 184356f99fa..37a6adbae56 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2012-10-09 Stefan Monnier + * progmodes/cc-bytecomp.el (cc-bytecomp-defmacro): Remove, unused. + * progmodes/cc-vars.el (bq-process): Remove, unused. + * emacs-lisp/cl-macs.el (cl-defstruct): Obey the :read-only property. 2012-10-09 Fabián Ezequiel Gallina diff --git a/lisp/progmodes/cc-bytecomp.el b/lisp/progmodes/cc-bytecomp.el index bd9805673a4..4236f1c983f 100644 --- a/lisp/progmodes/cc-bytecomp.el +++ b/lisp/progmodes/cc-bytecomp.el @@ -338,30 +338,6 @@ at compile time, e.g. for macros and inline functions." (cc-bytecomp-debug-msg "cc-bytecomp-defun: Covered function %s" ',fun)))))) -(put 'cc-bytecomp-defmacro 'lisp-indent-function 'defun) -(defmacro cc-bytecomp-defmacro (fun &rest temp-macro) - "Bind the symbol as a macro during compilation (and evaluation) of the -file. Don't use outside `eval-when-compile'." - `(let ((orig-fun (assq ',fun cc-bytecomp-original-functions))) - (if (not orig-fun) - (setq orig-fun - (list ',fun - nil - (if (fboundp ',fun) - (progn - (cc-bytecomp-debug-msg - "cc-bytecomp-defmacro: Saving %s" ',fun) - (symbol-function ',fun)) - (cc-bytecomp-debug-msg - "cc-bytecomp-defmacro: Saving %s as unbound" ',fun) - 'unbound)) - cc-bytecomp-original-functions - (cons orig-fun cc-bytecomp-original-functions))) - (defmacro ,fun ,@temp-macro) - (cc-bytecomp-debug-msg - "cc-bytecomp-defmacro: Bound macro %s" ',fun) - (setcar (cdr orig-fun) (symbol-function ',fun)))) - (defmacro cc-bytecomp-put (symbol propname value) "Set a property on a symbol during compilation (and evaluation) of the file. Don't use outside `eval-when-compile'." diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el index 5201e4a26ed..d56c1124a9c 100644 --- a/lisp/progmodes/cc-vars.el +++ b/lisp/progmodes/cc-vars.el @@ -49,16 +49,6 @@ (require 'custom) (require 'widget)) -(cc-eval-when-compile - ;; Need the function form of `backquote', which isn't standardized - ;; between Emacsen. It's called `bq-process' in XEmacs, and - ;; `backquote-process' in Emacs. `backquote-process' returns a - ;; slightly more convoluted form, so let `bq-process' be the norm. - (if (fboundp 'backquote-process) - (cc-bytecomp-defmacro bq-process (form) - `(cdr (backquote-process ,form))))) - - ;;; Helpers ;; This widget exists in newer versions of the Custom library From 10766e9eb2d56fe6f6d369b8127e3b8b4963547e Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 9 Oct 2012 02:41:07 -0400 Subject: [PATCH 146/272] * lisp/bindings.el (mode-line-toggle-read-only, mode-line-toggle-modified) (mode-line-widen, mode-line-input-method-map) (mode-line-coding-system-map, mode-line-remote) (mode-line-unbury-buffer, mode-line-bury-buffer) (mode-line-next-buffer, mode-line-previous-buffer): Replace save-selected-window+select-window => with-selected-window. --- lisp/ChangeLog | 7 +++++++ lisp/bindings.el | 38 ++++++++++++-------------------------- 2 files changed, 19 insertions(+), 26 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 37a6adbae56..5c168a07dde 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,12 @@ 2012-10-09 Stefan Monnier + * bindings.el (mode-line-toggle-read-only, mode-line-toggle-modified) + (mode-line-widen, mode-line-input-method-map) + (mode-line-coding-system-map, mode-line-remote) + (mode-line-unbury-buffer, mode-line-bury-buffer) + (mode-line-next-buffer, mode-line-previous-buffer): + Replace save-selected-window+select-window => with-selected-window. + * progmodes/cc-bytecomp.el (cc-bytecomp-defmacro): Remove, unused. * progmodes/cc-vars.el (bq-process): Remove, unused. diff --git a/lisp/bindings.el b/lisp/bindings.el index b4f9d29fe52..de5dd48c291 100644 --- a/lisp/bindings.el +++ b/lisp/bindings.el @@ -38,23 +38,20 @@ corresponding to the mode line clicked." (defun mode-line-toggle-read-only (event) "Like `toggle-read-only', for the mode-line." (interactive "e") - (save-selected-window - (select-window (posn-window (event-start event))) + (with-selected-window (posn-window (event-start event)) (read-only-mode 'toggle))) (defun mode-line-toggle-modified (event) "Toggle the buffer-modified flag from the mode-line." (interactive "e") - (save-selected-window - (select-window (posn-window (event-start event))) + (with-selected-window (posn-window (event-start event)) (set-buffer-modified-p (not (buffer-modified-p))) (force-mode-line-update))) (defun mode-line-widen (event) "Widen a buffer from the mode-line." (interactive "e") - (save-selected-window - (select-window (posn-window (event-start event))) + (with-selected-window (posn-window (event-start event)) (widen) (force-mode-line-update))) @@ -63,17 +60,13 @@ corresponding to the mode line clicked." (define-key map [mode-line mouse-2] (lambda (e) (interactive "e") - (save-selected-window - (select-window - (posn-window (event-start e))) + (with-selected-window (posn-window (event-start e)) (toggle-input-method) (force-mode-line-update)))) (define-key map [mode-line mouse-3] (lambda (e) (interactive "e") - (save-selected-window - (select-window - (posn-window (event-start e))) + (with-selected-window (posn-window (event-start e)) (describe-current-input-method)))) (purecopy map))) @@ -82,16 +75,14 @@ corresponding to the mode line clicked." (define-key map [mode-line mouse-1] (lambda (e) (interactive "e") - (save-selected-window - (select-window (posn-window (event-start e))) + (with-selected-window (posn-window (event-start e)) (when (and enable-multibyte-characters buffer-file-coding-system) (describe-coding-system buffer-file-coding-system))))) (define-key map [mode-line mouse-3] (lambda (e) (interactive "e") - (save-selected-window - (select-window (posn-window (event-start e))) + (with-selected-window (posn-window (event-start e)) (call-interactively 'set-buffer-file-coding-system)))) (purecopy map)) "Local keymap for the coding-system part of the mode line.") @@ -237,8 +228,7 @@ mnemonics of the following coding systems: 'mouse-face 'mode-line-highlight 'help-echo (purecopy (lambda (window _object _point) (format "%s" - (save-selected-window - (select-window window) + (with-selected-window window (concat (if (file-remote-p default-directory) "Current directory is remote: " @@ -474,15 +464,13 @@ By default, this shows the information specified by (defun mode-line-unbury-buffer (event) "\ Call `unbury-buffer' in this window." (interactive "e") - (save-selected-window - (select-window (posn-window (event-start event))) + (with-selected-window (posn-window (event-start event)) (unbury-buffer))) (defun mode-line-bury-buffer (event) "\ Like `bury-buffer', but temporarily select EVENT's window." (interactive "e") - (save-selected-window - (select-window (posn-window (event-start event))) + (with-selected-window (posn-window (event-start event)) (bury-buffer))) (defun mode-line-other-buffer () "\ @@ -493,15 +481,13 @@ Switch to the most recently selected buffer other than the current one." (defun mode-line-next-buffer (event) "Like `next-buffer', but temporarily select EVENT's window." (interactive "e") - (save-selected-window - (select-window (posn-window (event-start event))) + (with-selected-window (posn-window (event-start event)) (next-buffer))) (defun mode-line-previous-buffer (event) "Like `previous-buffer', but temporarily select EVENT's window." (interactive "e") - (save-selected-window - (select-window (posn-window (event-start event))) + (with-selected-window (posn-window (event-start event)) (previous-buffer))) (defmacro bound-and-true-p (var) From 2c35bdbb581c410b2e5562ee712d1cf170c82480 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 9 Oct 2012 00:00:23 -0700 Subject: [PATCH 147/272] Make cusver handle options moved from C to lisp * admin/admin.el (cusver-scan-cus-start): New function. (cusver-check): Scan old cus-start.el. --- admin/ChangeLog | 5 +++++ admin/admin.el | 27 ++++++++++++++++++++------- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/admin/ChangeLog b/admin/ChangeLog index 7d4921887ce..c10ec67147b 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,8 @@ +2012-10-09 Glenn Morris + + * admin.el (cusver-scan-cus-start): New function. + (cusver-check): Scan old cus-start.el. + 2012-10-07 Glenn Morris * admin.el (cusver-new-version): Set default. diff --git a/admin/admin.el b/admin/admin.el index 3e3fbba7202..59d085b6405 100644 --- a/admin/admin.el +++ b/admin/admin.el @@ -446,8 +446,6 @@ If optional OLD is non-nil, also include defvars." (1+ emacs-minor-version)) "Version number that new defcustoms should have.") -;; TODO do something about renamed variables with aliases to the old name? -;; Scan old cus-start.el to find variables moved from C to lisp? (defun cusver-scan (file &optional old) "Scan FILE for `defcustom' calls. Return a list with elements of the form (VAR . VER), @@ -486,6 +484,21 @@ If optional argument OLD is non-nil, also scan for defvars." (message "%sdone" m) alist)) +(defun cusver-scan-cus-start (file) + "Scan cus-start.el and return an alist with elements (VAR . VER)." + (if (file-readable-p file) + (with-temp-buffer + (insert-file-contents file) + (when (search-forward "(let ((all '(" nil t) + (backward-char 1) + (let (var ver alist) + (dolist (elem (ignore-errors (read (current-buffer)))) + (when (symbolp (setq var (car-safe elem))) + (or (stringp (setq ver (nth 3 elem))) + (setq ver nil)) + (setq alist (cons (cons var ver) alist)))) + alist))))) + (define-button-type 'cusver-xref 'action #'cusver-goto-xref) (defun cusver-goto-xref (button) @@ -501,11 +514,9 @@ If optional argument OLD is non-nil, also scan for defvars." (pop-to-buffer (current-buffer)))))) ;; You should probably at least do a grep over the old directory -;; to check the results of this look sensible. Eg cus-start if -;; something moved from C to Lisp. -;; TODO handle renamed things with aliases to the old names. -;; What to do about new files? Does everything in there need a :version, -;; or eg just the defgroup? +;; to check the results of this look sensible. +;; TODO Check cus-start if something moved from C to Lisp. +;; TODO Handle renamed things with aliases to the old names. (defun cusver-check (newdir olddir version) "Check that defcustoms have :version tags where needed. NEWDIR is the current lisp/ directory, OLDDIR is that from the previous @@ -537,6 +548,8 @@ changes (in a non-trivial way). This function does not check for that." (message "Reading old defcustoms...") (dolist (file oldfiles) (setq oldcus (append oldcus (cusver-scan file t)))) + (setq oldcus (append oldcus (cusver-scan-cus-start + (expand-file-name "cus-start.el" olddir)))) ;; newcus has elements (FILE (VAR VER) ... ). ;; oldcus just (VAR . VER). (message "Checking for version tags...") From 26b77251570c38b8e96561adf45d17d457e3f40f Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 9 Oct 2012 00:06:54 -0700 Subject: [PATCH 148/272] * lisp/newcomment.el (comment-normalize-vars): Doc fix (presumably). --- lisp/ChangeLog | 4 ++++ lisp/newcomment.el | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5c168a07dde..7a7c96d43ec 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-10-09 Glenn Morris + + * newcomment.el (comment-normalize-vars): Doc fix (presumably). + 2012-10-09 Stefan Monnier * bindings.el (mode-line-toggle-read-only, mode-line-toggle-modified) diff --git a/lisp/newcomment.el b/lisp/newcomment.el index 6d2eed71948..4dc94b6bd6b 100644 --- a/lisp/newcomment.el +++ b/lisp/newcomment.el @@ -327,7 +327,7 @@ terminated by the end of line (i.e. `comment-end' is empty)." ;;;###autoload (defun comment-normalize-vars (&optional noerror) "Check and setup the variables needed by other commenting functions. -Any command calling functions from newcomment.el, being entry points, should +Any command calling functions from newcomment.el, besides entry points, should call this function before any other, so the rest of the code can assume that the variables are properly set." (unless (and (not comment-start) noerror) From 9a5f296f696529346c9d31a1a78f0d1565547390 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 9 Oct 2012 00:08:26 -0700 Subject: [PATCH 149/272] Update some function declarations * w32-fns.el (set-message-beep): * term/w32-win.el (set-message-beep): Update declarations. --- lisp/ChangeLog | 3 +++ lisp/term/w32-win.el | 2 +- lisp/w32-fns.el | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7a7c96d43ec..ffd224c9b6c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2012-10-09 Glenn Morris + * w32-fns.el (set-message-beep): + * term/w32-win.el (set-message-beep): Update declarations. + * newcomment.el (comment-normalize-vars): Doc fix (presumably). 2012-10-09 Stefan Monnier diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el index 841a45c23a2..ad6e1125027 100644 --- a/lisp/term/w32-win.el +++ b/lisp/term/w32-win.el @@ -89,7 +89,7 @@ (make-obsolete 'w32-default-color-map nil "24.1") (declare-function w32-send-sys-command "w32fns.c") -(declare-function set-message-beep "w32console.c") +(declare-function set-message-beep "w32fns.c") ;; Conditional on new-fontset so bootstrapping works on non-GUI compiles (if (fboundp 'new-fontset) diff --git a/lisp/w32-fns.el b/lisp/w32-fns.el index 813a8fd4d96..5d9b68e9de5 100644 --- a/lisp/w32-fns.el +++ b/lisp/w32-fns.el @@ -32,7 +32,7 @@ ;;;; Function keys -(declare-function set-message-beep "w32console.c") +(declare-function set-message-beep "w32fns.c") (declare-function w32-get-locale-info "w32proc.c") (declare-function w32-get-valid-locale-ids "w32proc.c") From bf05ed1f9ece919197cd5a0c2b9c65b1a3fbb22c Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 9 Oct 2012 06:17:32 -0400 Subject: [PATCH 150/272] Auto-commit of generated files. --- autogen/config.in | 2 +- autogen/configure | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/autogen/config.in b/autogen/config.in index 7aaf6650fa0..c5f32371dd7 100644 --- a/autogen/config.in +++ b/autogen/config.in @@ -692,7 +692,7 @@ along with GNU Emacs. If not, see . */ Mac OS X. */ #undef HAVE_NS -/* Define to use native Windows GUI. */ +/* Define to use native MS Windows GUI. */ #undef HAVE_NTGUI /* Define to 1 if libotf has OTF_get_variation_glyphs. */ diff --git a/autogen/configure b/autogen/configure index 163bbaf8719..67e1039d54c 100755 --- a/autogen/configure +++ b/autogen/configure @@ -2084,7 +2084,7 @@ Optional Packages: --without-xaw3d don't use Xaw3d --without-xim don't use X11 XIM --with-ns use NeXTstep (Cocoa or GNUstep) windowing system - --with-w32 use native Windows GUI + --with-w32 use native MS Windows GUI --without-gpm don't use -lgpm for mouse support on a GNU/Linux console --without-dbus don't compile with D-Bus support From 1d51f99c52d3d4f702dcefa80fad2956caac5f48 Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Tue, 9 Oct 2012 14:49:02 +0200 Subject: [PATCH 151/272] * net/tramp.el (tramp-debug-message): Remove "tramp-with-progress-reporter" from regexp of ignored functions. (with-tramp-progress-reporter): Rename from `tramp-with-progress-reporter'. (with-tramp-file-property, with-tramp-connection-property): Move from tramp-cache.el, rename from `with-file-property' and `with-connection-property', respectively. * net/tramp-cache.el: Remove `with-file-property' and `with-connection-property'. * net/tramp.el: * net/tramp-gvfs.el: * net/tramp-sh.el: * net/tramp-smb.el: Adapt callees. * net/trampver.el: Update release number. --- lisp/ChangeLog | 20 +++++++++ lisp/net/tramp-cache.el | 39 ----------------- lisp/net/tramp-gvfs.el | 8 ++-- lisp/net/tramp-sh.el | 95 +++++++++++++++++++++-------------------- lisp/net/tramp-smb.el | 23 +++++----- lisp/net/tramp.el | 55 +++++++++++++++++++----- lisp/net/trampver.el | 4 +- 7 files changed, 131 insertions(+), 113 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ffd224c9b6c..1b42ae36839 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,23 @@ +2012-10-09 Michael Albinus + + * net/tramp.el (tramp-debug-message): Remove + "tramp-with-progress-reporter" from regexp of ignored functions. + (with-tramp-progress-reporter): Rename from + `tramp-with-progress-reporter'. + (with-tramp-file-property, with-tramp-connection-property): Move + from tramp-cache.el, rename from `with-file-property' and + `with-connection-property', respectively. + + * net/tramp-cache.el: Remove `with-file-property' and + `with-connection-property'. + + * net/tramp.el: + * net/tramp-gvfs.el: + * net/tramp-sh.el: + * net/tramp-smb.el: Adapt callees. + + * net/trampver.el: Update release number. + 2012-10-09 Glenn Morris * w32-fns.el (set-message-beep): diff --git a/lisp/net/tramp-cache.el b/lisp/net/tramp-cache.el index fe5eb0049d0..e4fca46ce2d 100644 --- a/lisp/net/tramp-cache.el +++ b/lisp/net/tramp-cache.el @@ -138,27 +138,6 @@ Returns VALUE." (set var (1+ val)))) value)) -;;;###tramp-autoload -(defmacro with-file-property (vec file property &rest body) - "Check in Tramp cache for PROPERTY, otherwise execute BODY and set cache. -FILE must be a local file name on a connection identified via VEC." - `(if (file-name-absolute-p ,file) - (let ((value (tramp-get-file-property ,vec ,file ,property 'undef))) - (when (eq value 'undef) - ;; We cannot pass @body as parameter to - ;; `tramp-set-file-property' because it mangles our - ;; debug messages. - (setq value (progn ,@body)) - (tramp-set-file-property ,vec ,file ,property value)) - value) - ,@body)) - -;;;###tramp-autoload -(put 'with-file-property 'lisp-indent-function 3) -(put 'with-file-property 'edebug-form-spec t) -(tramp-compat-font-lock-add-keywords - 'emacs-lisp-mode '("\\")) - ;;;###tramp-autoload (defun tramp-flush-file-property (vec file) "Remove all properties of FILE in the cache context of VEC." @@ -249,24 +228,6 @@ PROPERTY is set persistent when KEY is a vector." (tramp-message key 7 "%s %s" property value) value)) -;;;###tramp-autoload -(defmacro with-connection-property (key property &rest body) - "Check in Tramp for property PROPERTY, otherwise executes BODY and set." - `(let ((value (tramp-get-connection-property ,key ,property 'undef))) - (when (eq value 'undef) - ;; We cannot pass ,@body as parameter to - ;; `tramp-set-connection-property' because it mangles our debug - ;; messages. - (setq value (progn ,@body)) - (tramp-set-connection-property ,key ,property value)) - value)) - -;;;###tramp-autoload -(put 'with-connection-property 'lisp-indent-function 2) -(put 'with-connection-property 'edebug-form-spec t) -(tramp-compat-font-lock-add-keywords - 'emacs-lisp-mode '("\\")) - ;;;###tramp-autoload (defun tramp-flush-connection-property (key) "Remove all properties identified by KEY. diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el index f78122ec704..60b39606d86 100644 --- a/lisp/net/tramp-gvfs.el +++ b/lisp/net/tramp-gvfs.el @@ -537,7 +537,7 @@ is no information where to trace the message.") "Like `copy-file' for Tramp files." (with-parsed-tramp-file-name (if (tramp-tramp-file-p filename) filename newname) nil - (tramp-with-progress-reporter + (with-tramp-progress-reporter v 0 (format "Copying %s to %s" filename newname) (condition-case err (let ((args @@ -741,7 +741,7 @@ is no information where to trace the message.") "Like `rename-file' for Tramp files." (with-parsed-tramp-file-name (if (tramp-tramp-file-p filename) filename newname) nil - (tramp-with-progress-reporter + (with-tramp-progress-reporter v 0 (format "Renaming %s to %s" filename newname) (condition-case err (rename-file @@ -1056,7 +1056,7 @@ ADDRESS can have the form \"xx:xx:xx:xx:xx:xx\" or \"[xx:xx:xx:xx:xx:xx]\"." (catch 'mounted (dolist (elt - (with-file-property vec "/" "list-mounts" + (with-tramp-file-property vec "/" "list-mounts" (with-tramp-dbus-call-method vec t :session tramp-gvfs-service-daemon tramp-gvfs-path-mounttracker tramp-gvfs-interface-mounttracker "listMounts")) @@ -1199,7 +1199,7 @@ connection if a previous connection has died for some reason." (tramp-gvfs-object-path (tramp-make-tramp-file-name method user host "")))) - (tramp-with-progress-reporter + (with-tramp-progress-reporter vec 3 (if (zerop (length user)) (format "Opening connection for %s using %s" host method) diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 2c1af3e83fa..ec321d00506 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -1058,7 +1058,7 @@ target of the symlink differ." "Like `file-truename' for Tramp files." (with-parsed-tramp-file-name (expand-file-name filename) nil (tramp-make-tramp-file-name method user host - (with-file-property v localname "file-truename" + (with-tramp-file-property v localname "file-truename" (let ((result nil)) ; result steps in reverse order (tramp-message v 4 "Finding true name for `%s'" filename) (cond @@ -1167,7 +1167,7 @@ target of the symlink differ." (defun tramp-sh-handle-file-exists-p (filename) "Like `file-exists-p' for Tramp files." (with-parsed-tramp-file-name filename nil - (with-file-property v localname "file-exists-p" + (with-tramp-file-property v localname "file-exists-p" (or (not (null (tramp-get-file-property v localname "file-attributes-integer" nil))) (not (null (tramp-get-file-property @@ -1185,7 +1185,8 @@ target of the symlink differ." ;; Don't modify `last-coding-system-used' by accident. (let ((last-coding-system-used last-coding-system-used)) (with-parsed-tramp-file-name (expand-file-name filename) nil - (with-file-property v localname (format "file-attributes-%s" id-format) + (with-tramp-file-property + v localname (format "file-attributes-%s" id-format) (save-excursion (tramp-convert-file-attributes v @@ -1481,7 +1482,8 @@ and gid of the corresponding user is taken. Both parameters must be integers." (defun tramp-remote-selinux-p (vec) "Check, whether SELINUX is enabled on the remote host." - (with-connection-property (tramp-get-connection-process vec) "selinux-p" + (with-tramp-connection-property + (tramp-get-connection-process vec) "selinux-p" (let ((result (tramp-find-executable vec "getenforce" (tramp-get-remote-path vec) t t))) (and result @@ -1493,7 +1495,7 @@ and gid of the corresponding user is taken. Both parameters must be integers." (defun tramp-sh-handle-file-selinux-context (filename) "Like `file-selinux-context' for Tramp files." (with-parsed-tramp-file-name filename nil - (with-file-property v localname "file-selinux-context" + (with-tramp-file-property v localname "file-selinux-context" (let ((context '(nil nil nil nil)) (regexp (concat "\\([a-z0-9_]+\\):" "\\([a-z0-9_]+\\):" "\\([a-z0-9_]+\\):" "\\([a-z0-9_]+\\)"))) @@ -1537,7 +1539,7 @@ and gid of the corresponding user is taken. Both parameters must be integers." (defun tramp-sh-handle-file-executable-p (filename) "Like `file-executable-p' for Tramp files." (with-parsed-tramp-file-name filename nil - (with-file-property v localname "file-executable-p" + (with-tramp-file-property v localname "file-executable-p" ;; Examine `file-attributes' cache to see if request can be ;; satisfied without remote operation. (or (tramp-check-cached-permissions v ?x) @@ -1546,7 +1548,7 @@ and gid of the corresponding user is taken. Both parameters must be integers." (defun tramp-sh-handle-file-readable-p (filename) "Like `file-readable-p' for Tramp files." (with-parsed-tramp-file-name filename nil - (with-file-property v localname "file-readable-p" + (with-tramp-file-property v localname "file-readable-p" ;; Examine `file-attributes' cache to see if request can be ;; satisfied without remote operation. (or (tramp-check-cached-permissions v ?r) @@ -1600,13 +1602,13 @@ and gid of the corresponding user is taken. Both parameters must be integers." ;; desirable to return t immediately for "/method:foo:". It can ;; be expected that this is always a directory. (or (zerop (length localname)) - (with-file-property v localname "file-directory-p" + (with-tramp-file-property v localname "file-directory-p" (tramp-run-test "-d" filename))))) (defun tramp-sh-handle-file-writable-p (filename) "Like `file-writable-p' for Tramp files." (with-parsed-tramp-file-name filename nil - (with-file-property v localname "file-writable-p" + (with-tramp-file-property v localname "file-writable-p" (if (file-exists-p filename) ;; Examine `file-attributes' cache to see if request can be ;; satisfied without remote operation. @@ -1619,7 +1621,7 @@ and gid of the corresponding user is taken. Both parameters must be integers." (defun tramp-sh-handle-file-ownership-preserved-p (filename) "Like `file-ownership-preserved-p' for Tramp files." (with-parsed-tramp-file-name filename nil - (with-file-property v localname "file-ownership-preserved-p" + (with-tramp-file-property v localname "file-ownership-preserved-p" (let ((attributes (file-attributes filename))) ;; Return t if the file doesn't exist, since it's true that no ;; information would be lost by an (attempted) delete and create. @@ -1637,7 +1639,7 @@ and gid of the corresponding user is taken. Both parameters must be integers." (let* ((temp (copy-tree (with-parsed-tramp-file-name directory nil - (with-file-property + (with-tramp-file-property v localname (format "directory-files-and-attributes-%s" id-format) (save-excursion @@ -1987,7 +1989,7 @@ file names." (tramp-error v 'file-already-exists "File %s already exists" newname)) - (tramp-with-progress-reporter + (with-tramp-progress-reporter v 0 (format "%s %s to %s" (if (eq op 'copy) "Copying" "Renaming") filename newname) @@ -2505,7 +2507,7 @@ This is like `dired-recursive-delete-directory' for Tramp files." nil) ((and suffix (nth 2 suffix)) ;; We found an uncompression rule. - (tramp-with-progress-reporter + (with-tramp-progress-reporter v 0 (format "Uncompressing %s" file) (when (tramp-send-command-and-check v (concat (nth 2 suffix) " " @@ -2517,7 +2519,7 @@ This is like `dired-recursive-delete-directory' for Tramp files." (t ;; We don't recognize the file as compressed, so compress it. ;; Try gzip. - (tramp-with-progress-reporter v 0 (format "Compressing %s" file) + (with-tramp-progress-reporter v 0 (format "Compressing %s" file) (when (tramp-send-command-and-check v (concat "gzip -f " (tramp-shell-quote-argument localname))) @@ -2673,7 +2675,7 @@ the result will be a local, non-Tramp, filename." (string-match "\\`su\\(do\\)?\\'" method)) (setq uname (concat uname user))) (setq uname - (with-connection-property v uname + (with-tramp-connection-property v uname (tramp-send-command v (format "cd %s; pwd" (tramp-shell-quote-argument uname))) (with-current-buffer (tramp-get-buffer v) @@ -2943,7 +2945,7 @@ the result will be a local, non-Tramp, filename." ;; Use inline encoding for file transfer. (rem-enc (save-excursion - (tramp-with-progress-reporter + (with-tramp-progress-reporter v 3 (format "Encoding remote file %s" filename) (tramp-barf-unless-okay v (format rem-enc (tramp-shell-quote-argument localname)) @@ -2957,7 +2959,7 @@ the result will be a local, non-Tramp, filename." (with-temp-buffer (set-buffer-multibyte nil) (insert-buffer-substring (tramp-get-buffer v)) - (tramp-with-progress-reporter + (with-tramp-progress-reporter v 3 (format "Decoding remote file %s with function %s" filename loc-dec) (funcall loc-dec (point-min) (point-max)) @@ -2975,7 +2977,7 @@ the result will be a local, non-Tramp, filename." (let (file-name-handler-alist (coding-system-for-write 'binary)) (write-region (point-min) (point-max) tmpfile2)) - (tramp-with-progress-reporter + (with-tramp-progress-reporter v 3 (format "Decoding remote file %s with command %s" filename loc-dec) (unwind-protect @@ -3203,7 +3205,7 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file." (set-buffer-multibyte nil) ;; Use encoding function or command. (if (functionp loc-enc) - (tramp-with-progress-reporter + (with-tramp-progress-reporter v 3 (format "Encoding region using function `%s'" loc-enc) (let ((coding-system-for-read 'binary)) @@ -3221,7 +3223,7 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file." (tramp-compat-temporary-file-directory))) (funcall loc-enc (point-min) (point-max)))) - (tramp-with-progress-reporter + (with-tramp-progress-reporter v 3 (format "Encoding region using command `%s'" loc-enc) (unless (zerop (tramp-call-local-coding-command @@ -3235,7 +3237,7 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file." ;; Send buffer into remote decoding command which ;; writes to remote file. Because this happens on ;; the remote host, we cannot use the function. - (tramp-with-progress-reporter + (with-tramp-progress-reporter v 3 (format "Decoding region into remote file %s" filename) (goto-char (point-max)) @@ -3335,7 +3337,7 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file." "Like `vc-registered' for Tramp files." (tramp-compat-with-temp-message "" (with-parsed-tramp-file-name file nil - (tramp-with-progress-reporter + (with-tramp-progress-reporter v 3 (format "Checking `vc-registered' for %s" file) ;; There could be new files, created by the vc backend. We @@ -3433,7 +3435,7 @@ Only send the definition if it has not already been done." (let ((scripts (tramp-get-connection-property (tramp-get-connection-process vec) "scripts" nil))) (unless (member name scripts) - (tramp-with-progress-reporter vec 5 (format "Sending script `%s'" name) + (with-tramp-progress-reporter vec 5 (format "Sending script `%s'" name) ;; The script could contain a call of Perl. This is masked with `%s'. (tramp-barf-unless-okay vec @@ -3602,7 +3604,7 @@ file exists and nonzero exit status otherwise." (defun tramp-open-shell (vec shell) "Opens shell SHELL." - (tramp-with-progress-reporter + (with-tramp-progress-reporter vec 5 (format "Opening remote shell `%s'" shell) ;; Find arguments for this shell. (let ((tramp-end-of-output tramp-initial-end-of-output) @@ -3638,7 +3640,7 @@ file exists and nonzero exit status otherwise." (tramp-file-name-method vec) 'tramp-remote-shell))) shell) (setq shell - (with-connection-property vec "remote-shell" + (with-tramp-connection-property vec "remote-shell" ;; CCC: "root" does not exist always, see QNAP 459. ;; Which check could we apply instead? (tramp-send-command vec "echo ~root" t) @@ -3673,7 +3675,7 @@ file exists and nonzero exit status otherwise." (tramp-open-shell vec shell)) ;; Busyboxes tend to behave strange. We check for the existence. - (with-connection-property vec "busybox" + (with-tramp-connection-property vec "busybox" (tramp-send-command vec (format "%s --version" shell) t) (let ((case-fold-search t)) (and (string-match "busybox" (buffer-string)) t)))))) @@ -3798,7 +3800,7 @@ process to set up. VEC specifies the connection." ;; successfully, sending 625 bytes failed. Emacs makes a hack when ;; this host type is detected locally. It cannot handle remote ;; hosts, though. - (with-connection-property proc "chunksize" + (with-tramp-connection-property proc "chunksize" (cond ((and (integerp tramp-chunksize) (> tramp-chunksize 0)) tramp-chunksize) @@ -4327,7 +4329,7 @@ connection if a previous connection has died for some reason." (when (and (boundp 'non-essential) (symbol-value 'non-essential)) (throw 'non-essential 'non-essential)) - (tramp-with-progress-reporter + (with-tramp-progress-reporter vec 3 (if (zerop (length (tramp-file-name-user vec))) (format "Opening connection for %s using %s" @@ -4773,7 +4775,7 @@ This is used internally by `tramp-file-mode-from-int'." ;; Variables local to connection. (defun tramp-get-remote-path (vec) - (with-connection-property + (with-tramp-connection-property ;; When `tramp-own-remote-path' is in `tramp-remote-path', we ;; cache the result for the session only. Otherwise, the result ;; is cached persistently. @@ -4845,7 +4847,7 @@ This is used internally by `tramp-file-mode-from-int'." remote-path))))) (defun tramp-get-ls-command (vec) - (with-connection-property vec "ls" + (with-tramp-connection-property vec "ls" (tramp-message vec 5 "Finding a suitable `ls' command") (or (catch 'ls-found @@ -4871,7 +4873,7 @@ This is used internally by `tramp-file-mode-from-int'." (defun tramp-get-ls-command-with-dired (vec) (save-match-data - (with-connection-property vec "ls-dired" + (with-tramp-connection-property vec "ls-dired" (tramp-message vec 5 "Checking, whether `ls --dired' works") ;; Some "ls" versions are sensible wrt the order of arguments, ;; they fail when "-al" is after the "--dired" argument (for @@ -4880,7 +4882,7 @@ This is used internally by `tramp-file-mode-from-int'." vec (format "%s --dired -al /dev/null" (tramp-get-ls-command vec)))))) (defun tramp-get-test-command (vec) - (with-connection-property vec "test" + (with-tramp-connection-property vec "test" (tramp-message vec 5 "Finding a suitable `test' command") (if (tramp-send-command-and-check vec "test 0") "test" @@ -4890,7 +4892,7 @@ This is used internally by `tramp-file-mode-from-int'." ;; Does `test A -nt B' work? Use abominable `find' construct if it ;; doesn't. BSD/OS 4.0 wants the parentheses around the command, ;; for otherwise the shell crashes. - (with-connection-property vec "test-nt" + (with-tramp-connection-property vec "test-nt" (or (progn (tramp-send-command @@ -4908,17 +4910,17 @@ This is used internally by `tramp-file-mode-from-int'." "tramp_test_nt %s %s")))) (defun tramp-get-file-exists-command (vec) - (with-connection-property vec "file-exists" + (with-tramp-connection-property vec "file-exists" (tramp-message vec 5 "Finding command to check if file exists") (tramp-find-file-exists-command vec))) (defun tramp-get-remote-ln (vec) - (with-connection-property vec "ln" + (with-tramp-connection-property vec "ln" (tramp-message vec 5 "Finding a suitable `ln' command") (tramp-find-executable vec "ln" (tramp-get-remote-path vec)))) (defun tramp-get-remote-perl (vec) - (with-connection-property vec "perl" + (with-tramp-connection-property vec "perl" (tramp-message vec 5 "Finding a suitable `perl' command") (let ((result (or (tramp-find-executable vec "perl5" (tramp-get-remote-path vec)) @@ -4926,16 +4928,16 @@ This is used internally by `tramp-file-mode-from-int'." vec "perl" (tramp-get-remote-path vec))))) ;; We must check also for some Perl modules. (when result - (with-connection-property vec "perl-file-spec" + (with-tramp-connection-property vec "perl-file-spec" (tramp-send-command-and-check vec (format "%s -e 'use File::Spec;'" result))) - (with-connection-property vec "perl-cwd-realpath" + (with-tramp-connection-property vec "perl-cwd-realpath" (tramp-send-command-and-check vec (format "%s -e 'use Cwd \"realpath\";'" result)))) result))) (defun tramp-get-remote-stat (vec) - (with-connection-property vec "stat" + (with-tramp-connection-property vec "stat" (tramp-message vec 5 "Finding a suitable `stat' command") (let ((result (tramp-find-executable vec "stat" (tramp-get-remote-path vec))) @@ -4953,7 +4955,7 @@ This is used internally by `tramp-file-mode-from-int'." result))) (defun tramp-get-remote-readlink (vec) - (with-connection-property vec "readlink" + (with-tramp-connection-property vec "readlink" (tramp-message vec 5 "Finding a suitable `readlink' command") (let ((result (tramp-find-executable vec "readlink" (tramp-get-remote-path vec)))) @@ -4963,12 +4965,12 @@ This is used internally by `tramp-file-mode-from-int'." result)))) (defun tramp-get-remote-trash (vec) - (with-connection-property vec "trash" + (with-tramp-connection-property vec "trash" (tramp-message vec 5 "Finding a suitable `trash' command") (tramp-find-executable vec "trash" (tramp-get-remote-path vec)))) (defun tramp-get-remote-id (vec) - (with-connection-property vec "id" + (with-tramp-connection-property vec "id" (tramp-message vec 5 "Finding POSIX `id' command") (or (catch 'id-found @@ -4982,7 +4984,7 @@ This is used internally by `tramp-file-mode-from-int'." (tramp-error vec 'file-error "Couldn't find a POSIX `id' command")))) (defun tramp-get-remote-uid (vec id-format) - (with-connection-property vec (format "uid-%s" id-format) + (with-tramp-connection-property vec (format "uid-%s" id-format) (let ((res (tramp-send-command-and-read vec (format "%s -u%s %s" @@ -4994,7 +4996,7 @@ This is used internally by `tramp-file-mode-from-int'." (if (and (equal id-format 'integer) (not (integerp res))) -1 res)))) (defun tramp-get-remote-gid (vec id-format) - (with-connection-property vec (format "gid-%s" id-format) + (with-tramp-connection-property vec (format "gid-%s" id-format) (let ((res (tramp-send-command-and-read vec (format "%s -g%s %s" @@ -5020,7 +5022,7 @@ the length of the file to be compressed. If no corresponding command is found, nil is returned." (when (and (integerp tramp-inline-compress-start-size) (> size tramp-inline-compress-start-size)) - (with-connection-property (tramp-get-connection-process vec) prop + (with-tramp-connection-property (tramp-get-connection-process vec) prop (tramp-find-inline-compress vec) (tramp-get-connection-property (tramp-get-connection-process vec) prop nil)))) @@ -5041,7 +5043,8 @@ function cell is returned to be applied on a buffer." ;; no inline coding is found. (ignore-errors (let ((coding - (with-connection-property (tramp-get-connection-process vec) prop + (with-tramp-connection-property + (tramp-get-connection-process vec) prop (tramp-find-inline-encoding vec) (tramp-get-connection-property (tramp-get-connection-process vec) prop nil))) diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el index f1d54b6fd3c..567f8f2969a 100644 --- a/lisp/net/tramp-smb.el +++ b/lisp/net/tramp-smb.el @@ -355,7 +355,7 @@ pass to the OPERATION." (let ((t1 (tramp-tramp-file-p dirname)) (t2 (tramp-tramp-file-p newname))) (with-parsed-tramp-file-name (if t1 dirname newname) nil - (tramp-with-progress-reporter + (with-tramp-progress-reporter v 0 (format "Copying %s to %s" dirname newname) (cond ;; We must use a local temporary directory. @@ -491,7 +491,7 @@ KEEP-DATE has no effect in case NEWNAME resides on an SMB server. PRESERVE-UID-GID and PRESERVE-SELINUX-CONTEXT are completely ignored." (setq filename (expand-file-name filename) newname (expand-file-name newname)) - (tramp-with-progress-reporter + (with-tramp-progress-reporter (tramp-dissect-file-name (if (file-remote-p filename) filename newname)) 0 (format "Copying %s to %s" filename newname) @@ -642,7 +642,8 @@ PRESERVE-UID-GID and PRESERVE-SELINUX-CONTEXT are completely ignored." (unless id-format (setq id-format 'integer)) (ignore-errors (with-parsed-tramp-file-name filename nil - (with-file-property v localname (format "file-attributes-%s" id-format) + (with-tramp-file-property + v localname (format "file-attributes-%s" id-format) (if (and (tramp-smb-get-share v) (tramp-smb-get-stat-capability v)) (tramp-smb-do-file-attributes-with-stat v id-format) ;; Reading just the filename entry via "dir localname" is not @@ -753,7 +754,7 @@ PRESERVE-UID-GID and PRESERVE-SELINUX-CONTEXT are completely ignored." v 'file-error "Cannot make local copy of non-existing file `%s'" filename)) (let ((tmpfile (tramp-compat-make-temp-file filename))) - (tramp-with-progress-reporter + (with-tramp-progress-reporter v 3 (format "Fetching %s to tmp file %s" filename tmpfile) (unless (tramp-smb-send-command v (format "get \"%s\" \"%s\"" @@ -771,7 +772,7 @@ PRESERVE-UID-GID and PRESERVE-SELINUX-CONTEXT are completely ignored." (all-completions filename (with-parsed-tramp-file-name directory nil - (with-file-property v localname "file-name-all-completions" + (with-tramp-file-property v localname "file-name-all-completions" (save-match-data (let ((entries (tramp-smb-get-file-entries directory))) (mapcar @@ -1119,7 +1120,7 @@ target of the symlink differ." (if (file-remote-p filename) filename newname)) 'file-already-exists newname)) - (tramp-with-progress-reporter + (with-tramp-progress-reporter (tramp-dissect-file-name (if (file-remote-p filename) filename newname)) 0 (format "Renaming %s to %s" filename newname) @@ -1253,7 +1254,7 @@ errors for shares like \"C$/\", which are common in Microsoft Windows." (list start end tmpfile append 'no-message lockname confirm) (list start end tmpfile append 'no-message lockname))) - (tramp-with-progress-reporter + (with-tramp-progress-reporter v 3 (format "Moving tmp file %s to %s" tmpfile filename) (unwind-protect (unless (tramp-smb-send-command @@ -1312,7 +1313,7 @@ Either the shares are listed, or the `dir' command is executed. Result is a list of (LOCALNAME MODE SIZE MONTH DAY TIME YEAR)." (with-parsed-tramp-file-name (file-name-as-directory directory) nil (setq localname (or localname "/")) - (with-file-property v localname "file-entries" + (with-tramp-file-property v localname "file-entries" (with-current-buffer (tramp-get-connection-buffer v) (let* ((share (tramp-smb-get-share v)) (cache (tramp-get-connection-property v "share-cache" nil)) @@ -1497,7 +1498,7 @@ Result is the list (LOCALNAME MODE SIZE MTIME)." ;; When we are not logged in yet, we return nil. (if (let ((p (tramp-get-connection-process vec))) (and p (processp p) (memq (process-status p) '(run open)))) - (with-connection-property + (with-tramp-connection-property (tramp-get-connection-process vec) "cifs-capabilities" (save-match-data (when (tramp-smb-send-command vec "posix") @@ -1515,7 +1516,7 @@ Result is the list (LOCALNAME MODE SIZE MTIME)." ;; When we are not logged in yet, we return nil. (if (let ((p (tramp-get-connection-process vec))) (and p (processp p) (memq (process-status p) '(run open)))) - (with-connection-property + (with-tramp-connection-property (tramp-get-connection-process vec) "stat-capability" (tramp-smb-send-command vec "stat .")))) @@ -1625,7 +1626,7 @@ If ARGUMENT is non-nil, use it as argument for (setq args (append args (list argument)))) ;; OK, let's go. - (tramp-with-progress-reporter + (with-tramp-progress-reporter vec 3 (format "Opening connection for //%s%s/%s" (if (not (zerop (length user))) (concat user "@") "") diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index b1532eb2ae4..874c0aa7fef 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -1353,8 +1353,7 @@ ARGS to actually emit the message (if applicable)." "tramp-debug-message" "tramp-error" "tramp-error-with-buffer" - "tramp-message" - "tramp-with-progress-reporter") + "tramp-message") t) "$") fn))) @@ -1498,7 +1497,7 @@ If VAR is nil, then we bind `v' to the structure and `method', `user', (when (string-match message (or (current-message) "")) (tramp-compat-funcall 'progress-reporter-update reporter value)))) -(defmacro tramp-with-progress-reporter (vec level message &rest body) +(defmacro with-tramp-progress-reporter (vec level message &rest body) "Executes BODY, spinning a progress reporter with MESSAGE. If LEVEL does not fit for visible messages, or if this is a nested call of the macro, there are only traces without a visible @@ -1527,7 +1526,42 @@ progress reporter." (tramp-message ,vec ,level "%s...done" ,message)))) (tramp-compat-font-lock-add-keywords - 'emacs-lisp-mode '("\\")) + 'emacs-lisp-mode '("\\")) + +(defmacro with-tramp-file-property (vec file property &rest body) + "Check in Tramp cache for PROPERTY, otherwise execute BODY and set cache. +FILE must be a local file name on a connection identified via VEC." + `(if (file-name-absolute-p ,file) + (let ((value (tramp-get-file-property ,vec ,file ,property 'undef))) + (when (eq value 'undef) + ;; We cannot pass @body as parameter to + ;; `tramp-set-file-property' because it mangles our + ;; debug messages. + (setq value (progn ,@body)) + (tramp-set-file-property ,vec ,file ,property value)) + value) + ,@body)) + +(put 'with-tramp-file-property 'lisp-indent-function 3) +(put 'with-tramp-file-property 'edebug-form-spec t) +(tramp-compat-font-lock-add-keywords + 'emacs-lisp-mode '("\\")) + +(defmacro with-tramp-connection-property (key property &rest body) + "Check in Tramp for property PROPERTY, otherwise executes BODY and set." + `(let ((value (tramp-get-connection-property ,key ,property 'undef))) + (when (eq value 'undef) + ;; We cannot pass ,@body as parameter to + ;; `tramp-set-connection-property' because it mangles our debug + ;; messages. + (setq value (progn ,@body)) + (tramp-set-connection-property ,key ,property value)) + value)) + +(put 'with-tramp-connection-property 'lisp-indent-function 2) +(put 'with-tramp-connection-property 'edebug-form-spec t) +(tramp-compat-font-lock-add-keywords + 'emacs-lisp-mode '("\\")) (defalias 'tramp-drop-volume-letter (if (memq system-type '(cygwin windows-nt)) @@ -2860,7 +2894,7 @@ User is always nil." (setq filename (expand-file-name filename)) (let (result local-copy remote-copy) (with-parsed-tramp-file-name filename nil - (tramp-with-progress-reporter + (with-tramp-progress-reporter v 3 (format "Inserting `%s'" filename) (unwind-protect (if (not (file-exists-p filename)) @@ -2983,7 +3017,7 @@ User is always nil." (if (not (file-exists-p file)) nil (let ((tramp-message-show-message (not nomessage))) - (tramp-with-progress-reporter v 0 (format "Loading %s" file) + (with-tramp-progress-reporter v 0 (format "Loading %s" file) (let ((local-copy (file-local-copy file))) ;; MUST-SUFFIX doesn't exist on XEmacs, so let it default to nil. (unwind-protect @@ -3127,7 +3161,7 @@ beginning of local filename are not substituted." "Send the login name." (when (not (stringp tramp-current-user)) (setq tramp-current-user - (with-connection-property vec "login-as" + (with-tramp-connection-property vec "login-as" (save-window-excursion (let ((enable-recursive-minibuffers t)) (pop-to-buffer (tramp-get-connection-buffer vec)) @@ -3417,13 +3451,13 @@ the remote host use line-endings as defined in the variable (defun tramp-get-inode (vec) "Returns the virtual inode number. If it doesn't exist, generate a new one." - (with-file-property vec (tramp-file-name-localname vec) "inode" + (with-tramp-file-property vec (tramp-file-name-localname vec) "inode" (setq tramp-inodes (1+ tramp-inodes)))) (defun tramp-get-device (vec) "Returns the virtual device number. If it doesn't exist, generate a new one." - (with-connection-property (tramp-get-connection-process vec) "device" + (with-tramp-connection-property (tramp-get-connection-process vec) "device" (cons -1 (setq tramp-devices (1+ tramp-devices))))) (defun tramp-equal-remote (file1 file2) @@ -3545,7 +3579,7 @@ would yield `t'. On the other hand, the following check results in nil: (defun tramp-get-remote-tmpdir (vec) "Return directory for temporary files on the remote host identified by VEC." - (with-connection-property vec "tmpdir" + (with-tramp-connection-property vec "tmpdir" (let ((dir (tramp-make-tramp-file-name (tramp-file-name-method vec) (tramp-file-name-user vec) @@ -3833,7 +3867,6 @@ Only works for Bourne-like shells." ;; * In Emacs 21, `insert-directory' shows total number of bytes used ;; by the files in that directory. Add this here. ;; * Avoid screen blanking when hitting `g' in dired. (Eli Tziperman) -;; * Make ffap.el grok Tramp filenames. (Eli Tziperman) ;; * abbreviate-file-name ;; * Better error checking. At least whenever we see something ;; strange when doing zerop, we should kill the process and start diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el index 2d0a8e3d23d..331884691f4 100644 --- a/lisp/net/trampver.el +++ b/lisp/net/trampver.el @@ -31,7 +31,7 @@ ;; should be changed only there. ;;;###tramp-autoload -(defconst tramp-version "2.2.6" +(defconst tramp-version "2.2.7-pre" "This version of Tramp.") ;;;###tramp-autoload @@ -44,7 +44,7 @@ (= emacs-major-version 21) (>= emacs-minor-version 4))) "ok" - (format "Tramp 2.2.6 is not fit for %s" + (format "Tramp 2.2.7-pre is not fit for %s" (when (string-match "^.*$" (emacs-version)) (match-string 0 (emacs-version))))))) (unless (string-match "\\`ok\\'" x) (error "%s" x))) From 0a078f36546e47308e01c86a0658fff408c0664e Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Tue, 9 Oct 2012 14:51:21 +0200 Subject: [PATCH 152/272] * trampver.texi: Update release number. --- doc/misc/ChangeLog | 4 ++++ doc/misc/trampver.texi | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 5fdd4acde95..3ee183ff255 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,7 @@ +2012-10-09 Michael Albinus + + * trampver.texi: Update release number. + 2012-10-06 Glenn Morris * erc.texi: Include emacsver.texi, and use EMACSVER rather than diff --git a/doc/misc/trampver.texi b/doc/misc/trampver.texi index d902ac0fb97..96043a07300 100644 --- a/doc/misc/trampver.texi +++ b/doc/misc/trampver.texi @@ -8,7 +8,7 @@ @c In the Tramp CVS, the version number is auto-frobbed from @c configure.ac, so you should edit that file and run @c "autoconf && ./configure" to change the version number. -@set trampver 2.2.6 +@set trampver 2.2.7-pre @c Other flags from configuration @set instprefix /usr/local From d41b45329c4cda1696f9c1f4fd6cbbc4ff4f3fcc Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 9 Oct 2012 09:30:12 -0700 Subject: [PATCH 153/272] Revert incorrect doc fix from 2012-10-09T07:06:54Z!rgm@gnu.org --- lisp/ChangeLog | 2 -- lisp/newcomment.el | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1b42ae36839..9ffff9d6da8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -23,8 +23,6 @@ * w32-fns.el (set-message-beep): * term/w32-win.el (set-message-beep): Update declarations. - * newcomment.el (comment-normalize-vars): Doc fix (presumably). - 2012-10-09 Stefan Monnier * bindings.el (mode-line-toggle-read-only, mode-line-toggle-modified) diff --git a/lisp/newcomment.el b/lisp/newcomment.el index 4dc94b6bd6b..6d2eed71948 100644 --- a/lisp/newcomment.el +++ b/lisp/newcomment.el @@ -327,7 +327,7 @@ terminated by the end of line (i.e. `comment-end' is empty)." ;;;###autoload (defun comment-normalize-vars (&optional noerror) "Check and setup the variables needed by other commenting functions. -Any command calling functions from newcomment.el, besides entry points, should +Any command calling functions from newcomment.el, being entry points, should call this function before any other, so the rest of the code can assume that the variables are properly set." (unless (and (not comment-start) noerror) From 238f3a587a9af8567a5a86a53e5183910526674b Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 9 Oct 2012 12:37:51 -0400 Subject: [PATCH 154/272] * lisp/newcomment.el (comment-start-skip, comment-end-skip, comment-end): Don't document nil as a useful value. Fixes: debbugs:12583 --- lisp/ChangeLog | 13 +++++++++---- lisp/newcomment.el | 12 ++++++------ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9ffff9d6da8..69371cec518 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,11 +1,16 @@ +2012-10-09 Stefan Monnier + + * newcomment.el (comment-start-skip, comment-end-skip, comment-end): + Don't document nil as a useful value (bug#12583). + 2012-10-09 Michael Albinus - * net/tramp.el (tramp-debug-message): Remove - "tramp-with-progress-reporter" from regexp of ignored functions. + * net/tramp.el (tramp-debug-message): + Remove "tramp-with-progress-reporter" from regexp of ignored functions. (with-tramp-progress-reporter): Rename from `tramp-with-progress-reporter'. - (with-tramp-file-property, with-tramp-connection-property): Move - from tramp-cache.el, rename from `with-file-property' and + (with-tramp-file-property, with-tramp-connection-property): + Move from tramp-cache.el, rename from `with-file-property' and `with-connection-property', respectively. * net/tramp-cache.el: Remove `with-file-property' and diff --git a/lisp/newcomment.el b/lisp/newcomment.el index 6d2eed71948..a754c89c4ae 100644 --- a/lisp/newcomment.el +++ b/lisp/newcomment.el @@ -117,20 +117,20 @@ Comments might be indented to a different value in order not to go beyond If there are any \\(...\\) pairs, the comment delimiter text is held to begin at the place matched by the close of the first pair.") ;;;###autoload -(put 'comment-start-skip 'safe-local-variable 'string-or-null-p) +(put 'comment-start-skip 'safe-local-variable 'stringp) ;;;###autoload (defvar comment-end-skip nil "Regexp to match the end of a comment plus everything back to its body.") ;;;###autoload -(put 'comment-end-skip 'safe-local-variable 'string-or-null-p) +(put 'comment-end-skip 'safe-local-variable 'stringp) ;;;###autoload (defvar comment-end (purecopy "") "String to insert to end a new comment. Should be an empty string if comments are terminated by end-of-line.") ;;;###autoload -(put 'comment-end 'safe-local-variable 'string-or-null-p) +(put 'comment-end 'safe-local-variable 'stringp) ;;;###autoload (defvar comment-indent-function 'comment-indent-default @@ -327,9 +327,9 @@ terminated by the end of line (i.e. `comment-end' is empty)." ;;;###autoload (defun comment-normalize-vars (&optional noerror) "Check and setup the variables needed by other commenting functions. -Any command calling functions from newcomment.el, being entry points, should -call this function before any other, so the rest of the code can assume that -the variables are properly set." +Any command calling functions from newcomment.el should call this function +before any other, so the rest of the code can assume that the variables are +properly set." (unless (and (not comment-start) noerror) (unless comment-start (let ((cs (read-string "No comment syntax is defined. Use: "))) From a31eeec28ffcd6a497411f5c8d12a5b41c9e8069 Mon Sep 17 00:00:00 2001 From: Kazuhiro Ito Date: Tue, 9 Oct 2012 13:55:08 -0400 Subject: [PATCH 155/272] * lisp/gnu/starttls.el (starttls-extra-arguments): Doc fix (tiny change) Fixes: debbugs:12608 --- lisp/gnus/ChangeLog | 4 ++++ lisp/gnus/starttls.el | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 4ddf8b04e91..27937b23872 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,7 @@ +2012-10-09 Kazuhiro Ito (tiny change) + + * starttls.el (starttls-extra-arguments): Doc fix. + 2012-07-10 Andreas Schwab * shr.el (shr-expand-url): Handle URL starting with `//'. diff --git a/lisp/gnus/starttls.el b/lisp/gnus/starttls.el index 2d403650533..346e76b2ccc 100644 --- a/lisp/gnus/starttls.el +++ b/lisp/gnus/starttls.el @@ -149,7 +149,7 @@ These apply when the `starttls' command is used, i.e. when :group 'starttls) (defcustom starttls-extra-arguments nil - "Extra arguments to `starttls-program'. + "Extra arguments to `starttls-gnutls-program'. These apply when GnuTLS is used, i.e. when `starttls-use-gnutls' is non-nil. For example, non-TLS compliant servers may require From cf5fc6dbeac10220394ab201ba3f4402e1e91faf Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Tue, 9 Oct 2012 19:58:18 +0200 Subject: [PATCH 156/272] Avoid shadowing a global variable by a local one in frame.c. src/frame.c (delete_frame): Rename local variable 'tooltip_frame' to 'is_tooltip_frame', to avoid confusion with its global namesake. --- src/ChangeLog | 5 +++++ src/frame.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 1acf2e0b5f9..ee1057bc64d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-10-09 Eli Zaretskii + + * frame.c (delete_frame): Rename local variable 'tooltip_frame' to + 'is_tooltip_frame', to avoid confusion with its global namesake. + 2012-10-08 Daniel Colascione * xdisp.c (start_hourglass): Call w32_note_current_window when diff --git a/src/frame.c b/src/frame.c index 599d8879169..017d051fc1d 100644 --- a/src/frame.c +++ b/src/frame.c @@ -1124,7 +1124,7 @@ delete_frame (Lisp_Object frame, Lisp_Object force) struct frame *sf = SELECTED_FRAME (); struct kboard *kb; - int minibuffer_selected, tooltip_frame; + int minibuffer_selected, is_tooltip_frame; if (EQ (frame, Qnil)) { @@ -1176,13 +1176,13 @@ delete_frame (Lisp_Object frame, Lisp_Object force) } } - tooltip_frame = !NILP (Fframe_parameter (frame, intern ("tooltip"))); + is_tooltip_frame = !NILP (Fframe_parameter (frame, intern ("tooltip"))); /* Run `delete-frame-functions' unless FORCE is `noelisp' or frame is a tooltip. FORCE is set to `noelisp' when handling a disconnect from the terminal, so we don't dare call Lisp code. */ - if (NILP (Vrun_hooks) || tooltip_frame) + if (NILP (Vrun_hooks) || is_tooltip_frame) ; else if (EQ (force, Qnoelisp)) pending_funcalls @@ -1461,7 +1461,7 @@ delete_frame (Lisp_Object frame, Lisp_Object force) } /* Cause frame titles to update--necessary if we now have just one frame. */ - if (!tooltip_frame) + if (!is_tooltip_frame) update_mode_lines = 1; return Qnil; From b15736e6e33a52021a2a91b0b3360cd5a9803405 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Tue, 9 Oct 2012 20:10:16 +0200 Subject: [PATCH 157/272] Fix return type of w32_last_error. src/w32fns.c (w32_last_error): Change the return value to DWORD, to match what GetLastError returns. Explain better why the function is needed. --- src/ChangeLog | 4 ++++ src/w32fns.c | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index ee1057bc64d..d83e3430594 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,9 @@ 2012-10-09 Eli Zaretskii + * w32fns.c (w32_last_error): Change the return value to DWORD, to + match what GetLastError returns. Explain why the function is + needed. + * frame.c (delete_frame): Rename local variable 'tooltip_frame' to 'is_tooltip_frame', to avoid confusion with its global namesake. diff --git a/src/w32fns.c b/src/w32fns.c index ff8e5fef439..28a689ddc6c 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -6983,8 +6983,10 @@ w32_strerror (int error_no) return buf; } -/* For convenience when debugging. */ -int +/* For convenience when debugging. (You cannot call GetLastError + directly from GDB: it will crash, because it uses the __stdcall + calling convention, not the _cdecl convention assumed by GDB.) */ +DWORD w32_last_error (void) { return GetLastError (); From 5683d7cd9d2928860fd5f117ebf67dd7b6e2d442 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Tue, 9 Oct 2012 20:33:01 +0200 Subject: [PATCH 158/272] Remove caching in nsfont.m, the general code does it (I misunderstood). * nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles caching. (nsfont_open): Remove setting of Vfonts_in_cache. (syms_of_nsfont): Remove initialization of Vfonts_in_cache --- src/ChangeLog | 7 +++++++ src/nsfont.m | 6 ------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index d83e3430594..392825757ae 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2012-10-09 Jan Djärv + + * nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles + caching. + (nsfont_open): Remove setting of Vfonts_in_cache. + (syms_of_nsfont): Remove initialization of Vfonts_in_cache + 2012-10-09 Eli Zaretskii * w32fns.c (w32_last_error): Change the return value to DWORD, to diff --git a/src/nsfont.m b/src/nsfont.m index 20a8f5d4028..a820b60ac58 100644 --- a/src/nsfont.m +++ b/src/nsfont.m @@ -53,8 +53,6 @@ extern int ns_tmp_flags; extern struct nsfont_info *ns_tmp_font; -static Lisp_Object Vfonts_in_cache; - /* font glyph and metrics caching functions, implemented at end */ static void ns_uni_to_glyphs (struct nsfont_info *font_info, @@ -815,7 +813,6 @@ when setting family in ns_spec_to_descriptor(). */ numberWithUnsignedLongLong: (unsigned long long) XHASH (font_object)] forKey: nsfont]; - Vfonts_in_cache = Fcons (font_object, Vfonts_in_cache); } } @@ -1535,7 +1532,4 @@ - (void)setIntAttribute: (NSInteger)attributeTag value: (NSInteger)val doc: /* Internal use: maps font registry to Unicode script. */); ascii_printable = NULL; - - Vfonts_in_cache = Qnil; - staticpro (&Vfonts_in_cache); } From d8e213ebe37ae306581bb7030f62b66fff18625b Mon Sep 17 00:00:00 2001 From: Dani Moncayo Date: Wed, 10 Oct 2012 10:52:55 +0800 Subject: [PATCH 159/272] * doc/emacs/basic.texi (Arguments): Fix typos. Also, remove "tiny change" tags from ChangeLogs; Dani Moncayo now has a copyright assignment. --- doc/emacs/ChangeLog | 10 +++++++--- doc/emacs/basic.texi | 11 ++++++----- doc/lispref/ChangeLog | 4 ++-- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 87ff64b576d..3aad65f7bed 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,7 @@ +2012-10-10 Dani Moncayo + + * basic.texi (Arguments): Fix typos. + 2012-10-08 Glenn Morris * cal-xtra.texi (Calendar Customizing): Mention calendar-month-header. @@ -425,7 +429,7 @@ * misc.texi (emacsclient Options): Add cross-reference to "Windows Startup". (Bug#11091) -2012-04-02 Dani Moncayo (tiny change) +2012-04-02 Dani Moncayo * custom.texi (Changing a Variable): Fix example. @@ -458,7 +462,7 @@ * mule.texi (International Chars): etc/HELLO is for character demonstration. -2012-03-15 Dani Moncayo (tiny change) +2012-03-15 Dani Moncayo * dired.texi (Shell Commands in Dired): Fix typo. @@ -485,7 +489,7 @@ * macos.texi (Mac / GNUstep Customization): Remove text about ns-find-file and ns-drag-file (Bug#5855, Bug#10050). -2012-02-25 Dani Moncayo (tiny change) +2012-02-25 Dani Moncayo * buffers.texi (Select Buffer): Mention that saving in a new file name can switch to a different major mode. diff --git a/doc/emacs/basic.texi b/doc/emacs/basic.texi index 42bd2a4fde2..07060db5af2 100644 --- a/doc/emacs/basic.texi +++ b/doc/emacs/basic.texi @@ -757,7 +757,8 @@ the character @samp{1}. value. For example, the command @kbd{M-q} (@code{fill-paragraph}) fills text; with an argument, it justifies the text as well. (@xref{Filling}, for more information on @kbd{M-q}.) For these -commands, it is enough to the argument with a single @kbd{C-u}. +commands, it is enough to specify the argument with a single +@kbd{C-u}. Some commands use the value of the argument as a repeat count, but do something special when there is no argument. For example, the @@ -776,10 +777,10 @@ described when they come up; they exist to make an individual command more convenient, and they are documented in that command's documentation string. - We use the term ``prefix argument'' as well as ``numeric argument'', -to emphasize that you type these argument before the command, and to -distinguish them from minibuffer arguments that come after the -command. + We use the term @dfn{prefix argument} to emphasize that you type +such arguments before the command, and to distinguish them from +minibuffer arguments (@pxref{Minibuffer}), which are entered after +invoking the command. @node Repeating @section Repeating a Command diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 7609efb8ac9..974a0d67192 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1978,7 +1978,7 @@ * numbers.texi (Integer Basics): Add indexing for most-positive-fixnum and most-negative-fixnum. (Bug#9525) -2011-09-14 Dani Moncayo (tiny change) +2011-09-14 Dani Moncayo * lists.texi (Sets And Lists): Fix typo. (Bug#9393) @@ -1987,7 +1987,7 @@ * processes.texi (Network Servers): Clarify what the process buffer is used for (bug#9233). -2011-08-30 Dani Moncayo (tiny change) +2011-08-30 Dani Moncayo * lists.texi (Building Lists): Fix typo. From 77e344e50a6ce7f211a7d820f87e2ab58093709d Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 9 Oct 2012 23:39:16 -0700 Subject: [PATCH 160/272] * commands.h (immediate_quit): Remove duplicate decl. --- src/ChangeLog | 4 ++++ src/commands.h | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 392825757ae..dedf10b8e2d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-10 Paul Eggert + + * commands.h (immediate_quit): Remove duplicate decl. + 2012-10-09 Jan Djärv * nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles diff --git a/src/commands.h b/src/commands.h index 36f600cee01..510fce0e182 100644 --- a/src/commands.h +++ b/src/commands.h @@ -36,9 +36,6 @@ extern Lisp_Object control_x_map; events until a non-ASCII event is acceptable as input. */ extern Lisp_Object unread_switch_frame; -/* Nonzero means ^G can quit instantly */ -extern int immediate_quit; - /* Nonzero if input is coming from the keyboard */ #define INTERACTIVE (NILP (Vexecuting_kbd_macro) && !noninteractive) From 9d7f027b56081705edabb3e77bb7bd995ccc2fa2 Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Wed, 10 Oct 2012 11:36:45 +0200 Subject: [PATCH 161/272] In switch-to-buffer optionally restore window point (Bug#4041). * window.el (switch-to-buffer-preserve-window-point): New option. (switch-to-buffer): Obey `switch-to-buffer-preserve-window-point' (Bug#4041). --- lisp/ChangeLog | 6 ++++++ lisp/window.el | 38 +++++++++++++++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 69371cec518..59eba7a7d27 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2012-10-10 Martin Rudalics + + * window.el (switch-to-buffer-preserve-window-point): New option. + (switch-to-buffer): Obey + `switch-to-buffer-preserve-window-point' (Bug#4041). + 2012-10-09 Stefan Monnier * newcomment.el (comment-start-skip, comment-end-skip, comment-end): diff --git a/lisp/window.el b/lisp/window.el index f9761366b62..b033f9c26e3 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -5818,6 +5818,26 @@ buffer with the name BUFFER-OR-NAME and return that buffer." buffer)) (other-buffer))) +(defcustom switch-to-buffer-preserve-window-point nil + "If non-nil, `switch-to-buffer' tries to preserve `window-point'. +If this is nil, `switch-to-buffer' displays the buffer at that +buffer's `point'. If this is `already-displayed', it tries to +display the buffer at its pevious position in the selected +window, provided the buffer is currently displayed in some other +window on any visible or iconified frame. If this is t, it +unconditionally tries to display the buffer at its previous +position in the selected window. + +This variable is ignored if the the buffer is already displayed +in the selected window or never appeared in it before, or if +`switch-to-buffer' calls `pop-to-buffer' to display the buffer." + :type '(choice + (const :tag "Never" nil) + (const :tag "If already displayed elsewhere" already-displayed) + (const :tag "Always" t)) + :group 'windows + :version "24.3") + (defun switch-to-buffer (buffer-or-name &optional norecord force-same-window) "Switch to buffer BUFFER-OR-NAME in the selected window. If the selected window cannot display the specified @@ -5843,6 +5863,10 @@ If optional argument FORCE-SAME-WINDOW is non-nil, the buffer must be displayed in the selected window; if that is impossible, signal an error rather than calling `pop-to-buffer'. +The option `switch-to-buffer-preserve-window-point' can be used +to make the buffer appear at its last position in the selected +window. + Return the buffer switched to." (interactive (list (read-buffer-to-switch "Switch to buffer: ") nil 'force-same-window)) @@ -5859,7 +5883,19 @@ Return the buffer switched to." (if force-same-window (user-error "Cannot switch buffers in a dedicated window") (pop-to-buffer buffer norecord))) - (t (set-window-buffer nil buffer))) + (t + (let* ((entry (assq buffer (window-prev-buffers))) + (displayed (and (eq switch-to-buffer-preserve-window-point + 'already-displayed) + (get-buffer-window buffer 0)))) + (set-window-buffer nil buffer) + (when (and entry + (or (eq switch-to-buffer-preserve-window-point t) + displayed)) + ;; Try to restore start and point of buffer in the selected + ;; window (Bug#4041). + (set-window-start (selected-window) (nth 1 entry) t) + (set-window-point nil (nth 2 entry)))))) (unless norecord (select-window (selected-window))) From 3e98c68e76fe07280e82cd394008fdcbe1ce59fa Mon Sep 17 00:00:00 2001 From: Dmitry Antipov Date: Wed, 10 Oct 2012 18:45:07 +0400 Subject: [PATCH 162/272] * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers. --- src/ChangeLog | 4 ++++ src/alloc.c | 13 ++++--------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index dedf10b8e2d..71465cc9b86 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-10 Dmitry Antipov + + * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers. + 2012-10-10 Paul Eggert * commands.h (immediate_quit): Remove duplicate decl. diff --git a/src/alloc.c b/src/alloc.c index 3ed8cc2d990..0cbdef84c4a 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -6311,19 +6311,14 @@ gc_sweep (void) /* Free all unmarked buffers */ { - register struct buffer *buffer = all_buffers, *prev = 0, *next; + register struct buffer *buffer, **bprev = &all_buffers; total_buffers = 0; - while (buffer) + for (buffer = all_buffers; buffer; buffer = *bprev) if (!VECTOR_MARKED_P (buffer)) { - if (prev) - prev->header.next = buffer->header.next; - else - all_buffers = buffer->header.next.buffer; - next = buffer->header.next.buffer; + *bprev = buffer->header.next.buffer; lisp_free (buffer); - buffer = next; } else { @@ -6331,7 +6326,7 @@ gc_sweep (void) /* Do not use buffer_(set|get)_intervals here. */ buffer->text->intervals = balance_intervals (buffer->text->intervals); total_buffers++; - prev = buffer, buffer = buffer->header.next.buffer; + bprev = &buffer->header.next.buffer; } } From 4ef4a10d1c513bb3b009c29872d0dc621eb826ce Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Wed, 10 Oct 2012 23:45:26 +0900 Subject: [PATCH 163/272] select.el (xselect--encode-string): If a coding is specified for selection, and that is compatible with COMPOUND_TEXT, use it. --- lisp/ChangeLog | 5 +++++ lisp/select.el | 12 +++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 59eba7a7d27..69a03f2b170 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-10 Kenichi Handa + + * select.el (xselect--encode-string): If a coding is specified for + selection, and that is compatible with COMPOUND_TEXT, use it. + 2012-10-10 Martin Rudalics * window.el (switch-to-buffer-preserve-window-point): New option. diff --git a/lisp/select.el b/lisp/select.el index d3153a0ce0e..54520704261 100644 --- a/lisp/select.el +++ b/lisp/select.el @@ -248,7 +248,17 @@ two markers or an overlay. Otherwise, it is nil." (setq non-unicode t) (setq eight-bit t))))) str) - (setq type (if non-unicode 'COMPOUND_TEXT + (setq type (if (or non-unicode + (and + non-latin-1 + ;; If a coding is specified for + ;; selection, and that is + ;; compatible with COMPOUND_TEXT, + ;; use it. + coding + (eq (coding-system-get coding :mime-charset) + 'x-ctext))) + 'COMPOUND_TEXT (if non-latin-1 'UTF8_STRING (if eight-bit 'C_STRING 'STRING)))))))) From 5f3f57be388eba88944a9e881afcbcacc100a8ae Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 10 Oct 2012 08:10:57 -0700 Subject: [PATCH 164/272] Clean out old termopts cruft. * termopts.h (flow_control, meta_key): Remove unused decls. * dispnew.c, indent.c, nsterm.m, term.c, xsettings.c, xsmfns.c: Don't include termopts.h. --- src/ChangeLog | 7 +++++++ src/dispnew.c | 1 - src/indent.c | 1 - src/nsterm.m | 7 +++---- src/term.c | 1 - src/termopts.h | 7 ------- src/xsettings.c | 1 - src/xsmfns.c | 1 - 8 files changed, 10 insertions(+), 16 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 71465cc9b86..b1aea7307ae 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2012-10-10 Paul Eggert + + Clean out old termopts cruft. + * termopts.h (flow_control, meta_key): Remove unused decls. + * dispnew.c, indent.c, nsterm.m, term.c, xsettings.c, xsmfns.c: + Don't include termopts.h. + 2012-10-10 Dmitry Antipov * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers. diff --git a/src/dispnew.c b/src/dispnew.c index 6f8fb10b41d..fd4985452ae 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -26,7 +26,6 @@ along with GNU Emacs. If not, see . */ #include "lisp.h" #include "termchar.h" -#include "termopts.h" /* cm.h must come after dispextern.h on Windows. */ #include "dispextern.h" #include "cm.h" diff --git a/src/indent.c b/src/indent.c index b368a7aeb09..81a63455ecb 100644 --- a/src/indent.c +++ b/src/indent.c @@ -30,7 +30,6 @@ along with GNU Emacs. If not, see . */ #include "frame.h" #include "window.h" #include "termchar.h" -#include "termopts.h" #include "disptab.h" #include "intervals.h" #include "dispextern.h" diff --git a/src/nsterm.m b/src/nsterm.m index 6b739befeeb..1d935fc76de 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -55,7 +55,6 @@ Updated by Christian Limpach (chris@nice.ch) #include "ccl.h" #include "termhooks.h" -#include "termopts.h" #include "termchar.h" #include "window.h" @@ -1315,7 +1314,7 @@ Free a pool and temporary objects it refers to (callable from C) ns_fullscreen_hook (FRAME_PTR f) { EmacsView *view = (EmacsView *)FRAME_NS_VIEW (f); - + if (! f->async_visible) return; #ifndef NEW_STYLE_FS if (f->want_fullscreen == FULLSCREEN_BOTH) @@ -5942,7 +5941,7 @@ - (void)toggleFullScreen: (id)sender [w setBackgroundColor: col]; if ([col alphaComponent] != 1.0) [w setOpaque: NO]; - + f->border_width = bwidth; FRAME_NS_TITLEBAR_HEIGHT (f) = tibar_height; FRAME_TOOLBAR_HEIGHT (f) = tobar_height; @@ -5995,7 +5994,7 @@ - (void)handleFS } break; } - + emacsframe->want_fullscreen = FULLSCREEN_NONE; } diff --git a/src/term.c b/src/term.c index 189fb783cbc..acce9c0548c 100644 --- a/src/term.c +++ b/src/term.c @@ -28,7 +28,6 @@ along with GNU Emacs. If not, see . */ #include "lisp.h" #include "termchar.h" -#include "termopts.h" #include "tparam.h" #include "character.h" #include "buffer.h" diff --git a/src/termopts.h b/src/termopts.h index 7bf71aeefe7..49588ef0cbd 100644 --- a/src/termopts.h +++ b/src/termopts.h @@ -17,15 +17,8 @@ You should have received a copy of the GNU General Public License along with GNU Emacs. If not, see . */ -/* Nonzero means use ^S/^Q as cretinous flow control. */ -extern int flow_control; - /* Nonzero means use interrupt-driven input. */ extern int interrupt_input; /* Nonzero while interrupts are temporarily deferred during redisplay. */ extern int interrupts_deferred; - -/* Terminal has meta key */ -extern int meta_key; - diff --git a/src/xsettings.c b/src/xsettings.c index 7c68ff295cf..d23070791d8 100644 --- a/src/xsettings.c +++ b/src/xsettings.c @@ -29,7 +29,6 @@ along with GNU Emacs. If not, see . */ #include "keyboard.h" #include "blockinput.h" #include "termhooks.h" -#include "termopts.h" #include diff --git a/src/xsmfns.c b/src/xsmfns.c index 8067899f931..289aac8492b 100644 --- a/src/xsmfns.c +++ b/src/xsmfns.c @@ -35,7 +35,6 @@ along with GNU Emacs. If not, see . */ #include "sysselect.h" #include "frame.h" #include "termhooks.h" -#include "termopts.h" #include "xterm.h" #include "process.h" #include "keyboard.h" From 6aea75280281ab89266e7835655f2a551efd81b2 Mon Sep 17 00:00:00 2001 From: Dmitry Antipov Date: Wed, 10 Oct 2012 19:31:21 +0400 Subject: [PATCH 165/272] * alloc.c (mark_object): Use meaningful PVEC_NORMAL_VECTOR. * lisp.h (enum pvec_type): Adjust comments and omit explicit initializer for PVEC_NORMAL_VECTOR. --- src/ChangeLog | 6 ++++++ src/alloc.c | 2 +- src/lisp.h | 10 +++------- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index b1aea7307ae..98433493475 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2012-10-10 Dmitry Antipov + + * alloc.c (mark_object): Use meaningful PVEC_NORMAL_VECTOR. + * lisp.h (enum pvec_type): Adjust comments and omit explicit + initializer for PVEC_NORMAL_VECTOR. + 2012-10-10 Paul Eggert Clean out old termopts cruft. diff --git a/src/alloc.c b/src/alloc.c index 0cbdef84c4a..95be8db1614 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -5689,7 +5689,7 @@ mark_object (Lisp_Object arg) pvectype = ((ptr->header.size & PVEC_TYPE_MASK) >> PSEUDOVECTOR_SIZE_BITS); else - pvectype = 0; + pvectype = PVEC_NORMAL_VECTOR; if (pvectype != PVEC_SUBR && pvectype != PVEC_BUFFER) CHECK_LIVE (live_vector_p); diff --git a/src/lisp.h b/src/lisp.h index 2a647e593a8..71e542cc769 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -345,15 +345,11 @@ static ptrdiff_t const PSEUDOVECTOR_FLAG = PSEUDOVECTOR_FLAG; /* In a pseudovector, the size field actually contains a word with one - PSEUDOVECTOR_FLAG bit set, and exactly one of the following bits to - indicate the actual type. - We use a bitset, even tho only one of the bits can be set at any - particular time just so as to be able to use micro-optimizations such as - testing membership of a particular subset of pseudovectors in Fequal. - It is not crucial, but there are plenty of bits here, so why not do it? */ + PSEUDOVECTOR_FLAG bit set, and one of the following values extracted + with PVEC_TYPE_MASK to indicate the actual type. */ enum pvec_type { - PVEC_NORMAL_VECTOR = 0, /* Unused! */ + PVEC_NORMAL_VECTOR, PVEC_FREE, PVEC_PROCESS, PVEC_FRAME, From 29f21cdf23171eef76deee2582cf4024367220ec Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Wed, 10 Oct 2012 17:59:49 +0200 Subject: [PATCH 166/272] src/makefile.w32-in: Update dependencies. --- src/ChangeLog | 5 +++++ src/makefile.w32-in | 3 --- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 98433493475..60a18e5c680 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-10-10 Juanma Barranquero + + * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/indent.$(O)) + ($(BLD)/term.$(O)): Update dependencies. + 2012-10-10 Dmitry Antipov * alloc.c (mark_object): Use meaningful PVEC_NORMAL_VECTOR. diff --git a/src/makefile.w32-in b/src/makefile.w32-in index 2ff56fbb8f8..40a075dbf3c 100644 --- a/src/makefile.w32-in +++ b/src/makefile.w32-in @@ -735,7 +735,6 @@ $(BLD)/dispnew.$(O) : \ $(SRC)/disptab.h \ $(SRC)/indent.h \ $(SRC)/termchar.h \ - $(SRC)/termopts.h \ $(NT_INC)/unistd.h \ $(BUFFER_H) \ $(CHARACTER_H) \ @@ -1015,7 +1014,6 @@ $(BLD)/indent.$(O) : \ $(SRC)/indent.h \ $(SRC)/region-cache.h \ $(SRC)/termchar.h \ - $(SRC)/termopts.h \ $(BUFFER_H) \ $(CHARACTER_H) \ $(CONFIG_H) \ @@ -1412,7 +1410,6 @@ $(BLD)/term.$(O) : \ $(SRC)/disptab.h \ $(SRC)/keymap.h \ $(SRC)/termchar.h \ - $(SRC)/termopts.h \ $(SRC)/tparam.h \ $(NT_INC)/sys/file.h \ $(NT_INC)/sys/time.h \ From e738ca5624ba0f3703095e0ad48b4ef7b97973bf Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 10 Oct 2012 12:53:26 -0700 Subject: [PATCH 167/272] * regex.c (immediate_quit) [emacs]: Remove duplicate decl. --- src/ChangeLog | 4 ++++ src/regex.c | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 60a18e5c680..a05c426a452 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-10 Paul Eggert + + * regex.c (immediate_quit) [emacs]: Remove duplicate decl. + 2012-10-10 Juanma Barranquero * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/indent.$(O)) diff --git a/src/regex.c b/src/regex.c index 17562043df1..7443eff3977 100644 --- a/src/regex.c +++ b/src/regex.c @@ -1834,7 +1834,6 @@ typedef struct /* Explicit quit checking is needed for Emacs, which uses polling to process input events. */ #ifdef emacs -extern int immediate_quit; # define IMMEDIATE_QUIT_CHECK \ do { \ if (immediate_quit) QUIT; \ From 9fa1de305acd530060062a1470f3018de7937bb1 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 10 Oct 2012 13:09:47 -0700 Subject: [PATCH 168/272] keyboard.c, keymap.c: Use bool for booleans. * dispnew.c (sit_for): Distinguish between 3-way display_option and boolean do_display. * keyboard.c (single_kboard, this_command_key_count_reset) (waiting_for_input, echoing, immediate_quit, input_pending) (interrupt_input, interrupts_deferred, pop_kboard) (temporarily_switch_to_single_kboard, ignore_mouse_drag_p) (command_loop_1, adjust_point_for_property) (safe_run_hooks_error, input_polling_used, read_char): (help_char_p, readable_events, kbd_buffer_events_waiting) (kbd_buffer_get_event, timer_check_2, make_lispy_event) (lucid_event_type_list_p, get_input_pending): (gobble_input, menu_separator_name_p, menu_bar_item) (parse_menu_item, parse_tool_bar_item, read_char_x_menu_prompt) (read_char_minibuf_menu_prompt, access_keymap_keyremap) (keyremap_step, test_undefined, read_key_sequence) (detect_input_pending, detect_input_pending_ignore_squeezables) (detect_input_pending_run_timers, requeued_events_pending_p) (quit_throw_to_read_char, Fset_input_interrupt_mode): * keymap.c (get_keymap, keymap_parent, keymap_memberp) (access_keymap_1, access_keymap, map_keymap, get_keyelt) (Fdefine_key, Flookup_key, struct accessible_keymaps_data) (accessible_keymaps_1, Fkey_description, push_key_description): (shadow_lookup, struct where_is_internal_data) (where_is_internal, Fwhere_is_internal, where_is_internal_1) (Fdescribe_buffer_bindings, describe_map_tree, struct describe_map_elt) (describe_map, describe_vector): * menu.c (single_menu_item): * nsmenu.m (ns_update_menubar): * process.c (wait_reading_process_output): * search.c (scan_buffer, scan_newline): Use bool for boolean. * keyboard.c (timers_run, swallow_events) (detect_input_pending_run_timers): * process.c (wait_reading_process_output): Use unsigned for counter where wraparound-on-overflow is desired, since unsigned is guaranteed to have that behavior and signed is not. (read_char): Use ptrdiff_t for string length. (get_input_pending): Remove first argument, since it was always the same pointer-to-int (now pointer-to-boolean) &input_pending, and behave as if it had that value. Return new value of input_pending. All callers changed. * keyboard.h (struct kboard): Use unsigned : 1 for boolean member immediate_echo. Use ptrdiff_t for echo_after_prompt, since it's a string length. * keymap.c (push_key_description): Omit last arg, which was always 1. All callers changed. --- src/ChangeLog | 48 ++++++++ src/dispnew.c | 9 +- src/keyboard.c | 312 ++++++++++++++++++++++--------------------------- src/keyboard.h | 28 ++--- src/keymap.c | 159 ++++++++++++------------- src/keymap.h | 13 ++- src/lisp.h | 17 +-- src/menu.c | 2 +- src/nsmenu.m | 2 +- src/process.c | 14 +-- src/search.c | 16 +-- src/termopts.h | 4 +- 12 files changed, 319 insertions(+), 305 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index a05c426a452..daa370105ee 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,53 @@ 2012-10-10 Paul Eggert + keyboard.c, keymap.c: Use bool for booleans. + * dispnew.c (sit_for): Distinguish between 3-way display_option + and boolean do_display. + * keyboard.c (single_kboard, this_command_key_count_reset) + (waiting_for_input, echoing, immediate_quit, input_pending) + (interrupt_input, interrupts_deferred, pop_kboard) + (temporarily_switch_to_single_kboard, ignore_mouse_drag_p) + (command_loop_1, adjust_point_for_property) + (safe_run_hooks_error, input_polling_used, read_char): + (help_char_p, readable_events, kbd_buffer_events_waiting) + (kbd_buffer_get_event, timer_check_2, make_lispy_event) + (lucid_event_type_list_p, get_input_pending): + (gobble_input, menu_separator_name_p, menu_bar_item) + (parse_menu_item, parse_tool_bar_item, read_char_x_menu_prompt) + (read_char_minibuf_menu_prompt, access_keymap_keyremap) + (keyremap_step, test_undefined, read_key_sequence) + (detect_input_pending, detect_input_pending_ignore_squeezables) + (detect_input_pending_run_timers, requeued_events_pending_p) + (quit_throw_to_read_char, Fset_input_interrupt_mode): + * keymap.c (get_keymap, keymap_parent, keymap_memberp) + (access_keymap_1, access_keymap, map_keymap, get_keyelt) + (Fdefine_key, Flookup_key, struct accessible_keymaps_data) + (accessible_keymaps_1, Fkey_description, push_key_description): + (shadow_lookup, struct where_is_internal_data) + (where_is_internal, Fwhere_is_internal, where_is_internal_1) + (Fdescribe_buffer_bindings, describe_map_tree, struct describe_map_elt) + (describe_map, describe_vector): + * menu.c (single_menu_item): + * nsmenu.m (ns_update_menubar): + * process.c (wait_reading_process_output): + * search.c (scan_buffer, scan_newline): + Use bool for boolean. + * keyboard.c (timers_run, swallow_events) + (detect_input_pending_run_timers): + * process.c (wait_reading_process_output): + Use unsigned for counter where wraparound-on-overflow is desired, + since unsigned is guaranteed to have that behavior and signed is not. + (read_char): Use ptrdiff_t for string length. + (get_input_pending): Remove first argument, since it was always + the same pointer-to-int (now pointer-to-boolean) &input_pending, + and behave as if it had that value. Return new value of + input_pending. All callers changed. + * keyboard.h (struct kboard): Use unsigned : 1 for boolean member + immediate_echo. Use ptrdiff_t for echo_after_prompt, since it's + a string length. + * keymap.c (push_key_description): Omit last arg, which was always 1. + All callers changed. + * regex.c (immediate_quit) [emacs]: Remove duplicate decl. 2012-10-10 Juanma Barranquero diff --git a/src/dispnew.c b/src/dispnew.c index fd4985452ae..0956e3f2905 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -5918,15 +5918,16 @@ additional wait period, in milliseconds; this is for backwards compatibility. TIMEOUT is number of seconds to wait (float or integer), or t to wait forever. READING is true if reading input. - If DO_DISPLAY is >0 display process output while waiting. - If DO_DISPLAY is >1 perform an initial redisplay before waiting. + If DISPLAY_OPTION is >0 display process output while waiting. + If DISPLAY_OPTION is >1 perform an initial redisplay before waiting. */ Lisp_Object -sit_for (Lisp_Object timeout, bool reading, int do_display) +sit_for (Lisp_Object timeout, bool reading, int display_option) { intmax_t sec; int nsec; + bool do_display = display_option > 0; swallow_events (do_display); @@ -5934,7 +5935,7 @@ sit_for (Lisp_Object timeout, bool reading, int do_display) || !NILP (Vexecuting_kbd_macro)) return Qnil; - if (do_display >= 2) + if (display_option > 1) redisplay_preserve_echo_area (2); if (INTEGERP (timeout)) diff --git a/src/keyboard.c b/src/keyboard.c index 61481c5f0f6..d58178b7561 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -86,8 +86,8 @@ KBOARD *initial_kboard; KBOARD *current_kboard; KBOARD *all_kboards; -/* Nonzero in the single-kboard state, 0 in the any-kboard state. */ -static int single_kboard; +/* True in the single-kboard state, false in the any-kboard state. */ +static bool single_kboard; /* Non-nil disable property on a command means do not execute it; call disabled-command-function's value instead. */ @@ -113,9 +113,9 @@ static Lisp_Object recent_keys; Lisp_Object this_command_keys; ptrdiff_t this_command_key_count; -/* 1 after calling Freset_this_command_lengths. - Usually it is 0. */ -static int this_command_key_count_reset; +/* True after calling Freset_this_command_lengths. + Usually it is false. */ +static bool this_command_key_count_reset; /* This vector is used as a buffer to record the events that were actually read by read_key_sequence. */ @@ -140,11 +140,11 @@ static ptrdiff_t before_command_echo_length; static sys_jmp_buf getcjmp; /* True while doing kbd input. */ -int waiting_for_input; +bool waiting_for_input; /* True while displaying for echoing. Delays C-g throwing. */ -static int echoing; +static bool echoing; /* Non-null means we can start echoing at the next input pause even though there is something in the echo area. */ @@ -163,8 +163,8 @@ struct kboard *echo_kboard; Lisp_Object echo_message_buffer; -/* Nonzero means C-g should cause immediate error-signal. */ -int immediate_quit; +/* True means C-g should cause immediate error-signal. */ +bool immediate_quit; /* Character that causes a quit. Normally C-g. @@ -270,7 +270,7 @@ static Lisp_Object Qhelp_form_show; static FILE *dribble; /* Nonzero if input is available. */ -int input_pending; +bool input_pending; /* Circular buffer for pre-read keyboard input. */ @@ -372,18 +372,18 @@ static ptrdiff_t echo_length (void); static Lisp_Object Qpolling_period; /* Incremented whenever a timer is run. */ -int timers_run; +unsigned timers_run; /* Address (if not 0) of EMACS_TIME to zero out if a SIGIO interrupt happens. */ EMACS_TIME *input_available_clear_time; -/* Nonzero means use SIGIO interrupts; zero means use CBREAK mode. - Default is 1 if INTERRUPT_INPUT is defined. */ -int interrupt_input; +/* True means use SIGIO interrupts; false means use CBREAK mode. + Default is true if INTERRUPT_INPUT is defined. */ +bool interrupt_input; /* Nonzero while interrupts are temporarily deferred during redisplay. */ -int interrupts_deferred; +bool interrupts_deferred; /* If we support a window system, turn on the code to poll periodically to detect C-g. It isn't actually used when doing interrupt input. */ @@ -411,10 +411,10 @@ static EMACS_TIME timer_last_idleness_start_time; /* Function for init_keyboard to call with no args (if nonzero). */ static void (*keyboard_init_hook) (void); -static void get_input_pending (int *, int); -static int readable_events (int); +static bool get_input_pending (int); +static bool readable_events (int); static Lisp_Object read_char_x_menu_prompt (ptrdiff_t, Lisp_Object *, - Lisp_Object, int *); + Lisp_Object, bool *); static Lisp_Object read_char_minibuf_menu_prompt (int, ptrdiff_t, Lisp_Object *); static Lisp_Object make_lispy_event (struct input_event *); @@ -428,7 +428,7 @@ static Lisp_Object modify_event_symbol (ptrdiff_t, int, Lisp_Object, Lisp_Object, const char *const *, Lisp_Object *, ptrdiff_t); static Lisp_Object make_lispy_switch_frame (Lisp_Object); -static int help_char_p (Lisp_Object); +static bool help_char_p (Lisp_Object); static void save_getcjmp (sys_jmp_buf); static void restore_getcjmp (sys_jmp_buf); static Lisp_Object apply_modifiers (int, Lisp_Object); @@ -438,7 +438,7 @@ static Lisp_Object restore_kboard_configuration (Lisp_Object); static void deliver_input_available_signal (int signo); #endif static void handle_interrupt (bool); -static _Noreturn void quit_throw_to_read_char (int); +static _Noreturn void quit_throw_to_read_char (bool); static void process_special_events (void); static void timer_start_idle (void); static void timer_stop_idle (void); @@ -516,7 +516,7 @@ echo_char (Lisp_Object c) if (INTEGERP (c)) { - ptr = push_key_description (XINT (c), ptr, 1); + ptr = push_key_description (XINT (c), ptr); } else if (SYMBOLP (c)) { @@ -925,7 +925,7 @@ pop_kboard (void) { struct terminal *t; struct kboard_stack *p = kboard_stack; - int found = 0; + bool found = 0; for (t = terminal_list; t; t = t->next_terminal) { if (t->kboard == p->kboard) @@ -958,7 +958,7 @@ pop_kboard (void) void temporarily_switch_to_single_kboard (struct frame *f) { - int was_locked = single_kboard; + bool was_locked = single_kboard; if (was_locked) { if (f != NULL && FRAME_KBOARD (f) != current_kboard) @@ -1057,12 +1057,7 @@ cmd_error (Lisp_Object data) Vprint_length = old_length; Vquit_flag = Qnil; - Vinhibit_quit = Qnil; -#if 0 /* This shouldn't be necessary anymore. --lorentey */ - if (command_loop_level == 0 && minibuf_level == 0) - any_kboard_state (); -#endif return make_number (0); } @@ -1149,12 +1144,6 @@ command_loop (void) while (1) { internal_catch (Qtop_level, top_level_1, Qnil); -#if 0 /* This shouldn't be necessary anymore. --lorentey */ - /* Reset single_kboard in case top-level set it while - evaluating an -f option, or we are stuck there for some - other reason. */ - any_kboard_state (); -#endif internal_catch (Qtop_level, command_loop_2, Qnil); executing_kbd_macro = Qnil; @@ -1265,8 +1254,7 @@ tracking_off (Lisp_Object old_value) if (!readable_events (READABLE_EVENTS_DO_TIMERS_NOW)) { redisplay_preserve_echo_area (6); - get_input_pending (&input_pending, - READABLE_EVENTS_DO_TIMERS_NOW); + get_input_pending (READABLE_EVENTS_DO_TIMERS_NOW); } } return Qnil; @@ -1301,7 +1289,7 @@ usage: (track-mouse BODY...) */) #if !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS static #endif -int ignore_mouse_drag_p; +bool ignore_mouse_drag_p; static FRAME_PTR some_mouse_moved (void) @@ -1329,9 +1317,9 @@ some_mouse_moved (void) sans error-handling encapsulation. */ static int read_key_sequence (Lisp_Object *, int, Lisp_Object, - int, int, int); + bool, bool, bool); void safe_run_hooks (Lisp_Object); -static void adjust_point_for_property (ptrdiff_t, int); +static void adjust_point_for_property (ptrdiff_t, bool); /* Cancel hourglass from protect_unwind. ARG is not used. */ @@ -1359,10 +1347,7 @@ command_loop_1 (void) int i; EMACS_INT prev_modiff = 0; struct buffer *prev_buffer = NULL; -#if 0 /* This shouldn't be necessary anymore. --lorentey */ - int was_locked = single_kboard; -#endif - int already_adjusted = 0; + bool already_adjusted = 0; kset_prefix_arg (current_kboard, Qnil); kset_last_prefix_arg (current_kboard, Qnil); @@ -1731,10 +1716,6 @@ command_loop_1 (void) if (!NILP (KVAR (current_kboard, defining_kbd_macro)) && NILP (KVAR (current_kboard, Vprefix_arg))) finalize_kbd_macro_chars (); -#if 0 /* This shouldn't be necessary anymore. --lorentey */ - if (!was_locked) - any_kboard_state (); -#endif } } @@ -1744,7 +1725,7 @@ command_loop_1 (void) LAST_PT is the last position of point. */ static void -adjust_point_for_property (ptrdiff_t last_pt, int modified) +adjust_point_for_property (ptrdiff_t last_pt, bool modified) { ptrdiff_t beg, end; Lisp_Object val, overlay, tmp; @@ -1752,7 +1733,7 @@ adjust_point_for_property (ptrdiff_t last_pt, int modified) suppress the point adjustment for automatic composition so that a user can keep inserting another character at point or keep deleting characters around point. */ - int check_composition = ! modified, check_display = 1, check_invisible = 1; + bool check_composition = ! modified, check_display = 1, check_invisible = 1; ptrdiff_t orig_pt = PT; /* FIXME: cycling is probably not necessary because these properties @@ -1791,7 +1772,8 @@ adjust_point_for_property (ptrdiff_t last_pt, int modified) check_display = 0; if (check_invisible && PT > BEGV && PT < ZV) { - int inv, ellipsis = 0; + int inv; + bool ellipsis = 0; beg = end = PT; /* Find boundaries `beg' and `end' of the invisible area, if any. */ @@ -1920,7 +1902,7 @@ safe_run_hooks_error (Lisp_Object error_data) if (SYMBOLP (hook)) { Lisp_Object val; - int found = 0; + bool found = 0; Lisp_Object newval = Qnil; for (val = find_symbol_value (hook); CONSP (val); val = XCDR (val)) if (EQ (fun, XCAR (val))) @@ -2050,9 +2032,9 @@ start_polling (void) #endif } -/* Nonzero if we are using polling to handle input asynchronously. */ +/* True if we are using polling to handle input asynchronously. */ -int +bool input_polling_used (void) { #ifdef POLL_FOR_INPUT @@ -2228,7 +2210,7 @@ show_help_echo (Lisp_Object help, Lisp_Object window, Lisp_Object object, /* Input of single characters from keyboard */ -static Lisp_Object kbd_buffer_get_event (KBOARD **kbp, int *used_mouse_menu, +static Lisp_Object kbd_buffer_get_event (KBOARD **kbp, bool *used_mouse_menu, EMACS_TIME *end_time); static void record_char (Lisp_Object c); @@ -2265,9 +2247,9 @@ do { if (polling_stopped_here) start_polling (); \ not to run input methods, but in other respects to act as if not reading a key sequence. - If USED_MOUSE_MENU is non-null, then we set *USED_MOUSE_MENU to 1 - if we used a mouse menu to read the input, or zero otherwise. If - USED_MOUSE_MENU is null, we don't dereference it. + If USED_MOUSE_MENU is non-null, then set *USED_MOUSE_MENU to true + if we used a mouse menu to read the input, or false otherwise. If + USED_MOUSE_MENU is null, don't dereference it. Value is -2 when we find input on another keyboard. A second call to read_char will read it. @@ -2281,7 +2263,7 @@ do { if (polling_stopped_here) start_polling (); \ Lisp_Object read_char (int commandflag, ptrdiff_t nmaps, Lisp_Object *maps, Lisp_Object prev_event, - int *used_mouse_menu, EMACS_TIME *end_time) + bool *used_mouse_menu, EMACS_TIME *end_time) { Lisp_Object c; ptrdiff_t jmpcount; @@ -2290,9 +2272,9 @@ read_char (int commandflag, ptrdiff_t nmaps, Lisp_Object *maps, Lisp_Object tem, save; volatile Lisp_Object previous_echo_area_message; volatile Lisp_Object also_record; - volatile int reread; + volatile bool reread; struct gcpro gcpro1, gcpro2; - int volatile polling_stopped_here = 0; + bool volatile polling_stopped_here = 0; struct kboard *orig_kboard = current_kboard; also_record = Qnil; @@ -2328,7 +2310,7 @@ read_char (int commandflag, ptrdiff_t nmaps, Lisp_Object *maps, if (CONSP (Vunread_command_events)) { - int was_disabled = 0; + bool was_disabled = 0; c = XCAR (Vunread_command_events); Vunread_command_events = XCDR (Vunread_command_events); @@ -2430,7 +2412,7 @@ read_char (int commandflag, ptrdiff_t nmaps, Lisp_Object *maps, /* if redisplay was requested */ if (commandflag >= 0) { - int echo_current = EQ (echo_message_buffer, echo_area_buffer[0]); + bool echo_current = EQ (echo_message_buffer, echo_area_buffer[0]); /* If there is pending input, process any events which are not user-visible, such as X selection_request events. */ @@ -2862,12 +2844,6 @@ read_char (int commandflag, ptrdiff_t nmaps, Lisp_Object *maps, if (!NILP (tem)) { struct buffer *prev_buffer = current_buffer; -#if 0 /* This shouldn't be necessary anymore. --lorentey */ - int was_locked = single_kboard; - ptrdiff_t count = SPECPDL_INDEX (); - record_single_kboard_state (); -#endif - last_input_event = c; Fcommand_execute (tem, Qnil, Fvector (1, &last_input_event), Qt); @@ -2878,13 +2854,6 @@ read_char (int commandflag, ptrdiff_t nmaps, Lisp_Object *maps, example banishing the mouse under mouse-avoidance-mode. */ timer_resume_idle (); -#if 0 /* This shouldn't be necessary anymore. --lorentey */ - /* Resume allowing input from any kboard, if that was true before. */ - if (!was_locked) - any_kboard_state (); - unbind_to (count, Qnil); -#endif - if (current_buffer != prev_buffer) { /* The command may have changed the keymaps. Pretend there @@ -2992,15 +2961,15 @@ read_char (int commandflag, ptrdiff_t nmaps, Lisp_Object *maps, { Lisp_Object keys; ptrdiff_t key_count; - int key_count_reset; + bool key_count_reset; struct gcpro gcpro1; ptrdiff_t count = SPECPDL_INDEX (); /* Save the echo status. */ - int saved_immediate_echo = current_kboard->immediate_echo; + bool saved_immediate_echo = current_kboard->immediate_echo; struct kboard *saved_ok_to_echo = ok_to_echo_at_next_pause; Lisp_Object saved_echo_string = KVAR (current_kboard, echo_string); - int saved_echo_after_prompt = current_kboard->echo_after_prompt; + ptrdiff_t saved_echo_after_prompt = current_kboard->echo_after_prompt; #if 0 if (before_command_restore_flag) @@ -3201,9 +3170,9 @@ record_menu_key (Lisp_Object c) num_input_events++; } -/* Return 1 if should recognize C as "the help character". */ +/* Return true if should recognize C as "the help character". */ -static int +static bool help_char_p (Lisp_Object c) { Lisp_Object tail; @@ -3375,7 +3344,7 @@ restore_getcjmp (sys_jmp_buf temp) /* Return true if there are any events in the queue that read-char would return. If this returns false, a read-char would block. */ -static int +static bool readable_events (int flags) { if (flags & READABLE_EVENTS_DO_TIMERS_NOW) @@ -3714,15 +3683,14 @@ discard_mouse_events (void) } -/* Return non-zero if there are any real events waiting in the event +/* Return true if there are any real events waiting in the event buffer, not counting `NO_EVENT's. - If DISCARD is non-zero, discard NO_EVENT events at the front of - the input queue, possibly leaving the input queue empty if there - are no real input events. */ + Discard NO_EVENT events at the front of the input queue, possibly + leaving the input queue empty if there are no real input events. */ -int -kbd_buffer_events_waiting (int discard) +bool +kbd_buffer_events_waiting (void) { struct input_event *sp; @@ -3734,9 +3702,7 @@ kbd_buffer_events_waiting (int discard) sp = kbd_buffer; } - if (discard) - kbd_fetch_ptr = sp; - + kbd_fetch_ptr = sp; return sp != kbd_store_ptr && sp->kind != NO_EVENT; } @@ -3758,7 +3724,7 @@ clear_event (struct input_event *event) static Lisp_Object kbd_buffer_get_event (KBOARD **kbp, - int *used_mouse_menu, + bool *used_mouse_menu, EMACS_TIME *end_time) { Lisp_Object obj; @@ -4203,14 +4169,14 @@ process_special_events (void) are ripe, and return, without reading any user-visible events. */ void -swallow_events (int do_display) +swallow_events (bool do_display) { - int old_timers_run; + unsigned old_timers_run; process_special_events (); old_timers_run = timers_run; - get_input_pending (&input_pending, READABLE_EVENTS_DO_TIMERS_NOW); + get_input_pending (READABLE_EVENTS_DO_TIMERS_NOW); if (timers_run != old_timers_run && do_display) redisplay_preserve_echo_area (7); @@ -4337,7 +4303,7 @@ timer_check_2 (Lisp_Object timers, Lisp_Object idle_timers) EMACS_TIME difference; EMACS_TIME timer_difference = invalid_emacs_time (); EMACS_TIME idle_timer_difference = invalid_emacs_time (); - int ripe, timer_ripe = 0, idle_timer_ripe = 0; + bool ripe, timer_ripe = 0, idle_timer_ripe = 0; /* Set TIMER and TIMER_DIFFERENCE based on the next ordinary timer. @@ -5441,7 +5407,7 @@ make_lispy_event (struct input_event *event) #endif { int button = event->code; - int is_double; + bool is_double; Lisp_Object position; Lisp_Object *start_pos_ptr; Lisp_Object start_pos; @@ -5722,7 +5688,7 @@ make_lispy_event (struct input_event *event) struct frame *fr; int fuzz; int symbol_num; - int is_double; + bool is_double; if (WINDOWP (event->frame_or_window)) fr = XFRAME (XWINDOW (event->frame_or_window)->frame); @@ -6664,11 +6630,11 @@ parse_solitary_modifier (Lisp_Object symbol) return 0; } -/* Return 1 if EVENT is a list whose elements are all integers or symbols. +/* Return true if EVENT is a list whose elements are all integers or symbols. Such a list is not valid as an event, but it can be a Lucid-style event type list. */ -int +bool lucid_event_type_list_p (Lisp_Object object) { Lisp_Object tail; @@ -6693,8 +6659,10 @@ lucid_event_type_list_p (Lisp_Object object) return NILP (tail); } -/* Store into *addr a value nonzero if terminal input chars are available. - Serves the purpose of ioctl (0, FIONREAD, addr) +/* Return true if terminal input chars are available. + Also, store the return value into INPUT_PENDING. + + Serves the purpose of ioctl (0, FIONREAD, ...) but works even if FIONREAD does not exist. (In fact, this may actually read some input.) @@ -6705,19 +6673,21 @@ lucid_event_type_list_p (Lisp_Object object) If READABLE_EVENTS_IGNORE_SQUEEZABLES is set in FLAGS, ignore mouse movements and toolkit scroll bar thumb drags. */ -static void -get_input_pending (int *addr, int flags) +static bool +get_input_pending (int flags) { /* First of all, have we already counted some input? */ - *addr = (!NILP (Vquit_flag) || readable_events (flags)); + input_pending = (!NILP (Vquit_flag) || readable_events (flags)); /* If input is being read as it arrives, and we have none, there is none. */ - if (*addr > 0 || (interrupt_input && ! interrupts_deferred)) - return; + if (!input_pending && (!interrupt_input || interrupts_deferred)) + { + /* Try to read some input and see how much we get. */ + gobble_input (); + input_pending = (!NILP (Vquit_flag) || readable_events (flags)); + } - /* Try to read some input and see how much we get. */ - gobble_input (); - *addr = (!NILP (Vquit_flag) || readable_events (flags)); + return input_pending; } /* Put a BUFFER_SWITCH_EVENT in the buffer @@ -6767,7 +6737,7 @@ int gobble_input (void) { int nread = 0; - int err = 0; + bool err = 0; struct terminal *t; /* Store pending user signal events, if any. */ @@ -7337,9 +7307,9 @@ static const char* separator_names[] = { 0, }; -/* Return non-zero if LABEL specifies a separator. */ +/* Return true if LABEL specifies a separator. */ -int +bool menu_separator_name_p (const char *label) { if (!label) @@ -7514,6 +7484,7 @@ menu_bar_item (Lisp_Object key, Lisp_Object item, Lisp_Object dummy1, void *dumm { struct gcpro gcpro1; int i; + bool parsed; Lisp_Object tem; if (EQ (item, Qundefined)) @@ -7545,9 +7516,9 @@ menu_bar_item (Lisp_Object key, Lisp_Object item, Lisp_Object dummy1, void *dumm parse_menu_item, so that if it turns out it wasn't a menu item, it still correctly hides any further menu item. */ GCPRO1 (key); - i = parse_menu_item (item, 1); + parsed = parse_menu_item (item, 1); UNGCPRO; - if (!i) + if (!parsed) return; item = AREF (item_properties, ITEM_PROPERTY_DEF); @@ -7623,7 +7594,7 @@ menu_item_eval_property (Lisp_Object sexpr) parse_menu_item returns true if the item is a menu item and false otherwise. */ -int +bool parse_menu_item (Lisp_Object item, int inmenubar) { Lisp_Object def, tem, item_string, start; @@ -7923,7 +7894,7 @@ static Lisp_Object QCrtl; static void init_tool_bar_items (Lisp_Object); static void process_tool_bar_item (Lisp_Object, Lisp_Object, Lisp_Object, void*); -static int parse_tool_bar_item (Lisp_Object, Lisp_Object); +static bool parse_tool_bar_item (Lisp_Object, Lisp_Object); static void append_tool_bar_item (void); @@ -8056,7 +8027,7 @@ set_prop (ptrdiff_t idx, Lisp_Object val) /* Parse a tool bar item specification ITEM for key KEY and return the - result in tool_bar_item_properties. Value is zero if ITEM is + result in tool_bar_item_properties. Value is false if ITEM is invalid. ITEM is a list `(menu-item CAPTION BINDING PROPS...)'. @@ -8101,12 +8072,13 @@ set_prop (ptrdiff_t idx, Lisp_Object val) A text label to show with the tool bar button if labels are enabled. */ -static int +static bool parse_tool_bar_item (Lisp_Object key, Lisp_Object item) { Lisp_Object filter = Qnil; Lisp_Object caption; - int i, have_label = 0; + int i; + bool have_label = 0; /* Definition looks like `(menu-item CAPTION BINDING PROPS...)'. Rule out items that aren't lists, don't start with @@ -8363,9 +8335,9 @@ append_tool_bar_item (void) PREV_EVENT is the previous input event, or nil if we are reading the first event of a key sequence. - If USED_MOUSE_MENU is non-null, then we set *USED_MOUSE_MENU to 1 - if we used a mouse menu to read the input, or zero otherwise. If - USED_MOUSE_MENU is null, we don't dereference it. + If USED_MOUSE_MENU is non-null, set *USED_MOUSE_MENU to true + if we used a mouse menu to read the input, or false otherwise. If + USED_MOUSE_MENU is null, don't dereference it. The prompting is done based on the prompt-string of the map and the strings associated with various map elements. @@ -8378,7 +8350,7 @@ append_tool_bar_item (void) static Lisp_Object read_char_x_menu_prompt (ptrdiff_t nmaps, Lisp_Object *maps, - Lisp_Object prev_event, int *used_mouse_menu) + Lisp_Object prev_event, bool *used_mouse_menu) { #ifdef HAVE_MENUS ptrdiff_t mapno; @@ -8472,7 +8444,7 @@ read_char_minibuf_menu_prompt (int commandflag, /* FIXME: Use the minibuffer's frame width. */ ptrdiff_t width = FRAME_COLS (SELECTED_FRAME ()) - 4; ptrdiff_t idx = -1; - int nobindings = 1; + bool nobindings = 1; Lisp_Object rest, vector; char *menu; @@ -8520,7 +8492,7 @@ read_char_minibuf_menu_prompt (int commandflag, /* Present the documented bindings, a line at a time. */ while (1) { - int notfirst = 0; + bool notfirst = 0; ptrdiff_t i = nlength; Lisp_Object obj; Lisp_Object orig_defn_macro; @@ -8576,8 +8548,8 @@ read_char_minibuf_menu_prompt (int commandflag, /* Ignore the element if it has no prompt string. */ if (INTEGERP (event) && parse_menu_item (elt, -1)) { - /* 1 if the char to type matches the string. */ - int char_matches; + /* True if the char to type matches the string. */ + bool char_matches; Lisp_Object upcased_event, downcased_event; Lisp_Object desc = Qnil; Lisp_Object s @@ -8629,7 +8601,7 @@ read_char_minibuf_menu_prompt (int commandflag, i += 2; } notfirst = 1; - nobindings = 0 ; + nobindings = 0; /* If the char to type doesn't match the string's first char, explicitly show what char to type. */ @@ -8763,14 +8735,14 @@ typedef struct keyremap /* Lookup KEY in MAP. MAP is a keymap mapping keys to key vectors or functions. - If the mapping is a function and DO_FUNCTION is non-zero, then + If the mapping is a function and DO_FUNCALL is true, the function is called with PROMPT as parameter and its return value is used as the return value of this function (after checking that it is indeed a vector). */ static Lisp_Object access_keymap_keyremap (Lisp_Object map, Lisp_Object key, Lisp_Object prompt, - int do_funcall) + bool do_funcall) { Lisp_Object next; @@ -8809,15 +8781,15 @@ access_keymap_keyremap (Lisp_Object map, Lisp_Object key, Lisp_Object prompt, BUFSIZE is its maximum size. FKEY is a pointer to the keyremap structure to use. INPUT is the index of the last element in KEYBUF. - DOIT if non-zero says that the remapping can actually take place. + DOIT if true says that the remapping can actually take place. DIFF is used to return the number of keys added/removed by the remapping. PARENT is the root of the keymap. PROMPT is the prompt to use if the remapping happens through a function. - The return value is non-zero if the remapping actually took place. */ + Return true if the remapping actually took place. */ -static int +static bool keyremap_step (Lisp_Object *keybuf, int bufsize, volatile keyremap *fkey, - int input, int doit, int *diff, Lisp_Object prompt) + int input, bool doit, int *diff, Lisp_Object prompt) { Lisp_Object next, key; @@ -8871,7 +8843,7 @@ keyremap_step (Lisp_Object *keybuf, int bufsize, volatile keyremap *fkey, return 0; } -static int +static bool test_undefined (Lisp_Object binding) { return (EQ (binding, Qundefined) @@ -8913,13 +8885,13 @@ test_undefined (Lisp_Object binding) off the switch-frame event until later; the next call to read_char will return it. - If FIX_CURRENT_BUFFER is nonzero, we restore current_buffer + If FIX_CURRENT_BUFFER, we restore current_buffer from the selected window's buffer. */ static int read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt, - int dont_downcase_last, int can_return_switch_frame, - int fix_current_buffer) + bool dont_downcase_last, bool can_return_switch_frame, + bool fix_current_buffer) { Lisp_Object from_string; ptrdiff_t count = SPECPDL_INDEX (); @@ -8952,7 +8924,7 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt, key sequence. */ Lisp_Object orig_keymap; - /* 1 if we have already considered switching to the local-map property + /* Positive if we have already considered switching to the local-map property of the place where a mouse click occurred. */ int localized_local_map = 0; @@ -8992,10 +8964,10 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt, /* Likewise, for key_translation_map and input-decode-map. */ keyremap keytran, indec; - /* Non-zero if we are trying to map a key by changing an upper-case + /* True if we are trying to map a key by changing an upper-case letter to lower case, or a shifted function key to an unshifted one. */ - int shift_translated = 0; + bool shift_translated = 0; /* If we receive a `switch-frame' or `select-window' event in the middle of a key sequence, we put it off for later. @@ -9011,7 +8983,7 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt, int original_uppercase_position = -1; /* Gets around Microsoft compiler limitations. */ - int dummyflag = 0; + bool dummyflag = 0; struct buffer *starting_buffer; @@ -9173,7 +9145,7 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt, : (/* indec.start < t || fkey.start < t || */ keytran.start < t)) { Lisp_Object key; - int used_mouse_menu = 0; + bool used_mouse_menu = 0; /* Where the last real key started. If we need to throw away a key that has expanded into more than one element of keybuf @@ -9267,7 +9239,7 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt, return. Any better way to fix this? -- cyd */ || (interrupted_kboard != current_kboard)) { - int found = 0; + bool found = 0; struct kboard *k; for (k = all_kboards; k; k = k->next_kboard) @@ -9821,7 +9793,8 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt, while (indec.end < t) { struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; - int done, diff; + bool done; + int diff; GCPRO4 (indec.map, fkey.map, keytran.map, delayed_switch_frame); done = keyremap_step (keybuf, bufsize, &indec, max (t, mock_input), @@ -9855,7 +9828,8 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt, while (fkey.end < indec.start) { struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; - int done, diff; + bool done; + int diff; GCPRO4 (indec.map, fkey.map, keytran.map, delayed_switch_frame); done = keyremap_step (keybuf, bufsize, &fkey, @@ -9884,7 +9858,8 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt, while (keytran.end < fkey.start) { struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; - int done, diff; + bool done; + int diff; GCPRO4 (indec.map, fkey.map, keytran.map, delayed_switch_frame); done = keyremap_step (keybuf, bufsize, &keytran, max (t, mock_input), @@ -10270,38 +10245,32 @@ a special event, so ignore the prefix argument and don't clear it. */) -/* Return nonzero if input events are pending. */ +/* Return true if input events are pending. */ -int +bool detect_input_pending (void) { - if (!input_pending) - get_input_pending (&input_pending, 0); - - return input_pending; + return input_pending || get_input_pending (0); } -/* Return nonzero if input events other than mouse movements are +/* Return true if input events other than mouse movements are pending. */ -int +bool detect_input_pending_ignore_squeezables (void) { - if (!input_pending) - get_input_pending (&input_pending, READABLE_EVENTS_IGNORE_SQUEEZABLES); - - return input_pending; + return input_pending || get_input_pending (READABLE_EVENTS_IGNORE_SQUEEZABLES); } -/* Return nonzero if input events are pending, and run any pending timers. */ +/* Return true if input events are pending, and run any pending timers. */ -int -detect_input_pending_run_timers (int do_display) +bool +detect_input_pending_run_timers (bool do_display) { - int old_timers_run = timers_run; + unsigned old_timers_run = timers_run; if (!input_pending) - get_input_pending (&input_pending, READABLE_EVENTS_DO_TIMERS_NOW); + get_input_pending (READABLE_EVENTS_DO_TIMERS_NOW); if (old_timers_run != timers_run && do_display) { @@ -10332,13 +10301,13 @@ clear_input_pending (void) input_pending = 0; } -/* Return nonzero if there are pending requeued events. +/* Return true if there are pending requeued events. This isn't used yet. The hope is to make wait_reading_process_output call it, and return if it runs Lisp code that unreads something. The problem is, kbd_buffer_get_event needs to be fixed to know what to do in that case. It isn't trivial. */ -int +bool requeued_events_pending_p (void) { return (!NILP (Vunread_command_events)); @@ -10359,10 +10328,9 @@ if there is a doubt, the value is t. */) /* Process non-user-visible events (Bug#10195). */ process_special_events (); - get_input_pending (&input_pending, - READABLE_EVENTS_DO_TIMERS_NOW - | READABLE_EVENTS_FILTER_EVENTS); - return input_pending > 0 ? Qt : Qnil; + return (get_input_pending (READABLE_EVENTS_DO_TIMERS_NOW + | READABLE_EVENTS_FILTER_EVENTS) + ? Qt : Qnil); } DEFUN ("recent-keys", Frecent_keys, Srecent_keys, 0, 0, 0, @@ -10868,7 +10836,7 @@ handle_interrupt (bool in_signal_handler) /* Handle a C-g by making read_char return C-g. */ static void -quit_throw_to_read_char (int from_signal) +quit_throw_to_read_char (bool from_signal) { /* When not called from a signal handler it is safe to call Lisp. */ @@ -10898,7 +10866,7 @@ otherwise Emacs uses CBREAK mode. See also `current-input-mode'. */) (Lisp_Object interrupt) { - int new_interrupt_input; + bool new_interrupt_input; #ifdef USABLE_SIGIO #ifdef HAVE_X_WINDOWS if (x_display_list != NULL) diff --git a/src/keyboard.h b/src/keyboard.h index d78c27fbf9b..e57c8cc7193 100644 --- a/src/keyboard.h +++ b/src/keyboard.h @@ -169,12 +169,12 @@ struct kboard reading from this KBOARD again until more input arrives. */ char kbd_queue_has_data; - /* Nonzero means echo each character as typed. */ - char immediate_echo; + /* True means echo each character as typed. */ + unsigned immediate_echo : 1; /* If we have echoed a prompt string specified by the user, this is its length in characters. Otherwise this is -1. */ - char echo_after_prompt; + ptrdiff_t echo_after_prompt; }; KEYBOARD_INLINE void @@ -463,14 +463,14 @@ extern Lisp_Object Qhelp_echo; extern Lisp_Object Qmode_line, Qvertical_line, Qheader_line; /* True while doing kbd input. */ -extern int waiting_for_input; +extern bool waiting_for_input; /* Address (if not 0) of EMACS_TIME to zero out if a SIGIO interrupt happens. */ extern EMACS_TIME *input_available_clear_time; #if defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS -extern int ignore_mouse_drag_p; +extern bool ignore_mouse_drag_p; #endif /* The primary selection. */ @@ -482,7 +482,7 @@ struct input_event; extern Lisp_Object parse_modifiers (Lisp_Object); extern Lisp_Object reorder_modifiers (Lisp_Object); extern Lisp_Object read_char (int, ptrdiff_t, Lisp_Object *, Lisp_Object, - int *, EMACS_TIME *); + bool *, EMACS_TIME *); extern int parse_solitary_modifier (Lisp_Object symbol); @@ -506,10 +506,10 @@ extern Time last_event_timestamp; extern int quit_char; -extern int timers_run; +extern unsigned int timers_run; -extern int menu_separator_name_p (const char *); -extern int parse_menu_item (Lisp_Object, int); +extern bool menu_separator_name_p (const char *); +extern bool parse_menu_item (Lisp_Object, int); extern void init_kboard (KBOARD *); extern void delete_kboard (KBOARD *); @@ -524,15 +524,15 @@ extern void start_polling (void); extern void stop_polling (void); extern void set_poll_suppress_count (int); extern int gobble_input (void); -extern int input_polling_used (void); +extern bool input_polling_used (void); extern void clear_input_pending (void); -extern int requeued_events_pending_p (void); +extern bool requeued_events_pending_p (void); extern void bind_polling_period (int); extern int make_ctrl_char (int) ATTRIBUTE_CONST; extern void stuff_buffered_input (Lisp_Object); extern void clear_waiting_for_input (void); -extern void swallow_events (int); -extern int lucid_event_type_list_p (Lisp_Object); +extern void swallow_events (bool); +extern bool lucid_event_type_list_p (Lisp_Object); extern void kbd_buffer_store_event (struct input_event *); extern void kbd_buffer_store_event_hold (struct input_event *, struct input_event *); @@ -544,7 +544,7 @@ extern void gen_help_event (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, ptrdiff_t); extern void kbd_buffer_store_help_event (Lisp_Object, Lisp_Object); extern Lisp_Object menu_item_eval_property (Lisp_Object); -extern int kbd_buffer_events_waiting (int); +extern bool kbd_buffer_events_waiting (void); extern void add_user_signal (int, const char *); extern int tty_read_avail_input (struct terminal *, struct input_event *); diff --git a/src/keymap.c b/src/keymap.c index 6ea142651bf..fbdd31e0de3 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -99,12 +99,12 @@ static void describe_command (Lisp_Object, Lisp_Object); static void describe_translation (Lisp_Object, Lisp_Object); static void describe_map (Lisp_Object, Lisp_Object, void (*) (Lisp_Object, Lisp_Object), - int, Lisp_Object, Lisp_Object*, int, int); + bool, Lisp_Object, Lisp_Object*, bool, bool); static void describe_vector (Lisp_Object, Lisp_Object, Lisp_Object, - void (*) (Lisp_Object, Lisp_Object), int, - Lisp_Object, Lisp_Object, int, int); + void (*) (Lisp_Object, Lisp_Object), bool, + Lisp_Object, Lisp_Object, bool, bool); static void silly_event_symbol_error (Lisp_Object); -static Lisp_Object get_keyelt (Lisp_Object, int); +static Lisp_Object get_keyelt (Lisp_Object, bool); /* Keymap object support - constructors and predicates. */ @@ -207,15 +207,12 @@ when reading a key-sequence to be looked-up in this keymap. */) /* Check that OBJECT is a keymap (after dereferencing through any symbols). If it is, return it. - If AUTOLOAD is non-zero and OBJECT is a symbol whose function value + If AUTOLOAD and if OBJECT is a symbol whose function value is an autoload form, do the autoload and try again. - If AUTOLOAD is nonzero, callers must assume GC is possible. - - If the map needs to be autoloaded, but AUTOLOAD is zero (and ERROR - is zero as well), return Qt. + If AUTOLOAD, callers must assume GC is possible. ERROR_IF_NOT_KEYMAP controls how we respond if OBJECT isn't a keymap. - If ERROR_IF_NOT_KEYMAP is non-zero, signal an error; otherwise, + If ERROR_IF_NOT_KEYMAP, signal an error; otherwise, just return Qnil. Note that most of the time, we don't want to pursue autoloads. @@ -224,11 +221,11 @@ when reading a key-sequence to be looked-up in this keymap. */) but it seems to me that only read_key_sequence, Flookup_key, and Fdefine_key should cause keymaps to be autoloaded. - This function can GC when AUTOLOAD is non-zero, because it calls + This function can GC when AUTOLOAD is true, because it calls Fautoload_do_load which can GC. */ Lisp_Object -get_keymap (Lisp_Object object, int error_if_not_keymap, int autoload) +get_keymap (Lisp_Object object, bool error_if_not_keymap, bool autoload) { Lisp_Object tem; @@ -280,7 +277,7 @@ get_keymap (Lisp_Object object, int error_if_not_keymap, int autoload) We assume that KEYMAP is a valid keymap. */ static Lisp_Object -keymap_parent (Lisp_Object keymap, int autoload) +keymap_parent (Lisp_Object keymap, bool autoload) { Lisp_Object list; @@ -307,7 +304,7 @@ If KEYMAP has no parent, return nil. */) } /* Check whether MAP is one of MAPS parents. */ -static int +static bool keymap_memberp (Lisp_Object map, Lisp_Object maps) { if (NILP (map)) return 0; @@ -365,19 +362,20 @@ Return PARENT. PARENT should be nil or another keymap. */) MAP must be a keymap or a list of keymaps. - If T_OK is non-zero, bindings for Qt are treated as default + If T_OK, bindings for Qt are treated as default bindings; any key left unmentioned by other tables and bindings is given the binding of Qt. - If T_OK is zero, bindings for Qt are not treated specially. + If not T_OK, bindings for Qt are not treated specially. If NOINHERIT, don't accept a subkeymap found in an inherited keymap. - Returns Qunbound if no binding was found (and returns Qnil if a nil + Return Qunbound if no binding was found (and return Qnil if a nil binding was found). */ static Lisp_Object -access_keymap_1 (Lisp_Object map, Lisp_Object idx, int t_ok, int noinherit, int autoload) +access_keymap_1 (Lisp_Object map, Lisp_Object idx, + bool t_ok, bool noinherit, bool autoload) { /* If idx is a list (some sort of mouse click, perhaps?), the index we want to use is the car of the list, which @@ -547,7 +545,7 @@ access_keymap_1 (Lisp_Object map, Lisp_Object idx, int t_ok, int noinherit, int Lisp_Object access_keymap (Lisp_Object map, Lisp_Object idx, - int t_ok, int noinherit, int autoload) + bool t_ok, bool noinherit, bool autoload) { Lisp_Object val = access_keymap_1 (map, idx, t_ok, noinherit, autoload); return EQ (val, Qunbound) ? Qnil : val; @@ -630,9 +628,10 @@ map_keymap_call (Lisp_Object key, Lisp_Object val, Lisp_Object fun, void *dummy) } /* Same as map_keymap_internal, but traverses parent keymaps as well. - A non-zero AUTOLOAD indicates that autoloaded keymaps should be loaded. */ + AUTOLOAD indicates that autoloaded keymaps should be loaded. */ void -map_keymap (Lisp_Object map, map_keymap_function_t fun, Lisp_Object args, void *data, int autoload) +map_keymap (Lisp_Object map, map_keymap_function_t fun, Lisp_Object args, + void *data, bool autoload) { struct gcpro gcpro1; GCPRO1 (args); @@ -711,13 +710,13 @@ usage: (map-keymap FUNCTION KEYMAP) */) Also if OBJECT has a menu string as the first element, remove that. Also remove a menu help string as second element. - If AUTOLOAD is nonzero, load autoloadable keymaps + If AUTOLOAD, load autoloadable keymaps that are referred to with indirection. This can GC because menu_item_eval_property calls Feval. */ static Lisp_Object -get_keyelt (Lisp_Object object, int autoload) +get_keyelt (Lisp_Object object, bool autoload) { while (1) { @@ -1114,10 +1113,10 @@ binding is altered. If there is no binding for KEY, the new pair binding KEY to DEF is added at the front of KEYMAP. */) (Lisp_Object keymap, Lisp_Object key, Lisp_Object def) { - register ptrdiff_t idx; - register Lisp_Object c; - register Lisp_Object cmd; - int metized = 0; + ptrdiff_t idx; + Lisp_Object c; + Lisp_Object cmd; + bool metized = 0; int meta_bit; ptrdiff_t length; struct gcpro gcpro1, gcpro2, gcpro3; @@ -1271,11 +1270,11 @@ third optional argument ACCEPT-DEFAULT is non-nil, `lookup-key' will recognize the default bindings, just as `read-key-sequence' does. */) (Lisp_Object keymap, Lisp_Object key, Lisp_Object accept_default) { - register ptrdiff_t idx; - register Lisp_Object cmd; - register Lisp_Object c; + ptrdiff_t idx; + Lisp_Object cmd; + Lisp_Object c; ptrdiff_t length; - int t_ok = !NILP (accept_default); + bool t_ok = !NILP (accept_default); struct gcpro gcpro1, gcpro2; GCPRO2 (keymap, key); @@ -1887,7 +1886,7 @@ DEFUN ("current-minor-mode-maps", Fcurrent_minor_mode_maps, Scurrent_minor_mode_ struct accessible_keymaps_data { Lisp_Object maps, tail, thisseq; /* Does the current sequence end in the meta-prefix-char? */ - int is_metized; + bool is_metized; }; static void @@ -1898,7 +1897,7 @@ accessible_keymaps_1 (Lisp_Object key, Lisp_Object cmd, Lisp_Object args, void * Lisp_Object maps = d->maps; Lisp_Object tail = d->tail; Lisp_Object thisseq = d->thisseq; - int is_metized = d->is_metized && INTEGERP (key); + bool is_metized = d->is_metized && INTEGERP (key); Lisp_Object tem; cmd = get_keymap (get_keyelt (cmd, 0), 0, 0); @@ -2060,7 +2059,7 @@ The `kbd' macro is an approximate inverse of this. */) Lisp_Object sep = build_string (" "); Lisp_Object key; Lisp_Object result; - int add_meta = 0; + bool add_meta = 0; USE_SAFE_ALLOCA; if (!NILP (prefix)) @@ -2155,9 +2154,10 @@ The `kbd' macro is an approximate inverse of this. */) char * -push_key_description (EMACS_INT ch, char *p, int force_multibyte) +push_key_description (EMACS_INT ch, char *p) { - int c, c2, tab_as_ci; + int c, c2; + bool tab_as_ci; /* Clear all the meaningless bits above the meta bit. */ c = ch & (meta_modifier | ~ - meta_modifier); @@ -2256,21 +2256,12 @@ push_key_description (EMACS_INT ch, char *p, int force_multibyte) *p++ = 'P'; *p++ = 'C'; } - else if (c < 128 - || (NILP (BVAR (current_buffer, enable_multibyte_characters)) - && SINGLE_BYTE_CHAR_P (c) - && !force_multibyte)) - { - *p++ = c; - } + else if (c < 128) + *p++ = c; else { /* Now we are sure that C is a valid character code. */ - if (NILP (BVAR (current_buffer, enable_multibyte_characters)) - && ! force_multibyte) - *p++ = multibyte_char_to_unibyte (c); - else - p += CHAR_STRING (c, (unsigned char *) p); + p += CHAR_STRING (c, (unsigned char *) p); } return p; @@ -2299,9 +2290,8 @@ around function keys and event symbols. */) if (INTEGERP (key)) /* Normal character. */ { - char tem[KEY_DESCRIPTION_SIZE], *p; - - p = push_key_description (XINT (key), tem, 1); + char tem[KEY_DESCRIPTION_SIZE]; + char *p = push_key_description (XINT (key), tem); *p = 0; return make_specified_string (tem, -1, p - tem, 1); } @@ -2429,7 +2419,7 @@ static void where_is_internal_1 (Lisp_Object key, Lisp_Object binding, static Lisp_Object shadow_lookup (Lisp_Object shadow, Lisp_Object key, Lisp_Object flag, - int remap) + bool remap) { Lisp_Object tail, value; @@ -2461,7 +2451,7 @@ static Lisp_Object Vmouse_events; struct where_is_internal_data { Lisp_Object definition, this, last; - int last_is_meta, noindirect; + bool last_is_meta, noindirect; Lisp_Object sequences; }; @@ -2474,7 +2464,7 @@ struct where_is_internal_data { static Lisp_Object where_is_internal (Lisp_Object definition, Lisp_Object keymaps, - int noindirect, int nomenus) + bool noindirect, bool nomenus) { Lisp_Object maps = Qnil; Lisp_Object found; @@ -2523,7 +2513,7 @@ where_is_internal (Lisp_Object definition, Lisp_Object keymaps, [M-CHAR] sequences, check if last character of the sequence is the meta-prefix char. */ Lisp_Object last; - int last_is_meta; + bool last_is_meta; this = Fcar (XCAR (maps)); map = Fcdr (XCAR (maps)); @@ -2606,7 +2596,7 @@ The optional 5th arg NO-REMAP alters how command remapping is handled: /* Actually relevant bindings. */ Lisp_Object found = Qnil; /* 1 means ignore all menu bindings entirely. */ - int nomenus = !NILP (firstonly) && !EQ (firstonly, Qnon_ascii); + bool nomenus = !NILP (firstonly) && !EQ (firstonly, Qnon_ascii); struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5, gcpro6; /* List of sequences found via remapping. Keep them in a separate variable, so as to push them later, since we prefer @@ -2615,7 +2605,7 @@ The optional 5th arg NO-REMAP alters how command remapping is handled: /* Whether or not we're handling remapped sequences. This is needed because remapping is not done recursively by Fcommand_remapping: you can't remap a remapped command. */ - int remapped = 0; + bool remapped = 0; Lisp_Object tem = Qnil; /* Refresh the C version of the modifier preference. */ @@ -2767,10 +2757,10 @@ where_is_internal_1 (Lisp_Object key, Lisp_Object binding, Lisp_Object args, voi { struct where_is_internal_data *d = data; /* Cast! */ Lisp_Object definition = d->definition; - int noindirect = d->noindirect; + bool noindirect = d->noindirect; Lisp_Object this = d->this; Lisp_Object last = d->last; - int last_is_meta = d->last_is_meta; + bool last_is_meta = d->last_is_meta; Lisp_Object sequence; /* Search through indirections unless that's not wanted. */ @@ -2821,8 +2811,8 @@ The optional argument MENUS, if non-nil, says to mention menu bindings. (Lisp_Object buffer, Lisp_Object prefix, Lisp_Object menus) { Lisp_Object outbuf, shadow; - int nomenu = NILP (menus); - register Lisp_Object start1; + bool nomenu = NILP (menus); + Lisp_Object start1; struct gcpro gcpro1; const char *alternate_heading @@ -2857,10 +2847,10 @@ You type Translation\n\ alternate_heading = 0; } - bufend = push_key_description (translate[c], buf, 1); + bufend = push_key_description (translate[c], buf); insert (buf, bufend - buf); Findent_to (make_number (16), make_number (1)); - bufend = push_key_description (c, buf, 1); + bufend = push_key_description (c, buf); insert (buf, bufend - buf); insert ("\n", 1); @@ -2977,34 +2967,34 @@ You type Translation\n\ /* Insert a description of the key bindings in STARTMAP, followed by those of all maps reachable through STARTMAP. - If PARTIAL is nonzero, omit certain "uninteresting" commands + If PARTIAL, omit certain "uninteresting" commands (such as `undefined'). If SHADOW is non-nil, it is a list of maps; don't mention keys which would be shadowed by any of them. PREFIX, if non-nil, says mention only keys that start with PREFIX. TITLE, if not 0, is a string to insert at the beginning. TITLE should not end with a colon or a newline; we supply that. - If NOMENU is not 0, then omit menu-bar commands. + If NOMENU, then omit menu-bar commands. - If TRANSL is nonzero, the definitions are actually key translations + If TRANSL, the definitions are actually key translations so print strings and vectors differently. - If ALWAYS_TITLE is nonzero, print the title even if there are no maps + If ALWAYS_TITLE, print the title even if there are no maps to look through. - If MENTION_SHADOW is nonzero, then when something is shadowed by SHADOW, + If MENTION_SHADOW, then when something is shadowed by SHADOW, don't omit it; instead, mention it but say it is shadowed. Any inserted text ends in two newlines (used by `help-make-xrefs'). */ void -describe_map_tree (Lisp_Object startmap, int partial, Lisp_Object shadow, - Lisp_Object prefix, const char *title, int nomenu, int transl, - int always_title, int mention_shadow) +describe_map_tree (Lisp_Object startmap, bool partial, Lisp_Object shadow, + Lisp_Object prefix, const char *title, bool nomenu, + bool transl, bool always_title, bool mention_shadow) { Lisp_Object maps, orig_maps, seen, sub_shadows; struct gcpro gcpro1, gcpro2, gcpro3; - int something = 0; + bool something = 0; const char *key_heading = "\ key binding\n\ @@ -3179,7 +3169,12 @@ describe_translation (Lisp_Object definition, Lisp_Object args) into an array of `struct describe_map_elt', then sorts them by the events. */ -struct describe_map_elt { Lisp_Object event; Lisp_Object definition; int shadowed; }; +struct describe_map_elt +{ + Lisp_Object event; + Lisp_Object definition; + bool shadowed; +}; /* qsort comparison function for sorting `struct describe_map_elt' by the event field. */ @@ -3209,14 +3204,14 @@ describe_map_compare (const void *aa, const void *bb) static void describe_map (Lisp_Object map, Lisp_Object prefix, void (*elt_describer) (Lisp_Object, Lisp_Object), - int partial, Lisp_Object shadow, - Lisp_Object *seen, int nomenu, int mention_shadow) + bool partial, Lisp_Object shadow, + Lisp_Object *seen, bool nomenu, bool mention_shadow) { Lisp_Object tail, definition, event; Lisp_Object tem; Lisp_Object suppress; Lisp_Object kludge; - int first = 1; + bool first = 1; struct gcpro gcpro1, gcpro2, gcpro3; /* These accumulate the values from sparse keymap bindings, @@ -3258,7 +3253,7 @@ describe_map (Lisp_Object map, Lisp_Object prefix, 1, mention_shadow); else if (CONSP (XCAR (tail))) { - int this_shadowed = 0; + bool this_shadowed = 0; event = XCAR (XCAR (tail)); @@ -3428,7 +3423,7 @@ DESCRIBER is the output function used; nil means use `princ'. */) of bytes that lead to the character set or portion of a character set described by this chartable. - If PARTIAL is nonzero, it means do not mention suppressed commands + If PARTIAL, it means do not mention suppressed commands (that assumes the vector is in a keymap). SHADOW is a list of keymaps that shadow this map. @@ -3448,8 +3443,8 @@ DESCRIBER is the output function used; nil means use `princ'. */) static void describe_vector (Lisp_Object vector, Lisp_Object prefix, Lisp_Object args, void (*elt_describer) (Lisp_Object, Lisp_Object), - int partial, Lisp_Object shadow, Lisp_Object entire_map, - int keymap_p, int mention_shadow) + bool partial, Lisp_Object shadow, Lisp_Object entire_map, + bool keymap_p, bool mention_shadow) { Lisp_Object definition; Lisp_Object tem2; @@ -3457,7 +3452,7 @@ describe_vector (Lisp_Object vector, Lisp_Object prefix, Lisp_Object args, int i; Lisp_Object suppress; Lisp_Object kludge; - int first = 1; + bool first = 1; struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; /* Range of elements to be handled. */ int from, to, stop; @@ -3497,7 +3492,7 @@ describe_vector (Lisp_Object vector, Lisp_Object prefix, Lisp_Object args, for (i = from; ; i++) { - int this_shadowed = 0; + bool this_shadowed = 0; int range_beg, range_end; Lisp_Object val; diff --git a/src/keymap.h b/src/keymap.h index 5ed70c67b85..c704ee0b050 100644 --- a/src/keymap.h +++ b/src/keymap.h @@ -34,11 +34,11 @@ extern Lisp_Object Qkeymap, Qmenu_bar; extern Lisp_Object Qremap; extern Lisp_Object Qmenu_item; extern Lisp_Object current_global_map; -extern char *push_key_description (EMACS_INT, char *, int); -extern Lisp_Object access_keymap (Lisp_Object, Lisp_Object, int, int, int); -extern Lisp_Object get_keymap (Lisp_Object, int, int); -extern void describe_map_tree (Lisp_Object, int, Lisp_Object, Lisp_Object, - const char *, int, int, int, int); +extern char *push_key_description (EMACS_INT, char *); +extern Lisp_Object access_keymap (Lisp_Object, Lisp_Object, bool, bool, bool); +extern Lisp_Object get_keymap (Lisp_Object, bool, bool); +extern void describe_map_tree (Lisp_Object, bool, Lisp_Object, Lisp_Object, + const char *, bool, bool, bool, bool); extern ptrdiff_t current_minor_maps (Lisp_Object **, Lisp_Object **); extern void initial_define_key (Lisp_Object, int, const char *); extern void initial_define_lispy_key (Lisp_Object, const char *, const char *); @@ -47,7 +47,8 @@ extern void keys_of_keymap (void); typedef void (*map_keymap_function_t) (Lisp_Object key, Lisp_Object val, Lisp_Object args, void* data); -extern void map_keymap (Lisp_Object map, map_keymap_function_t fun, Lisp_Object largs, void* cargs, int autoload); +extern void map_keymap (Lisp_Object, map_keymap_function_t, Lisp_Object, + void *, bool); extern void map_keymap_canonical (Lisp_Object map, map_keymap_function_t fun, Lisp_Object args, void *data); diff --git a/src/lisp.h b/src/lisp.h index 71e542cc769..1de9ec74d9f 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3198,9 +3198,9 @@ extern ptrdiff_t fast_string_match_ignore_case (Lisp_Object, Lisp_Object); extern ptrdiff_t fast_looking_at (Lisp_Object, ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, Lisp_Object); extern ptrdiff_t scan_buffer (int, ptrdiff_t, ptrdiff_t, ptrdiff_t, - ptrdiff_t *, int); + ptrdiff_t *, bool); extern EMACS_INT scan_newline (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, - EMACS_INT, int); + EMACS_INT, bool); extern ptrdiff_t find_next_newline (ptrdiff_t, int); extern ptrdiff_t find_next_newline_no_quit (ptrdiff_t, ptrdiff_t); extern ptrdiff_t find_before_next_newline (ptrdiff_t, ptrdiff_t, ptrdiff_t); @@ -3243,7 +3243,7 @@ extern Lisp_Object Qdisabled, QCfilter; extern Lisp_Object Qup, Qdown, Qbottom; extern Lisp_Object Qtop; extern Lisp_Object last_undo_boundary; -extern int input_pending; +extern bool input_pending; extern Lisp_Object menu_bar_items (Lisp_Object); extern Lisp_Object tool_bar_items (Lisp_Object, int *); extern void discard_mouse_events (void); @@ -3251,9 +3251,9 @@ extern void discard_mouse_events (void); void handle_input_available_signal (int); #endif extern Lisp_Object pending_funcalls; -extern int detect_input_pending (void); -extern int detect_input_pending_ignore_squeezables (void); -extern int detect_input_pending_run_timers (int); +extern bool detect_input_pending (void); +extern bool detect_input_pending_ignore_squeezables (void); +extern bool detect_input_pending_run_timers (bool); extern void safe_run_hooks (Lisp_Object); extern void cmd_error_internal (Lisp_Object, const char *); extern Lisp_Object command_loop_1 (void); @@ -3332,7 +3332,7 @@ extern bool running_asynch_code; extern Lisp_Object QCtype, Qlocal; extern Lisp_Object Qprocessp; extern void kill_buffer_processes (Lisp_Object); -extern int wait_reading_process_output (intmax_t, int, int, int, +extern int wait_reading_process_output (intmax_t, int, int, bool, Lisp_Object, struct Lisp_Process *, int); @@ -3559,7 +3559,8 @@ extern char *emacs_root_dir (void); Used during startup to detect startup of dumped Emacs. */ extern bool initialized; -extern int immediate_quit; /* Nonzero means ^G can quit instantly. */ +/* True means ^G can quit instantly. */ +extern bool immediate_quit; extern void *xmalloc (size_t); extern void *xzalloc (size_t); diff --git a/src/menu.c b/src/menu.c index 835267b2f0c..6e052dc65a9 100644 --- a/src/menu.c +++ b/src/menu.c @@ -331,7 +331,7 @@ single_menu_item (Lisp_Object key, Lisp_Object item, Lisp_Object dummy, void *sk { Lisp_Object map, item_string, enabled; struct gcpro gcpro1, gcpro2; - int res; + bool res; struct skp *skp = skp_v; /* Parse the menu item and leave the result in item_properties. */ diff --git a/src/nsmenu.m b/src/nsmenu.m index 9af732c6c45..df8b3ea3e54 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -129,7 +129,7 @@ BOOL needsSet = NO; const char *submenuTitle = [[submenu title] UTF8String]; extern int waiting_for_input; - int owfi; + bool owfi; Lisp_Object items; widget_value *wv, *first_wv, *prev_wv = 0; int i; diff --git a/src/process.c b/src/process.c index c941a196539..2cbce9d28ea 100644 --- a/src/process.c +++ b/src/process.c @@ -4302,7 +4302,7 @@ wait_reading_process_output_1 (void) -1 meaning caller will actually read the input, so don't throw to the quit handler, or - DO_DISPLAY != 0 means redisplay should be done to show subprocess + DO_DISPLAY means redisplay should be done to show subprocess output that arrives. If WAIT_FOR_CELL is a cons cell, wait until its car is non-nil @@ -4322,7 +4322,7 @@ wait_reading_process_output_1 (void) int wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, - int do_display, + bool do_display, Lisp_Object wait_for_cell, struct Lisp_Process *wait_proc, int just_wait_proc) { @@ -4419,7 +4419,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, do { - int old_timers_run = timers_run; + unsigned old_timers_run = timers_run; struct buffer *old_buffer = current_buffer; Lisp_Object old_window = selected_window; @@ -4753,7 +4753,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, if (read_kbd != 0) { - int old_timers_run = timers_run; + unsigned old_timers_run = timers_run; struct buffer *old_buffer = current_buffer; Lisp_Object old_window = selected_window; int leave = 0; @@ -6821,14 +6821,14 @@ extern int sys_select (int, SELECT_TYPE *, SELECT_TYPE *, SELECT_TYPE *, see full version for other parameters. We know that wait_proc will always be NULL, since `subprocesses' isn't defined. - DO_DISPLAY != 0 means redisplay should be done to show subprocess + DO_DISPLAY means redisplay should be done to show subprocess output that arrives. Return true if we received input from any process. */ int wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, - int do_display, + bool do_display, Lisp_Object wait_for_cell, struct Lisp_Process *wait_proc, int just_wait_proc) { @@ -6904,7 +6904,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, do { - int old_timers_run = timers_run; + unsigned old_timers_run = timers_run; timer_delay = timer_check (); if (timers_run != old_timers_run && do_display) /* We must retry, since a timer may have requeued itself diff --git a/src/search.c b/src/search.c index 7c084c62e28..aacdbe33eef 100644 --- a/src/search.c +++ b/src/search.c @@ -636,12 +636,12 @@ newline_cache_on_off (struct buffer *buf) If we don't find COUNT instances before reaching END, set *SHORTAGE to the number of TARGETs left unfound, and return END. - If ALLOW_QUIT is non-zero, set immediate_quit. That's good to do + If ALLOW_QUIT, set immediate_quit. That's good to do except when inside redisplay. */ ptrdiff_t -scan_buffer (register int target, ptrdiff_t start, ptrdiff_t end, - ptrdiff_t count, ptrdiff_t *shortage, int allow_quit) +scan_buffer (int target, ptrdiff_t start, ptrdiff_t end, + ptrdiff_t count, ptrdiff_t *shortage, bool allow_quit) { struct region_cache *newline_cache; int direction; @@ -837,23 +837,23 @@ scan_buffer (register int target, ptrdiff_t start, ptrdiff_t end, the number of line boundaries left unfound, and position at the limit we bumped up against. - If ALLOW_QUIT is non-zero, set immediate_quit. That's good to do + If ALLOW_QUIT, set immediate_quit. That's good to do except in special cases. */ EMACS_INT scan_newline (ptrdiff_t start, ptrdiff_t start_byte, ptrdiff_t limit, ptrdiff_t limit_byte, - register EMACS_INT count, int allow_quit) + EMACS_INT count, bool allow_quit) { int direction = ((count > 0) ? 1 : -1); - register unsigned char *cursor; + unsigned char *cursor; unsigned char *base; ptrdiff_t ceiling; - register unsigned char *ceiling_addr; + unsigned char *ceiling_addr; - int old_immediate_quit = immediate_quit; + bool old_immediate_quit = immediate_quit; /* The code that follows is like scan_buffer but checks for either newline or carriage return. */ diff --git a/src/termopts.h b/src/termopts.h index 49588ef0cbd..05fa0a52eee 100644 --- a/src/termopts.h +++ b/src/termopts.h @@ -18,7 +18,7 @@ along with GNU Emacs. If not, see . */ /* Nonzero means use interrupt-driven input. */ -extern int interrupt_input; +extern bool interrupt_input; /* Nonzero while interrupts are temporarily deferred during redisplay. */ -extern int interrupts_deferred; +extern bool interrupts_deferred; From e85aafe7bd42773bf517193397c1a0ef0ed6b4a6 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 10 Oct 2012 17:26:58 -0700 Subject: [PATCH 169/272] * nsmenu.m (waiting_for_input): Remove wrong decl. --- src/ChangeLog | 4 ++++ src/nsmenu.m | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index daa370105ee..19a19e7668c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-11 Paul Eggert + + * nsmenu.m (waiting_for_input): Remove wrong decl. + 2012-10-10 Paul Eggert keyboard.c, keymap.c: Use bool for booleans. diff --git a/src/nsmenu.m b/src/nsmenu.m index df8b3ea3e54..a5983c70cdb 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -128,7 +128,6 @@ static EmacsMenu *last_submenu = nil; BOOL needsSet = NO; const char *submenuTitle = [[submenu title] UTF8String]; - extern int waiting_for_input; bool owfi; Lisp_Object items; widget_value *wv, *first_wv, *prev_wv = 0; From c1af190b72f9268dd23c13d43962a64c78aa4174 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 10 Oct 2012 17:32:25 -0700 Subject: [PATCH 170/272] * w32select.c (waiting_for_input): Declare by including "keyboard.h" instead of having a wrong decl. --- src/ChangeLog | 2 ++ src/w32select.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 19a19e7668c..12b14625a91 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,7 @@ 2012-10-11 Paul Eggert + * w32select.c (waiting_for_input): Declare by including "keyboard.h" + instead of having a wrong decl. * nsmenu.m (waiting_for_input): Remove wrong decl. 2012-10-10 Paul Eggert diff --git a/src/w32select.c b/src/w32select.c index ee0e6d16b11..1b10c74cfe9 100644 --- a/src/w32select.c +++ b/src/w32select.c @@ -76,6 +76,7 @@ along with GNU Emacs. If not, see . */ #include "lisp.h" #include "w32term.h" /* for all of the w32 includes */ #include "w32common.h" /* os_subtype */ +#include "keyboard.h" #include "blockinput.h" #include "charset.h" #include "coding.h" @@ -393,7 +394,6 @@ run_protected (Lisp_Object (*code) (Lisp_Object), Lisp_Object arg) with global variables and calling strange looking functions. Is this really the right way to run Lisp callbacks? */ - extern int waiting_for_input; /* from keyboard.c */ int owfi; block_input (); From fd2f90cf5c6a15610aa1e17e73d6d8a5f8cb1999 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 10 Oct 2012 21:33:12 -0700 Subject: [PATCH 171/272] * marker.c (cached_modiff): EMACS_INT, not int. --- src/ChangeLog | 2 ++ src/marker.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 12b14625a91..0b274598986 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,7 @@ 2012-10-11 Paul Eggert + * marker.c (cached_modiff): EMACS_INT, not int. + * w32select.c (waiting_for_input): Declare by including "keyboard.h" instead of having a wrong decl. * nsmenu.m (waiting_for_input): Remove wrong decl. diff --git a/src/marker.c b/src/marker.c index e01647bdb2a..2e2aba579db 100644 --- a/src/marker.c +++ b/src/marker.c @@ -29,7 +29,7 @@ along with GNU Emacs. If not, see . */ static ptrdiff_t cached_charpos; static ptrdiff_t cached_bytepos; static struct buffer *cached_buffer; -static int cached_modiff; +static EMACS_INT cached_modiff; /* Juanma Barranquero reported ~3x increased bootstrap time when byte_char_debug_check is enabled; so this From cde44a7728488ca6bc6a46c18d9c5e647b160547 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Thu, 11 Oct 2012 20:26:26 +0900 Subject: [PATCH 172/272] Re-generate charsets. Adjust for the change of admin/charset/mapfiles/*.gz --- ChangeLog | 4 + admin/ChangeLog | 24 ++ admin/charsets/Makefile | 117 ++++---- admin/charsets/gb180302.awk | 21 +- admin/charsets/mapconv | 13 +- admin/charsets/mapfiles/MULE-ethiopic.map | 2 +- admin/charsets/mapfiles/MULE-ipa.map | 2 +- admin/charsets/mapfiles/MULE-is13194.map | 2 +- admin/charsets/mapfiles/MULE-lviscii.map | 2 +- admin/charsets/mapfiles/MULE-sisheng.map | 2 +- admin/charsets/mapfiles/MULE-tibetan.map | 2 +- admin/charsets/mapfiles/MULE-uviscii.map | 2 +- etc/ChangeLog | 9 + etc/charsets/CNS-2.map | 2 +- etc/charsets/CNS-3.map | 2 +- etc/charsets/CNS-4.map | 2 +- etc/charsets/CNS-5.map | 2 +- etc/charsets/CNS-6.map | 2 +- etc/charsets/CNS-7.map | 2 +- etc/charsets/CP932-2BYTE.map | 2 +- etc/charsets/GB180302.map | 23 +- etc/charsets/GB180304.map | 329 +++++++++++----------- etc/charsets/JISC6226.map | 2 +- etc/charsets/JISX2131.map | 10 - etc/charsets/MIK.map | 2 +- etc/charsets/PTCP154.map | 2 +- etc/charsets/stdenc.map | 2 +- etc/charsets/symbol.map | 2 +- lisp/ChangeLog | 4 + lisp/international/eucjp-ms.el | 1 - 30 files changed, 315 insertions(+), 278 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1a7b9f61828..50450bbc506 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2012-10-11 Kenichi Handa + + * .bzrignore: Add several files under admin/charsets. + 2012-10-07 Jan Djärv * configure.ac: Check that OSX is 10.4 or newer. diff --git a/admin/ChangeLog b/admin/ChangeLog index 7d4921887ce..ef8ff5ce65c 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,27 @@ +2012-10-11 Kenichi Handa + + * charsets/mapconv: Adjusted for the change of mapfiles/*.gz to + mapfiles/*. + + * charsets/gb180302.awk: Handle 4-byte sequences in the input file. + + * charsets/Makefile: Be sure to call mapconv script of the current + directory. Adjusted for the change of mapfiles/*.gz to + mapfiles/*. + (SED_SCRIPT): New variable. + (jisx2131-filter): New target. + (JISX2131.map): Use jisx2131-filter to filter out characters added + for the 2004 year version. + (clear): Remove ${SED_SCRIPT} too. + + * charsets/mapfiles/MULE-ethiopic.map, + charsets/mapfiles/MULE-ipa.map, + charsets/mapfiles/MULE-is13194.map, + charsets/mapfiles/MULE-lviscii.map, + charsets/mapfiles/MULE-sisheng.map, + charsets/mapfiles/MULE-tibetan.map, + charsets/mapfiles/MULE-uviscii.map: Fix typo. + 2012-10-07 Glenn Morris * admin.el (cusver-new-version): Set default. diff --git a/admin/charsets/Makefile b/admin/charsets/Makefile index b16e7ccd748..91f541979da 100644 --- a/admin/charsets/Makefile +++ b/admin/charsets/Makefile @@ -77,6 +77,7 @@ MULE = MULE-ethiopic.map MULE-ipa.map MULE-is13194.map \ MULE-lviscii.map MULE-uviscii.map TRANS_TABLE = cp51932.el eucjp-ms.el +SED_SCRIPT = jisx2131-filter all: ${CHARSETS} ${TRANS_TABLE} @@ -86,11 +87,11 @@ AWK = gawk VSCII.map: ${GLIBC_CHARMAPS}/TCVN5712-1.gz mapconv compact.awk # Generating $@... - @mapconv $< '/^<.*[ ]\/x[0-9a-f].[ ]/' GLIBC-1 compact.awk > $@ + @./mapconv $< '/^<.*[ ]\/x[0-9a-f].[ ]/' GLIBC-1 compact.awk > $@ VSCII-2.map: ${GLIBC_CHARMAPS}/TCVN5712-1.gz mapconv compact.awk # Generating $@... - @mapconv $< '/^<.*[ ]\/x[2-7a-f].[ ]/' GLIBC-1 compact.awk \ + @./mapconv $< '/^<.*[ ]\/x[2-7a-f].[ ]/' GLIBC-1 compact.awk \ | sed 's/0x20-0x7F.*/0x00-0x7F 0x0000/' > $@ ALTERNATIVNYJ.map: IBM866.map @@ -110,45 +111,45 @@ ALTERNATIVNYJ.map: IBM866.map -e '/0xFA/ s/ .*/ 0x00B1/' \ -e '/0xFB/ s/ .*/ 0x00F7/' < $< >> $@ -MIK.map: mapfiles/bulgarian-mik.txt.gz mapconv compact.awk +MIK.map: mapfiles/bulgarian-mik.txt mapconv compact.awk # Generating $@... - @mapconv $< '1,$$' CZYBORRA compact.awk > $@ + @./mapconv $< '1,$$' CZYBORRA compact.awk > $@ -PTCP154.map: mapfiles/PTCP154.gz mapconv compact.awk +PTCP154.map: mapfiles/PTCP154 mapconv compact.awk # Generating $@... - @mapconv $< '/^0x/' IANA compact.awk > $@ + @./mapconv $< '/^0x/' IANA compact.awk > $@ -stdenc.map: mapfiles/stdenc.txt.gz mapconv compact.awk +stdenc.map: mapfiles/stdenc.txt mapconv compact.awk # Generating $@... - @mapconv $< '/^[0-9A-Fa-f]/' UNICODE compact.awk > $@ + @./mapconv $< '/^[0-9A-Fa-f]/' UNICODE compact.awk > $@ -symbol.map: mapfiles/symbol.txt.gz mapconv compact.awk +symbol.map: mapfiles/symbol.txt mapconv compact.awk # Generating $@... - @mapconv $< '/^[0-9A-Fa-f]/' UNICODE compact.awk > $@ + @./mapconv $< '/^[0-9A-Fa-f]/' UNICODE compact.awk > $@ -CP720.map: mapfiles/CP720.map.gz +CP720.map: mapfiles/CP720.map # Generating $@... - @zcat $< > $@ + @cp $< $@ -CP858.map: mapfiles/CP858.map.gz +CP858.map: mapfiles/CP858.map # Generating $@... - @zcat $< > $@ + @cp $< $@ CP949-2BYTE.map: ${GLIBC_CHARMAPS}/CP949.gz mapconv compact.awk # Generating $@... - @mapconv $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 compact.awk > $@ + @./mapconv $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 compact.awk > $@ GB2312.map: ${GLIBC_CHARMAPS}/GB2312.gz mapconv compact.awk # Generating $@... - @mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 compact.awk > $@ + @./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 compact.awk > $@ GBK.map: ${GLIBC_CHARMAPS}/GBK.gz mapconv compact.awk # Generating $@... - @mapconv $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 compact.awk > $@ + @./mapconv $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 compact.awk > $@ GB180302.map: ${GLIBC_CHARMAPS}/GB18030.gz mapconv gb180302.awk # Generating $@... - @mapconv $< '/^<.*[ ]\/x..\/x..[ ]/' GLIBC-2 gb180302.awk > $@ + @./mapconv $< '/^<.*[ ]\/x..\/x..[ ]/' GLIBC-2 gb180302.awk > $@ GB180304.map: GB180302.map gb180304.awk # Generating $@... @@ -156,35 +157,39 @@ GB180304.map: GB180302.map gb180304.awk JISX0201.map: ${GLIBC_CHARMAPS}/JIS_X0201.gz mapconv compact.awk # Generating $@... - @mapconv $< '/^<.*[ ]\/x[0-9]/' GLIBC-1 compact.awk > $@ + @./mapconv $< '/^<.*[ ]\/x[0-9]/' GLIBC-1 compact.awk > $@ @echo "# Generated by hand" >> $@ @echo "0xA1-0xDF 0xFF61" >> $@ JISX0208.map: ${GLIBC_CHARMAPS}/EUC-JP.gz mapconv # Generating $@... - @mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 \ + @./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 \ | sed 's/0x2015/0x2014/' > $@ JISX0212.map: ${GLIBC_CHARMAPS}/EUC-JP.gz mapconv compact.awk # Generating $@... - @mapconv $< '/^<.*[ ]\/x8f/ s,/x8f,,' GLIBC-2-7 compact.awk > $@ + @./mapconv $< '/^<.*[ ]\/x8f/ s,/x8f,,' GLIBC-2-7 compact.awk > $@ -JISX2131.map: ${GLIBC_CHARMAPS}/EUC-JISX0213.gz mapconv +jisx2131-filter: mapfiles/JISX213A.map + @sed -n -e '/^#/d' -e 's,.*0x\([0-9A-Z]*\)$$,/0x0*\1$$/d,p' < $< > $@ + +JISX2131.map: ${GLIBC_CHARMAPS}/EUC-JISX0213.gz mapconv jisx2131-filter # Generating $@... - @mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 \ + @./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 \ + | sed -f jisx2131-filter \ | sed -e 's/0x2015/0x2014/' -e 's/0x2299/0x29BF/' > $@ JISX2132.map: ${GLIBC_CHARMAPS}/EUC-JISX0213.gz mapconv # Generating $@... - @mapconv $< '/^<.*[ ]\/x8f/ s,/x8f,,' GLIBC-2-7 > $@ + @./mapconv $< '/^<.*[ ]\/x8f/ s,/x8f,,' GLIBC-2-7 > $@ -JISX213A.map: mapfiles/JISX213A.map.gz +JISX213A.map: mapfiles/JISX213A.map # Generating $@ - @zcat $< > $@ + @cp $< $@ -CP932-2BYTE.map: mapfiles/CP932.TXT.gz mapconv cp932.awk +CP932-2BYTE.map: mapfiles/CP932.TXT mapconv cp932.awk # Generating $@... - @mapconv $< '/^0x[89A-F][0-9A-F][0-9A-F]/' UNICODE2 cp932.awk > $@ + @./mapconv $< '/^0x[89A-F][0-9A-F][0-9A-F]/' UNICODE2 cp932.awk > $@ cp51932.el: CP932-2BYTE.map cp51932.awk @$(AWK) -f cp51932.awk < CP932-2BYTE.map > $@ @@ -192,17 +197,17 @@ cp51932.el: CP932-2BYTE.map cp51932.awk eucjp-ms.el: ${GLIBC_CHARMAPS}/EUC-JP-MS.gz eucjp-ms.awk @zcat $< | $(AWK) -f eucjp-ms.awk > $@ -JISC6226.map : mapfiles/Uni2JIS.gz mapconv kuten.awk +JISC6226.map : mapfiles/Uni2JIS mapconv kuten.awk # Generating $@... - @mapconv $< '/^[^#].*0-/' YASUOKA kuten.awk > $@ + @./mapconv $< '/^[^#].*0-/' YASUOKA kuten.awk > $@ KSC5601.map: ${GLIBC_CHARMAPS}/EUC-KR.gz mapconv compact.awk # Generating $@... - @mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 compact.awk > $@ + @./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 compact.awk > $@ BIG5.map: ${GLIBC_CHARMAPS}/BIG5.gz mapconv compact.awk # Generating $@... - @mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2 > $@ + @./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2 > $@ BIG5-1.map: BIG5.map mapconv big5.awk # Generating $@... @@ -216,52 +221,52 @@ BIG5-2.map: BIG5.map mapconv big5.awk BIG5-HKSCS.map: ${GLIBC_CHARMAPS}/BIG5-HKSCS.gz mapconv compact.awk # Generating $@... - @mapconv $< '/^<.*[ ]\/x[89a-f].\//' GLIBC-2 compact.awk > $@ + @./mapconv $< '/^<.*[ ]\/x[89a-f].\//' GLIBC-2 compact.awk > $@ JOHAB.map: ${GLIBC_CHARMAPS}/JOHAB.gz mapconv compact.awk # Generating $@... - @mapconv $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 compact.awk > $@ + @./mapconv $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 compact.awk > $@ CNS-1.map: ${GLIBC_CHARMAPS}/EUC-TW.gz mapconv compact.awk # Generating $@... - @mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 compact.awk > $@ + @./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 compact.awk > $@ # CNS-1.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk # # Generating $@... -# @mapconv $< '/^C1/' KANJI-DATABASE compact.awk > $@ +# @./mapconv $< '/^C1/' KANJI-DATABASE compact.awk > $@ -CNS-2.map: mapfiles/cns2ucsdkw.txt.gz mapconv compact.awk +CNS-2.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk # Generating $@... - @mapconv $< '/^C2/' KANJI-DATABASE compact.awk > $@ + @./mapconv $< '/^C2/' KANJI-DATABASE compact.awk > $@ -CNS-3.map: mapfiles/cns2ucsdkw.txt.gz mapconv compact.awk +CNS-3.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk # Generating $@... - @mapconv $< '/^C3/' KANJI-DATABASE compact.awk > $@ + @./mapconv $< '/^C3/' KANJI-DATABASE compact.awk > $@ -CNS-4.map: mapfiles/cns2ucsdkw.txt.gz mapconv compact.awk +CNS-4.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk # Generating $@... - @mapconv $< '/^C4/' KANJI-DATABASE compact.awk > $@ + @./mapconv $< '/^C4/' KANJI-DATABASE compact.awk > $@ -CNS-5.map: mapfiles/cns2ucsdkw.txt.gz mapconv compact.awk +CNS-5.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk # Generating $@... - @mapconv $< '/^C5/' KANJI-DATABASE compact.awk > $@ + @./mapconv $< '/^C5/' KANJI-DATABASE compact.awk > $@ -CNS-6.map: mapfiles/cns2ucsdkw.txt.gz mapconv compact.awk +CNS-6.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk # Generating $@... - @mapconv $< '/^C6/' KANJI-DATABASE compact.awk > $@ + @./mapconv $< '/^C6/' KANJI-DATABASE compact.awk > $@ -CNS-7.map: mapfiles/cns2ucsdkw.txt.gz mapconv compact.awk +CNS-7.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk # Generating $@... - @mapconv $< '/^C7/' KANJI-DATABASE compact.awk > $@ + @./mapconv $< '/^C7/' KANJI-DATABASE compact.awk > $@ CNS-F.map: ${GLIBC_CHARMAPS}/EUC-TW.gz mapconv compact.awk # Generating $@... - @mapconv $< '/^<.*\/x8e\/xaf/ s,/x8e/xaf,,' GLIBC-2-7 compact.awk > $@ + @./mapconv $< '/^<.*\/x8e\/xaf/ s,/x8e/xaf,,' GLIBC-2-7 compact.awk > $@ # General target to produce map files for mule charsets. -MULE-%.map: mapfiles/MULE-%.map.gz +MULE-%.map: mapfiles/MULE-%.map # Generating $@... - @zcat $< > $@ + @cp $< $@ # General target to produce map files for ISO-8859, GEORGIAN, and # EBCDIC charsets. We can not use the original file name because of @@ -269,21 +274,21 @@ MULE-%.map: mapfiles/MULE-%.map.gz 8859-%.map: ${GLIBC_CHARMAPS}/ISO-8859-%.gz mapconv compact.awk # Generating $@... - @mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@ + @./mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@ KA-%.map: ${GLIBC_CHARMAPS}/GEORGIAN-%.gz mapconv compact.awk # Generating $@... - @mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@ + @./mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@ EBCDIC%.map: ${GLIBC_CHARMAPS}/EBCDIC-%.gz mapconv compact.awk # Generating $@... - @mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@ + @./mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@ # General target to produce map files for single-byte charsets. %.map: ${GLIBC_CHARMAPS}/%.gz mapconv compact.awk # Generating $@... - @mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@ + @./mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@ install: @for f in ${CHARSETS}; do \ @@ -305,5 +310,5 @@ install: # Clear files that are automatically generated. clean: - rm -f ${CHARSETS} ${TRANS_TABLE} + rm -f ${CHARSETS} ${TRANS_TABLE} ${SED_SCRIPT} diff --git a/admin/charsets/gb180302.awk b/admin/charsets/gb180302.awk index 6cd9521ce90..40d92bf9be4 100644 --- a/admin/charsets/gb180302.awk +++ b/admin/charsets/gb180302.awk @@ -74,19 +74,30 @@ function index_to_gb(idx) { { gb = gb_to_index(decode_hex(substr($1, 3, 4))); - unicode = decode_hex(substr($2, 3, 4)); + unicode = decode_hex(substr($2, 3)); if ((gb == to_gb + 1) && (unicode == to_unicode + 1)) { to_gb++; to_unicode++; } - else + else if (gb > to_gb) # ignore the case gb == to_gb that is a duplication { if (from_gb == to_gb) - printf "0x%04X 0x%04X\n", index_to_gb(from_gb), from_unicode; + { + if (from_unicode <= 65535) + printf "0x%04X 0x%04X\n", index_to_gb(from_gb), from_unicode; + else + printf "0x%04X 0x%08X\n", index_to_gb(from_gb), from_unicode; + } else if (from_gb < to_gb) - printf "0x%04X-0x%04X 0x%04X\n", - index_to_gb(from_gb), index_to_gb(to_gb), from_unicode; + { + if (from_unicode <= 65535) + printf "0x%04X-0x%04X 0x%04X\n", + index_to_gb(from_gb), index_to_gb(to_gb), from_unicode; + else + printf "0x%04X-0x%04X 0x%08X\n", + index_to_gb(from_gb), index_to_gb(to_gb), from_unicode; + } from_gb = to_gb = gb; from_unicode = to_unicode = unicode; } diff --git a/admin/charsets/mapconv b/admin/charsets/mapconv index 4f7a8b96f54..8433d222b8d 100755 --- a/admin/charsets/mapconv +++ b/admin/charsets/mapconv @@ -98,18 +98,17 @@ elif [ "$3" = "GLIBC-2-7" ] ; then | sed -e 's/xa/x2/g' -e 's/xb/x3/g' -e 's/xc/x4/g' \ -e 's/xd/x5/g' -e 's/xe/x6/g' -e 's/xf/x7/g' \ -e 's,]*\)>[ ]*/x\(..\)/x\(..\).*,0x\2\3 0x\1,' \ - | tee temp \ | sort | ${AWKPROG} elif [ "$3" = "CZYBORRA" ] ; then # Source format is: # =XX U+YYYY - zcat $1 | sed -n -e "$2 p" \ + sed -n -e "$2 p" < $1 \ | sed -e 's/=\(..\)[^U]*U+\([0-9A-F]*\).*/0x\1 0x\2/' \ | sort | ${AWKPROG} elif [ "$3" = "IANA" ] ; then # Source format is: # 0xXX 0xYYYY - zcat $1 | sed -n -e "$2 p" \ + sed -n -e "$2 p" < $1 \ | sed -e 's/\(0x[0-9A-Fa-f]*\)[^0]*\(0x[0-9A-Fa-f]*\).*/\1 \2/' \ | sort | ${AWKPROG} elif [ "$3" = "UNICODE" ] ; then @@ -117,25 +116,25 @@ elif [ "$3" = "UNICODE" ] ; then # YYYY XX # We perform reverse sort to prefer the first one in the # duplicated mappings (e.g. 0x20->U+0020, 0x20->U+00A0). - zcat $1 | sed -n -e "$2 p" \ + sed -n -e "$2 p" < $1 \ | sed -e 's/\([0-9A-F]*\)[^0-9A-F]*\([0-9A-F]*\).*/0x\2 0x\1/' \ | sort -r elif [ "$3" = "UNICODE2" ] ; then # Source format is: # 0xXXXX 0xYYYY # ... - zcat $1 | sed -n -e "$2 p" \ + sed -n -e "$2 p" < $1 \ | sed -e 's/\([0-9A-Fx]*\)[^0]*\([0-9A-Fx]*\).*/\1 \2/' \ | ${AWKPROG} | sort -n -k 4,4 elif [ "$3" = "YASUOKA" ] ; then # Source format is: # YYYY 0-XXXX (XXXX is a Kuten code) - zcat $1 | sed -n -e "$2 p" \ + sed -n -e "$2 p" < $1 \ | sed -e 's/\([0-9A-F]*\)[^0]*0-\([0-9]*\).*/0x\2 0x\1/' \ | sort | ${AWKPROG} elif [ "$3" = "KANJI-DATABASE" ] ; then # Source format is: # C?-XXXX U+YYYYY ..... - zcat $1 | sed -n -e "$2 p" \ + sed -n -e "$2 p" < $1 \ | sed -e 's/...\(....\) U+\([0-9A-F]*\).*/0x\1 0x\2/' \ | sort | ${AWKPROG} else diff --git a/admin/charsets/mapfiles/MULE-ethiopic.map b/admin/charsets/mapfiles/MULE-ethiopic.map index d2720bd10ba..30cf5736763 100644 --- a/admin/charsets/mapfiles/MULE-ethiopic.map +++ b/admin/charsets/mapfiles/MULE-ethiopic.map @@ -1,4 +1,4 @@ -# Generated by running amdin/charsets/mule-charsets.el in Emacs 22.3. +# Generated by running admin/charsets/mule-charsets.el in Emacs 22.3. 0x2121 0x1200 0x2122 0x1201 0x2123 0x1202 diff --git a/admin/charsets/mapfiles/MULE-ipa.map b/admin/charsets/mapfiles/MULE-ipa.map index 35e5d50ecec..0a6c61d5a95 100644 --- a/admin/charsets/mapfiles/MULE-ipa.map +++ b/admin/charsets/mapfiles/MULE-ipa.map @@ -1,4 +1,4 @@ -# Generated by running amdin/charsets/mule-charsets.el in Emacs 22.3. +# Generated by running admin/charsets/mule-charsets.el in Emacs 22.3. 0x20 0x0069 0x21 0x026A 0x22 0x0065 diff --git a/admin/charsets/mapfiles/MULE-is13194.map b/admin/charsets/mapfiles/MULE-is13194.map index 1fa9b21dcf8..390132cd375 100644 --- a/admin/charsets/mapfiles/MULE-is13194.map +++ b/admin/charsets/mapfiles/MULE-is13194.map @@ -1,4 +1,4 @@ -# Generated by running amdin/charsets/mule-charsets.el in Emacs 22.3. +# Generated by running admin/charsets/mule-charsets.el in Emacs 22.3. 0x21 0x0901 0x22 0x0902 0x23 0x0903 diff --git a/admin/charsets/mapfiles/MULE-lviscii.map b/admin/charsets/mapfiles/MULE-lviscii.map index 3b6a38be616..e4d2eca90ac 100644 --- a/admin/charsets/mapfiles/MULE-lviscii.map +++ b/admin/charsets/mapfiles/MULE-lviscii.map @@ -1,4 +1,4 @@ -# Generated by running amdin/charsets/mule-charsets.el in Emacs 22.3. +# Generated by running admin/charsets/mule-charsets.el in Emacs 22.3. 0x21 0x1EAF 0x22 0x1EB1 0x23 0x1EB7 diff --git a/admin/charsets/mapfiles/MULE-sisheng.map b/admin/charsets/mapfiles/MULE-sisheng.map index 405bb1ffa2c..144a3ff5134 100644 --- a/admin/charsets/mapfiles/MULE-sisheng.map +++ b/admin/charsets/mapfiles/MULE-sisheng.map @@ -1,4 +1,4 @@ -# Generated by running amdin/charsets/mule-charsets.el in Emacs 22.3. +# Generated by running admin/charsets/mule-charsets.el in Emacs 22.3. 0x21 0x0101 0x22 0x00E1 0x23 0x01CE diff --git a/admin/charsets/mapfiles/MULE-tibetan.map b/admin/charsets/mapfiles/MULE-tibetan.map index 0d6ff3a0a39..b885585c094 100644 --- a/admin/charsets/mapfiles/MULE-tibetan.map +++ b/admin/charsets/mapfiles/MULE-tibetan.map @@ -1,4 +1,4 @@ -# Generated by running amdin/charsets/mule-charsets.el in Emacs 22.3. +# Generated by running admin/charsets/mule-charsets.el in Emacs 22.3. 0x2130 0x0F00 0x2131 0x0F01 0x2132 0x0F02 diff --git a/admin/charsets/mapfiles/MULE-uviscii.map b/admin/charsets/mapfiles/MULE-uviscii.map index 65e5d2968e5..dc19583bdfe 100644 --- a/admin/charsets/mapfiles/MULE-uviscii.map +++ b/admin/charsets/mapfiles/MULE-uviscii.map @@ -1,4 +1,4 @@ -# Generated by running amdin/charsets/mule-charsets.el in Emacs 22.3. +# Generated by running admin/charsets/mule-charsets.el in Emacs 22.3. 0x21 0x1EAE 0x22 0x1EB0 0x23 0x1EB6 diff --git a/etc/ChangeLog b/etc/ChangeLog index 001bfe271af..2bfae3696c5 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,3 +1,12 @@ +2012-10-11 Kenichi Handa + + * charsets/CNS-2.map, charsets/CNS-3.map, charsets/CNS-4.map, + charsets/CNS-5.map, charsets/CNS-6.map, charsets/CNS-7.map, + charsets/CP932-2BYTE.map, charsets/GB180302.map, + charsets/GB180304.map, charsets/JISC6226.map, + charsets/JISX2131.map, charsets/MIK.map, charsets/PTCP154.map, + charsets/stdenc.map, charsets/symbol.map: Re-generated. + 2012-10-07 Jan Djärv * NEWS (NextStep/OSX port changes): OSX 10.4 or newer is required. diff --git a/etc/charsets/CNS-2.map b/etc/charsets/CNS-2.map index 7fdd4ae0498..1285859a36d 100644 --- a/etc/charsets/CNS-2.map +++ b/etc/charsets/CNS-2.map @@ -1,4 +1,4 @@ -# Generated from admin/charsets/mapfiles/cns2ucsdkw.txt.gz which is a copy of +# Generated from admin/charsets/mapfiles/cns2ucsdkw.txt which is a copy of # http://kanji-database.cvs.sourceforge.net/viewvc/*checkout*/kanji-database/kanji-database/data/cns2ucsdkw.txt?revision=1.4 0x2121 0x4E42 0x2122 0x4E5C diff --git a/etc/charsets/CNS-3.map b/etc/charsets/CNS-3.map index f1542f9da91..d7306a9d81f 100644 --- a/etc/charsets/CNS-3.map +++ b/etc/charsets/CNS-3.map @@ -1,4 +1,4 @@ -# Generated from admin/charsets/mapfiles/cns2ucsdkw.txt.gz which is a copy of +# Generated from admin/charsets/mapfiles/cns2ucsdkw.txt which is a copy of # http://kanji-database.cvs.sourceforge.net/viewvc/*checkout*/kanji-database/kanji-database/data/cns2ucsdkw.txt?revision=1.4 0x2121 0x4E28 0x2122 0x4E36 diff --git a/etc/charsets/CNS-4.map b/etc/charsets/CNS-4.map index 8f9f2333c95..ba4f0e7a1fb 100644 --- a/etc/charsets/CNS-4.map +++ b/etc/charsets/CNS-4.map @@ -1,4 +1,4 @@ -# Generated from admin/charsets/mapfiles/cns2ucsdkw.txt.gz which is a copy of +# Generated from admin/charsets/mapfiles/cns2ucsdkw.txt which is a copy of # http://kanji-database.cvs.sourceforge.net/viewvc/*checkout*/kanji-database/kanji-database/data/cns2ucsdkw.txt?revision=1.4 0x2121 0x20086 0x2122-0x2123 0x4E40 diff --git a/etc/charsets/CNS-5.map b/etc/charsets/CNS-5.map index c893f164961..bf6bb9d4653 100644 --- a/etc/charsets/CNS-5.map +++ b/etc/charsets/CNS-5.map @@ -1,4 +1,4 @@ -# Generated from admin/charsets/mapfiles/cns2ucsdkw.txt.gz which is a copy of +# Generated from admin/charsets/mapfiles/cns2ucsdkw.txt which is a copy of # http://kanji-database.cvs.sourceforge.net/viewvc/*checkout*/kanji-database/kanji-database/data/cns2ucsdkw.txt?revision=1.4 0x2121 0x200D1 0x2122 0x200CB diff --git a/etc/charsets/CNS-6.map b/etc/charsets/CNS-6.map index 90c048035c0..348416c1c1e 100644 --- a/etc/charsets/CNS-6.map +++ b/etc/charsets/CNS-6.map @@ -1,4 +1,4 @@ -# Generated from admin/charsets/mapfiles/cns2ucsdkw.txt.gz which is a copy of +# Generated from admin/charsets/mapfiles/cns2ucsdkw.txt which is a copy of # http://kanji-database.cvs.sourceforge.net/viewvc/*checkout*/kanji-database/kanji-database/data/cns2ucsdkw.txt?revision=1.4 0x2121 0x2F802 0x2122 0x20062 diff --git a/etc/charsets/CNS-7.map b/etc/charsets/CNS-7.map index 96c1ad0efed..5a621737444 100644 --- a/etc/charsets/CNS-7.map +++ b/etc/charsets/CNS-7.map @@ -1,4 +1,4 @@ -# Generated from admin/charsets/mapfiles/cns2ucsdkw.txt.gz which is a copy of +# Generated from admin/charsets/mapfiles/cns2ucsdkw.txt which is a copy of # http://kanji-database.cvs.sourceforge.net/viewvc/*checkout*/kanji-database/kanji-database/data/cns2ucsdkw.txt?revision=1.4 0x2121 0x20055 0x2122 0x20182 diff --git a/etc/charsets/CP932-2BYTE.map b/etc/charsets/CP932-2BYTE.map index 045fdc98659..d31770892a6 100644 --- a/etc/charsets/CP932-2BYTE.map +++ b/etc/charsets/CP932-2BYTE.map @@ -1,4 +1,4 @@ -# Generated from admin/charsets/mapfiles/CP932.TXT.gz which is a copy of +# Generated from admin/charsets/mapfiles/CP932.TXT which is a copy of # http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT 0x8140 0x3000 # 0 2121 0x8141 0x3001 # 0 2122 diff --git a/etc/charsets/GB180302.map b/etc/charsets/GB180302.map index ee7e0ecd42e..4fe8e530a2b 100644 --- a/etc/charsets/GB180302.map +++ b/etc/charsets/GB180302.map @@ -2048,20 +2048,17 @@ 0xA6B9-0xA6C0 0xE785 0xA6C1-0xA6D1 0x03B1 0xA6D2-0xA6D8 0x03C3 -0xA6D9 0xFE10 -0xA6DA 0xFE12 -0xA6DB 0xFE11 -0xA6DC-0xA6DF 0xFE13 +0xA6D9-0xA6DF 0xE78D 0xA6E0-0xA6E1 0xFE35 0xA6E2-0xA6E3 0xFE39 0xA6E4-0xA6E5 0xFE3F 0xA6E6-0xA6E7 0xFE3D 0xA6E8-0xA6EB 0xFE41 -0xA6EC-0xA6ED 0xFE17 +0xA6EC-0xA6ED 0xE794 0xA6EE-0xA6EF 0xFE3B 0xA6F0-0xA6F1 0xFE37 0xA6F2 0xFE31 -0xA6F3 0xFE19 +0xA6F3 0xE796 0xA6F4-0xA6F5 0xFE33 0xA6F6-0xA6FE 0xE797 0xA740-0xA77E 0xE706 @@ -10396,7 +10393,7 @@ 0xFE56 0x3447 0xFE57 0x2E88 0xFE58 0x2E8B -0xFE59 0x9FB4 +0xFE59 0xE81E 0xFE5A 0x359E 0xFE5B 0x361A 0xFE5C 0x360E @@ -10404,18 +10401,18 @@ 0xFE5E 0x2E97 0xFE5F 0x396E 0xFE60 0x3918 -0xFE61 0x9FB5 +0xFE61 0xE826 0xFE62 0x39CF 0xFE63 0x39DF 0xFE64 0x3A73 0xFE65 0x39D0 -0xFE66-0xFE67 0x9FB6 +0xFE66-0xFE67 0xE82B 0xFE68 0x3B4E 0xFE69 0x3C6E 0xFE6A 0x3CE0 0xFE6B 0x2EA7 0xFE6C 0x000215D7 -0xFE6D 0x9FB8 +0xFE6D 0xE832 0xFE6E 0x2EAA 0xFE6F 0x4056 0xFE70 0x415F @@ -10431,7 +10428,7 @@ 0xFE7B 0x44D6 0xFE7C 0x4661 0xFE7D 0x464C -0xFE7E 0x9FB9 +0xFE7E 0xE843 0xFE80 0x4723 0xFE81 0x4729 0xFE82 0x477C @@ -10446,7 +10443,7 @@ 0xFE8D 0x499B 0xFE8E 0x49B7 0xFE8F 0x49B6 -0xFE90 0x9FBA +0xFE90 0xE854 0xFE91 0x000241FE 0xFE92 0x4CA3 0xFE93-0xFE95 0x4C9F @@ -10454,5 +10451,5 @@ 0xFE97 0x4CA2 0xFE98-0xFE9E 0x4D13 0xFE9F 0x4DAE -0xFEA0 0x9FBB +0xFEA0 0xE864 0xFEA1-0xFEFE 0xE468 diff --git a/etc/charsets/GB180304.map b/etc/charsets/GB180304.map index 31352e266c8..042c7514fab 100644 --- a/etc/charsets/GB180304.map +++ b/etc/charsets/GB180304.map @@ -41,171 +41,166 @@ 0x8130D135-0x8130D238 0x0402 0x8130D239 0x0450 0x8130D330-0x8135F436 0x0452 -0x8135F438-0x8136A531 0x1E40 -0x8136A532-0x8136A533 0x2011 -0x8136A534 0x2017 -0x8136A535-0x8136A536 0x201A -0x8136A537-0x8136A633 0x201E -0x8136A634-0x8136A732 0x2027 -0x8136A733 0x2031 -0x8136A734 0x2034 -0x8136A735-0x8136A739 0x2036 -0x8136A830-0x8136B331 0x203C -0x8136B332-0x8136BB37 0x20AD -0x8136BB38 0x2104 -0x8136BB39-0x8136BC31 0x2106 -0x8136BC32-0x8136BD33 0x210A -0x8136BD34-0x8136BE33 0x2117 -0x8136BE34-0x8136C435 0x2122 -0x8136C436-0x8136C439 0x216C -0x8136C530-0x8136C731 0x217A -0x8136C732-0x8136C733 0x2194 -0x8136C734-0x8136D233 0x219A -0x8136D234-0x8136D239 0x2209 -0x8136D330 0x2210 -0x8136D331-0x8136D333 0x2212 -0x8136D334-0x8136D337 0x2216 -0x8136D338-0x8136D339 0x221B -0x8136D430-0x8136D431 0x2221 -0x8136D432 0x2224 -0x8136D433 0x2226 -0x8136D434-0x8136D435 0x222C -0x8136D436-0x8136D530 0x222F -0x8136D531-0x8136D535 0x2238 -0x8136D536-0x8136D635 0x223E -0x8136D636-0x8136D638 0x2249 -0x8136D639-0x8136D733 0x224D -0x8136D734-0x8136D836 0x2253 -0x8136D837-0x8136D838 0x2262 -0x8136D839-0x8136D934 0x2268 -0x8136D935-0x8136DD31 0x2270 -0x8136DD32-0x8136DD34 0x2296 -0x8136DD35-0x8136DE35 0x229A -0x8136DE36-0x8136E130 0x22A6 -0x8136E131-0x8136E932 0x22C0 -0x8136E933-0x81378C35 0x2313 -0x81378C36-0x81378D35 0x246A -0x81378D36-0x81379735 0x249C -0x81379736-0x81379739 0x254C -0x81379830-0x81379932 0x2574 -0x81379933-0x81379935 0x2590 -0x81379936-0x81379A35 0x2596 -0x81379A36-0x81379C31 0x25A2 -0x81379C32-0x81379C39 0x25B4 -0x81379D30-0x81379D37 0x25BE -0x81379D38-0x81379E30 0x25C8 -0x81379E31-0x81379E32 0x25CC -0x81379E33-0x8137A030 0x25D0 -0x8137A031-0x8137A331 0x25E6 -0x8137A332-0x8137A333 0x2607 -0x8137A334-0x8137A837 0x260A -0x8137A838 0x2641 -0x8137A839-0x8138FD38 0x2643 -0x8138FD39-0x8138FE30 0x2E82 -0x8138FE31-0x8138FE33 0x2E85 -0x8138FE34-0x8138FE35 0x2E89 -0x8138FE36-0x81398135 0x2E8D -0x81398136-0x81398330 0x2E98 -0x81398331-0x81398332 0x2EA8 -0x81398333-0x81398335 0x2EAB -0x81398336-0x81398339 0x2EAF -0x81398430-0x81398431 0x2EB4 -0x81398432-0x81398434 0x2EB8 -0x81398435-0x81398538 0x2EBC -0x81398539-0x8139A331 0x2ECB -0x8139A332-0x8139A335 0x2FFC -0x8139A336 0x3004 -0x8139A337-0x8139A431 0x3018 -0x8139A432-0x8139A433 0x301F -0x8139A434-0x8139A633 0x302A -0x8139A634-0x8139A635 0x303F -0x8139A636-0x8139A732 0x3094 -0x8139A733-0x8139A734 0x309F -0x8139A735-0x8139A739 0x30F7 -0x8139A830-0x8139A835 0x30FF -0x8139A836-0x8139C131 0x312A -0x8139C132-0x8139C138 0x322A -0x8139C139-0x8139CD31 0x3232 -0x8139CD32-0x8139E435 0x32A4 -0x8139E436-0x8139E537 0x3390 -0x8139E538-0x8139E539 0x339F -0x8139E630-0x8139E933 0x33A2 -0x8139E934-0x8139EA32 0x33C5 -0x8139EA33-0x8139EA34 0x33CF -0x8139EA35-0x8139EA36 0x33D3 -0x8139EA37-0x8139F539 0x33D6 -0x8139F630-0x8139FA32 0x3448 -0x8139FA33-0x82309A30 0x3474 -0x82309A31-0x8230A531 0x359F -0x8230A532-0x8230A632 0x360F -0x8230A633-0x8230F237 0x361B -0x8230F238-0x8230FB32 0x3919 -0x8230FB33-0x82318638 0x396F -0x82318639-0x82318832 0x39D1 -0x82318833-0x82319639 0x39E0 -0x82319730-0x8231AC37 0x3A74 -0x8231AC38-0x8231C934 0x3B4F -0x8231C935-0x8231D437 0x3C6F -0x8231D438-0x8232AF32 0x3CE1 -0x8232AF33-0x8232C936 0x4057 -0x8232C937-0x8232F837 0x4160 -0x8232F838-0x82338633 0x4338 -0x82338634-0x82338637 0x43AD -0x82338638-0x82338B30 0x43B2 -0x82338B31-0x8233A338 0x43DE -0x8233A339-0x8233C931 0x44D7 -0x8233C932-0x8233CB31 0x464D -0x8233CB32-0x8233DE34 0x4662 -0x8233DE35-0x8233DE39 0x4724 -0x8233DF30-0x8233E731 0x472A -0x8233E732-0x8233E837 0x477D -0x8233E838-0x82349638 0x478E -0x82349639-0x82349B38 0x4948 -0x82349B39-0x82349C30 0x497B -0x82349C31-0x82349C34 0x497E -0x82349C35 0x4984 -0x82349C36-0x82349E35 0x4987 -0x82349E36-0x82349E38 0x499C -0x82349E39-0x8234A130 0x49A0 -0x8234A131-0x8234E733 0x49B8 -0x8234E734-0x8234EB32 0x4C78 -0x8234EB33-0x8234F633 0x4CA4 -0x8234F634-0x82358731 0x4D1A -0x82358732-0x82358F32 0x4DAF -0x82358F33-0x82359036 0x9FA6 -0x82359135-0x8336C738 0x9FBC -0x8336C739 0xE76C -0x8135F437 0xE7C7 -0x8336C830 0xE7C8 +0x8135F437-0x8136A530 0x1E40 +0x8136A531-0x8136A532 0x2011 +0x8136A533 0x2017 +0x8136A534-0x8136A535 0x201A +0x8136A536-0x8136A632 0x201E +0x8136A633-0x8136A731 0x2027 +0x8136A732 0x2031 +0x8136A733 0x2034 +0x8136A734-0x8136A738 0x2036 +0x8136A739-0x8136B330 0x203C +0x8136B331-0x8136BB36 0x20AD +0x8136BB37 0x2104 +0x8136BB38-0x8136BC30 0x2106 +0x8136BC31-0x8136BD32 0x210A +0x8136BD33-0x8136BE32 0x2117 +0x8136BE33-0x8136C434 0x2122 +0x8136C435-0x8136C438 0x216C +0x8136C439-0x8136C730 0x217A +0x8136C731-0x8136C732 0x2194 +0x8136C733-0x8136D232 0x219A +0x8136D233-0x8136D238 0x2209 +0x8136D239 0x2210 +0x8136D330-0x8136D332 0x2212 +0x8136D333-0x8136D336 0x2216 +0x8136D337-0x8136D338 0x221B +0x8136D339-0x8136D430 0x2221 +0x8136D431 0x2224 +0x8136D432 0x2226 +0x8136D433-0x8136D434 0x222C +0x8136D435-0x8136D439 0x222F +0x8136D530-0x8136D534 0x2238 +0x8136D535-0x8136D634 0x223E +0x8136D635-0x8136D637 0x2249 +0x8136D638-0x8136D732 0x224D +0x8136D733-0x8136D835 0x2253 +0x8136D836-0x8136D837 0x2262 +0x8136D838-0x8136D933 0x2268 +0x8136D934-0x8136DD30 0x2270 +0x8136DD31-0x8136DD33 0x2296 +0x8136DD34-0x8136DE34 0x229A +0x8136DE35-0x8136E039 0x22A6 +0x8136E130-0x8136E931 0x22C0 +0x8136E932-0x81378C34 0x2313 +0x81378C35-0x81378D34 0x246A +0x81378D35-0x81379734 0x249C +0x81379735-0x81379738 0x254C +0x81379739-0x81379931 0x2574 +0x81379932-0x81379934 0x2590 +0x81379935-0x81379A34 0x2596 +0x81379A35-0x81379C30 0x25A2 +0x81379C31-0x81379C38 0x25B4 +0x81379C39-0x81379D36 0x25BE +0x81379D37-0x81379D39 0x25C8 +0x81379E30-0x81379E31 0x25CC +0x81379E32-0x81379F39 0x25D0 +0x8137A030-0x8137A330 0x25E6 +0x8137A331-0x8137A332 0x2607 +0x8137A333-0x8137A836 0x260A +0x8137A837 0x2641 +0x8137A838-0x8138FD37 0x2643 +0x8138FD38-0x8138FD39 0x2E82 +0x8138FE30-0x8138FE32 0x2E85 +0x8138FE33-0x8138FE34 0x2E89 +0x8138FE35-0x81398134 0x2E8D +0x81398135-0x81398239 0x2E98 +0x81398330-0x81398331 0x2EA8 +0x81398332-0x81398334 0x2EAB +0x81398335-0x81398338 0x2EAF +0x81398339-0x81398430 0x2EB4 +0x81398431-0x81398433 0x2EB8 +0x81398434-0x81398537 0x2EBC +0x81398538-0x8139A330 0x2ECB +0x8139A331-0x8139A334 0x2FFC +0x8139A335 0x3004 +0x8139A336-0x8139A430 0x3018 +0x8139A431-0x8139A432 0x301F +0x8139A433-0x8139A632 0x302A +0x8139A633-0x8139A634 0x303F +0x8139A635-0x8139A731 0x3094 +0x8139A732-0x8139A733 0x309F +0x8139A734-0x8139A738 0x30F7 +0x8139A739-0x8139A834 0x30FF +0x8139A835-0x8139C130 0x312A +0x8139C131-0x8139C137 0x322A +0x8139C138-0x8139CD30 0x3232 +0x8139CD31-0x8139E434 0x32A4 +0x8139E435-0x8139E536 0x3390 +0x8139E537-0x8139E538 0x339F +0x8139E539-0x8139E932 0x33A2 +0x8139E933-0x8139EA31 0x33C5 +0x8139EA32-0x8139EA33 0x33CF +0x8139EA34-0x8139EA35 0x33D3 +0x8139EA36-0x8139F538 0x33D6 +0x8139F539-0x8139FA31 0x3448 +0x8139FA32-0x82309939 0x3474 +0x82309A30-0x8230A530 0x359F +0x8230A531-0x8230A631 0x360F +0x8230A632-0x8230F236 0x361B +0x8230F237-0x8230FB31 0x3919 +0x8230FB32-0x82318637 0x396F +0x82318638-0x82318831 0x39D1 +0x82318832-0x82319638 0x39E0 +0x82319639-0x8231AC36 0x3A74 +0x8231AC37-0x8231C933 0x3B4F +0x8231C934-0x8231D436 0x3C6F +0x8231D437-0x8232AF31 0x3CE1 +0x8232AF32-0x8232C935 0x4057 +0x8232C936-0x8232F836 0x4160 +0x8232F837-0x82338632 0x4338 +0x82338633-0x82338636 0x43AD +0x82338637-0x82338A39 0x43B2 +0x82338B30-0x8233A337 0x43DE +0x8233A338-0x8233C930 0x44D7 +0x8233C931-0x8233CB30 0x464D +0x8233CB31-0x8233DE33 0x4662 +0x8233DE34-0x8233DE38 0x4724 +0x8233DE39-0x8233E730 0x472A +0x8233E731-0x8233E836 0x477D +0x8233E837-0x82349637 0x478E +0x82349638-0x82349B37 0x4948 +0x82349B38-0x82349B39 0x497B +0x82349C30-0x82349C33 0x497E +0x82349C34 0x4984 +0x82349C35-0x82349E34 0x4987 +0x82349E35-0x82349E37 0x499C +0x82349E38-0x8234A039 0x49A0 +0x8234A130-0x8234E732 0x49B8 +0x8234E733-0x8234EB31 0x4C78 +0x8234EB32-0x8234F632 0x4CA4 +0x8234F633-0x82358730 0x4D1A +0x82358731-0x82358F31 0x4DAF +0x82358F32-0x8336C737 0x9FA6 +0x8336C738 0xE76C +0x8336C739-0x8336C830 0xE7C7 0x8336C831-0x8336C933 0xE7E7 -0x8336C934 0xE815 -0x8336C935-0x8336C939 0xE819 -0x8336CA30-0x8336CA36 0xE81F -0x8336CA37-0x8336CB30 0xE827 -0x8336CB31-0x8336CB34 0xE82D -0x8336CB35-0x8336CC32 0xE833 -0x8336CC33-0x8336CC39 0xE83C -0x8336CD30-0x8336CE35 0xE844 -0x8336CE36-0x8336CF39 0xE856 -0x8336D030-0x84308534 0xE865 -0x84308535-0x84308D30 0xF92D -0x84308D31-0x84308F37 0xF97A -0x84308F38-0x84309738 0xF996 -0x84309739-0x84309837 0xF9E8 -0x84309838-0x84309B33 0xF9F2 -0x84309B34 0xFA10 -0x84309B35 0xFA12 -0x84309B36-0x84309B38 0xFA15 -0x84309B39-0x84309C34 0xFA19 -0x84309C35 0xFA22 -0x84309C36-0x84309C37 0xFA25 -0x84309C38-0x84318235 0xFA2A -0x84318336-0x84318537 0xFE1A -0x84318538 0xFE32 -0x84318539-0x84318632 0xFE45 -0x84318633 0xFE53 -0x84318634 0xFE58 -0x84318635 0xFE67 -0x84318636-0x84319534 0xFE6C -0x84319535-0x8431A233 0xFF5F -0x8431A234-0x8431A439 0xFFE6 +0x8336C934-0x8336CA32 0xE815 +0x8336CA33-0x8336CA39 0xE81F +0x8336CB30-0x8336CB33 0xE827 +0x8336CB34-0x8336CB38 0xE82D +0x8336CB39-0x8336CD34 0xE833 +0x8336CD35-0x8336CF30 0xE844 +0x8336CF31-0x8336D035 0xE855 +0x8336D036-0x84308630 0xE865 +0x84308631-0x84308D36 0xF92D +0x84308D37-0x84309033 0xF97A +0x84309034-0x84309834 0xF996 +0x84309835-0x84309933 0xF9E8 +0x84309934-0x84309B39 0xF9F2 +0x84309C30 0xFA10 +0x84309C31 0xFA12 +0x84309C32-0x84309C34 0xFA15 +0x84309C35-0x84309D30 0xFA19 +0x84309D31 0xFA22 +0x84309D32-0x84309D33 0xFA25 +0x84309D34-0x84318633 0xFA2A +0x84318634 0xFE32 +0x84318635-0x84318638 0xFE45 +0x84318639 0xFE53 +0x84318730 0xFE58 +0x84318731 0xFE67 +0x84318732-0x84319630 0xFE6C +0x84319631-0x8431A239 0xFF5F +0x8431A330-0x8431A535 0xFFE6 diff --git a/etc/charsets/JISC6226.map b/etc/charsets/JISC6226.map index 97d24651628..cba6df50b75 100644 --- a/etc/charsets/JISC6226.map +++ b/etc/charsets/JISC6226.map @@ -1,4 +1,4 @@ -# Generated from admin/charsets/mapfiles/Uni2JIS.gz which is a copy of +# Generated from admin/charsets/mapfiles/Uni2JIS which is a copy of # http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/ftp/CJKtable/Uni2JIS.Z 0x2121 0x3000 0x2122 0x3001 diff --git a/etc/charsets/JISX2131.map b/etc/charsets/JISX2131.map index 5d62e99650b..5219a0ef1ef 100644 --- a/etc/charsets/JISX2131.map +++ b/etc/charsets/JISX2131.map @@ -1157,7 +1157,6 @@ 0x2d79 0x22BF 0x2d7d 0x2756 0x2d7e 0x261E -0x2e21 0x4FF1 0x2e22 0x0002000B 0x2e23 0x3402 0x2e24 0x4E28 @@ -1344,7 +1343,6 @@ 0x2f7b 0x000218BD 0x2f7c 0x5B19 0x2f7d 0x5B25 -0x2f7e 0x525D 0x3021 0x4E9C 0x3022 0x5516 0x3023 0x5A03 @@ -4310,7 +4308,6 @@ 0x4f51 0x6E7E 0x4f52 0x7897 0x4f53 0x8155 -0x4f54 0x00020B9F 0x4f55 0x5B41 0x4f56 0x5B56 0x4f57 0x5B7D @@ -4352,7 +4349,6 @@ 0x4f7b 0x5DA7 0x4f7c 0x5DB8 0x4f7d 0x5DCB -0x4f7e 0x541E 0x5021 0x5F0C 0x5022 0x4E10 0x5023 0x4E15 @@ -7743,7 +7739,6 @@ 0x7424 0x7464 0x7425 0x51DC 0x7426 0x7199 -0x7427 0x5653 0x7428 0x5DE2 0x7429 0x5E14 0x742a 0x5E18 @@ -8766,8 +8761,3 @@ 0x7e77 0x9F94 0x7e78 0x9F97 0x7e79 0x9FA2 -0x7e7a 0x59F8 -0x7e7b 0x5C5B -0x7e7c 0x5E77 -0x7e7d 0x7626 -0x7e7e 0x7E6B diff --git a/etc/charsets/MIK.map b/etc/charsets/MIK.map index 5a1176f9f50..3bf3d0eb304 100644 --- a/etc/charsets/MIK.map +++ b/etc/charsets/MIK.map @@ -1,4 +1,4 @@ -# Generated from admin/charsets/mapfiles/bulgarian-mik.txt.gz which is a copy of +# Generated from admin/charsets/mapfiles/bulgarian-mik.txt which is a copy of # http://czyborra.com/charsets/bulgarian-mik.txt.gz 0x20-0x7E 0x0020 0x80-0xBF 0x0410 diff --git a/etc/charsets/PTCP154.map b/etc/charsets/PTCP154.map index 72c6b3484d4..c4aa33ac238 100644 --- a/etc/charsets/PTCP154.map +++ b/etc/charsets/PTCP154.map @@ -1,4 +1,4 @@ -# Generated from admin/charsets/mapfiles/PTCP154.gz which is a copy of +# Generated from admin/charsets/mapfiles/PTCP154 which is a copy of # http://www.iana.org/assignments/charset-reg/PTCP154 0x00-0x7F 0x0000 0x80 0x0496 diff --git a/etc/charsets/stdenc.map b/etc/charsets/stdenc.map index ab23002b155..08985141ed2 100644 --- a/etc/charsets/stdenc.map +++ b/etc/charsets/stdenc.map @@ -1,4 +1,4 @@ -# Generated from admin/charsets/mapfiles/stdenc.txt.gz which is a copy of +# Generated from admin/charsets/mapfiles/stdenc.txt which is a copy of # http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/stdenc.txt 0xFB 0x00DF 0xFA 0x0153 diff --git a/etc/charsets/symbol.map b/etc/charsets/symbol.map index 95dd2b65eea..8404bd407ba 100644 --- a/etc/charsets/symbol.map +++ b/etc/charsets/symbol.map @@ -1,4 +1,4 @@ -# Generated from admin/charsets/mapfiles/symbol.txt.gz which is a copy of +# Generated from admin/charsets/mapfiles/symbol.txt which is a copy of # http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/symbol.txt 0xFE 0xF8FE 0xFD 0xF8FD diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b2cc65a0ca3..8c83912e96d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-10-11 Kenichi Handa + + * international/eucjp-ms.el: Re-generated. + 2012-10-07 Kenichi Handa * international/mule-conf.el (compound-text-with-extensions): Add diff --git a/lisp/international/eucjp-ms.el b/lisp/international/eucjp-ms.el index a16848a0c7c..6e4e1e798b0 100644 --- a/lisp/international/eucjp-ms.el +++ b/lisp/international/eucjp-ms.el @@ -2085,4 +2085,3 @@ (setcar x (cdr x)) (setcdr x tmp))) map) (define-translation-table 'eucjp-ms-encode map)) - From 549c3414d97575bfe537d2a4d357d48ea58c980a Mon Sep 17 00:00:00 2001 From: Dmitry Antipov Date: Thu, 11 Oct 2012 17:23:12 +0400 Subject: [PATCH 173/272] * editfns.c (save_excursion_save): Use nil if mark points to nowhere. (save_excursion_restore): Do not restore mark if it was not saved. --- src/ChangeLog | 5 +++++ src/editfns.c | 17 +++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 0b274598986..99caae59cf7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-10-11 Dmitry Antipov + + * editfns.c (save_excursion_save): Use nil if mark points to nowhere. + (save_excursion_restore): Do not restore mark if it was not saved. + 2012-10-11 Paul Eggert * marker.c (cached_modiff): EMACS_INT, not int. diff --git a/src/editfns.c b/src/editfns.c index fc6465a3d46..19fad7130a7 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -819,9 +819,13 @@ save_excursion_save (void) { bool visible = (XBUFFER (XWINDOW (selected_window)->buffer) == current_buffer); + /* Do not copy the mark if it points to nowhere. */ + Lisp_Object mark = (XMARKER (BVAR (current_buffer, mark))->buffer + ? Fcopy_marker (BVAR (current_buffer, mark), Qnil) + : Qnil); return Fcons (Fpoint_marker (), - Fcons (Fcopy_marker (BVAR (current_buffer, mark), Qnil), + Fcons (mark, Fcons (visible ? Qt : Qnil, Fcons (BVAR (current_buffer, mark_active), selected_window)))); @@ -856,9 +860,14 @@ save_excursion_restore (Lisp_Object info) info = XCDR (info); tem = XCAR (info); omark = Fmarker_position (BVAR (current_buffer, mark)); - Fset_marker (BVAR (current_buffer, mark), tem, Fcurrent_buffer ()); - nmark = Fmarker_position (tem); - unchain_marker (XMARKER (tem)); + if (NILP (tem)) + unchain_marker (XMARKER (BVAR (current_buffer, mark))); + else + { + Fset_marker (BVAR (current_buffer, mark), tem, Fcurrent_buffer ()); + nmark = Fmarker_position (tem); + unchain_marker (XMARKER (tem)); + } /* visible */ info = XCDR (info); From 7cded46f2bef23f86041cc883618ac82b6dbfe61 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 11 Oct 2012 09:23:37 -0700 Subject: [PATCH 174/272] lread.c, macros.c, marker.c, menu.c, minibuf.c: Use bool for booleans. * lread.c (load_each_byte, new_backquote_flag, readchar) (read_filtered_event, lisp_file_lexically_bound_p) (safe_to_load_version, Fload, complete_filename_p, openp) (build_load_history, readevalloop, read_escape, read1) (string_to_number, read_vector, read_list): * macros.c (Fstart_kbd_macro): * marker.c (CONSIDER): * menu.c (parse_single_submenu, digest_single_submenu) (find_and_return_menu_selection, Fx_popup_menu): * minibuf.c (read_minibuf_noninteractive, read_minibuf) (Ftry_completion): * nsmenu.m (ns_update_menubar, runMenuAt:forFrame:keymaps:): (ns_menu_show): * xmenu.c (set_frame_menubar, create_and_show_popup_menu) (xmenu_show, xdialog_show): Use bool for booleans. * lread.c (safe_to_load_version): Rename from safe_to_load_p, as it's not a predicate. All uses changed. Omit unnecessary buffer termination. --- src/ChangeLog | 23 +++++++ src/lisp.h | 2 +- src/lread.c | 166 +++++++++++++++++++++++++------------------------- src/macros.c | 2 +- src/marker.c | 16 ++--- src/menu.c | 27 ++++---- src/menu.h | 8 +-- src/minibuf.c | 27 +++----- src/nsmenu.m | 9 +-- src/nsterm.h | 4 +- src/xmenu.c | 25 ++++---- 11 files changed, 161 insertions(+), 148 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 99caae59cf7..c238af65d2d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,26 @@ +2012-10-11 Paul Eggert + + lread.c, macros.c, marker.c, menu.c, minibuf.c: Use bool for booleans. + * lread.c (load_each_byte, new_backquote_flag, readchar) + (read_filtered_event, lisp_file_lexically_bound_p) + (safe_to_load_version, Fload, complete_filename_p, openp) + (build_load_history, readevalloop, read_escape, read1) + (string_to_number, read_vector, read_list): + * macros.c (Fstart_kbd_macro): + * marker.c (CONSIDER): + * menu.c (parse_single_submenu, digest_single_submenu) + (find_and_return_menu_selection, Fx_popup_menu): + * minibuf.c (read_minibuf_noninteractive, read_minibuf) + (Ftry_completion): + * nsmenu.m (ns_update_menubar, runMenuAt:forFrame:keymaps:): + (ns_menu_show): + * xmenu.c (set_frame_menubar, create_and_show_popup_menu) + (xmenu_show, xdialog_show): + Use bool for booleans. + * lread.c (safe_to_load_version): Rename from safe_to_load_p, + as it's not a predicate. All uses changed. Omit unnecessary + buffer termination. + 2012-10-11 Dmitry Antipov * editfns.c (save_excursion_save): Use nil if mark points to nowhere. diff --git a/src/lisp.h b/src/lisp.h index 1de9ec74d9f..62e287561cd 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3027,7 +3027,7 @@ extern Lisp_Object oblookup (Lisp_Object, const char *, ptrdiff_t, ptrdiff_t); } while (0) extern int openp (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object *, Lisp_Object); -Lisp_Object string_to_number (char const *, int, int); +extern Lisp_Object string_to_number (char const *, int, bool); extern void map_obarray (Lisp_Object, void (*) (Lisp_Object, Lisp_Object), Lisp_Object); extern void dir_warning (const char *, Lisp_Object); diff --git a/src/lread.c b/src/lread.c index a2b6d1f26d9..dbbde694cf6 100644 --- a/src/lread.c +++ b/src/lread.c @@ -95,10 +95,10 @@ static Lisp_Object Qload_in_progress; It must be set to nil before all top-level calls to read0. */ static Lisp_Object read_objects; -/* Nonzero means READCHAR should read bytes one by one (not character) +/* True means READCHAR should read bytes one by one (not character) when READCHARFUN is Qget_file_char or Qget_emacs_mule_file_char. - This is set to 1 by read1 temporarily while handling #@NUMBER. */ -static int load_each_byte; + This is set by read1 temporarily while handling #@NUMBER. */ +static bool load_each_byte; /* List of descriptors now open for Fload. */ static Lisp_Object load_descriptor_list; @@ -135,11 +135,11 @@ static ptrdiff_t prev_saved_doc_string_length; /* This is the file position that string came from. */ static file_offset prev_saved_doc_string_position; -/* Nonzero means inside a new-style backquote +/* True means inside a new-style backquote with no surrounding parentheses. - Fread initializes this to zero, so we need not specbind it + Fread initializes this to false, so we need not specbind it or worry about what happens to it when there is an error. */ -static int new_backquote_flag; +static bool new_backquote_flag; static Lisp_Object Qold_style_backquotes; /* A list of file names for files being loaded in Fload. Used to @@ -150,7 +150,7 @@ static Lisp_Object Vloads_in_progress; static int read_emacs_mule_char (int, int (*) (int, Lisp_Object), Lisp_Object); -static void readevalloop (Lisp_Object, FILE*, Lisp_Object, int, +static void readevalloop (Lisp_Object, FILE *, Lisp_Object, bool, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object); static Lisp_Object load_unwind (Lisp_Object); @@ -192,7 +192,7 @@ readchar (Lisp_Object readcharfun, bool *multibyte) int (*readbyte) (int, Lisp_Object); unsigned char buf[MAX_MULTIBYTE_LENGTH]; int i, len; - int emacs_mule_encoding = 0; + bool emacs_mule_encoding = 0; if (multibyte) *multibyte = 0; @@ -546,10 +546,10 @@ read_emacs_mule_char (int c, int (*readbyte) (int, Lisp_Object), Lisp_Object rea static Lisp_Object read_internal_start (Lisp_Object, Lisp_Object, Lisp_Object); static Lisp_Object read0 (Lisp_Object); -static Lisp_Object read1 (Lisp_Object, int *, int); +static Lisp_Object read1 (Lisp_Object, int *, bool); -static Lisp_Object read_list (int, Lisp_Object); -static Lisp_Object read_vector (Lisp_Object, int); +static Lisp_Object read_list (bool, Lisp_Object); +static Lisp_Object read_vector (Lisp_Object, bool); static Lisp_Object substitute_object_recurse (Lisp_Object, Lisp_Object, Lisp_Object); @@ -562,28 +562,28 @@ static void substitute_in_interval (INTERVAL, Lisp_Object); /* Read input events until we get one that's acceptable for our purposes. - If NO_SWITCH_FRAME is non-zero, switch-frame events are stashed + If NO_SWITCH_FRAME, switch-frame events are stashed until we get a character we like, and then stuffed into unread_switch_frame. - If ASCII_REQUIRED is non-zero, we check function key events to see + If ASCII_REQUIRED, check function key events to see if the unmodified version of the symbol has a Qascii_character property, and use that character, if present. - If ERROR_NONASCII is non-zero, we signal an error if the input we - get isn't an ASCII character with modifiers. If it's zero but - ASCII_REQUIRED is non-zero, we just re-read until we get an ASCII + If ERROR_NONASCII, signal an error if the input we + get isn't an ASCII character with modifiers. If it's false but + ASCII_REQUIRED is true, just re-read until we get an ASCII character. - If INPUT_METHOD is nonzero, we invoke the current input method + If INPUT_METHOD, invoke the current input method if the character warrants that. - If SECONDS is a number, we wait that many seconds for input, and + If SECONDS is a number, wait that many seconds for input, and return Qnil if no input arrives within that time. */ static Lisp_Object -read_filtered_event (int no_switch_frame, int ascii_required, - int error_nonascii, int input_method, Lisp_Object seconds) +read_filtered_event (bool no_switch_frame, bool ascii_required, + bool error_nonascii, bool input_method, Lisp_Object seconds) { Lisp_Object val, delayed_switch_frame; EMACS_TIME end_time; @@ -767,7 +767,7 @@ DEFUN ("get-file-char", Fget_file_char, Sget_file_char, 0, 0, 0, positioned following the first line, if it is a comment or #! line, otherwise nothing is read. */ -static int +static bool lisp_file_lexically_bound_p (Lisp_Object readcharfun) { int ch = READCHAR; @@ -797,11 +797,11 @@ lisp_file_lexically_bound_p (Lisp_Object readcharfun) else /* Look for an appropriate file-variable in the first line. */ { - int rv = 0; + bool rv = 0; enum { NOMINAL, AFTER_FIRST_DASH, AFTER_ASTERIX, } beg_end_state = NOMINAL; - int in_file_vars = 0; + bool in_file_vars = 0; #define UPDATE_BEG_END_STATE(ch) \ if (beg_end_state == NOMINAL) \ @@ -897,20 +897,17 @@ lisp_file_lexically_bound_p (Lisp_Object readcharfun) because of an incompatible change in the byte compiler. */ static int -safe_to_load_p (int fd) +safe_to_load_version (int fd) { char buf[512]; int nbytes, i; - int safe_p = 1; int version = 1; /* Read the first few bytes from the file, and look for a line specifying the byte compiler version used. */ - nbytes = emacs_read (fd, buf, sizeof buf - 1); + nbytes = emacs_read (fd, buf, sizeof buf); if (nbytes > 0) { - buf[nbytes] = '\0'; - /* Skip to the next newline, skipping over the initial `ELC' with NUL bytes following it, but note the version. */ for (i = 0; i < nbytes && buf[i] != '\n'; ++i) @@ -920,13 +917,11 @@ safe_to_load_p (int fd) if (i >= nbytes || fast_c_string_match_ignore_case (Vbytecomp_version_regexp, buf + i, nbytes - i) < 0) - safe_p = 0; + version = 0; } - if (safe_p) - safe_p = version; lseek (fd, 0, SEEK_SET); - return safe_p; + return version; } @@ -1030,12 +1025,12 @@ Return t if the file exists and loads successfully. */) ptrdiff_t count = SPECPDL_INDEX (); struct gcpro gcpro1, gcpro2, gcpro3; Lisp_Object found, efound, hist_file_name; - /* 1 means we printed the ".el is newer" message. */ - int newer = 0; - /* 1 means we are loading a compiled file. */ - int compiled = 0; + /* True means we printed the ".el is newer" message. */ + bool newer = 0; + /* True means we are loading a compiled file. */ + bool compiled = 0; Lisp_Object handler; - int safe_p = 1; + bool safe_p = 1; const char *fmode = "r"; Lisp_Object tmp[2]; int version; @@ -1190,7 +1185,7 @@ Return t if the file exists and loads successfully. */) record_unwind_protect (load_warn_old_style_backquotes, file); if (!memcmp (SDATA (found) + SBYTES (found) - 4, ".elc", 4) - || (fd >= 0 && (version = safe_to_load_p (fd)) > 0)) + || (fd >= 0 && (version = safe_to_load_version (fd)) > 0)) /* Load .elc files directly, but not when they are remote and have no handler! */ { @@ -1202,7 +1197,7 @@ Return t if the file exists and loads successfully. */) GCPRO3 (file, found, hist_file_name); if (version < 0 - && ! (version = safe_to_load_p (fd))) + && ! (version = safe_to_load_version (fd))) { safe_p = 0; if (!load_dangerous_libraries) @@ -1394,10 +1389,10 @@ close_load_descs (void) #endif } -static int +static bool complete_filename_p (Lisp_Object pathname) { - register const unsigned char *s = SDATA (pathname); + const unsigned char *s = SDATA (pathname); return (IS_DIRECTORY_SEP (s[0]) || (SCHARS (pathname) > 2 && IS_DEVICE_SEP (s[1]) && IS_DIRECTORY_SEP (s[2]))); @@ -1447,11 +1442,11 @@ static Lisp_Object Qdir_ok; int openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, Lisp_Object *storeptr, Lisp_Object predicate) { - register int fd; + int fd; ptrdiff_t fn_size = 100; char buf[100]; - register char *fn = buf; - int absolute = 0; + char *fn = buf; + bool absolute = 0; ptrdiff_t want_length; Lisp_Object filename; struct stat st; @@ -1503,7 +1498,7 @@ openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, Lisp_Object *sto { ptrdiff_t fnlen, lsuffix = SBYTES (XCAR (tail)); Lisp_Object handler; - int exists; + bool exists; /* Concatenate path element/specified name with the suffix. If the directory starts with /:, remove that. */ @@ -1588,14 +1583,16 @@ openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, Lisp_Object *sto the source has an associated file name or not. FILENAME is the file name that we are loading from. - ENTIRE is 1 if loading that entire file, 0 if evaluating part of it. */ + + ENTIRE is true if loading that entire file, false if evaluating + part of it. */ static void -build_load_history (Lisp_Object filename, int entire) +build_load_history (Lisp_Object filename, bool entire) { - register Lisp_Object tail, prev, newelt; - register Lisp_Object tem, tem2; - register int foundit = 0; + Lisp_Object tail, prev, newelt; + Lisp_Object tem, tem2; + bool foundit = 0; tail = Vload_history; prev = Qnil; @@ -1680,7 +1677,7 @@ static void readevalloop (Lisp_Object readcharfun, FILE *stream, Lisp_Object sourcename, - int printflag, + bool printflag, Lisp_Object unibyte, Lisp_Object readfun, Lisp_Object start, Lisp_Object end) { @@ -1689,12 +1686,12 @@ readevalloop (Lisp_Object readcharfun, ptrdiff_t count = SPECPDL_INDEX (); struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; struct buffer *b = 0; - int continue_reading_p; + bool continue_reading_p; Lisp_Object lex_bound; - /* Nonzero if reading an entire buffer. */ - int whole_buffer = 0; - /* 1 on the first time around. */ - int first_sexp = 1; + /* True if reading an entire buffer. */ + bool whole_buffer = 0; + /* True on the first time around. */ + bool first_sexp = 1; Lisp_Object macroexpand = intern ("internal-macroexpand-for-load"); if (NILP (Ffboundp (macroexpand)) @@ -2072,9 +2069,9 @@ static char *read_buffer; If the escape sequence forces unibyte, return eight-bit char. */ static int -read_escape (Lisp_Object readcharfun, int stringp) +read_escape (Lisp_Object readcharfun, bool stringp) { - register int c = READCHAR; + int c = READCHAR; /* \u allows up to four hex digits, \U up to eight. Default to the behavior for \u, and change this value in the case that \U is seen. */ int unicode_hex_count = 4; @@ -2375,10 +2372,10 @@ read_integer (Lisp_Object readcharfun, EMACS_INT radix) in *PCH and the return value is not interesting. Else, we store zero in *PCH and we read and return one lisp object. - FIRST_IN_LIST is nonzero if this is the first element of a list. */ + FIRST_IN_LIST is true if this is the first element of a list. */ static Lisp_Object -read1 (register Lisp_Object readcharfun, int *pch, int first_in_list) +read1 (Lisp_Object readcharfun, int *pch, bool first_in_list) { int c; bool uninterned_symbol = 0; @@ -2803,10 +2800,11 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list) else { Lisp_Object value; + bool saved_new_backquote_flag = new_backquote_flag; - new_backquote_flag++; + new_backquote_flag = 1; value = read0 (readcharfun); - new_backquote_flag--; + new_backquote_flag = saved_new_backquote_flag; return Fcons (Qbackquote, Fcons (value, Qnil)); } @@ -2858,7 +2856,7 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list) { int modifiers; int next_char; - int ok; + bool ok; c = READCHAR; if (c < 0) @@ -2894,14 +2892,14 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list) { char *p = read_buffer; char *end = read_buffer + read_buffer_size; - register int ch; - /* Nonzero if we saw an escape sequence specifying + int ch; + /* True if we saw an escape sequence specifying a multibyte character. */ - int force_multibyte = 0; - /* Nonzero if we saw an escape sequence specifying + bool force_multibyte = 0; + /* True if we saw an escape sequence specifying a single-byte character. */ - int force_singlebyte = 0; - int cancel = 0; + bool force_singlebyte = 0; + bool cancel = 0; ptrdiff_t nchars = 0; while ((ch = READCHAR) >= 0 @@ -3033,7 +3031,7 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list) read_symbol: { char *p = read_buffer; - int quoted = 0; + bool quoted = 0; EMACS_INT start_position = readchar_count - 1; { @@ -3250,17 +3248,17 @@ substitute_in_interval (INTERVAL interval, Lisp_Object arg) /* Convert STRING to a number, assuming base BASE. Return a fixnum if CP has integer syntax and fits in a fixnum, else return the nearest float if CP has either floating point or integer syntax and BASE is 10, else return nil. If - IGNORE_TRAILING is nonzero, consider just the longest prefix of CP that has + IGNORE_TRAILING, consider just the longest prefix of CP that has valid floating point syntax. Signal an overflow if BASE is not 10 and the number has integer syntax but does not fit. */ Lisp_Object -string_to_number (char const *string, int base, int ignore_trailing) +string_to_number (char const *string, int base, bool ignore_trailing) { int state; char const *cp = string; int leading_digit; - int float_syntax = 0; + bool float_syntax = 0; double value = 0; /* Compute NaN and infinities using a variable, to cope with compilers that @@ -3270,9 +3268,9 @@ string_to_number (char const *string, int base, int ignore_trailing) /* Negate the value ourselves. This treats 0, NaNs, and infinity properly on IEEE floating point hosts, and works around a formerly-common bug where atof ("-0.0") drops the sign. */ - int negative = *cp == '-'; + bool negative = *cp == '-'; - int signedp = negative || *cp == '+'; + bool signedp = negative || *cp == '+'; cp += signedp; state = 0; @@ -3365,7 +3363,7 @@ string_to_number (char const *string, int base, int ignore_trailing) uintmax_t n; /* Fast special case for single-digit integers. This also avoids a - glitch when BASE is 16 and IGNORE_TRAILING is nonzero, because in that + glitch when BASE is 16 and IGNORE_TRAILING, because in that case some versions of strtoumax accept numbers like "0x1" that Emacs does not allow. */ if (digit_to_number (string[signedp + 1], base) < 0) @@ -3401,12 +3399,12 @@ string_to_number (char const *string, int base, int ignore_trailing) static Lisp_Object -read_vector (Lisp_Object readcharfun, int bytecodeflag) +read_vector (Lisp_Object readcharfun, bool bytecodeflag) { ptrdiff_t i, size; - register Lisp_Object *ptr; - register Lisp_Object tem, item, vector; - register struct Lisp_Cons *otem; + Lisp_Object *ptr; + Lisp_Object tem, item, vector; + struct Lisp_Cons *otem; Lisp_Object len; tem = read_list (1, readcharfun); @@ -3478,13 +3476,13 @@ read_vector (Lisp_Object readcharfun, int bytecodeflag) return vector; } -/* FLAG = 1 means check for ] to terminate rather than ) and . */ +/* FLAG means check for ] to terminate rather than ) and . */ static Lisp_Object -read_list (int flag, register Lisp_Object readcharfun) +read_list (bool flag, Lisp_Object readcharfun) { Lisp_Object val, tail; - register Lisp_Object elt, tem; + Lisp_Object elt, tem; struct gcpro gcpro1, gcpro2; /* 0 is the normal case. 1 means this list is a doc reference; replace it with the number 0. @@ -3492,7 +3490,7 @@ read_list (int flag, register Lisp_Object readcharfun) int doc_reference = 0; /* Initialize this to 1 if we are reading a list. */ - int first_in_list = flag <= 0; + bool first_in_list = flag <= 0; val = Qnil; tail = Qnil; diff --git a/src/macros.c b/src/macros.c index a507f12e343..632c851ee8c 100644 --- a/src/macros.c +++ b/src/macros.c @@ -84,7 +84,7 @@ macro before appending to it. */) { ptrdiff_t i; EMACS_INT len; - int cvt; + bool cvt; /* Check the type of last-kbd-macro in case Lisp code changed it. */ CHECK_VECTOR_OR_STRING (KVAR (current_kboard, Vlast_kbd_macro)); diff --git a/src/marker.c b/src/marker.c index 2e2aba579db..69be4faec3a 100644 --- a/src/marker.c +++ b/src/marker.c @@ -91,7 +91,7 @@ clear_charpos_cache (struct buffer *b) #define CONSIDER(CHARPOS, BYTEPOS) \ { \ ptrdiff_t this_charpos = (CHARPOS); \ - int changed = 0; \ + bool changed = 0; \ \ if (this_charpos == charpos) \ { \ @@ -190,7 +190,7 @@ buf_charpos_to_bytepos (struct buffer *b, ptrdiff_t charpos) if (charpos - best_below < best_above - charpos) { - int record = charpos - best_below > 5000; + bool record = charpos - best_below > 5000; while (best_below != charpos) { @@ -215,7 +215,7 @@ buf_charpos_to_bytepos (struct buffer *b, ptrdiff_t charpos) } else { - int record = best_above - charpos > 5000; + bool record = best_above - charpos > 5000; while (best_above != charpos) { @@ -335,7 +335,7 @@ buf_bytepos_to_charpos (struct buffer *b, ptrdiff_t bytepos) if (bytepos - best_below_byte < best_above_byte - bytepos) { - int record = bytepos - best_below_byte > 5000; + bool record = bytepos - best_below_byte > 5000; while (best_below_byte < bytepos) { @@ -362,7 +362,7 @@ buf_bytepos_to_charpos (struct buffer *b, ptrdiff_t bytepos) } else { - int record = best_above_byte - bytepos > 5000; + bool record = best_above_byte - bytepos > 5000; while (best_above_byte > bytepos) { @@ -479,10 +479,10 @@ live_buffer (Lisp_Object buffer) static Lisp_Object set_marker_internal (Lisp_Object marker, Lisp_Object position, - Lisp_Object buffer, int restricted) + Lisp_Object buffer, bool restricted) { - register struct Lisp_Marker *m; - register struct buffer *b = live_buffer (buffer); + struct Lisp_Marker *m; + struct buffer *b = live_buffer (buffer); CHECK_MARKER (marker); m = XMARKER (marker); diff --git a/src/menu.c b/src/menu.c index 6e052dc65a9..7cc110ce7e2 100644 --- a/src/menu.c +++ b/src/menu.c @@ -519,14 +519,15 @@ list_of_panes (Lisp_Object menu) /* Set up data in menu_items for a menu bar item whose event type is ITEM_KEY (with string ITEM_NAME) and whose contents come from the list of keymaps MAPS. */ -int -parse_single_submenu (Lisp_Object item_key, Lisp_Object item_name, Lisp_Object maps) +bool +parse_single_submenu (Lisp_Object item_key, Lisp_Object item_name, + Lisp_Object maps) { Lisp_Object length; EMACS_INT len; Lisp_Object *mapvec; ptrdiff_t i; - int top_level_items = 0; + bool top_level_items = 0; USE_SAFE_ALLOCA; length = Flength (maps); @@ -616,13 +617,13 @@ free_menubar_widget_value_tree (widget_value *wv) in menu_items starting at index START, up to index END. */ widget_value * -digest_single_submenu (int start, int end, int top_level_items) +digest_single_submenu (int start, int end, bool top_level_items) { widget_value *wv, *prev_wv, *save_wv, *first_wv; int i; int submenu_depth = 0; widget_value **submenu_stack; - int panes_seen = 0; + bool panes_seen = 0; submenu_stack = alloca (menu_items_used * sizeof *submenu_stack); wv = xmalloc_widget_value (); @@ -668,7 +669,7 @@ digest_single_submenu (int start, int end, int top_level_items) Lisp_Object pane_name; const char *pane_string; - panes_seen++; + panes_seen = 1; pane_name = AREF (menu_items, i + MENU_ITEMS_PANE_NAME); @@ -735,7 +736,7 @@ digest_single_submenu (int start, int end, int top_level_items) Lisp_Object help; /* All items should be contained in panes. */ - if (panes_seen == 0) + if (! panes_seen) emacs_abort (); item_name = AREF (menu_items, i + MENU_ITEMS_ITEM_NAME); @@ -957,9 +958,9 @@ find_and_call_menu_selection (FRAME_PTR f, int menu_bar_items_used, Lisp_Object #ifdef HAVE_NS /* As above, but return the menu selection instead of storing in kb buffer. - If keymaps==1, return full prefixes to selection. */ + If KEYMAPS, return full prefixes to selection. */ Lisp_Object -find_and_return_menu_selection (FRAME_PTR f, int keymaps, void *client_data) +find_and_return_menu_selection (FRAME_PTR f, bool keymaps, void *client_data) { Lisp_Object prefix, entry; int i; @@ -999,7 +1000,7 @@ find_and_return_menu_selection (FRAME_PTR f, int keymaps, void *client_data) = AREF (menu_items, i + MENU_ITEMS_ITEM_VALUE); if (aref_addr (menu_items, i) == client_data) { - if (keymaps != 0) + if (keymaps) { int j; @@ -1071,8 +1072,8 @@ no quit occurs and `x-popup-menu' returns nil. */) Lisp_Object selection = Qnil; FRAME_PTR f = NULL; Lisp_Object x, y, window; - int keymaps = 0; - int for_click = 0; + bool keymaps = 0; + bool for_click = 0; ptrdiff_t specpdl_count = SPECPDL_INDEX (); struct gcpro gcpro1; @@ -1083,7 +1084,7 @@ no quit occurs and `x-popup-menu' returns nil. */) #ifdef HAVE_MENUS { - int get_current_pos_p = 0; + bool get_current_pos_p = 0; /* FIXME!! check_w32 (); or check_x (); or check_ns (); */ /* Decode the first argument: find the window and the coordinates. */ diff --git a/src/menu.h b/src/menu.h index 3406928a8d5..67934c42d76 100644 --- a/src/menu.h +++ b/src/menu.h @@ -29,7 +29,7 @@ extern void init_menu_items (void); extern void finish_menu_items (void) ATTRIBUTE_CONST; extern void discard_menu_items (void); extern void save_menu_items (void); -extern int parse_single_submenu (Lisp_Object, Lisp_Object, Lisp_Object); +extern bool parse_single_submenu (Lisp_Object, Lisp_Object, Lisp_Object); extern void list_of_panes (Lisp_Object); #if defined (USE_X_TOOLKIT) || defined (USE_GTK) || defined (HAVE_NTGUI) \ || defined (HAVE_NS) @@ -38,7 +38,7 @@ extern void update_submenu_strings (widget_value *); extern void find_and_call_menu_selection (FRAME_PTR, int, Lisp_Object, void *); extern widget_value *xmalloc_widget_value (void); -extern widget_value *digest_single_submenu (int, int, int); +extern widget_value *digest_single_submenu (int, int, bool); #endif #ifdef HAVE_X_WINDOWS @@ -47,8 +47,8 @@ extern void mouse_position_for_popup (FRAME_PTR f, int *x, int *y); extern Lisp_Object w32_menu_show (FRAME_PTR, int, int, int, int, Lisp_Object, const char **); -extern Lisp_Object ns_menu_show (FRAME_PTR, int, int, int, int, +extern Lisp_Object ns_menu_show (FRAME_PTR, int, int, bool, bool, Lisp_Object, const char **); -extern Lisp_Object xmenu_show (FRAME_PTR, int, int, int, int, +extern Lisp_Object xmenu_show (FRAME_PTR, int, int, bool, bool, Lisp_Object, const char **, Time); #endif /* MENU_H */ diff --git a/src/minibuf.c b/src/minibuf.c index dd4ca34c3fb..2cc89e75680 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -173,17 +173,6 @@ without invoking the usual minibuffer commands. */) static Lisp_Object read_minibuf_unwind (Lisp_Object); static Lisp_Object run_exit_minibuf_hook (Lisp_Object); -static Lisp_Object read_minibuf (Lisp_Object, Lisp_Object, - Lisp_Object, - int, Lisp_Object, - Lisp_Object, Lisp_Object, - int, int); -static Lisp_Object read_minibuf_noninteractive (Lisp_Object, Lisp_Object, - Lisp_Object, Lisp_Object, - int, Lisp_Object, - Lisp_Object, Lisp_Object, - int, int); -static Lisp_Object string_to_object (Lisp_Object, Lisp_Object); /* Read a Lisp object from VAL and return it. If VAL is an empty @@ -233,10 +222,10 @@ string_to_object (Lisp_Object val, Lisp_Object defalt) static Lisp_Object read_minibuf_noninteractive (Lisp_Object map, Lisp_Object initial, Lisp_Object prompt, Lisp_Object backup_n, - int expflag, + bool expflag, Lisp_Object histvar, Lisp_Object histpos, Lisp_Object defalt, - int allow_props, int inherit_input_method) + bool allow_props, bool inherit_input_method) { ptrdiff_t size, len; char *line; @@ -376,23 +365,23 @@ If the current buffer is not a minibuffer, return its entire contents. */) beginning of INITIAL if N <= 0. Normally return the result as a string (the text that was read), - but if EXPFLAG is nonzero, read it and return the object read. + but if EXPFLAG, read it and return the object read. If HISTVAR is given, save the value read on that history only if it doesn't match the front of that history list exactly. The value is pushed onto the list as the string that was read. DEFALT specifies the default value for the sake of history commands. - If ALLOW_PROPS is nonzero, we do not throw away text properties. + If ALLOW_PROPS, do not throw away text properties. - if INHERIT_INPUT_METHOD is nonzero, the minibuffer inherits the + if INHERIT_INPUT_METHOD, the minibuffer inherits the current input method. */ static Lisp_Object read_minibuf (Lisp_Object map, Lisp_Object initial, Lisp_Object prompt, - int expflag, + bool expflag, Lisp_Object histvar, Lisp_Object histpos, Lisp_Object defalt, - int allow_props, int inherit_input_method) + bool allow_props, bool inherit_input_method) { Lisp_Object val; ptrdiff_t count = SPECPDL_INDEX (); @@ -1447,7 +1436,7 @@ is used to further constrain the set of candidates. */) if (bestmatchsize != SCHARS (eltstring) || bestmatchsize != matchsize) /* Don't count the same string multiple times. */ - matchcount++; + matchcount += matchcount <= 1; bestmatchsize = matchsize; if (matchsize <= SCHARS (string) /* If completion-ignore-case is non-nil, don't diff --git a/src/nsmenu.m b/src/nsmenu.m index a5983c70cdb..d0ea8f5a47a 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -181,7 +181,8 @@ /* Fully parse one or more of the submenus. */ int n = 0; int *submenu_start, *submenu_end; - int *submenu_top_level_items, *submenu_n_panes; + bool *submenu_top_level_items; + int *submenu_n_panes; struct buffer *prev = current_buffer; Lisp_Object buffer; ptrdiff_t specpdl_count = SPECPDL_INDEX (); @@ -740,7 +741,7 @@ - (EmacsMenu *)addSubmenuWithTitle: (const char *)title forFrame: (struct frame /* run a menu in popup mode */ - (Lisp_Object)runMenuAt: (NSPoint)p forFrame: (struct frame *)f - keymaps: (int)keymaps + keymaps: (bool)keymaps { EmacsView *view = FRAME_NS_VIEW (f); NSEvent *e, *event; @@ -779,7 +780,7 @@ - (Lisp_Object)runMenuAt: (NSPoint)p forFrame: (struct frame *)f ========================================================================== */ Lisp_Object -ns_menu_show (FRAME_PTR f, int x, int y, int for_click, int keymaps, +ns_menu_show (FRAME_PTR f, int x, int y, bool for_click, bool keymaps, Lisp_Object title, const char **error) { EmacsMenu *pmenu; @@ -801,7 +802,7 @@ - (Lisp_Object)runMenuAt: (NSPoint)p forFrame: (struct frame *)f #if 0 /* FIXME: a couple of one-line differences prevent reuse */ - wv = digest_single_submenu (0, menu_items_used, Qnil); + wv = digest_single_submenu (0, menu_items_used, 0); #else { widget_value *save_wv = 0, *prev_wv = 0; diff --git a/src/nsterm.h b/src/nsterm.h index 958d1ce7853..2e868b86caf 100644 --- a/src/nsterm.h +++ b/src/nsterm.h @@ -161,7 +161,7 @@ along with GNU Emacs. If not, see . */ - (EmacsMenu *)addSubmenuWithTitle: (const char *)title forFrame: (struct frame *)f; - (void) clear; - (Lisp_Object)runMenuAt: (NSPoint)p forFrame: (struct frame *)f - keymaps: (int)keymaps; + keymaps: (bool)keymaps; @end @@ -792,7 +792,7 @@ extern void free_frame_tool_bar (FRAME_PTR f); extern void find_and_call_menu_selection (FRAME_PTR f, int menu_bar_items_used, Lisp_Object vector, void *client_data); extern Lisp_Object find_and_return_menu_selection (FRAME_PTR f, - int keymaps, + bool keymaps, void *client_data); extern Lisp_Object ns_popup_dialog (Lisp_Object position, Lisp_Object contents, Lisp_Object header); diff --git a/src/xmenu.c b/src/xmenu.c index 96a1ae87fdc..01d932cf8d8 100644 --- a/src/xmenu.c +++ b/src/xmenu.c @@ -111,7 +111,7 @@ along with GNU Emacs. If not, see . */ static Lisp_Object Qdebug_on_next_call; #if defined (USE_X_TOOLKIT) || defined (USE_GTK) -static Lisp_Object xdialog_show (FRAME_PTR, int, Lisp_Object, Lisp_Object, +static Lisp_Object xdialog_show (FRAME_PTR, bool, Lisp_Object, Lisp_Object, const char **); #endif @@ -930,7 +930,8 @@ set_frame_menubar (FRAME_PTR f, bool first_time, bool deep_p) widget_value *wv, *first_wv, *prev_wv = 0; int i; int *submenu_start, *submenu_end; - int *submenu_top_level_items, *submenu_n_panes; + bool *submenu_top_level_items; + int *submenu_n_panes; if (! FRAME_X_P (f)) emacs_abort (); @@ -1346,8 +1347,8 @@ free_frame_menubar (FRAME_PTR f) /* F is the frame the menu is for. X and Y are the frame-relative specified position, relative to the inside upper left corner of the frame F. - FOR_CLICK is nonzero if this menu was invoked for a mouse click. - KEYMAPS is 1 if this menu was specified with keymaps; + FOR_CLICK is true if this menu was invoked for a mouse click. + KEYMAPS is true if this menu was specified with keymaps; in that case, we return a list containing the chosen item's value and perhaps also the pane's prefix. TITLE is the specified menu title. @@ -1427,14 +1428,14 @@ pop_down_menu (Lisp_Object arg) menu_item_selection will be set to the selection. */ static void create_and_show_popup_menu (FRAME_PTR f, widget_value *first_wv, int x, int y, - int for_click, Time timestamp) + bool for_click, Time timestamp) { int i; GtkWidget *menu; GtkMenuPositionFunc pos_func = 0; /* Pop up at pointer. */ struct next_popup_x_y popup_x_y; ptrdiff_t specpdl_count = SPECPDL_INDEX (); - int use_pos_func = ! for_click; + bool use_pos_func = ! for_click; #ifdef HAVE_GTK3 /* Always use position function for Gtk3. Otherwise menus may become @@ -1539,7 +1540,7 @@ pop_down_menu (Lisp_Object arg) menu_item_selection will be set to the selection. */ static void create_and_show_popup_menu (FRAME_PTR f, widget_value *first_wv, - int x, int y, int for_click, Time timestamp) + int x, int y, bool for_click, Time timestamp) { int i; Arg av[2]; @@ -1623,7 +1624,7 @@ cleanup_widget_value_tree (Lisp_Object arg) } Lisp_Object -xmenu_show (FRAME_PTR f, int x, int y, int for_click, int keymaps, +xmenu_show (FRAME_PTR f, int x, int y, bool for_click, bool keymaps, Lisp_Object title, const char **error_name, Time timestamp) { int i; @@ -1878,7 +1879,7 @@ xmenu_show (FRAME_PTR f, int x, int y, int for_click, int keymaps, = AREF (menu_items, i + MENU_ITEMS_ITEM_VALUE); if (menu_item_selection == aref_addr (menu_items, i)) { - if (keymaps != 0) + if (keymaps) { int j; @@ -2011,7 +2012,7 @@ static const char * button_names [] = { static Lisp_Object xdialog_show (FRAME_PTR f, - int keymaps, + bool keymaps, Lisp_Object title, Lisp_Object header, const char **error_name) @@ -2277,7 +2278,7 @@ pop_down_menu (Lisp_Object arg) Lisp_Object -xmenu_show (FRAME_PTR f, int x, int y, int for_click, int keymaps, +xmenu_show (FRAME_PTR f, int x, int y, bool for_click, bool keymaps, Lisp_Object title, const char **error_name, Time timestamp) { Window root; @@ -2528,7 +2529,7 @@ xmenu_show (FRAME_PTR f, int x, int y, int for_click, int keymaps, { entry = AREF (menu_items, i + MENU_ITEMS_ITEM_VALUE); - if (keymaps != 0) + if (keymaps) { entry = Fcons (entry, Qnil); if (!NILP (pane_prefix)) From ac9fc2c779445a88cdf0ae2fa042879bb7ff0d16 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 11 Oct 2012 16:05:47 -0400 Subject: [PATCH 175/272] * lisp/international/mule-cmds.el (read-char-by-name): Move let-binding of completion-ignore-case in case that var is buffer-local. Fixes: debbugs:12615 --- lisp/ChangeLog | 9 +++++++-- lisp/international/mule-cmds.el | 15 ++++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b8c4e518b0c..ba105ce4716 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-11 Stefan Monnier + + * international/mule-cmds.el (read-char-by-name): Move let-binding of + completion-ignore-case in case that var is buffer-local (bug#12615). + 2012-10-11 Kenichi Handa * international/eucjp-ms.el: Re-generated. @@ -10,8 +15,8 @@ 2012-10-10 Martin Rudalics * window.el (switch-to-buffer-preserve-window-point): New option. - (switch-to-buffer): Obey - `switch-to-buffer-preserve-window-point' (Bug#4041). + (switch-to-buffer): + Obey `switch-to-buffer-preserve-window-point' (Bug#4041). 2012-10-09 Stefan Monnier diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 58dd24ec8ea..3431c81df88 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -2945,13 +2945,14 @@ at the beginning of the name. This function also accepts a hexadecimal number of Unicode code point or a number in hash notation, e.g. #o21430 for octal, #x2318 for hex, or #10r8984 for decimal." - (let* ((completion-ignore-case t) - (input (completing-read - prompt - (lambda (string pred action) - (if (eq action 'metadata) - '(metadata (category . unicode-name)) - (complete-with-action action (ucs-names) string pred)))))) + (let ((input + (completing-read + prompt + (lambda (string pred action) + (let ((completion-ignore-case t)) + (if (eq action 'metadata) + '(metadata (category . unicode-name)) + (complete-with-action action (ucs-names) string pred))))))) (cond ((string-match-p "\\`[0-9a-fA-F]+\\'" input) (string-to-number input 16)) From 5253a5fd755a26e30c73653bc49066f0649ec0eb Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 11 Oct 2012 16:08:38 -0400 Subject: [PATCH 176/272] Fix spurious "cl--defsubst-expand might not be defined at runtime" * lisp/emacs-lisp/bytecomp.el (byte-compile-eval): Adjust to long-ago changes to the format of load-history. * src/eval.c (Fautoload): Remember previous autoload status in load-history. --- lisp/ChangeLog | 3 +++ lisp/emacs-lisp/bytecomp.el | 8 +++----- src/ChangeLog | 4 ++++ src/eval.c | 8 +++++--- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ba105ce4716..8d9c85c1326 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2012-10-11 Stefan Monnier + * emacs-lisp/bytecomp.el (byte-compile-eval): Adjust to long-ago + changes to the format of load-history. + * international/mule-cmds.el (read-char-by-name): Move let-binding of completion-ignore-case in case that var is buffer-local (bug#12615). diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 4dd44bb6f22..7534ce5eaca 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -875,13 +875,11 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'." (byte-compile-cl-file-p (car xs)))) (dolist (s xs) (cond - ((symbolp s) - (unless (memq s old-autoloads) - (push s byte-compile-noruntime-functions))) ((and (consp s) (eq t (car s))) (push (cdr s) old-autoloads)) - ((and (consp s) (eq 'autoload (car s))) - (push (cdr s) byte-compile-noruntime-functions))))))) + ((and (consp s) (memq (car s) '(autoload defun))) + (unless (memq (cdr s) old-autoloads) + (push (cdr s) byte-compile-noruntime-functions)))))))) ;; Go through current-load-list for the locally defined funs. (let (old-autoloads) (while (and hist-nil-new (not (eq hist-nil-new hist-nil-orig))) diff --git a/src/ChangeLog b/src/ChangeLog index c238af65d2d..839e7e52e00 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-11 Stefan Monnier + + * eval.c (Fautoload): Remember previous autoload status in load-history. + 2012-10-11 Paul Eggert lread.c, macros.c, marker.c, menu.c, minibuf.c: Use bool for booleans. diff --git a/src/eval.c b/src/eval.c index 4d200fbc2bd..975204da017 100644 --- a/src/eval.c +++ b/src/eval.c @@ -1876,9 +1876,11 @@ this does nothing and returns nil. */) CHECK_STRING (file); /* If function is defined and not as an autoload, don't override. */ - if (!EQ (XSYMBOL (function)->function, Qunbound) - && !(CONSP (XSYMBOL (function)->function) - && EQ (XCAR (XSYMBOL (function)->function), Qautoload))) + if ((CONSP (XSYMBOL (function)->function) + && EQ (XCAR (XSYMBOL (function)->function), Qautoload))) + /* Remember that the function was already an autoload. */ + LOADHIST_ATTACH (Fcons (Qt, function)); + else if (!EQ (XSYMBOL (function)->function, Qunbound)) return Qnil; if (NILP (Vpurify_flag)) From d8cc4c00eaf27d0151ed4f0f4c40100c099ae0ef Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 11 Oct 2012 16:11:23 -0400 Subject: [PATCH 177/272] * lisp/help-fns.el (describe-function-1): Handle autoloads w/o docstrings. * lisp/emacs-lisp/cl-lib.el (cl--defsubst-expand): Move autoload... * lisp/emacs-lisp/cl-macs.el (cl--defsubst-expand): ...here. --- lisp/ChangeLog | 4 ++++ lisp/emacs-lisp/cl-lib.el | 3 --- lisp/emacs-lisp/cl-macs.el | 3 +++ lisp/help-fns.el | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8d9c85c1326..97e9965c6b9 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,9 @@ 2012-10-11 Stefan Monnier + * help-fns.el (describe-function-1): Handle autoloads w/o docstrings. + * emacs-lisp/cl-lib.el (cl--defsubst-expand): Move autoload... + * emacs-lisp/cl-macs.el (cl--defsubst-expand): ...here. + * emacs-lisp/bytecomp.el (byte-compile-eval): Adjust to long-ago changes to the format of load-history. diff --git a/lisp/emacs-lisp/cl-lib.el b/lisp/emacs-lisp/cl-lib.el index 2eda628e262..802d25b097a 100644 --- a/lisp/emacs-lisp/cl-lib.el +++ b/lisp/emacs-lisp/cl-lib.el @@ -727,9 +727,6 @@ If ALIST is non-nil, the new pairs are prepended to it." ;;;###autoload (progn - ;; Make sure functions defined with cl-defsubst can be inlined even in - ;; packages which do not require CL. - (autoload 'cl--defsubst-expand "cl-macs") ;; Autoload, so autoload.el and font-lock can use it even when CL ;; is not loaded. (put 'cl-defun 'doc-string-elt 3) diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 592c33d21c5..1a701e9047a 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -2595,6 +2595,9 @@ surrounded by (cl-block NAME ...). ,(and (memq '&key args) 'cl-whole) ,unsafe ,@argns))) (cl-defun ,name ,args ,@body)))) +;; Make sure functions defined with cl-defsubst can be inlined even in +;; packages which do not require CL. +;;;###autoload (defun cl--defsubst-expand (argns body simple whole unsafe &rest argvs) (if (and whole (not (cl--safe-expr-p (cons 'progn argvs)))) whole (if (cl--simple-exprs-p argvs) (setq simple t)) diff --git a/lisp/help-fns.el b/lisp/help-fns.el index ef482f8f0e9..f17b29de720 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -621,7 +621,7 @@ FILE is the file where FUNCTION was probably defined." ;; If the function is autoloaded, and its docstring has ;; key substitution constructs, load the library. (doc (progn - (and (autoloadp real-def) + (and (autoloadp real-def) doc-raw help-enable-auto-load (string-match "\\([^\\]=\\|[^=]\\|\\`\\)\\\\[[{<]" doc-raw) From 389a94a53dfc947c5dc9964b5617e0098513bbe0 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 11 Oct 2012 16:32:11 -0400 Subject: [PATCH 178/272] * src/buffer.c (Fkill_buffer): Null out the overlay list(s) as well. --- src/ChangeLog | 2 ++ src/buffer.c | 31 ++++++++++++++++++++----------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 839e7e52e00..6b9af293112 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,7 @@ 2012-10-11 Stefan Monnier + * buffer.c (Fkill_buffer): Null out the overlay list(s) as well. + * eval.c (Fautoload): Remember previous autoload status in load-history. 2012-10-11 Paul Eggert diff --git a/src/buffer.c b/src/buffer.c index 425d05ca790..9564e91c10c 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -897,6 +897,8 @@ delete_all_overlays (struct buffer *b) { struct Lisp_Overlay *ov, *next; + /* FIXME: Since each drop_overlay will scan BUF_MARKERS to unlink its + markers, we have an unneeded O(N^2) behavior here. */ for (ov = b->overlays_before; ov; ov = next) { drop_overlay (b, ov); @@ -1886,16 +1888,19 @@ cleaning up all windows currently displaying the buffer to be killed. */) if (b->base_buffer) { - /* Unchain all markers that belong to this indirect buffer. - Don't unchain the markers that belong to the base buffer - or its other indirect buffers. */ - for (m = BUF_MARKERS (b); m; ) - { - struct Lisp_Marker *next = m->next; - if (m->buffer == b) - unchain_marker (m); - m = next; - } + { /* Unchain all markers that belong to this indirect buffer. + Don't unchain the markers that belong to the base buffer + or its other indirect buffers. */ + struct Lisp_Marker **mp; + for (mp = &BUF_MARKERS (b); *mp; ) + { + struct Lisp_Marker *m = *mp; + if (m->buffer == b) + *mp = m->next; + else + mp = &m->next; + } + } } else { @@ -1911,8 +1916,12 @@ cleaning up all windows currently displaying the buffer to be killed. */) BUF_MARKERS (b) = NULL; set_buffer_intervals (b, NULL); - /* Perhaps we should explicitly free the interval tree here... */ + /* Perhaps we should explicitly free the interval tree here... */ } + /* Since we've unlinked the markers, the overlays can't be here any more + either. */ + b->overlays_before = NULL; + b->overlays_after = NULL; /* Reset the local variables, so that this buffer's local values won't be protected from GC. They would be protected From 9f1a4aa5053253b83b776ff52ed332b5efbae2ca Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 11 Oct 2012 16:36:23 -0400 Subject: [PATCH 179/272] * lisp/emacs-lisp/cl-lib.el (cl--defsubst-expand): Undo last change. * lisp/emacs-lisp/cl-macs.el (cl--defsubst-expand): Idem. --- lisp/ChangeLog | 2 -- lisp/emacs-lisp/cl-lib.el | 4 ++++ lisp/emacs-lisp/cl-macs.el | 3 --- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 97e9965c6b9..534d0ad2dcd 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,8 +1,6 @@ 2012-10-11 Stefan Monnier * help-fns.el (describe-function-1): Handle autoloads w/o docstrings. - * emacs-lisp/cl-lib.el (cl--defsubst-expand): Move autoload... - * emacs-lisp/cl-macs.el (cl--defsubst-expand): ...here. * emacs-lisp/bytecomp.el (byte-compile-eval): Adjust to long-ago changes to the format of load-history. diff --git a/lisp/emacs-lisp/cl-lib.el b/lisp/emacs-lisp/cl-lib.el index 802d25b097a..122402797e1 100644 --- a/lisp/emacs-lisp/cl-lib.el +++ b/lisp/emacs-lisp/cl-lib.el @@ -727,6 +727,10 @@ If ALIST is non-nil, the new pairs are prepended to it." ;;;###autoload (progn + ;; Make sure functions defined with cl-defsubst can be inlined even in + ;; packages which do not require CL. We don't put an autoload cookie + ;; directly on that function, since those cookies only go to cl-loaddefs. + (autoload 'cl--defsubst-expand "cl-macs") ;; Autoload, so autoload.el and font-lock can use it even when CL ;; is not loaded. (put 'cl-defun 'doc-string-elt 3) diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 1a701e9047a..592c33d21c5 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -2595,9 +2595,6 @@ surrounded by (cl-block NAME ...). ,(and (memq '&key args) 'cl-whole) ,unsafe ,@argns))) (cl-defun ,name ,args ,@body)))) -;; Make sure functions defined with cl-defsubst can be inlined even in -;; packages which do not require CL. -;;;###autoload (defun cl--defsubst-expand (argns body simple whole unsafe &rest argvs) (if (and whole (not (cl--safe-expr-p (cons 'progn argvs)))) whole (if (cl--simple-exprs-p argvs) (setq simple t)) From 55cd00c8f958ff627521c73113a5ea66fe4e4a57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabi=C3=A1n=20Ezequiel=20Gallina?= Date: Thu, 11 Oct 2012 21:07:25 -0300 Subject: [PATCH 180/272] * progmodes/python.el (python-mode-map): Replace subtitute-key-definition with proper command remapping. (python-nav--up-list): Fix behavior for blocks on the same level. --- lisp/ChangeLog | 6 ++++++ lisp/progmodes/python.el | 14 ++++---------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 534d0ad2dcd..19e51cc603a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2012-10-12 Fabián Ezequiel Gallina + + * progmodes/python.el (python-mode-map): Replace + subtitute-key-definition with proper command remapping. + (python-nav--up-list): Fix behavior for blocks on the same level. + 2012-10-11 Stefan Monnier * help-fns.el (describe-function-1): Handle autoloads w/o docstrings. diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 5bf64c18f99..ff805d64024 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -229,15 +229,9 @@ (defvar python-mode-map (let ((map (make-sparse-keymap))) ;; Movement - (substitute-key-definition 'backward-sentence - 'python-nav-backward-block - map global-map) - (substitute-key-definition 'forward-sentence - 'python-nav-forward-block - map global-map) - (substitute-key-definition 'backward-up-list - 'python-nav-backward-up-list - map global-map) + (define-key map [remap backward-sentence] 'python-nav-backward-block) + (define-key map [remap forward-sentence] 'python-nav-forward-block) + (define-key map [remap backward-up-list] 'python-nav-backward-up-list) (define-key map "\C-c\C-j" 'imenu) ;; Indent specific (define-key map "\177" 'python-indent-dedent-line-backspace) @@ -1444,7 +1438,7 @@ DIR is always 1 or -1 and comes sanitized from (save-excursion (let ((indentation (current-indentation))) (while (and (python-nav-backward-block) - (> (current-indentation) indentation)))) + (>= (current-indentation) indentation)))) (point)))) (and (> (point) prev-block-pos) (goto-char prev-block-pos)))) From 3a989246b190eb90edc8cbf2b4f031d44d00e9ca Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Thu, 11 Oct 2012 21:01:50 -0400 Subject: [PATCH 181/272] rmail-header-summary fix for bug#12625 * lisp/mail/rmailsum.el (rmail-header-summary): Fix 2010-11-26 test for multiline Subject: field. --- lisp/ChangeLog | 5 +++++ lisp/mail/rmailsum.el | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 19e51cc603a..4424a5fb389 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-12 Glenn Morris + + * mail/rmailsum.el (rmail-header-summary): + Fix 2010-11-26 test for multiline Subject: field. (Bug#12625) + 2012-10-12 Fabián Ezequiel Gallina * progmodes/python.el (python-mode-map): Replace diff --git a/lisp/mail/rmailsum.el b/lisp/mail/rmailsum.el index d3a464161cb..612ccbdfd9e 100644 --- a/lisp/mail/rmailsum.el +++ b/lisp/mail/rmailsum.el @@ -785,7 +785,7 @@ the message being processed." (setq pos (point)) (forward-line 1) (setq str (buffer-substring pos (1- (point)))) - (while (looking-at "\\s ") + (while (looking-at "[ \t]") (setq str (concat str " " (buffer-substring (match-end 0) (line-end-position)))) From 81749a2374c78d656888b462f3b29301e4cbd1c7 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Thu, 11 Oct 2012 21:47:40 -0400 Subject: [PATCH 182/272] * src/buffer.c (Fset_buffer): Doc fix. (Bug#12624) --- src/ChangeLog | 4 ++++ src/buffer.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 6b9af293112..2a66f5df62c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-12 Glenn Morris + + * buffer.c (Fset_buffer): Doc fix. (Bug#12624) + 2012-10-11 Stefan Monnier * buffer.c (Fkill_buffer): Null out the overlay list(s) as well. diff --git a/src/buffer.c b/src/buffer.c index 9564e91c10c..861a89b5a0f 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -2185,7 +2185,7 @@ set_buffer_temp (struct buffer *b) DEFUN ("set-buffer", Fset_buffer, Sset_buffer, 1, 1, 0, doc: /* Make buffer BUFFER-OR-NAME current for editing operations. BUFFER-OR-NAME may be a buffer or the name of an existing buffer. See -also `save-excursion' when you want to make a buffer current +also `with-current-buffer' when you want to make a buffer current temporarily. This function does not display the buffer, so its effect ends when the current command terminates. Use `switch-to-buffer' or `pop-to-buffer' to switch buffers permanently. */) From 2b9c2e68501ac897447340bd3f2af8e88f03d767 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Fri, 12 Oct 2012 12:01:05 +0200 Subject: [PATCH 183/272] * nsfont.m (nsfont_open): Remove font cache, it is not GC correct. --- src/ChangeLog | 4 ++++ src/nsfont.m | 34 ++-------------------------------- 2 files changed, 6 insertions(+), 32 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 2a66f5df62c..47b2de24844 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-12 Jan Djärv + + * nsfont.m (nsfont_open): Remove font cache, it is not GC correct. + 2012-10-12 Glenn Morris * buffer.c (Fset_buffer): Doc fix. (Bug#12624) diff --git a/src/nsfont.m b/src/nsfont.m index a820b60ac58..7c9f05aa0bb 100644 --- a/src/nsfont.m +++ b/src/nsfont.m @@ -729,16 +729,6 @@ Properties to be considered are same as for list(). */ NSRect brect; Lisp_Object font_object; int fixLeopardBug; - static NSMutableDictionary *fontCache = nil; - NSNumber *cached; - - /* 2008/03/08: The same font may end up being requested for different - entities, due to small differences in numeric values or other issues, - or for different copies of the same entity. Therefore we cache to - avoid creating multiple struct font objects (with metrics cache, etc.) - for the same NSFont object. */ - if (fontCache == nil) - fontCache = [[NSMutableDictionary alloc] init]; if (NSFONT_TRACE) { @@ -794,28 +784,8 @@ when setting family in ns_spec_to_descriptor(). */ if (NSFONT_TRACE) NSLog (@"%@\n", nsfont); - /* Check the cache */ - cached = [fontCache objectForKey: nsfont]; - if (cached != nil && !synthItal) - { - if (NSFONT_TRACE) - fprintf(stderr, "*** nsfont_open CACHE HIT!\n"); - XHASH (font_object) = [cached unsignedLongLongValue]; - return font_object; - } - else - { - font_object = font_make_object (VECSIZE (struct nsfont_info), - font_entity, pixel_size); - if (!synthItal) - { - [fontCache setObject: [NSNumber - numberWithUnsignedLongLong: - (unsigned long long) XHASH (font_object)] - forKey: nsfont]; - } - } - + font_object = font_make_object (VECSIZE (struct nsfont_info), + font_entity, pixel_size); font_info = (struct nsfont_info *) XFONT_OBJECT (font_object); font = (struct font *) font_info; if (!font) From 98222ee58b78eba8ff719c8ca3802b809baac02b Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Fri, 12 Oct 2012 06:19:14 -0400 Subject: [PATCH 184/272] Auto-commit of loaddefs files. --- lisp/mail/rmail.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index c75a1989e8e..a2cb7cb9ee8 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el @@ -4707,7 +4707,7 @@ If prefix argument REVERSE is non-nil, sorts in reverse order. ;;;### (autoloads (rmail-summary-by-senders rmail-summary-by-topic ;;;;;; rmail-summary-by-regexp rmail-summary-by-recipients rmail-summary-by-labels -;;;;;; rmail-summary) "rmailsum" "rmailsum.el" "bef21a376bd5bd59792a20dd86e6ec34") +;;;;;; rmail-summary) "rmailsum" "rmailsum.el" "6cafe6b03e187b5836e3c359322b5cbf") ;;; Generated autoloads from rmailsum.el (autoload 'rmail-summary "rmailsum" "\ From 605a3df6811c2b3ce9379149cc8fd64fc9846136 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 12 Oct 2012 16:14:35 +0200 Subject: [PATCH 185/272] Add comments about how non-GUI input works on MS-Windows. --- src/w32fns.c | 4 +++- src/w32inevt.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/w32fns.c b/src/w32fns.c index 28a689ddc6c..c5e4be4ffc9 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -2333,7 +2333,9 @@ w32_name_of_message (UINT msg) } #endif /* EMACSDEBUG */ -/* Here's an overview of how Emacs input works on MS-Windows. +/* Here's an overview of how Emacs input works in GUI sessions on + MS-Windows. (For description of non-GUI input, see the commentary + before w32_console_read_socket in w32inevt.c.) System messages are read and processed by w32_msg_pump below. This function runs in a separate thread. It handles a small number of diff --git a/src/w32inevt.c b/src/w32inevt.c index c322d3a0b44..899a6fb89bf 100644 --- a/src/w32inevt.c +++ b/src/w32inevt.c @@ -576,6 +576,38 @@ maybe_generate_resize_event (void) 0, 0, 0); } +/* Here's an overview of how Emacs input works in non-GUI sessions on + MS-Windows. (For description of the GUI input, see the commentary + before w32_msg_pump in w32fns.c.) + + When Emacs is idle, it loops inside wait_reading_process_output, + calling pselect periodically to check whether any input is + available. On Windows, pselect is redirected to sys_select, which + uses MsgWaitForMultipleObjects to wait for input, either from the + keyboard or from any of the Emacs subprocesses. In addition, + MsgWaitForMultipleObjects wakes up when some Windows message is + posted to the input queue of the Emacs's main thread (which is the + thread in which sys_select runs). + + When the Emacs's console window has focus, Windows sends input + events that originate from the keyboard or the mouse; these events + wake up MsgWaitForMultipleObjects, which reports that input is + available. Emacs then calls w32_console_read_socket, below, to + read the input. w32_console_read_socket uses + GetNumberOfConsoleInputEvents and ReadConsoleInput to peek at and + read the console input events. + + One type of non-keyboard input event that gets reported as input + available is due to the Emacs's console window receiving focus. + When that happens, Emacs gets the FOCUS_EVENT event and sys_select + reports some input; however, w32_console_read_socket ignores such + events when called to read them. + + Note that any other Windows message sent to the main thread will + also wake up MsgWaitForMultipleObjects. These messages get + immediately dispatched to their destinations by calling + drain_message_queue. */ + int w32_console_read_socket (struct terminal *terminal, struct input_event *hold_quit) From bb385a92ec4f8f5bbc93641aaa274bd735826574 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 12 Oct 2012 17:19:54 +0200 Subject: [PATCH 186/272] Fix bug #12587 with slow startup on MS-Windows with Netlogon service. src/fileio.c (check_existing): New function. (make_temp_name, Ffile_exists_p, Ffile_writable_p): Call it instead of calling 'stat', when what's needed is to check whether a file exists. This avoids expensive system calls on MS-Windows. src/w32.c (init_environment): Call 'check_existing' instead of 'stat'. src/lread.c (openp) [WINDOWSNT]: Call 'access' instead of 'stat' to determine whether a file exists and is not a directory. src/lisp.h (check_existing): Add prototype. --- src/ChangeLog | 16 ++++++++++++++++ src/fileio.c | 29 ++++++++++++++++++++--------- src/lisp.h | 1 + src/lread.c | 8 +++++++- src/w32.c | 3 +-- 5 files changed, 45 insertions(+), 12 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 47b2de24844..76f0226c0bf 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,19 @@ +2012-10-12 Eli Zaretskii + + * fileio.c (check_existing): New function. + (make_temp_name, Ffile_exists_p, Ffile_writable_p): Call it + instead of calling 'stat', when what's needed is to check whether + a file exists. This avoids expensive system calls on MS-Windows. + (Bug#12587) + + * w32.c (init_environment): Call 'check_existing' instead of + 'stat'. + + * lread.c (openp) [WINDOWSNT]: Call 'access' instead of 'stat' to + determine whether a file exists and is not a directory. + + * lisp.h (check_existing): Add prototype. + 2012-10-12 Jan Djärv * nsfont.m (nsfont_open): Remove font cache, it is not GC correct. diff --git a/src/fileio.c b/src/fileio.c index b4eda01afcc..5de5bc2b021 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -52,6 +52,7 @@ along with GNU Emacs. If not, see . */ #define NOMINMAX 1 #include #include +#include #endif /* not WINDOWSNT */ #ifdef MSDOS @@ -668,7 +669,6 @@ make_temp_name (Lisp_Object prefix, bool base64_p) while (1) { - struct stat ignored; unsigned num = make_temp_name_count; p[0] = make_temp_name_tbl[num & 63], num >>= 6; @@ -680,7 +680,7 @@ make_temp_name (Lisp_Object prefix, bool base64_p) make_temp_name_count += 25229; make_temp_name_count %= 225307; - if (stat (data, &ignored) < 0) + if (!check_existing (data)) { /* We want to return only if errno is ENOENT. */ if (errno == ENOENT) @@ -2423,6 +2423,21 @@ On Unix, this is a name starting with a `/' or a `~'. */) return file_name_absolute_p (SSDATA (filename)) ? Qt : Qnil; } +/* Return true if FILENAME exists. */ +bool +check_existing (const char *filename) +{ +#ifdef DOS_NT + /* The full emulation of Posix 'stat' is too expensive on + DOS/Windows, when all we want to know is whether the file exists. + So we use 'access' instead, which is much more lightweight. */ + return (access (filename, F_OK) >= 0); +#else + struct stat st; + return (stat (filename, &st) >= 0); +#endif +} + /* Return true if file FILENAME exists and can be executed. */ static bool @@ -2490,7 +2505,6 @@ Use `file-symlink-p' to test for such links. */) { Lisp_Object absname; Lisp_Object handler; - struct stat statbuf; CHECK_STRING (filename); absname = Fexpand_file_name (filename, Qnil); @@ -2503,7 +2517,7 @@ Use `file-symlink-p' to test for such links. */) absname = ENCODE_FILE (absname); - return (stat (SSDATA (absname), &statbuf) >= 0) ? Qt : Qnil; + return (check_existing (SSDATA (absname))) ? Qt : Qnil; } DEFUN ("file-executable-p", Ffile_executable_p, Sfile_executable_p, 1, 1, 0, @@ -2584,7 +2598,6 @@ DEFUN ("file-writable-p", Ffile_writable_p, Sfile_writable_p, 1, 1, 0, { Lisp_Object absname, dir, encoded; Lisp_Object handler; - struct stat statbuf; CHECK_STRING (filename); absname = Fexpand_file_name (filename, Qnil); @@ -2596,7 +2609,7 @@ DEFUN ("file-writable-p", Ffile_writable_p, Sfile_writable_p, 1, 1, 0, return call2 (handler, Qfile_writable_p, absname); encoded = ENCODE_FILE (absname); - if (stat (SSDATA (encoded), &statbuf) >= 0) + if (check_existing (SSDATA (encoded))) return (check_writable (SSDATA (encoded)) ? Qt : Qnil); @@ -2611,9 +2624,7 @@ DEFUN ("file-writable-p", Ffile_writable_p, Sfile_writable_p, 1, 1, 0, /* The read-only attribute of the parent directory doesn't affect whether a file or directory can be created within it. Some day we should check ACLs though, which do affect this. */ - if (stat (SDATA (dir), &statbuf) < 0) - return Qnil; - return S_ISDIR (statbuf.st_mode) ? Qt : Qnil; + return (access (SDATA (dir), D_OK) < 0) ? Qnil : Qt; #else return (check_writable (!NILP (dir) ? SSDATA (dir) : "") ? Qt : Qnil); diff --git a/src/lisp.h b/src/lisp.h index 62e287561cd..7afe7b373fe 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3182,6 +3182,7 @@ extern void internal_delete_file (Lisp_Object); extern void syms_of_fileio (void); extern Lisp_Object make_temp_name (Lisp_Object, bool); extern Lisp_Object Qdelete_file; +extern bool check_existing (const char *); /* Defined in search.c. */ extern void shrink_regexp_cache (void); diff --git a/src/lread.c b/src/lread.c index dbbde694cf6..6d4c0d990af 100644 --- a/src/lread.c +++ b/src/lread.c @@ -1449,7 +1449,6 @@ openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, Lisp_Object *sto bool absolute = 0; ptrdiff_t want_length; Lisp_Object filename; - struct stat st; struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5, gcpro6; Lisp_Object string, tail, encoded_fn; ptrdiff_t max_suffix_len = 0; @@ -1543,11 +1542,18 @@ openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, Lisp_Object *sto } else { +#ifndef WINDOWSNT + struct stat st; +#endif const char *pfn; encoded_fn = ENCODE_FILE (string); pfn = SSDATA (encoded_fn); +#ifdef WINDOWSNT + exists = access (pfn, F_OK) == 0 && access (pfn, D_OK) < 0; +#else exists = (stat (pfn, &st) == 0 && ! S_ISDIR (st.st_mode)); +#endif if (exists) { /* Check that we can access or open it. */ diff --git a/src/w32.c b/src/w32.c index b50cd13517d..15903dbceb3 100644 --- a/src/w32.c +++ b/src/w32.c @@ -1612,7 +1612,6 @@ init_environment (char ** argv) LPBYTE lpval; DWORD dwType; char locale_name[32]; - struct stat ignored; char default_home[MAX_PATH]; int appdata = 0; @@ -1653,7 +1652,7 @@ init_environment (char ** argv) /* For backwards compatibility, check if a .emacs file exists in C:/ If not, then we can try to default to the appdata directory under the user's profile, which is more likely to be writable. */ - if (stat ("C:/.emacs", &ignored) < 0) + if (check_existing ("C:/.emacs")) { HRESULT profile_result; /* Dynamically load ShGetFolderPath, as it won't exist on versions From 2a9f10991526ca34765c3eb17c412a2928e6c9a3 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 12 Oct 2012 17:22:50 +0200 Subject: [PATCH 187/272] Update dependencies in src/makefile.w32-in. src/makefile.w32-in ($(BLD)/fileio.$(O)): Add sys/file.h. --- src/ChangeLog | 2 ++ src/makefile.w32-in | 1 + 2 files changed, 3 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index 76f0226c0bf..e2ed9293668 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,7 @@ 2012-10-12 Eli Zaretskii + * makefile.w32-in ($(BLD)/fileio.$(O)): Add sys/file.h. + * fileio.c (check_existing): New function. (make_temp_name, Ffile_exists_p, Ffile_writable_p): Call it instead of calling 'stat', when what's needed is to check whether diff --git a/src/makefile.w32-in b/src/makefile.w32-in index 40a075dbf3c..97e303a01d4 100644 --- a/src/makefile.w32-in +++ b/src/makefile.w32-in @@ -835,6 +835,7 @@ $(BLD)/fileio.$(O) : \ $(NT_INC)/pwd.h \ $(NT_INC)/sys/stat.h \ $(NT_INC)/unistd.h \ + $(NT_INC)/sys/file.h \ $(BUFFER_H) \ $(CHARACTER_H) \ $(CODING_H) \ From 99b1553e07ec5e14dece78fa2ae28a5aec438444 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 12 Oct 2012 17:30:06 +0200 Subject: [PATCH 188/272] Fix typo in last change. --- src/w32.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/w32.c b/src/w32.c index 15903dbceb3..babbcc6df9f 100644 --- a/src/w32.c +++ b/src/w32.c @@ -1652,7 +1652,7 @@ init_environment (char ** argv) /* For backwards compatibility, check if a .emacs file exists in C:/ If not, then we can try to default to the appdata directory under the user's profile, which is more likely to be writable. */ - if (check_existing ("C:/.emacs")) + if (!check_existing ("C:/.emacs")) { HRESULT profile_result; /* Dynamically load ShGetFolderPath, as it won't exist on versions From c40239dff913de4a404f97568a755deb2086db76 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Fri, 12 Oct 2012 18:32:40 +0200 Subject: [PATCH 189/272] src/makefile.w32-in ($(BLD)/w32select.$(O)): Update dependencies. --- src/ChangeLog | 4 ++++ src/makefile.w32-in | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index e2ed9293668..42f96587ccc 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-12 Juanma Barranquero + + * makefile.w32-in ($(BLD)/w32select.$(O)): Update dependencies. + 2012-10-12 Eli Zaretskii * makefile.w32-in ($(BLD)/fileio.$(O)): Add sys/file.h. diff --git a/src/makefile.w32-in b/src/makefile.w32-in index 97e303a01d4..2acce9c123f 100644 --- a/src/makefile.w32-in +++ b/src/makefile.w32-in @@ -833,9 +833,9 @@ $(BLD)/fileio.$(O) : \ $(SRC)/blockinput.h \ $(SRC)/commands.h \ $(NT_INC)/pwd.h \ + $(NT_INC)/sys/file.h \ $(NT_INC)/sys/stat.h \ $(NT_INC)/unistd.h \ - $(NT_INC)/sys/file.h \ $(BUFFER_H) \ $(CHARACTER_H) \ $(CODING_H) \ @@ -1633,6 +1633,7 @@ $(BLD)/w32select.$(O) : \ $(CHARSET_H) \ $(CODING_H) \ $(CONFIG_H) \ + $(KEYBOARD_H) \ $(LISP_H) \ $(W32TERM_H) From 167e3640f16a3825f6189111caf86a743e5282e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Fri, 12 Oct 2012 19:50:39 +0200 Subject: [PATCH 190/272] * nsterm.m (hold_event_q): New static variable. (EV_TRAILER, sendScrollEventAtLoc:fromEvent:): Call hold_event if ! q_event_ptr. (hold_event): New function. (ns_read_socket): If hold_event_q have events, store them and return. (setPosition:portion:whole:): Send SIGIO to ourselves if apploopnr is zero (Bug#12384). --- src/ChangeLog | 11 +++++++++++ src/nsterm.m | 39 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 42f96587ccc..d6429501059 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,14 @@ +2012-10-12 Jan Djärv + + * nsterm.m (hold_event_q): New static variable. + (EV_TRAILER, sendScrollEventAtLoc:fromEvent:): Call hold_event if + ! q_event_ptr. + (hold_event): New function. + (ns_read_socket): If hold_event_q have events, store them and + return (Bug#12384). + (setPosition:portion:whole:): Send SIGIO to ourselves if apploopnr + is zero (Bug#12384). + 2012-10-12 Juanma Barranquero * makefile.w32-in ($(BLD)/w32select.$(O)): Update dependencies. diff --git a/src/nsterm.m b/src/nsterm.m index 1d935fc76de..98dd0a8aab1 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -208,6 +208,13 @@ Updated by Christian Limpach (chris@nice.ch) *ns_pending_service_args; static BOOL ns_do_open_file = NO; +static struct { + struct input_event *q; + int nr, cap; +} hold_event_q = { + NULL, 0, 0 +}; + /* Convert modifiers in a NeXTstep event to emacs style modifiers. */ #define NS_FUNCTION_KEY_MASK 0x800000 #define NSLeftControlKeyMask (0x000001 | NSControlKeyMask) @@ -273,7 +280,7 @@ Updated by Christian Limpach (chris@nice.ch) kbd_buffer_store_event_hold (emacs_event, q_event_ptr); \ } \ else \ - kbd_buffer_store_event (emacs_event); \ + hold_event (emacs_event); \ EVENT_INIT (*emacs_event); \ ns_send_appdefined (-1); \ } @@ -292,6 +299,19 @@ Updated by Christian Limpach (chris@nice.ch) ========================================================================== */ +static void +hold_event (struct input_event *event) +{ + if (hold_event_q.nr == hold_event_q.cap) + { + if (hold_event_q.cap == 0) hold_event_q.cap = 10; + else hold_event_q.cap *= 2; + hold_event_q.q = (struct input_event *) + xrealloc (hold_event_q.q, hold_event_q.cap * sizeof (*hold_event_q.q)); + } + + hold_event_q.q[hold_event_q.nr++] = *event; +} static Lisp_Object append2 (Lisp_Object list, Lisp_Object item) @@ -3348,6 +3368,15 @@ overwriting cursor (usually when cursor on a tab) */ if ([NSApp modalWindow] != nil) return -1; + if (hold_event_q.nr > 0) + { + int i; + for (i = 0; i < hold_event_q.nr; ++i) + kbd_buffer_store_event_hold (&hold_event_q.q[i], hold_quit); + hold_event_q.nr = 0; + return i; + } + block_input (); n_emacs_events_pending = 0; EVENT_INIT (ev); @@ -6645,6 +6674,12 @@ - (int) checkSamePosition: (int) position portion: (int) portion [self setFloatValue: pos knobProportion: por]; #endif } + + /* Events may come here even if the event loop is not running. + If we don't enter the event loop, the scroll bar will not update. + So send SIGIO to ourselves. */ + if (apploopnr == 0) kill (0, SIGIO); + return self; } @@ -6685,7 +6720,7 @@ - (void) sendScrollEventAtLoc: (float)loc fromEvent: (NSEvent *)e kbd_buffer_store_event_hold (emacs_event, q_event_ptr); } else - kbd_buffer_store_event (emacs_event); + hold_event (emacs_event); EVENT_INIT (*emacs_event); ns_send_appdefined (-1); } From 57e5e467de9748256c96c5f3bda3e5dcb766e896 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Fri, 12 Oct 2012 15:08:23 -0400 Subject: [PATCH 191/272] * lisp/ldefs-boot.el: Update to reflect earlier fix in autoload.el --- lisp/ldefs-boot.el | 1946 ++++++++++++++++++++++---------------------- 1 file changed, 980 insertions(+), 966 deletions(-) diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index a16d69c6cc2..7f09fd1d623 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -5,7 +5,7 @@ ;;;### (autoloads (5x5-crack 5x5-crack-xor-mutate 5x5-crack-mutating-best ;;;;;; 5x5-crack-mutating-current 5x5-crack-randomly 5x5) "5x5" -;;;;;; "play/5x5.el" (20545 57511 257469 0)) +;;;;;; "play/5x5.el" (20550 14882 0 0)) ;;; Generated autoloads from play/5x5.el (autoload '5x5 "5x5" "\ @@ -68,7 +68,7 @@ should return a grid vector array that is the new solution. ;;;*** ;;;### (autoloads (ada-mode ada-add-extensions) "ada-mode" "progmodes/ada-mode.el" -;;;;;; (20576 42138 697312 0)) +;;;;;; (20577 48876 0 0)) ;;; Generated autoloads from progmodes/ada-mode.el (autoload 'ada-add-extensions "ada-mode" "\ @@ -88,7 +88,7 @@ Ada mode is the major mode for editing Ada code. ;;;*** ;;;### (autoloads (ada-header) "ada-stmt" "progmodes/ada-stmt.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from progmodes/ada-stmt.el (autoload 'ada-header "ada-stmt" "\ @@ -99,7 +99,7 @@ Insert a descriptive header at the top of the file. ;;;*** ;;;### (autoloads (ada-find-file) "ada-xref" "progmodes/ada-xref.el" -;;;;;; (20458 56750 651721 0)) +;;;;;; (20460 33749 0 0)) ;;; Generated autoloads from progmodes/ada-xref.el (autoload 'ada-find-file "ada-xref" "\ @@ -114,7 +114,7 @@ Completion is available. ;;;;;; add-change-log-entry-other-window add-change-log-entry find-change-log ;;;;;; prompt-for-change-log-name add-log-mailing-address add-log-full-name ;;;;;; add-log-current-defun-function) "add-log" "vc/add-log.el" -;;;;;; (20523 62082 997685 0)) +;;;;;; (20589 46442 0 0)) ;;; Generated autoloads from vc/add-log.el (put 'change-log-default-name 'safe-local-variable 'string-or-null-p) @@ -253,7 +253,7 @@ old-style time formats for entries are supported. ;;;### (autoloads (defadvice ad-activate ad-add-advice ad-disable-advice ;;;;;; ad-enable-advice ad-default-compilation-action ad-redefinition-action) -;;;;;; "advice" "emacs-lisp/advice.el" (20563 51044 242568 0)) +;;;;;; "advice" "emacs-lisp/advice.el" (20567 31133 0 0)) ;;; Generated autoloads from emacs-lisp/advice.el (defvar ad-redefinition-action 'warn "\ @@ -398,7 +398,7 @@ usage: (defadvice FUNCTION (CLASS NAME [POSITION] [ARGLIST] FLAG...) ;;;### (autoloads (align-newline-and-indent align-unhighlight-rule ;;;;;; align-highlight-rule align-current align-entire align-regexp -;;;;;; align) "align" "align.el" (20566 63671 243798 0)) +;;;;;; align) "align" "align.el" (20567 31133 0 0)) ;;; Generated autoloads from align.el (autoload 'align "align" "\ @@ -489,7 +489,7 @@ A replacement function for `newline-and-indent', aligning as it goes. ;;;### (autoloads (outlineify-sticky allout-mode allout-mode-p allout-auto-activation ;;;;;; allout-setup allout-auto-activation-helper) "allout" "allout.el" -;;;;;; (20577 33959 40183 0)) +;;;;;; (20577 48876 0 0)) ;;; Generated autoloads from allout.el (autoload 'allout-auto-activation-helper "allout" "\ @@ -850,7 +850,7 @@ for details on preparing Emacs for automatic allout activation. ;;;### (autoloads (allout-widgets-mode allout-widgets-auto-activation ;;;;;; allout-widgets-setup allout-widgets) "allout-widgets" "allout-widgets.el" -;;;;;; (20545 57511 257469 0)) +;;;;;; (20550 14882 0 0)) ;;; Generated autoloads from allout-widgets.el (let ((loads (get 'allout-widgets 'custom-loads))) (if (member '"allout-widgets" loads) nil (put 'allout-widgets 'custom-loads (cons '"allout-widgets" loads)))) @@ -910,7 +910,7 @@ outline hot-spot navigation (see `allout-mode'). ;;;*** ;;;### (autoloads (ange-ftp-hook-function ange-ftp-reread-dir) "ange-ftp" -;;;;;; "net/ange-ftp.el" (20566 63671 243798 0)) +;;;;;; "net/ange-ftp.el" (20567 31133 0 0)) ;;; Generated autoloads from net/ange-ftp.el (defalias 'ange-ftp-re-read-dir 'ange-ftp-reread-dir) @@ -932,7 +932,7 @@ directory, so that Emacs will know its current contents. ;;;*** ;;;### (autoloads (animate-birthday-present animate-sequence animate-string) -;;;;;; "animate" "play/animate.el" (20545 57511 257469 0)) +;;;;;; "animate" "play/animate.el" (20550 14882 0 0)) ;;; Generated autoloads from play/animate.el (autoload 'animate-string "animate" "\ @@ -965,7 +965,7 @@ the buffer *Birthday-Present-for-Name*. ;;;*** ;;;### (autoloads (ansi-color-process-output ansi-color-for-comint-mode-on) -;;;;;; "ansi-color" "ansi-color.el" (20577 33959 40183 0)) +;;;;;; "ansi-color" "ansi-color.el" (20577 48876 0 0)) ;;; Generated autoloads from ansi-color.el (autoload 'ansi-color-for-comint-mode-on "ansi-color" "\ @@ -991,8 +991,7 @@ This is a good function to put in `comint-output-filter-functions'. ;;;*** ;;;### (autoloads (antlr-set-tabs antlr-mode antlr-show-makefile-rules) -;;;;;; "antlr-mode" "progmodes/antlr-mode.el" (20566 63671 243798 -;;;;;; 0)) +;;;;;; "antlr-mode" "progmodes/antlr-mode.el" (20567 31133 0 0)) ;;; Generated autoloads from progmodes/antlr-mode.el (autoload 'antlr-show-makefile-rules "antlr-mode" "\ @@ -1028,7 +1027,7 @@ Used in `antlr-mode'. Also a useful function in `java-mode-hook'. ;;;*** ;;;### (autoloads (appt-activate appt-add) "appt" "calendar/appt.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from calendar/appt.el (autoload 'appt-add "appt" "\ @@ -1051,8 +1050,8 @@ ARG is positive, otherwise off. ;;;### (autoloads (apropos-documentation apropos-value apropos-library ;;;;;; apropos apropos-documentation-property apropos-command apropos-variable -;;;;;; apropos-read-pattern) "apropos" "apropos.el" (20523 62082 -;;;;;; 997685 0)) +;;;;;; apropos-read-pattern) "apropos" "apropos.el" (20523 63054 +;;;;;; 0 0)) ;;; Generated autoloads from apropos.el (autoload 'apropos-read-pattern "apropos" "\ @@ -1161,7 +1160,7 @@ Returns list of symbols and documentation found. ;;;*** ;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (20585 -;;;;;; 28088 480237 0)) +;;;;;; 55103 0 0)) ;;; Generated autoloads from arc-mode.el (autoload 'archive-mode "arc-mode" "\ @@ -1181,7 +1180,7 @@ archive. ;;;*** -;;;### (autoloads (array-mode) "array" "array.el" (20355 10021 546955 +;;;### (autoloads (array-mode) "array" "array.el" (20244 35516 0 ;;;;;; 0)) ;;; Generated autoloads from array.el @@ -1254,7 +1253,7 @@ Entering array mode calls the function `array-mode-hook'. ;;;*** ;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (20513 -;;;;;; 18948 537867 0)) +;;;;;; 36786 0 0)) ;;; Generated autoloads from textmodes/artist.el (autoload 'artist-mode "artist" "\ @@ -1459,8 +1458,8 @@ Keymap summary ;;;*** -;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (20356 +;;;;;; 35090 0 0)) ;;; Generated autoloads from progmodes/asm-mode.el (autoload 'asm-mode "asm-mode" "\ @@ -1488,7 +1487,7 @@ Special commands: ;;;*** ;;;### (autoloads (auth-source-cache-expiry) "auth-source" "gnus/auth-source.el" -;;;;;; (20544 36659 880486 0)) +;;;;;; (20544 52783 0 0)) ;;; Generated autoloads from gnus/auth-source.el (defvar auth-source-cache-expiry 7200 "\ @@ -1501,7 +1500,7 @@ let-binding.") ;;;*** ;;;### (autoloads (autoarg-kp-mode autoarg-mode) "autoarg" "autoarg.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from autoarg.el (defvar autoarg-mode nil "\ @@ -1562,7 +1561,7 @@ This is similar to `autoarg-mode' but rebinds the keypad keys ;;;*** ;;;### (autoloads (autoconf-mode) "autoconf" "progmodes/autoconf.el" -;;;;;; (20513 18948 537867 0)) +;;;;;; (20513 16153 0 0)) ;;; Generated autoloads from progmodes/autoconf.el (autoload 'autoconf-mode "autoconf" "\ @@ -1573,7 +1572,7 @@ Major mode for editing Autoconf configure.ac files. ;;;*** ;;;### (autoloads (auto-insert-mode define-auto-insert auto-insert) -;;;;;; "autoinsert" "autoinsert.el" (20566 63671 243798 0)) +;;;;;; "autoinsert" "autoinsert.el" (20567 31133 0 0)) ;;; Generated autoloads from autoinsert.el (autoload 'auto-insert "autoinsert" "\ @@ -1613,7 +1612,7 @@ insert a template for the file depending on the mode of the buffer. ;;;### (autoloads (batch-update-autoloads update-directory-autoloads ;;;;;; update-file-autoloads) "autoload" "emacs-lisp/autoload.el" -;;;;;; (20518 12580 46478 0)) +;;;;;; (20600 16892 0 0)) ;;; Generated autoloads from emacs-lisp/autoload.el (put 'generated-autoload-file 'safe-local-variable 'stringp) @@ -1664,7 +1663,7 @@ should be non-nil). ;;;### (autoloads (global-auto-revert-mode turn-on-auto-revert-tail-mode ;;;;;; auto-revert-tail-mode turn-on-auto-revert-mode auto-revert-mode) -;;;;;; "autorevert" "autorevert.el" (20476 31768 298871 0)) +;;;;;; "autorevert" "autorevert.el" (20511 52965 0 0)) ;;; Generated autoloads from autorevert.el (autoload 'auto-revert-mode "autorevert" "\ @@ -1753,7 +1752,7 @@ specifies in the mode line. ;;;*** ;;;### (autoloads (mouse-avoidance-mode mouse-avoidance-mode) "avoid" -;;;;;; "avoid.el" (20476 31768 298871 0)) +;;;;;; "avoid.el" (20600 16892 0 0)) ;;; Generated autoloads from avoid.el (defvar mouse-avoidance-mode nil "\ @@ -1794,7 +1793,7 @@ definition of \"random distance\".) ;;;*** ;;;### (autoloads (display-battery-mode battery) "battery" "battery.el" -;;;;;; (20476 31768 298871 0)) +;;;;;; (20600 16892 0 0)) ;;; Generated autoloads from battery.el (put 'battery-mode-line-string 'risky-local-variable t) @@ -1830,8 +1829,7 @@ seconds. ;;;*** ;;;### (autoloads (benchmark benchmark-run-compiled benchmark-run) -;;;;;; "benchmark" "emacs-lisp/benchmark.el" (20557 48712 315579 -;;;;;; 0)) +;;;;;; "benchmark" "emacs-lisp/benchmark.el" (20559 38659 0 0)) ;;; Generated autoloads from emacs-lisp/benchmark.el (autoload 'benchmark-run "benchmark" "\ @@ -1868,7 +1866,7 @@ For non-interactive use see also `benchmark-run' and ;;;*** ;;;### (autoloads (bibtex-search-entry bibtex-mode bibtex-initialize) -;;;;;; "bibtex" "textmodes/bibtex.el" (20576 13095 881042 0)) +;;;;;; "bibtex" "textmodes/bibtex.el" (20577 48876 0 0)) ;;; Generated autoloads from textmodes/bibtex.el (autoload 'bibtex-initialize "bibtex" "\ @@ -1957,7 +1955,7 @@ A prefix arg negates the value of `bibtex-search-entry-globally'. ;;;*** ;;;### (autoloads (bibtex-style-mode) "bibtex-style" "textmodes/bibtex-style.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from textmodes/bibtex-style.el (autoload 'bibtex-style-mode "bibtex-style" "\ @@ -1969,7 +1967,7 @@ Major mode for editing BibTeX style files. ;;;### (autoloads (binhex-decode-region binhex-decode-region-external ;;;;;; binhex-decode-region-internal) "binhex" "mail/binhex.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20356 35090 0 0)) ;;; Generated autoloads from mail/binhex.el (defconst binhex-begin-line "^:...............................................................$" "\ @@ -1993,8 +1991,8 @@ Binhex decode region between START and END. ;;;*** -;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (20551 -;;;;;; 9899 283417 0)) +;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (20553 +;;;;;; 2323 0 0)) ;;; Generated autoloads from play/blackbox.el (autoload 'blackbox "blackbox" "\ @@ -2117,7 +2115,7 @@ a reflection. ;;;;;; bookmark-save bookmark-write bookmark-delete bookmark-insert ;;;;;; bookmark-rename bookmark-insert-location bookmark-relocate ;;;;;; bookmark-jump-other-window bookmark-jump bookmark-set) "bookmark" -;;;;;; "bookmark.el" (20585 28088 480237 0)) +;;;;;; "bookmark.el" (20589 46442 0 0)) ;;; Generated autoloads from bookmark.el (define-key ctl-x-r-map "b" 'bookmark-jump) (define-key ctl-x-r-map "m" 'bookmark-set) @@ -2318,7 +2316,7 @@ Incremental search of bookmarks, hiding the non-matches as we go. ;;;;;; browse-url-xdg-open browse-url-at-mouse browse-url-at-point ;;;;;; browse-url browse-url-of-region browse-url-of-dired-file ;;;;;; browse-url-of-buffer browse-url-of-file browse-url-browser-function) -;;;;;; "browse-url" "net/browse-url.el" (20566 63671 243798 0)) +;;;;;; "browse-url" "net/browse-url.el" (20567 31133 0 0)) ;;; Generated autoloads from net/browse-url.el (defvar browse-url-browser-function 'browse-url-default-browser "\ @@ -2634,7 +2632,7 @@ from `browse-url-elinks-wrapper'. ;;;*** ;;;### (autoloads (bs-show bs-customize bs-cycle-previous bs-cycle-next) -;;;;;; "bs" "bs.el" (20576 13095 881042 0)) +;;;;;; "bs" "bs.el" (20577 48876 0 0)) ;;; Generated autoloads from bs.el (autoload 'bs-cycle-next "bs" "\ @@ -2674,8 +2672,8 @@ name of buffer configuration. ;;;*** -;;;### (autoloads (bubbles) "bubbles" "play/bubbles.el" (20566 63671 -;;;;;; 243798 0)) +;;;### (autoloads (bubbles) "bubbles" "play/bubbles.el" (20567 31133 +;;;;;; 0 0)) ;;; Generated autoloads from play/bubbles.el (autoload 'bubbles "bubbles" "\ @@ -2697,7 +2695,7 @@ columns on its right towards the left. ;;;*** ;;;### (autoloads (bug-reference-prog-mode bug-reference-mode) "bug-reference" -;;;;;; "progmodes/bug-reference.el" (20532 45476 981297 0)) +;;;;;; "progmodes/bug-reference.el" (20600 16892 0 0)) ;;; Generated autoloads from progmodes/bug-reference.el (put 'bug-reference-url-format 'safe-local-variable (lambda (s) (or (stringp s) (and (symbolp s) (get s 'bug-reference-url-format))))) @@ -2721,7 +2719,7 @@ Like `bug-reference-mode', but only buttonize in comments and strings. ;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile ;;;;;; compile-defun byte-compile-file byte-recompile-directory ;;;;;; byte-force-recompile byte-compile-enable-warning byte-compile-disable-warning) -;;;;;; "bytecomp" "emacs-lisp/bytecomp.el" (20585 28088 480237 0)) +;;;;;; "bytecomp" "emacs-lisp/bytecomp.el" (20600 16892 0 0)) ;;; Generated autoloads from emacs-lisp/bytecomp.el (put 'byte-compile-dynamic 'safe-local-variable 'booleanp) (put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp) @@ -2841,8 +2839,8 @@ and corresponding effects. ;;;*** -;;;### (autoloads nil "cal-china" "calendar/cal-china.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads nil "cal-china" "calendar/cal-china.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from calendar/cal-china.el (put 'calendar-chinese-time-zone 'risky-local-variable t) @@ -2851,8 +2849,8 @@ and corresponding effects. ;;;*** -;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (20461 32935 -;;;;;; 300400 0)) +;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (20468 36126 +;;;;;; 0 0)) ;;; Generated autoloads from calendar/cal-dst.el (put 'calendar-daylight-savings-starts 'risky-local-variable t) @@ -2864,7 +2862,7 @@ and corresponding effects. ;;;*** ;;;### (autoloads (calendar-hebrew-list-yahrzeits) "cal-hebrew" "calendar/cal-hebrew.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20290 33419 0 0)) ;;; Generated autoloads from calendar/cal-hebrew.el (autoload 'calendar-hebrew-list-yahrzeits "cal-hebrew" "\ @@ -2880,8 +2878,8 @@ from the cursor position. ;;;### (autoloads (defmath calc-embedded-activate calc-embedded calc-grab-rectangle ;;;;;; calc-grab-region full-calc-keypad calc-keypad calc-eval quick-calc -;;;;;; full-calc calc calc-dispatch) "calc" "calc/calc.el" (20572 -;;;;;; 16038 402143 0)) +;;;;;; full-calc calc calc-dispatch) "calc" "calc/calc.el" (20600 +;;;;;; 16892 0 0)) ;;; Generated autoloads from calc/calc.el (define-key ctl-x-map "*" 'calc-dispatch) @@ -2965,8 +2963,8 @@ See Info node `(calc)Defining Functions'. ;;;*** -;;;### (autoloads (calc-undo) "calc-undo" "calc/calc-undo.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (calc-undo) "calc-undo" "calc/calc-undo.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from calc/calc-undo.el (autoload 'calc-undo "calc-undo" "\ @@ -2976,8 +2974,8 @@ See Info node `(calc)Defining Functions'. ;;;*** -;;;### (autoloads (calculator) "calculator" "calculator.el" (20476 -;;;;;; 31768 298871 0)) +;;;### (autoloads (calculator) "calculator" "calculator.el" (20511 +;;;;;; 52965 0 0)) ;;; Generated autoloads from calculator.el (autoload 'calculator "calculator" "\ @@ -2988,8 +2986,8 @@ See the documentation for `calculator-mode' for more information. ;;;*** -;;;### (autoloads (calendar) "calendar" "calendar/calendar.el" (20577 -;;;;;; 33959 40183 0)) +;;;### (autoloads (calendar) "calendar" "calendar/calendar.el" (20600 +;;;;;; 16892 0 0)) ;;; Generated autoloads from calendar/calendar.el (autoload 'calendar "calendar" "\ @@ -3033,7 +3031,7 @@ This function is suitable for execution in an init file. ;;;*** ;;;### (autoloads (canlock-verify canlock-insert-header) "canlock" -;;;;;; "gnus/canlock.el" (20355 10021 546955 0)) +;;;;;; "gnus/canlock.el" (20244 35516 0 0)) ;;; Generated autoloads from gnus/canlock.el (autoload 'canlock-insert-header "canlock" "\ @@ -3051,7 +3049,7 @@ it fails. ;;;*** ;;;### (autoloads (capitalized-words-mode) "cap-words" "progmodes/cap-words.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from progmodes/cap-words.el (autoload 'capitalized-words-mode "cap-words" "\ @@ -3090,15 +3088,15 @@ Obsoletes `c-forward-into-nomenclature'. ;;;*** -;;;### (autoloads nil "cc-compat" "progmodes/cc-compat.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads nil "cc-compat" "progmodes/cc-compat.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from progmodes/cc-compat.el (put 'c-indent-level 'safe-local-variable 'integerp) ;;;*** ;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el" -;;;;;; (20557 48712 315579 0)) +;;;;;; (20559 38659 0 0)) ;;; Generated autoloads from progmodes/cc-engine.el (autoload 'c-guess-basic-syntax "cc-engine" "\ @@ -3110,8 +3108,8 @@ Return the syntactic context of the current line. ;;;### (autoloads (c-guess-install c-guess-region-no-install c-guess-region ;;;;;; c-guess-buffer-no-install c-guess-buffer c-guess-no-install -;;;;;; c-guess) "cc-guess" "progmodes/cc-guess.el" (20355 10021 -;;;;;; 546955 0)) +;;;;;; c-guess) "cc-guess" "progmodes/cc-guess.el" (20276 3849 0 +;;;;;; 0)) ;;; Generated autoloads from progmodes/cc-guess.el (defvar c-guess-guessed-offsets-alist nil "\ @@ -3211,7 +3209,7 @@ the absolute file name of the file if STYLE-NAME is nil. ;;;### (autoloads (awk-mode pike-mode idl-mode java-mode objc-mode ;;;;;; c++-mode c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el" -;;;;;; (20416 44451 205563 0)) +;;;;;; (20419 46656 0 0)) ;;; Generated autoloads from progmodes/cc-mode.el (autoload 'c-initialize-cc-mode "cc-mode" "\ @@ -3388,7 +3386,7 @@ Key bindings: ;;;*** ;;;### (autoloads (c-set-offset c-add-style c-set-style) "cc-styles" -;;;;;; "progmodes/cc-styles.el" (20566 63671 243798 0)) +;;;;;; "progmodes/cc-styles.el" (20567 31133 0 0)) ;;; Generated autoloads from progmodes/cc-styles.el (autoload 'c-set-style "cc-styles" "\ @@ -3439,8 +3437,8 @@ and exists only for compatibility reasons. ;;;*** -;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (20600 16892 +;;;;;; 0 0)) ;;; Generated autoloads from progmodes/cc-vars.el (put 'c-basic-offset 'safe-local-variable 'integerp) (put 'c-backslash-column 'safe-local-variable 'integerp) @@ -3450,7 +3448,7 @@ and exists only for compatibility reasons. ;;;### (autoloads (ccl-execute-with-args check-ccl-program define-ccl-program ;;;;;; declare-ccl-program ccl-dump ccl-compile) "ccl" "international/ccl.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from international/ccl.el (autoload 'ccl-compile "ccl" "\ @@ -3711,7 +3709,7 @@ See the documentation of `define-ccl-program' for the detail of CCL program. ;;;*** ;;;### (autoloads (cconv-closure-convert) "cconv" "emacs-lisp/cconv.el" -;;;;;; (20453 5437 764254 0)) +;;;;;; (20452 43334 0 0)) ;;; Generated autoloads from emacs-lisp/cconv.el (autoload 'cconv-closure-convert "cconv" "\ @@ -3726,7 +3724,7 @@ Returns a form where all lambdas don't have any free variables. ;;;*** ;;;### (autoloads (cfengine-auto-mode cfengine2-mode cfengine3-mode) -;;;;;; "cfengine" "progmodes/cfengine.el" (20355 10021 546955 0)) +;;;;;; "cfengine" "progmodes/cfengine.el" (20356 35090 0 0)) ;;; Generated autoloads from progmodes/cfengine.el (autoload 'cfengine3-mode "cfengine" "\ @@ -3756,7 +3754,7 @@ on the buffer contents ;;;*** ;;;### (autoloads (check-declare-directory check-declare-file) "check-declare" -;;;;;; "emacs-lisp/check-declare.el" (20378 29222 722320 0)) +;;;;;; "emacs-lisp/check-declare.el" (20380 26775 0 0)) ;;; Generated autoloads from emacs-lisp/check-declare.el (autoload 'check-declare-file "check-declare" "\ @@ -3781,7 +3779,7 @@ Returns non-nil if any false statements are found. ;;;;;; checkdoc-comments checkdoc-continue checkdoc-start checkdoc-current-buffer ;;;;;; checkdoc-eval-current-buffer checkdoc-message-interactive ;;;;;; checkdoc-interactive checkdoc checkdoc-list-of-strings-p) -;;;;;; "checkdoc" "emacs-lisp/checkdoc.el" (20388 65061 302484 0)) +;;;;;; "checkdoc" "emacs-lisp/checkdoc.el" (20412 11425 0 0)) ;;; Generated autoloads from emacs-lisp/checkdoc.el (put 'checkdoc-force-docstrings-flag 'safe-local-variable 'booleanp) (put 'checkdoc-force-history-flag 'safe-local-variable 'booleanp) @@ -3977,7 +3975,7 @@ checking of documentation strings. ;;;### (autoloads (pre-write-encode-hz post-read-decode-hz encode-hz-buffer ;;;;;; encode-hz-region decode-hz-buffer decode-hz-region) "china-util" -;;;;;; "language/china-util.el" (20355 10021 546955 0)) +;;;;;; "language/china-util.el" (20244 35516 0 0)) ;;; Generated autoloads from language/china-util.el (autoload 'decode-hz-region "china-util" "\ @@ -4015,7 +4013,7 @@ Encode the text in the current buffer to HZ. ;;;*** ;;;### (autoloads (command-history list-command-history repeat-matching-complex-command) -;;;;;; "chistory" "chistory.el" (20355 10021 546955 0)) +;;;;;; "chistory" "chistory.el" (20244 35516 0 0)) ;;; Generated autoloads from chistory.el (autoload 'repeat-matching-complex-command "chistory" "\ @@ -4055,7 +4053,7 @@ and runs the normal hook `command-history-hook'. ;;;*** ;;;### (autoloads (common-lisp-indent-function) "cl-indent" "emacs-lisp/cl-indent.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20290 33419 0 0)) ;;; Generated autoloads from emacs-lisp/cl-indent.el (autoload 'common-lisp-indent-function "cl-indent" "\ @@ -4133,8 +4131,8 @@ For example, the function `case' has an indent property ;;;*** -;;;### (autoloads nil "cl-lib" "emacs-lisp/cl-lib.el" (20582 12953 -;;;;;; 724727 481000)) +;;;### (autoloads nil "cl-lib" "emacs-lisp/cl-lib.el" (20600 16892 +;;;;;; 0 0)) ;;; Generated autoloads from emacs-lisp/cl-lib.el (define-obsolete-variable-alias 'custom-print-functions 'cl-custom-print-functions "24.3") @@ -4162,7 +4160,7 @@ a future Emacs interpreter will be able to use it.") ;;;*** ;;;### (autoloads (c-macro-expand) "cmacexp" "progmodes/cmacexp.el" -;;;;;; (20566 63671 243798 0)) +;;;;;; (20567 31133 0 0)) ;;; Generated autoloads from progmodes/cmacexp.el (autoload 'c-macro-expand "cmacexp" "\ @@ -4182,8 +4180,8 @@ For use inside Lisp programs, see also `c-macro-expansion'. ;;;*** -;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from cmuscheme.el (autoload 'run-scheme "cmuscheme" "\ @@ -4203,8 +4201,8 @@ is run). ;;;*** -;;;### (autoloads (color-name-to-rgb) "color" "color.el" (20522 9637 -;;;;;; 465791 0)) +;;;### (autoloads (color-name-to-rgb) "color" "color.el" (20592 26321 +;;;;;; 0 0)) ;;; Generated autoloads from color.el (autoload 'color-name-to-rgb "color" "\ @@ -4215,7 +4213,7 @@ string (e.g. \"#ff12ec\"). Normally the return value is a list of three floating-point numbers, (RED GREEN BLUE), each between 0.0 and 1.0 inclusive. -Optional arg FRAME specifies the frame where the color is to be +Optional argument FRAME specifies the frame where the color is to be displayed. If FRAME is omitted or nil, use the selected frame. If FRAME cannot display COLOR, return nil. @@ -4226,7 +4224,7 @@ If FRAME cannot display COLOR, return nil. ;;;### (autoloads (comint-redirect-results-list-from-process comint-redirect-results-list ;;;;;; comint-redirect-send-command-to-process comint-redirect-send-command ;;;;;; comint-run make-comint make-comint-in-buffer) "comint" "comint.el" -;;;;;; (20577 33959 40183 0)) +;;;;;; (20600 16892 0 0)) ;;; Generated autoloads from comint.el (defvar comint-output-filter-functions '(ansi-color-process-output comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt) "\ @@ -4326,7 +4324,7 @@ REGEXP-GROUP is the regular expression group in REGEXP to use. ;;;*** ;;;### (autoloads (compare-windows) "compare-w" "vc/compare-w.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from vc/compare-w.el (autoload 'compare-windows "compare-w" "\ @@ -4363,8 +4361,8 @@ on third call it again advances points to the next difference and so on. ;;;;;; compilation-shell-minor-mode compilation-mode compilation-start ;;;;;; compile compilation-disable-input compile-command compilation-search-path ;;;;;; compilation-ask-about-save compilation-window-height compilation-start-hook -;;;;;; compilation-mode-hook) "compile" "progmodes/compile.el" (20576 -;;;;;; 42138 697312 0)) +;;;;;; compilation-mode-hook) "compile" "progmodes/compile.el" (20577 +;;;;;; 48876 0 0)) ;;; Generated autoloads from progmodes/compile.el (defvar compilation-mode-hook nil "\ @@ -4546,7 +4544,7 @@ This is the value of `next-error-function' in Compilation buffers. ;;;*** ;;;### (autoloads (dynamic-completion-mode) "completion" "completion.el" -;;;;;; (20495 51111 757560 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from completion.el (defvar dynamic-completion-mode nil "\ @@ -4571,7 +4569,7 @@ if ARG is omitted or nil. ;;;### (autoloads (conf-xdefaults-mode conf-ppd-mode conf-colon-mode ;;;;;; conf-space-keywords conf-space-mode conf-javaprop-mode conf-windows-mode ;;;;;; conf-unix-mode conf-mode) "conf-mode" "textmodes/conf-mode.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from textmodes/conf-mode.el (autoload 'conf-mode "conf-mode" "\ @@ -4727,7 +4725,7 @@ For details see `conf-mode'. Example: ;;;*** ;;;### (autoloads (shuffle-vector cookie-snarf cookie-insert cookie) -;;;;;; "cookie1" "play/cookie1.el" (20545 57511 257469 0)) +;;;;;; "cookie1" "play/cookie1.el" (20550 14882 0 0)) ;;; Generated autoloads from play/cookie1.el (autoload 'cookie "cookie1" "\ @@ -4759,8 +4757,8 @@ Randomly permute the elements of VECTOR (all permutations equally likely). ;;;*** ;;;### (autoloads (copyright-update-directory copyright copyright-fix-years -;;;;;; copyright-update) "copyright" "emacs-lisp/copyright.el" (20518 -;;;;;; 12580 46478 0)) +;;;;;; copyright-update) "copyright" "emacs-lisp/copyright.el" (20522 +;;;;;; 30367 0 0)) ;;; Generated autoloads from emacs-lisp/copyright.el (put 'copyright-at-end-flag 'safe-local-variable 'booleanp) (put 'copyright-names-regexp 'safe-local-variable 'stringp) @@ -4799,8 +4797,7 @@ If FIX is non-nil, run `copyright-fix-years' instead. ;;;*** ;;;### (autoloads (cperl-perldoc-at-point cperl-perldoc cperl-mode) -;;;;;; "cperl-mode" "progmodes/cperl-mode.el" (20512 60198 306109 -;;;;;; 0)) +;;;;;; "cperl-mode" "progmodes/cperl-mode.el" (20513 16153 0 0)) ;;; Generated autoloads from progmodes/cperl-mode.el (put 'cperl-indent-level 'safe-local-variable 'integerp) (put 'cperl-brace-offset 'safe-local-variable 'integerp) @@ -4999,7 +4996,7 @@ Run a `perldoc' on the word around point. ;;;*** ;;;### (autoloads (cpp-parse-edit cpp-highlight-buffer) "cpp" "progmodes/cpp.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20356 35090 0 0)) ;;; Generated autoloads from progmodes/cpp.el (autoload 'cpp-highlight-buffer "cpp" "\ @@ -5018,7 +5015,7 @@ Edit display information for cpp conditionals. ;;;*** ;;;### (autoloads (crisp-mode crisp-mode) "crisp" "emulation/crisp.el" -;;;;;; (20523 62082 997685 0)) +;;;;;; (20600 16892 0 0)) ;;; Generated autoloads from emulation/crisp.el (defvar crisp-mode nil "\ @@ -5044,7 +5041,7 @@ if ARG is omitted or nil. ;;;*** ;;;### (autoloads (completing-read-multiple) "crm" "emacs-lisp/crm.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from emacs-lisp/crm.el (autoload 'completing-read-multiple "crm" "\ @@ -5079,8 +5076,8 @@ INHERIT-INPUT-METHOD. ;;;*** -;;;### (autoloads (css-mode) "css-mode" "textmodes/css-mode.el" (20478 -;;;;;; 3673 653810 0)) +;;;### (autoloads (css-mode) "css-mode" "textmodes/css-mode.el" (20511 +;;;;;; 52965 0 0)) ;;; Generated autoloads from textmodes/css-mode.el (autoload 'css-mode "css-mode" "\ @@ -5091,7 +5088,7 @@ Major mode to edit Cascading Style Sheets. ;;;*** ;;;### (autoloads (cua-selection-mode cua-mode) "cua-base" "emulation/cua-base.el" -;;;;;; (20434 17809 692608 0)) +;;;;;; (20434 28080 0 0)) ;;; Generated autoloads from emulation/cua-base.el (defvar cua-mode nil "\ @@ -5151,7 +5148,7 @@ Enable CUA selection mode without the C-z/C-x/C-c/C-v bindings. ;;;;;; customize-mode customize customize-push-and-save customize-save-variable ;;;;;; customize-set-variable customize-set-value custom-menu-sort-alphabetically ;;;;;; custom-buffer-sort-alphabetically custom-browse-sort-alphabetically) -;;;;;; "cus-edit" "cus-edit.el" (20577 33959 40183 0)) +;;;;;; "cus-edit" "cus-edit.el" (20577 48876 0 0)) ;;; Generated autoloads from cus-edit.el (defvar custom-browse-sort-alphabetically nil "\ @@ -5463,8 +5460,8 @@ The format is suitable for use with `easy-menu-define'. ;;;*** ;;;### (autoloads (customize-themes describe-theme custom-theme-visit-theme -;;;;;; customize-create-theme) "cus-theme" "cus-theme.el" (20355 -;;;;;; 10021 546955 0)) +;;;;;; customize-create-theme) "cus-theme" "cus-theme.el" (20336 +;;;;;; 29137 0 0)) ;;; Generated autoloads from cus-theme.el (autoload 'customize-create-theme "cus-theme" "\ @@ -5498,7 +5495,7 @@ omitted, a buffer named *Custom Themes* is used. ;;;*** ;;;### (autoloads (cvs-status-mode) "cvs-status" "vc/cvs-status.el" -;;;;;; (20476 31768 298871 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from vc/cvs-status.el (autoload 'cvs-status-mode "cvs-status" "\ @@ -5509,7 +5506,7 @@ Mode used for cvs status output. ;;;*** ;;;### (autoloads (global-cwarn-mode cwarn-mode) "cwarn" "progmodes/cwarn.el" -;;;;;; (20577 33959 40183 0)) +;;;;;; (20577 48876 0 0)) ;;; Generated autoloads from progmodes/cwarn.el (autoload 'cwarn-mode "cwarn" "\ @@ -5554,7 +5551,7 @@ See `cwarn-mode' for more information on Cwarn mode. ;;;### (autoloads (standard-display-cyrillic-translit cyrillic-encode-alternativnyj-char ;;;;;; cyrillic-encode-koi8-r-char) "cyril-util" "language/cyril-util.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from language/cyril-util.el (autoload 'cyrillic-encode-koi8-r-char "cyril-util" "\ @@ -5583,7 +5580,7 @@ If the argument is nil, we return the display table to its standard state. ;;;*** ;;;### (autoloads (dabbrev-expand dabbrev-completion) "dabbrev" "dabbrev.el" -;;;;;; (20397 45851 446679 0)) +;;;;;; (20412 11425 0 0)) ;;; Generated autoloads from dabbrev.el (put 'dabbrev-case-fold-search 'risky-local-variable t) (put 'dabbrev-case-replace 'risky-local-variable t) @@ -5630,7 +5627,7 @@ See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion]. ;;;*** ;;;### (autoloads (data-debug-new-buffer) "data-debug" "cedet/data-debug.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20585 59413 0 0)) ;;; Generated autoloads from cedet/data-debug.el (autoload 'data-debug-new-buffer "data-debug" "\ @@ -5641,7 +5638,7 @@ Create a new data-debug buffer with NAME. ;;;*** ;;;### (autoloads (dbus-handle-event) "dbus" "net/dbus.el" (20523 -;;;;;; 62082 997685 0)) +;;;;;; 63054 0 0)) ;;; Generated autoloads from net/dbus.el (autoload 'dbus-handle-event "dbus" "\ @@ -5654,8 +5651,8 @@ If the HANDLER returns a `dbus-error', it is propagated as return message. ;;;*** -;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (20356 +;;;;;; 35090 0 0)) ;;; Generated autoloads from progmodes/dcl-mode.el (autoload 'dcl-mode "dcl-mode" "\ @@ -5782,7 +5779,7 @@ There is some minimal font-lock support (see vars ;;;*** ;;;### (autoloads (cancel-debug-on-entry debug-on-entry debug) "debug" -;;;;;; "emacs-lisp/debug.el" (20572 16038 402143 0)) +;;;;;; "emacs-lisp/debug.el" (20589 46442 0 0)) ;;; Generated autoloads from emacs-lisp/debug.el (setq debugger 'debug) @@ -5826,7 +5823,7 @@ To specify a nil argument interactively, exit with an empty minibuffer. ;;;*** ;;;### (autoloads (decipher-mode decipher) "decipher" "play/decipher.el" -;;;;;; (20566 63671 243798 0)) +;;;;;; (20567 31133 0 0)) ;;; Generated autoloads from play/decipher.el (autoload 'decipher "decipher" "\ @@ -5855,8 +5852,8 @@ The most useful commands are: ;;;*** ;;;### (autoloads (delimit-columns-rectangle delimit-columns-region -;;;;;; delimit-columns-customize) "delim-col" "delim-col.el" (20355 -;;;;;; 10021 546955 0)) +;;;;;; delimit-columns-customize) "delim-col" "delim-col.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from delim-col.el (autoload 'delimit-columns-customize "delim-col" "\ @@ -5880,8 +5877,8 @@ START and END delimits the corners of text rectangle. ;;;*** -;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (20356 +;;;;;; 35090 0 0)) ;;; Generated autoloads from progmodes/delphi.el (autoload 'delphi-mode "delphi" "\ @@ -5932,8 +5929,8 @@ with no args, if that value is non-nil. ;;;*** -;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (20515 -;;;;;; 36389 544939 0)) +;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (20517 +;;;;;; 4109 0 0)) ;;; Generated autoloads from delsel.el (defalias 'pending-delete-mode 'delete-selection-mode) @@ -5963,7 +5960,7 @@ any selection. ;;;*** ;;;### (autoloads (derived-mode-init-mode-variables define-derived-mode) -;;;;;; "derived" "emacs-lisp/derived.el" (20577 33959 40183 0)) +;;;;;; "derived" "emacs-lisp/derived.el" (20577 48876 0 0)) ;;; Generated autoloads from emacs-lisp/derived.el (autoload 'define-derived-mode "derived" "\ @@ -6030,7 +6027,7 @@ the first time the mode is used. ;;;*** ;;;### (autoloads (describe-char describe-text-properties) "descr-text" -;;;;;; "descr-text.el" (20530 32114 546307 0)) +;;;;;; "descr-text.el" (20535 44414 0 0)) ;;; Generated autoloads from descr-text.el (autoload 'describe-text-properties "descr-text" "\ @@ -6067,7 +6064,7 @@ relevant to POS. ;;;### (autoloads (desktop-revert desktop-save-in-desktop-dir desktop-change-dir ;;;;;; desktop-load-default desktop-read desktop-remove desktop-save ;;;;;; desktop-clear desktop-locals-to-save desktop-save-mode) "desktop" -;;;;;; "desktop.el" (20577 33959 40183 0)) +;;;;;; "desktop.el" (20577 48876 0 0)) ;;; Generated autoloads from desktop.el (defvar desktop-save-mode nil "\ @@ -6256,7 +6253,7 @@ Revert to the last loaded desktop. ;;;### (autoloads (gnus-article-outlook-deuglify-article gnus-outlook-deuglify-article ;;;;;; gnus-article-outlook-repair-attribution gnus-article-outlook-unwrap-lines) -;;;;;; "deuglify" "gnus/deuglify.el" (20355 10021 546955 0)) +;;;;;; "deuglify" "gnus/deuglify.el" (20244 35516 0 0)) ;;; Generated autoloads from gnus/deuglify.el (autoload 'gnus-article-outlook-unwrap-lines "deuglify" "\ @@ -6289,7 +6286,7 @@ Deuglify broken Outlook (Express) articles and redisplay. ;;;*** ;;;### (autoloads (diary-mode diary-mail-entries diary) "diary-lib" -;;;;;; "calendar/diary-lib.el" (20576 42138 697312 0)) +;;;;;; "calendar/diary-lib.el" (20577 48876 0 0)) ;;; Generated autoloads from calendar/diary-lib.el (autoload 'diary "diary-lib" "\ @@ -6333,7 +6330,7 @@ Major mode for editing the diary file. ;;;### (autoloads (diff-buffer-with-file diff-latest-backup-file ;;;;;; diff-backup diff diff-command diff-switches) "diff" "vc/diff.el" -;;;;;; (20570 60708 993668 0)) +;;;;;; (20571 23797 0 0)) ;;; Generated autoloads from vc/diff.el (defvar diff-switches (purecopy "-c") "\ @@ -6382,7 +6379,7 @@ This requires the external program `diff' to be in your `exec-path'. ;;;*** ;;;### (autoloads (diff-minor-mode diff-mode) "diff-mode" "vc/diff-mode.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20589 46442 0 0)) ;;; Generated autoloads from vc/diff-mode.el (autoload 'diff-mode "diff-mode" "\ @@ -6414,7 +6411,7 @@ the mode if ARG is omitted or nil. ;;;*** -;;;### (autoloads (dig) "dig" "net/dig.el" (20355 10021 546955 0)) +;;;### (autoloads (dig) "dig" "net/dig.el" (20244 35516 0 0)) ;;; Generated autoloads from net/dig.el (autoload 'dig "dig" "\ @@ -6426,8 +6423,8 @@ Optional arguments are passed to `dig-invoke'. ;;;*** ;;;### (autoloads (dired-mode dired-noselect dired-other-frame dired-other-window -;;;;;; dired dired-listing-switches) "dired" "dired.el" (20584 7212 -;;;;;; 455152 0)) +;;;;;; dired dired-listing-switches) "dired" "dired.el" (20592 26321 +;;;;;; 0 0)) ;;; Generated autoloads from dired.el (defvar dired-listing-switches (purecopy "-al") "\ @@ -6525,7 +6522,6 @@ for more info): `dired-listing-switches' `dired-trivial-filenames' - `dired-shrink-to-fit' `dired-marker-char' `dired-del-marker' `dired-keep-marker-rename' @@ -6549,7 +6545,7 @@ Keybindings: ;;;*** ;;;### (autoloads (dirtrack dirtrack-mode) "dirtrack" "dirtrack.el" -;;;;;; (20399 35365 4050 0)) +;;;;;; (20412 11425 0 0)) ;;; Generated autoloads from dirtrack.el (autoload 'dirtrack-mode "dirtrack" "\ @@ -6579,8 +6575,8 @@ from `default-directory'. ;;;*** -;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (20497 -;;;;;; 6436 957082 0)) +;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (20511 +;;;;;; 52965 0 0)) ;;; Generated autoloads from emacs-lisp/disass.el (autoload 'disassemble "disass" "\ @@ -6599,7 +6595,7 @@ redefine OBJECT if it is a symbol. ;;;;;; standard-display-g1 standard-display-ascii standard-display-default ;;;;;; standard-display-8bit describe-current-display-table describe-display-table ;;;;;; set-display-table-slot display-table-slot make-display-table) -;;;;;; "disp-table" "disp-table.el" (20355 10021 546955 0)) +;;;;;; "disp-table" "disp-table.el" (20244 35516 0 0)) ;;; Generated autoloads from disp-table.el (autoload 'make-display-table "disp-table" "\ @@ -6721,7 +6717,7 @@ in `.emacs'. ;;;*** ;;;### (autoloads (dissociated-press) "dissociate" "play/dissociate.el" -;;;;;; (20545 57511 257469 0)) +;;;;;; (20550 14882 0 0)) ;;; Generated autoloads from play/dissociate.el (autoload 'dissociated-press "dissociate" "\ @@ -6737,8 +6733,8 @@ Default is 2. ;;;*** -;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (20244 35516 +;;;;;; 0 0)) ;;; Generated autoloads from dnd.el (defvar dnd-protocol-alist `((,(purecopy "^file:///") . dnd-open-local-file) (,(purecopy "^file://") . dnd-open-file) (,(purecopy "^file:") . dnd-open-local-file) (,(purecopy "^\\(https?\\|ftp\\|file\\|nfs\\)://") . dnd-open-file)) "\ @@ -6759,7 +6755,7 @@ if some action was made, or nil if the URL is ignored.") ;;;*** ;;;### (autoloads (dns-mode-soa-increment-serial dns-mode) "dns-mode" -;;;;;; "textmodes/dns-mode.el" (20355 10021 546955 0)) +;;;;;; "textmodes/dns-mode.el" (20244 35516 0 0)) ;;; Generated autoloads from textmodes/dns-mode.el (autoload 'dns-mode "dns-mode" "\ @@ -6784,7 +6780,7 @@ Locate SOA record and increment the serial field. ;;;### (autoloads (doc-view-bookmark-jump doc-view-minor-mode doc-view-mode-maybe ;;;;;; doc-view-mode doc-view-mode-p) "doc-view" "doc-view.el" (20581 -;;;;;; 31014 234484 0)) +;;;;;; 44007 0 0)) ;;; Generated autoloads from doc-view.el (autoload 'doc-view-mode-p "doc-view" "\ @@ -6830,8 +6826,8 @@ See the command `doc-view-mode' for more information on this mode. ;;;*** -;;;### (autoloads (doctor) "doctor" "play/doctor.el" (20545 57511 -;;;;;; 257469 0)) +;;;### (autoloads (doctor) "doctor" "play/doctor.el" (20550 14882 +;;;;;; 0 0)) ;;; Generated autoloads from play/doctor.el (autoload 'doctor "doctor" "\ @@ -6841,8 +6837,8 @@ Switch to *doctor* buffer and start giving psychotherapy. ;;;*** -;;;### (autoloads (double-mode) "double" "double.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads (double-mode) "double" "double.el" (20244 35516 +;;;;;; 0 0)) ;;; Generated autoloads from double.el (autoload 'double-mode "double" "\ @@ -6858,8 +6854,8 @@ strings when pressed twice. See `double-map' for details. ;;;*** -;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (20545 57511 -;;;;;; 257469 0)) +;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (20550 14882 +;;;;;; 0 0)) ;;; Generated autoloads from play/dunnet.el (autoload 'dunnet "dunnet" "\ @@ -6871,7 +6867,7 @@ Switch to *dungeon* buffer and start game. ;;;### (autoloads (easy-mmode-defsyntax easy-mmode-defmap easy-mmode-define-keymap ;;;;;; define-globalized-minor-mode define-minor-mode) "easy-mmode" -;;;;;; "emacs-lisp/easy-mmode.el" (20574 57775 217760 0)) +;;;;;; "emacs-lisp/easy-mmode.el" (20577 48876 0 0)) ;;; Generated autoloads from emacs-lisp/easy-mmode.el (defalias 'easy-mmode-define-minor-mode 'define-minor-mode) @@ -7006,8 +7002,8 @@ CSS contains a list of syntax specifications of the form (CHAR . SYNTAX). ;;;*** ;;;### (autoloads (easy-menu-change easy-menu-create-menu easy-menu-do-define -;;;;;; easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (20563 -;;;;;; 1062 543283 0)) +;;;;;; easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (20567 +;;;;;; 31133 0 0)) ;;; Generated autoloads from emacs-lisp/easymenu.el (autoload 'easy-menu-define "easymenu" "\ @@ -7161,7 +7157,7 @@ To implement dynamic menus, either call this from ;;;;;; ebnf-eps-file ebnf-eps-directory ebnf-spool-region ebnf-spool-buffer ;;;;;; ebnf-spool-file ebnf-spool-directory ebnf-print-region ebnf-print-buffer ;;;;;; ebnf-print-file ebnf-print-directory ebnf-customize) "ebnf2ps" -;;;;;; "progmodes/ebnf2ps.el" (20566 63671 243798 0)) +;;;;;; "progmodes/ebnf2ps.el" (20567 31133 0 0)) ;;; Generated autoloads from progmodes/ebnf2ps.el (autoload 'ebnf-customize "ebnf2ps" "\ @@ -7435,8 +7431,8 @@ See `ebnf-style-database' documentation. ;;;;;; ebrowse-tags-find-declaration-other-window ebrowse-tags-find-definition ;;;;;; ebrowse-tags-view-definition ebrowse-tags-find-declaration ;;;;;; ebrowse-tags-view-declaration ebrowse-member-mode ebrowse-electric-choose-tree -;;;;;; ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (20561 -;;;;;; 18280 338092 0)) +;;;;;; ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (20567 +;;;;;; 31133 0 0)) ;;; Generated autoloads from progmodes/ebrowse.el (autoload 'ebrowse-tree-mode "ebrowse" "\ @@ -7585,7 +7581,7 @@ Display statistics for a class tree. ;;;*** ;;;### (autoloads (electric-buffer-list) "ebuff-menu" "ebuff-menu.el" -;;;;;; (20523 62082 997685 0)) +;;;;;; (20523 63054 0 0)) ;;; Generated autoloads from ebuff-menu.el (autoload 'electric-buffer-list "ebuff-menu" "\ @@ -7618,7 +7614,7 @@ Run hooks in `electric-buffer-menu-mode-hook' on entry. ;;;*** ;;;### (autoloads (Electric-command-history-redo-expression) "echistory" -;;;;;; "echistory.el" (20355 10021 546955 0)) +;;;;;; "echistory.el" (20244 35516 0 0)) ;;; Generated autoloads from echistory.el (autoload 'Electric-command-history-redo-expression "echistory" "\ @@ -7630,7 +7626,7 @@ With prefix arg NOCONFIRM, execute current line as-is without editing. ;;;*** ;;;### (autoloads (ecomplete-setup) "ecomplete" "gnus/ecomplete.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from gnus/ecomplete.el (autoload 'ecomplete-setup "ecomplete" "\ @@ -7640,8 +7636,8 @@ With prefix arg NOCONFIRM, execute current line as-is without editing. ;;;*** -;;;### (autoloads (global-ede-mode) "ede" "cedet/ede.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads (global-ede-mode) "ede" "cedet/ede.el" (20592 26321 +;;;;;; 0 0)) ;;; Generated autoloads from cedet/ede.el (defvar global-ede-mode nil "\ @@ -7668,7 +7664,7 @@ an EDE controlled project. ;;;### (autoloads (edebug-all-forms edebug-all-defs edebug-eval-top-level-form ;;;;;; edebug-basic-spec edebug-all-forms edebug-all-defs) "edebug" -;;;;;; "emacs-lisp/edebug.el" (20563 1062 543283 0)) +;;;;;; "emacs-lisp/edebug.el" (20600 16892 0 0)) ;;; Generated autoloads from emacs-lisp/edebug.el (defvar edebug-all-defs nil "\ @@ -7741,8 +7737,8 @@ Toggle edebugging of all forms. ;;;;;; ediff-merge-directories-with-ancestor ediff-merge-directories ;;;;;; ediff-directories3 ediff-directory-revisions ediff-directories ;;;;;; ediff-buffers3 ediff-buffers ediff-backup ediff-current-file -;;;;;; ediff-files3 ediff-files) "ediff" "vc/ediff.el" (20495 51111 -;;;;;; 757560 0)) +;;;;;; ediff-files3 ediff-files) "ediff" "vc/ediff.el" (20511 52965 +;;;;;; 0 0)) ;;; Generated autoloads from vc/ediff.el (autoload 'ediff-files "ediff" "\ @@ -7974,7 +7970,7 @@ With optional NODE, goes to that node. ;;;*** ;;;### (autoloads (ediff-customize) "ediff-help" "vc/ediff-help.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from vc/ediff-help.el (autoload 'ediff-customize "ediff-help" "\ @@ -7985,7 +7981,7 @@ With optional NODE, goes to that node. ;;;*** ;;;### (autoloads (ediff-show-registry) "ediff-mult" "vc/ediff-mult.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from vc/ediff-mult.el (autoload 'ediff-show-registry "ediff-mult" "\ @@ -7998,7 +7994,7 @@ Display Ediff's registry. ;;;*** ;;;### (autoloads (ediff-toggle-use-toolbar ediff-toggle-multiframe) -;;;;;; "ediff-util" "vc/ediff-util.el" (20584 7212 455152 0)) +;;;;;; "ediff-util" "vc/ediff-util.el" (20585 55103 0 0)) ;;; Generated autoloads from vc/ediff-util.el (autoload 'ediff-toggle-multiframe "ediff-util" "\ @@ -8019,7 +8015,7 @@ To change the default, set the variable `ediff-use-toolbar-p', which see. ;;;### (autoloads (format-kbd-macro read-kbd-macro edit-named-kbd-macro ;;;;;; edit-last-kbd-macro edit-kbd-macro) "edmacro" "edmacro.el" -;;;;;; (20476 31768 298871 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from edmacro.el (autoload 'edit-kbd-macro "edmacro" "\ @@ -8068,7 +8064,7 @@ or nil, use a compact 80-column format. ;;;*** ;;;### (autoloads (edt-emulation-on edt-set-scroll-margins) "edt" -;;;;;; "emulation/edt.el" (20566 63671 243798 0)) +;;;;;; "emulation/edt.el" (20567 31133 0 0)) ;;; Generated autoloads from emulation/edt.el (autoload 'edt-set-scroll-margins "edt" "\ @@ -8086,7 +8082,7 @@ Turn on EDT Emulation. ;;;*** ;;;### (autoloads (electric-helpify with-electric-help) "ehelp" "ehelp.el" -;;;;;; (20561 18280 338092 0)) +;;;;;; (20600 16892 0 0)) ;;; Generated autoloads from ehelp.el (autoload 'with-electric-help "ehelp" "\ @@ -8120,10 +8116,57 @@ BUFFER is put back into its original major mode. \(fn FUN &optional NAME)" nil nil) +;;;*** + +;;;### (autoloads (customize-object) "eieio-custom" "emacs-lisp/eieio-custom.el" +;;;;;; (20585 59413 0 0)) +;;; Generated autoloads from emacs-lisp/eieio-custom.el + +(autoload 'customize-object "eieio-custom" "\ +Customize OBJ in a custom buffer. +Optional argument GROUP is the sub-group of slots to display. + +\(fn OBJ &optional GROUP)" nil nil) + +;;;*** + +;;;### (autoloads (eieio-describe-generic eieio-describe-constructor +;;;;;; eieio-describe-class eieio-browse) "eieio-opt" "emacs-lisp/eieio-opt.el" +;;;;;; (20585 59413 0 0)) +;;; Generated autoloads from emacs-lisp/eieio-opt.el + +(autoload 'eieio-browse "eieio-opt" "\ +Create an object browser window to show all objects. +If optional ROOT-CLASS, then start with that, otherwise start with +variable `eieio-default-superclass'. + +\(fn &optional ROOT-CLASS)" t nil) +(defalias 'describe-class 'eieio-describe-class) + +(autoload 'eieio-describe-class "eieio-opt" "\ +Describe a CLASS defined by a string or symbol. +If CLASS is actually an object, then also display current values of that object. +Optional HEADERFCN should be called to insert a few bits of info first. + +\(fn CLASS &optional HEADERFCN)" t nil) + +(autoload 'eieio-describe-constructor "eieio-opt" "\ +Describe the constructor function FCN. +Uses `eieio-describe-class' to describe the class being constructed. + +\(fn FCN)" t nil) +(defalias 'describe-generic 'eieio-describe-generic) + +(autoload 'eieio-describe-generic "eieio-opt" "\ +Describe the generic function GENERIC. +Also extracts information about all methods specific to this generic. + +\(fn GENERIC)" t nil) + ;;;*** ;;;### (autoloads (turn-on-eldoc-mode eldoc-mode eldoc-minor-mode-string) -;;;;;; "eldoc" "emacs-lisp/eldoc.el" (20355 10021 546955 0)) +;;;;;; "eldoc" "emacs-lisp/eldoc.el" (20244 35516 0 0)) ;;; Generated autoloads from emacs-lisp/eldoc.el (defvar eldoc-minor-mode-string (purecopy " ElDoc") "\ @@ -8170,7 +8213,7 @@ Emacs Lisp mode) that support ElDoc.") ;;;*** ;;;### (autoloads (electric-layout-mode electric-pair-mode electric-indent-mode) -;;;;;; "electric" "electric.el" (20481 18215 64245 0)) +;;;;;; "electric" "electric.el" (20511 52965 0 0)) ;;; Generated autoloads from electric.el (defvar electric-indent-chars '(10) "\ @@ -8240,8 +8283,8 @@ The variable `electric-layout-rules' says when and how to insert newlines. ;;;*** -;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from elide-head.el (autoload 'elide-head "elide-head" "\ @@ -8258,7 +8301,7 @@ This is suitable as an entry on `find-file-hook' or appropriate mode hooks. ;;;### (autoloads (elint-initialize elint-defun elint-current-buffer ;;;;;; elint-directory elint-file) "elint" "emacs-lisp/elint.el" -;;;;;; (20486 36135 22104 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from emacs-lisp/elint.el (autoload 'elint-file "elint" "\ @@ -8294,8 +8337,8 @@ optional prefix argument REINIT is non-nil. ;;;*** ;;;### (autoloads (elp-results elp-instrument-package elp-instrument-list -;;;;;; elp-instrument-function) "elp" "emacs-lisp/elp.el" (20497 -;;;;;; 6436 957082 0)) +;;;;;; elp-instrument-function) "elp" "emacs-lisp/elp.el" (20511 +;;;;;; 52965 0 0)) ;;; Generated autoloads from emacs-lisp/elp.el (autoload 'elp-instrument-function "elp" "\ @@ -8330,7 +8373,7 @@ displayed. ;;;*** ;;;### (autoloads (emacs-lock-mode) "emacs-lock" "emacs-lock.el" -;;;;;; (20577 33959 40183 0)) +;;;;;; (20577 48876 0 0)) ;;; Generated autoloads from emacs-lock.el (autoload 'emacs-lock-mode "emacs-lock" "\ @@ -8358,7 +8401,7 @@ Other values are interpreted as usual. ;;;*** ;;;### (autoloads (report-emacs-bug-query-existing-bugs report-emacs-bug) -;;;;;; "emacsbug" "mail/emacsbug.el" (20576 13095 881042 0)) +;;;;;; "emacsbug" "mail/emacsbug.el" (20577 48876 0 0)) ;;; Generated autoloads from mail/emacsbug.el (autoload 'report-emacs-bug "emacsbug" "\ @@ -8379,7 +8422,7 @@ The result is an alist with items of the form (URL SUBJECT NO). ;;;;;; emerge-revisions emerge-files-with-ancestor-remote emerge-files-remote ;;;;;; emerge-files-with-ancestor-command emerge-files-command emerge-buffers-with-ancestor ;;;;;; emerge-buffers emerge-files-with-ancestor emerge-files) "emerge" -;;;;;; "vc/emerge.el" (20576 42138 697312 0)) +;;;;;; "vc/emerge.el" (20577 48876 0 0)) ;;; Generated autoloads from vc/emerge.el (autoload 'emerge-files "emerge" "\ @@ -8440,7 +8483,7 @@ Emerge two RCS revisions of a file, with another revision as ancestor. ;;;*** ;;;### (autoloads (enriched-decode enriched-encode enriched-mode) -;;;;;; "enriched" "textmodes/enriched.el" (20461 32935 300400 0)) +;;;;;; "enriched" "textmodes/enriched.el" (20468 36126 0 0)) ;;; Generated autoloads from textmodes/enriched.el (autoload 'enriched-mode "enriched" "\ @@ -8481,7 +8524,7 @@ Commands: ;;;;;; epa-decrypt-armor-in-region epa-decrypt-region epa-encrypt-file ;;;;;; epa-sign-file epa-verify-file epa-decrypt-file epa-select-keys ;;;;;; epa-list-secret-keys epa-list-keys) "epa" "epa.el" (20577 -;;;;;; 33959 40183 0)) +;;;;;; 48876 0 0)) ;;; Generated autoloads from epa.el (autoload 'epa-list-keys "epa" "\ @@ -8659,8 +8702,8 @@ Insert selected KEYS after the point. ;;;*** ;;;### (autoloads (epa-dired-do-encrypt epa-dired-do-sign epa-dired-do-verify -;;;;;; epa-dired-do-decrypt) "epa-dired" "epa-dired.el" (20355 10021 -;;;;;; 546955 0)) +;;;;;; epa-dired-do-decrypt) "epa-dired" "epa-dired.el" (20244 35516 +;;;;;; 0 0)) ;;; Generated autoloads from epa-dired.el (autoload 'epa-dired-do-decrypt "epa-dired" "\ @@ -8686,7 +8729,7 @@ Encrypt marked files. ;;;*** ;;;### (autoloads (epa-file-disable epa-file-enable epa-file-handler) -;;;;;; "epa-file" "epa-file.el" (20355 10021 546955 0)) +;;;;;; "epa-file" "epa-file.el" (20244 35516 0 0)) ;;; Generated autoloads from epa-file.el (autoload 'epa-file-handler "epa-file" "\ @@ -8708,7 +8751,7 @@ Encrypt marked files. ;;;### (autoloads (epa-global-mail-mode epa-mail-import-keys epa-mail-encrypt ;;;;;; epa-mail-sign epa-mail-verify epa-mail-decrypt epa-mail-mode) -;;;;;; "epa-mail" "epa-mail.el" (20566 63671 243798 0)) +;;;;;; "epa-mail" "epa-mail.el" (20567 31133 0 0)) ;;; Generated autoloads from epa-mail.el (autoload 'epa-mail-mode "epa-mail" "\ @@ -8778,8 +8821,8 @@ if ARG is omitted or nil. ;;;*** -;;;### (autoloads (epg-make-context) "epg" "epg.el" (20577 33959 -;;;;;; 40183 0)) +;;;### (autoloads (epg-make-context) "epg" "epg.el" (20577 48876 +;;;;;; 0 0)) ;;; Generated autoloads from epg.el (autoload 'epg-make-context "epg" "\ @@ -8790,7 +8833,7 @@ Return a context object. ;;;*** ;;;### (autoloads (epg-expand-group epg-check-configuration epg-configuration) -;;;;;; "epg-config" "epg-config.el" (20373 11301 906925 0)) +;;;;;; "epg-config" "epg-config.el" (20373 41604 0 0)) ;;; Generated autoloads from epg-config.el (autoload 'epg-configuration "epg-config" "\ @@ -8811,7 +8854,7 @@ Look at CONFIG and try to expand GROUP. ;;;*** ;;;### (autoloads (erc-handle-irc-url erc-tls erc erc-select-read-args) -;;;;;; "erc" "erc/erc.el" (20577 33959 40183 0)) +;;;;;; "erc" "erc/erc.el" (20600 16892 0 0)) ;;; Generated autoloads from erc/erc.el (autoload 'erc-select-read-args "erc" "\ @@ -8859,36 +8902,36 @@ Otherwise, connect to HOST:PORT as USER and /join CHANNEL. ;;;*** -;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (20592 +;;;;;; 26321 0 0)) ;;; Generated autoloads from erc/erc-autoaway.el (autoload 'erc-autoaway-mode "erc-autoaway") ;;;*** -;;;### (autoloads nil "erc-button" "erc/erc-button.el" (20566 63671 -;;;;;; 243798 0)) +;;;### (autoloads nil "erc-button" "erc/erc-button.el" (20600 16892 +;;;;;; 0 0)) ;;; Generated autoloads from erc/erc-button.el (autoload 'erc-button-mode "erc-button" nil t) ;;;*** -;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (20566 63671 -;;;;;; 243798 0)) +;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (20592 26321 +;;;;;; 0 0)) ;;; Generated autoloads from erc/erc-capab.el (autoload 'erc-capab-identify-mode "erc-capab" nil t) ;;;*** -;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (20592 26321 +;;;;;; 0 0)) ;;; Generated autoloads from erc/erc-compat.el (autoload 'erc-define-minor-mode "erc-compat") ;;;*** ;;;### (autoloads (erc-ctcp-query-DCC pcomplete/erc-mode/DCC erc-cmd-DCC) -;;;;;; "erc-dcc" "erc/erc-dcc.el" (20523 62082 997685 0)) +;;;;;; "erc-dcc" "erc/erc-dcc.el" (20592 26321 0 0)) ;;; Generated autoloads from erc/erc-dcc.el (autoload 'erc-dcc-mode "erc-dcc") @@ -8915,13 +8958,20 @@ that subcommand. \(fn PROC NICK LOGIN HOST TO QUERY)" nil nil) +;;;*** + +;;;### (autoloads nil "erc-desktop-notifications" "erc/erc-desktop-notifications.el" +;;;;;; (20600 16892 0 0)) +;;; Generated autoloads from erc/erc-desktop-notifications.el +(autoload 'erc-notifications-mode "erc-desktop-notifications" "" t) + ;;;*** ;;;### (autoloads (erc-ezb-initialize erc-ezb-select-session erc-ezb-select ;;;;;; erc-ezb-add-session erc-ezb-end-of-session-list erc-ezb-init-session-list ;;;;;; erc-ezb-identify erc-ezb-notice-autodetect erc-ezb-lookup-action ;;;;;; erc-ezb-get-login erc-cmd-ezb) "erc-ezbounce" "erc/erc-ezbounce.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20592 26321 0 0)) ;;; Generated autoloads from erc/erc-ezbounce.el (autoload 'erc-cmd-ezb "erc-ezbounce" "\ @@ -8983,8 +9033,8 @@ Add EZBouncer convenience functions to ERC. ;;;*** -;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (20592 +;;;;;; 26321 0 0)) ;;; Generated autoloads from erc/erc-fill.el (autoload 'erc-fill-mode "erc-fill" nil t) @@ -8997,7 +9047,7 @@ You can put this on `erc-insert-modify-hook' and/or `erc-send-modify-hook'. ;;;*** ;;;### (autoloads (erc-identd-stop erc-identd-start) "erc-identd" -;;;;;; "erc/erc-identd.el" (20355 10021 546955 0)) +;;;;;; "erc/erc-identd.el" (20592 26321 0 0)) ;;; Generated autoloads from erc/erc-identd.el (autoload 'erc-identd-mode "erc-identd") @@ -9019,7 +9069,7 @@ system. ;;;*** ;;;### (autoloads (erc-create-imenu-index) "erc-imenu" "erc/erc-imenu.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20592 26321 0 0)) ;;; Generated autoloads from erc/erc-imenu.el (autoload 'erc-create-imenu-index "erc-imenu" "\ @@ -9029,14 +9079,14 @@ system. ;;;*** -;;;### (autoloads nil "erc-join" "erc/erc-join.el" (20532 45476 981297 +;;;### (autoloads nil "erc-join" "erc/erc-join.el" (20592 26321 0 ;;;;;; 0)) ;;; Generated autoloads from erc/erc-join.el (autoload 'erc-autojoin-mode "erc-join" nil t) ;;;*** -;;;### (autoloads nil "erc-list" "erc/erc-list.el" (20355 10021 546955 +;;;### (autoloads nil "erc-list" "erc/erc-list.el" (20592 26321 0 ;;;;;; 0)) ;;; Generated autoloads from erc/erc-list.el (autoload 'erc-list-mode "erc-list") @@ -9044,7 +9094,7 @@ system. ;;;*** ;;;### (autoloads (erc-save-buffer-in-logs erc-logging-enabled) "erc-log" -;;;;;; "erc/erc-log.el" (20355 10021 546955 0)) +;;;;;; "erc/erc-log.el" (20600 16892 0 0)) ;;; Generated autoloads from erc/erc-log.el (autoload 'erc-log-mode "erc-log" nil t) @@ -9076,7 +9126,7 @@ You can save every individual message by putting this function on ;;;### (autoloads (erc-delete-dangerous-host erc-add-dangerous-host ;;;;;; erc-delete-keyword erc-add-keyword erc-delete-fool erc-add-fool ;;;;;; erc-delete-pal erc-add-pal) "erc-match" "erc/erc-match.el" -;;;;;; (20566 63671 243798 0)) +;;;;;; (20592 26321 0 0)) ;;; Generated autoloads from erc/erc-match.el (autoload 'erc-match-mode "erc-match") @@ -9122,7 +9172,7 @@ Delete dangerous-host interactively to `erc-dangerous-hosts'. ;;;*** -;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (20355 10021 546955 +;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (20592 26321 0 ;;;;;; 0)) ;;; Generated autoloads from erc/erc-menu.el (autoload 'erc-menu-mode "erc-menu" nil t) @@ -9130,7 +9180,7 @@ Delete dangerous-host interactively to `erc-dangerous-hosts'. ;;;*** ;;;### (autoloads (erc-cmd-WHOLEFT) "erc-netsplit" "erc/erc-netsplit.el" -;;;;;; (20566 63671 243798 0)) +;;;;;; (20592 26321 0 0)) ;;; Generated autoloads from erc/erc-netsplit.el (autoload 'erc-netsplit-mode "erc-netsplit") @@ -9142,7 +9192,7 @@ Show who's gone. ;;;*** ;;;### (autoloads (erc-server-select erc-determine-network) "erc-networks" -;;;;;; "erc/erc-networks.el" (20355 10021 546955 0)) +;;;;;; "erc/erc-networks.el" (20592 26321 0 0)) ;;; Generated autoloads from erc/erc-networks.el (autoload 'erc-determine-network "erc-networks" "\ @@ -9157,17 +9207,10 @@ Interactively select a server to connect to using `erc-server-alist'. \(fn)" t nil) -;;;*** - -;;;### (autoloads nil "erc-notifications" "erc/erc-notifications.el" -;;;;;; (20491 54052 900109 0)) -;;; Generated autoloads from erc/erc-notifications.el -(autoload 'erc-notifications-mode "erc-notifications" "" t) - ;;;*** ;;;### (autoloads (pcomplete/erc-mode/NOTIFY erc-cmd-NOTIFY) "erc-notify" -;;;;;; "erc/erc-notify.el" (20355 10021 546955 0)) +;;;;;; "erc/erc-notify.el" (20592 26321 0 0)) ;;; Generated autoloads from erc/erc-notify.el (autoload 'erc-notify-mode "erc-notify" nil t) @@ -9185,28 +9228,28 @@ with args, toggle notify status of people. ;;;*** -;;;### (autoloads nil "erc-page" "erc/erc-page.el" (20566 63671 243798 +;;;### (autoloads nil "erc-page" "erc/erc-page.el" (20592 26321 0 ;;;;;; 0)) ;;; Generated autoloads from erc/erc-page.el (autoload 'erc-page-mode "erc-page") ;;;*** -;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (20592 +;;;;;; 26321 0 0)) ;;; Generated autoloads from erc/erc-pcomplete.el (autoload 'erc-completion-mode "erc-pcomplete" nil t) ;;;*** -;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (20566 63671 -;;;;;; 243798 0)) +;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (20592 26321 +;;;;;; 0 0)) ;;; Generated autoloads from erc/erc-replace.el (autoload 'erc-replace-mode "erc-replace") ;;;*** -;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (20355 10021 546955 +;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (20592 26321 0 ;;;;;; 0)) ;;; Generated autoloads from erc/erc-ring.el (autoload 'erc-ring-mode "erc-ring" nil t) @@ -9214,8 +9257,7 @@ with args, toggle notify status of people. ;;;*** ;;;### (autoloads (erc-nickserv-identify erc-nickserv-identify-mode) -;;;;;; "erc-services" "erc/erc-services.el" (20357 58785 834364 -;;;;;; 0)) +;;;;;; "erc-services" "erc/erc-services.el" (20592 26321 0 0)) ;;; Generated autoloads from erc/erc-services.el (autoload 'erc-services-mode "erc-services" nil t) @@ -9232,15 +9274,15 @@ When called interactively, read the password using `read-passwd'. ;;;*** -;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (20592 26321 +;;;;;; 0 0)) ;;; Generated autoloads from erc/erc-sound.el (autoload 'erc-sound-mode "erc-sound") ;;;*** ;;;### (autoloads (erc-speedbar-browser) "erc-speedbar" "erc/erc-speedbar.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20592 26321 0 0)) ;;; Generated autoloads from erc/erc-speedbar.el (autoload 'erc-speedbar-browser "erc-speedbar" "\ @@ -9251,22 +9293,22 @@ This will add a speedbar major display mode. ;;;*** -;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (20592 +;;;;;; 26321 0 0)) ;;; Generated autoloads from erc/erc-spelling.el (autoload 'erc-spelling-mode "erc-spelling" nil t) ;;;*** -;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (20566 63671 -;;;;;; 243798 0)) +;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (20600 16892 +;;;;;; 0 0)) ;;; Generated autoloads from erc/erc-stamp.el (autoload 'erc-timestamp-mode "erc-stamp" nil t) ;;;*** ;;;### (autoloads (erc-track-minor-mode) "erc-track" "erc/erc-track.el" -;;;;;; (20566 63671 243798 0)) +;;;;;; (20592 26321 0 0)) ;;; Generated autoloads from erc/erc-track.el (defvar erc-track-minor-mode nil "\ @@ -9292,8 +9334,7 @@ keybindings will not do anything useful. ;;;*** ;;;### (autoloads (erc-truncate-buffer erc-truncate-buffer-to-size) -;;;;;; "erc-truncate" "erc/erc-truncate.el" (20355 10021 546955 -;;;;;; 0)) +;;;;;; "erc-truncate" "erc/erc-truncate.el" (20592 26321 0 0)) ;;; Generated autoloads from erc/erc-truncate.el (autoload 'erc-truncate-mode "erc-truncate" nil t) @@ -9313,7 +9354,7 @@ Meant to be used in hooks, like `erc-insert-post-hook'. ;;;*** ;;;### (autoloads (erc-xdcc-add-file) "erc-xdcc" "erc/erc-xdcc.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20592 26321 0 0)) ;;; Generated autoloads from erc/erc-xdcc.el (autoload 'erc-xdcc-mode "erc-xdcc") @@ -9326,7 +9367,7 @@ Add a file to `erc-xdcc-files'. ;;;### (autoloads (ert-describe-test ert-run-tests-interactively ;;;;;; ert-run-tests-batch-and-exit ert-run-tests-batch ert-deftest) -;;;;;; "ert" "emacs-lisp/ert.el" (20576 42138 697312 0)) +;;;;;; "ert" "emacs-lisp/ert.el" (20577 48876 0 0)) ;;; Generated autoloads from emacs-lisp/ert.el (autoload 'ert-deftest "ert" "\ @@ -9392,7 +9433,7 @@ Display the documentation for TEST-OR-TEST-NAME (a symbol or ert-test). ;;;*** ;;;### (autoloads (ert-kill-all-test-buffers) "ert-x" "emacs-lisp/ert-x.el" -;;;;;; (20576 42138 697312 0)) +;;;;;; (20577 48876 0 0)) ;;; Generated autoloads from emacs-lisp/ert-x.el (put 'ert-with-test-buffer 'lisp-indent-function 1) @@ -9404,8 +9445,8 @@ Kill all test buffers that are still live. ;;;*** -;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (20523 -;;;;;; 62082 997685 0)) +;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (20600 +;;;;;; 16892 0 0)) ;;; Generated autoloads from eshell/esh-mode.el (autoload 'eshell-mode "esh-mode" "\ @@ -9418,7 +9459,7 @@ Emacs shell interactive mode. ;;;*** ;;;### (autoloads (eshell-command-result eshell-command eshell) "eshell" -;;;;;; "eshell/eshell.el" (20577 33959 40183 0)) +;;;;;; "eshell/eshell.el" (20577 48876 0 0)) ;;; Generated autoloads from eshell/eshell.el (autoload 'eshell "eshell" "\ @@ -9459,7 +9500,7 @@ corresponding to a successful execution. ;;;;;; visit-tags-table tags-table-mode find-tag-default-function ;;;;;; find-tag-hook tags-add-tables tags-compression-info-list ;;;;;; tags-table-list tags-case-fold-search) "etags" "progmodes/etags.el" -;;;;;; (20478 3673 653810 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from progmodes/etags.el (defvar tags-file-name nil "\ @@ -9777,7 +9818,7 @@ for \\[find-tag] (which see). ;;;;;; ethio-fidel-to-sera-marker ethio-fidel-to-sera-region ethio-fidel-to-sera-buffer ;;;;;; ethio-sera-to-fidel-marker ethio-sera-to-fidel-region ethio-sera-to-fidel-buffer ;;;;;; setup-ethiopic-environment-internal) "ethio-util" "language/ethio-util.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20356 35090 0 0)) ;;; Generated autoloads from language/ethio-util.el (autoload 'setup-ethiopic-environment-internal "ethio-util" "\ @@ -9947,7 +9988,7 @@ With ARG, insert that many delimiters. ;;;### (autoloads (eudc-load-eudc eudc-query-form eudc-expand-inline ;;;;;; eudc-get-phone eudc-get-email eudc-set-server) "eudc" "net/eudc.el" -;;;;;; (20478 3673 653810 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from net/eudc.el (autoload 'eudc-set-server "eudc" "\ @@ -10003,7 +10044,7 @@ This does nothing except loading eudc by autoload side-effect. ;;;### (autoloads (eudc-display-jpeg-as-button eudc-display-jpeg-inline ;;;;;; eudc-display-sound eudc-display-mail eudc-display-url eudc-display-generic-binary) -;;;;;; "eudc-bob" "net/eudc-bob.el" (20355 10021 546955 0)) +;;;;;; "eudc-bob" "net/eudc-bob.el" (20244 35516 0 0)) ;;; Generated autoloads from net/eudc-bob.el (autoload 'eudc-display-generic-binary "eudc-bob" "\ @@ -10039,7 +10080,7 @@ Display a button for the JPEG DATA. ;;;*** ;;;### (autoloads (eudc-try-bbdb-insert eudc-insert-record-at-point-into-bbdb) -;;;;;; "eudc-export" "net/eudc-export.el" (20355 10021 546955 0)) +;;;;;; "eudc-export" "net/eudc-export.el" (20244 35516 0 0)) ;;; Generated autoloads from net/eudc-export.el (autoload 'eudc-insert-record-at-point-into-bbdb "eudc-export" "\ @@ -10056,7 +10097,7 @@ Call `eudc-insert-record-at-point-into-bbdb' if on a record. ;;;*** ;;;### (autoloads (eudc-edit-hotlist) "eudc-hotlist" "net/eudc-hotlist.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from net/eudc-hotlist.el (autoload 'eudc-edit-hotlist "eudc-hotlist" "\ @@ -10066,8 +10107,8 @@ Edit the hotlist of directory servers in a specialized buffer. ;;;*** -;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (20453 -;;;;;; 5437 764254 0)) +;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (20452 +;;;;;; 43334 0 0)) ;;; Generated autoloads from emacs-lisp/ewoc.el (autoload 'ewoc-create "ewoc" "\ @@ -10096,7 +10137,7 @@ fourth arg NOSEP non-nil inhibits this. ;;;### (autoloads (executable-make-buffer-file-executable-if-script-p ;;;;;; executable-self-display executable-set-magic executable-interpret ;;;;;; executable-command-find-posix-p) "executable" "progmodes/executable.el" -;;;;;; (20533 6181 437016 717000)) +;;;;;; (20535 44414 0 0)) ;;; Generated autoloads from progmodes/executable.el (autoload 'executable-command-find-posix-p "executable" "\ @@ -10139,7 +10180,7 @@ file modes. ;;;### (autoloads (expand-jump-to-next-slot expand-jump-to-previous-slot ;;;;;; expand-abbrev-hook expand-add-abbrevs) "expand" "expand.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from expand.el (autoload 'expand-add-abbrevs "expand" "\ @@ -10188,8 +10229,8 @@ This is used only in conjunction with `expand-add-abbrevs'. ;;;*** -;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (20566 63671 -;;;;;; 243798 0)) +;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (20567 31133 +;;;;;; 0 0)) ;;; Generated autoloads from progmodes/f90.el (autoload 'f90-mode "f90" "\ @@ -10259,8 +10300,8 @@ with no args, if that value is non-nil. ;;;### (autoloads (variable-pitch-mode buffer-face-toggle buffer-face-set ;;;;;; buffer-face-mode text-scale-adjust text-scale-decrease text-scale-increase ;;;;;; text-scale-set face-remap-set-base face-remap-reset-base -;;;;;; face-remap-add-relative) "face-remap" "face-remap.el" (20476 -;;;;;; 31768 298871 0)) +;;;;;; face-remap-add-relative) "face-remap" "face-remap.el" (20511 +;;;;;; 52965 0 0)) ;;; Generated autoloads from face-remap.el (autoload 'face-remap-add-relative "face-remap" "\ @@ -10419,8 +10460,8 @@ Besides the choice of face, it is the same as `buffer-face-mode'. ;;;### (autoloads (feedmail-queue-reminder feedmail-run-the-queue ;;;;;; feedmail-run-the-queue-global-prompt feedmail-run-the-queue-no-prompts -;;;;;; feedmail-send-it) "feedmail" "mail/feedmail.el" (20566 63671 -;;;;;; 243798 0)) +;;;;;; feedmail-send-it) "feedmail" "mail/feedmail.el" (20567 31133 +;;;;;; 0 0)) ;;; Generated autoloads from mail/feedmail.el (autoload 'feedmail-send-it "feedmail" "\ @@ -10475,7 +10516,7 @@ you can set `feedmail-queue-reminder-alist' to nil. ;;;### (autoloads (ffap-bindings ffap-guess-file-name-at-point dired-at-point ;;;;;; ffap-at-mouse ffap-menu find-file-at-point ffap-next) "ffap" -;;;;;; "ffap.el" (20566 63671 243798 0)) +;;;;;; "ffap.el" (20600 16892 0 0)) ;;; Generated autoloads from ffap.el (autoload 'ffap-next "ffap" "\ @@ -10541,7 +10582,7 @@ Evaluate the forms in variable `ffap-bindings'. ;;;### (autoloads (file-cache-minibuffer-complete file-cache-add-directory-recursively ;;;;;; file-cache-add-directory-using-locate file-cache-add-directory-using-find ;;;;;; file-cache-add-file file-cache-add-directory-list file-cache-add-directory) -;;;;;; "filecache" "filecache.el" (20355 10021 546955 0)) +;;;;;; "filecache" "filecache.el" (20244 35516 0 0)) ;;; Generated autoloads from filecache.el (autoload 'file-cache-add-directory "filecache" "\ @@ -10601,8 +10642,8 @@ the name is considered already unique; only the second substitution ;;;;;; copy-file-locals-to-dir-locals delete-dir-local-variable ;;;;;; add-dir-local-variable delete-file-local-variable-prop-line ;;;;;; add-file-local-variable-prop-line delete-file-local-variable -;;;;;; add-file-local-variable) "files-x" "files-x.el" (20355 10021 -;;;;;; 546955 0)) +;;;;;; add-file-local-variable) "files-x" "files-x.el" (20356 35090 +;;;;;; 0 0)) ;;; Generated autoloads from files-x.el (autoload 'add-file-local-variable "files-x" "\ @@ -10667,8 +10708,8 @@ Copy directory-local variables to the -*- line. ;;;*** -;;;### (autoloads (filesets-init) "filesets" "filesets.el" (20566 -;;;;;; 63671 243798 0)) +;;;### (autoloads (filesets-init) "filesets" "filesets.el" (20567 +;;;;;; 31133 0 0)) ;;; Generated autoloads from filesets.el (autoload 'filesets-init "filesets" "\ @@ -10679,8 +10720,8 @@ Set up hooks, load the cache file -- if existing -- and build the menu. ;;;*** -;;;### (autoloads (find-cmd) "find-cmd" "find-cmd.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads (find-cmd) "find-cmd" "find-cmd.el" (20244 35516 +;;;;;; 0 0)) ;;; Generated autoloads from find-cmd.el (autoload 'find-cmd "find-cmd" "\ @@ -10700,7 +10741,7 @@ result is a string that should be ready for the command line. ;;;*** ;;;### (autoloads (find-grep-dired find-name-dired find-dired) "find-dired" -;;;;;; "find-dired.el" (20355 10021 546955 0)) +;;;;;; "find-dired.el" (20244 35516 0 0)) ;;; Generated autoloads from find-dired.el (autoload 'find-dired "find-dired" "\ @@ -10740,7 +10781,7 @@ use in place of \"-ls\" as the final argument. ;;;### (autoloads (ff-mouse-find-other-file-other-window ff-mouse-find-other-file ;;;;;; ff-find-other-file ff-get-other-file ff-special-constructs) -;;;;;; "find-file" "find-file.el" (20387 44199 24128 0)) +;;;;;; "find-file" "find-file.el" (20412 11425 0 0)) ;;; Generated autoloads from find-file.el (defvar ff-special-constructs `((,(purecopy "^#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]") lambda nil (buffer-substring (match-beginning 2) (match-end 2)))) "\ @@ -10836,7 +10877,7 @@ Visit the file you click on in another window. ;;;;;; find-variable find-variable-noselect find-function-other-frame ;;;;;; find-function-other-window find-function find-function-noselect ;;;;;; find-function-search-for-symbol find-library) "find-func" -;;;;;; "emacs-lisp/find-func.el" (20497 6436 957082 0)) +;;;;;; "emacs-lisp/find-func.el" (20511 52965 0 0)) ;;; Generated autoloads from emacs-lisp/find-func.el (autoload 'find-library "find-func" "\ @@ -10995,8 +11036,8 @@ Define some key bindings for the find-function family of functions. ;;;*** ;;;### (autoloads (find-lisp-find-dired-filter find-lisp-find-dired-subdirectories -;;;;;; find-lisp-find-dired) "find-lisp" "find-lisp.el" (20355 10021 -;;;;;; 546955 0)) +;;;;;; find-lisp-find-dired) "find-lisp" "find-lisp.el" (20244 35516 +;;;;;; 0 0)) ;;; Generated autoloads from find-lisp.el (autoload 'find-lisp-find-dired "find-lisp" "\ @@ -11017,7 +11058,7 @@ Change the filter on a find-lisp-find-dired buffer to REGEXP. ;;;*** ;;;### (autoloads (finder-by-keyword finder-commentary finder-list-keywords) -;;;;;; "finder" "finder.el" (20355 10021 546955 0)) +;;;;;; "finder" "finder.el" (20244 35516 0 0)) ;;; Generated autoloads from finder.el (autoload 'finder-list-keywords "finder" "\ @@ -11039,7 +11080,7 @@ Find packages matching a given keyword. ;;;*** ;;;### (autoloads (enable-flow-control-on enable-flow-control) "flow-ctrl" -;;;;;; "flow-ctrl.el" (20566 63671 243798 0)) +;;;;;; "flow-ctrl.el" (20567 31133 0 0)) ;;; Generated autoloads from flow-ctrl.el (autoload 'enable-flow-control "flow-ctrl" "\ @@ -11061,7 +11102,7 @@ to get the effect of a C-q. ;;;*** ;;;### (autoloads (fill-flowed fill-flowed-encode) "flow-fill" "gnus/flow-fill.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from gnus/flow-fill.el (autoload 'fill-flowed-encode "flow-fill" "\ @@ -11077,8 +11118,8 @@ to get the effect of a C-q. ;;;*** ;;;### (autoloads (flymake-find-file-hook flymake-mode-off flymake-mode-on -;;;;;; flymake-mode) "flymake" "progmodes/flymake.el" (20551 9899 -;;;;;; 283417 0)) +;;;;;; flymake-mode) "flymake" "progmodes/flymake.el" (20600 16892 +;;;;;; 0 0)) ;;; Generated autoloads from progmodes/flymake.el (autoload 'flymake-mode "flymake" "\ @@ -11108,7 +11149,7 @@ Turn flymake mode off. ;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off ;;;;;; turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode) -;;;;;; "flyspell" "textmodes/flyspell.el" (20566 63671 243798 0)) +;;;;;; "flyspell" "textmodes/flyspell.el" (20567 31133 0 0)) ;;; Generated autoloads from textmodes/flyspell.el (autoload 'flyspell-prog-mode "flyspell" "\ @@ -11180,7 +11221,7 @@ Flyspell whole buffer. ;;;### (autoloads (follow-delete-other-windows-and-split follow-mode ;;;;;; turn-off-follow-mode turn-on-follow-mode) "follow" "follow.el" -;;;;;; (20501 3499 284800 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from follow.el (autoload 'turn-on-follow-mode "follow" "\ @@ -11248,8 +11289,8 @@ selected if the original window is the first one in the frame. ;;;*** -;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (20478 -;;;;;; 3673 653810 0)) +;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (20511 +;;;;;; 52965 0 0)) ;;; Generated autoloads from mail/footnote.el (autoload 'footnote-mode "footnote" "\ @@ -11268,7 +11309,7 @@ play around with the following keys: ;;;*** ;;;### (autoloads (forms-find-file-other-window forms-find-file forms-mode) -;;;;;; "forms" "forms.el" (20427 14766 970343 0)) +;;;;;; "forms" "forms.el" (20428 57510 0 0)) ;;; Generated autoloads from forms.el (autoload 'forms-mode "forms" "\ @@ -11305,7 +11346,7 @@ Visit a file in Forms mode in other window. ;;;*** ;;;### (autoloads (fortran-mode) "fortran" "progmodes/fortran.el" -;;;;;; (20438 24024 724594 589000)) +;;;;;; (20446 34252 0 0)) ;;; Generated autoloads from progmodes/fortran.el (autoload 'fortran-mode "fortran" "\ @@ -11383,8 +11424,8 @@ with no args, if that value is non-nil. ;;;*** ;;;### (autoloads (fortune fortune-to-signature fortune-compile fortune-from-region -;;;;;; fortune-add-fortune) "fortune" "play/fortune.el" (20355 10021 -;;;;;; 546955 0)) +;;;;;; fortune-add-fortune) "fortune" "play/fortune.el" (20244 35516 +;;;;;; 0 0)) ;;; Generated autoloads from play/fortune.el (autoload 'fortune-add-fortune "fortune" "\ @@ -11433,7 +11474,7 @@ and choose the directory as the fortune-file. ;;;*** ;;;### (autoloads (gdb gdb-enable-debug) "gdb-mi" "progmodes/gdb-mi.el" -;;;;;; (20537 63402 936234 0)) +;;;;;; (20539 37147 0 0)) ;;; Generated autoloads from progmodes/gdb-mi.el (defvar gdb-enable-debug nil "\ @@ -11511,8 +11552,8 @@ detailed description of this mode. ;;;*** ;;;### (autoloads (generic-make-keywords-list generic-mode generic-mode-internal -;;;;;; define-generic-mode) "generic" "emacs-lisp/generic.el" (20406 -;;;;;; 8611 875037 0)) +;;;;;; define-generic-mode) "generic" "emacs-lisp/generic.el" (20412 +;;;;;; 11425 0 0)) ;;; Generated autoloads from emacs-lisp/generic.el (defvar generic-mode-list nil "\ @@ -11591,7 +11632,7 @@ regular expression that can be used as an element of ;;;*** ;;;### (autoloads (glasses-mode) "glasses" "progmodes/glasses.el" -;;;;;; (20478 3673 653810 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from progmodes/glasses.el (autoload 'glasses-mode "glasses" "\ @@ -11607,7 +11648,7 @@ add virtual separators (like underscores) at places they belong to. ;;;### (autoloads (gmm-tool-bar-from-list gmm-widget-p gmm-error ;;;;;; gmm-message gmm-regexp-concat) "gmm-utils" "gnus/gmm-utils.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20318 5885 0 0)) ;;; Generated autoloads from gnus/gmm-utils.el (autoload 'gmm-regexp-concat "gmm-utils" "\ @@ -11662,8 +11703,8 @@ DEFAULT-MAP specifies the default key map for ICON-LIST. ;;;*** ;;;### (autoloads (gnus gnus-other-frame gnus-slave gnus-no-server -;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (20552 30761 -;;;;;; 207103 0)) +;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (20553 2323 0 +;;;;;; 0)) ;;; Generated autoloads from gnus/gnus.el (when (fboundp 'custom-autoload) (custom-autoload 'gnus-select-method "gnus")) @@ -11716,7 +11757,7 @@ prompt the user for the name of an NNTP server to use. ;;;;;; gnus-agent-get-undownloaded-list gnus-agent-delete-group ;;;;;; gnus-agent-rename-group gnus-agent-possibly-save-gcc gnus-agentize ;;;;;; gnus-slave-unplugged gnus-plugged gnus-unplugged) "gnus-agent" -;;;;;; "gnus/gnus-agent.el" (20518 12580 46478 0)) +;;;;;; "gnus/gnus-agent.el" (20517 31338 0 0)) ;;; Generated autoloads from gnus/gnus-agent.el (autoload 'gnus-unplugged "gnus-agent" "\ @@ -11807,7 +11848,7 @@ If CLEAN, obsolete (ignore). ;;;*** ;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el" -;;;;;; (20578 54821 719276 0)) +;;;;;; (20579 15299 0 0)) ;;; Generated autoloads from gnus/gnus-art.el (autoload 'gnus-article-prepare-display "gnus-art" "\ @@ -11818,8 +11859,7 @@ Make the current buffer look like a nice article. ;;;*** ;;;### (autoloads (gnus-bookmark-bmenu-list gnus-bookmark-jump gnus-bookmark-set) -;;;;;; "gnus-bookmark" "gnus/gnus-bookmark.el" (20355 10021 546955 -;;;;;; 0)) +;;;;;; "gnus-bookmark" "gnus/gnus-bookmark.el" (20244 35516 0 0)) ;;; Generated autoloads from gnus/gnus-bookmark.el (autoload 'gnus-bookmark-set "gnus-bookmark" "\ @@ -11844,8 +11884,8 @@ deletion, or > if it is flagged for displaying. ;;;### (autoloads (gnus-cache-delete-group gnus-cache-rename-group ;;;;;; gnus-cache-generate-nov-databases gnus-cache-generate-active -;;;;;; gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (20355 -;;;;;; 10021 546955 0)) +;;;;;; gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from gnus/gnus-cache.el (autoload 'gnus-jog-cache "gnus-cache" "\ @@ -11887,7 +11927,7 @@ supported. ;;;*** ;;;### (autoloads (gnus-delay-initialize gnus-delay-send-queue gnus-delay-article) -;;;;;; "gnus-delay" "gnus/gnus-delay.el" (20355 10021 546955 0)) +;;;;;; "gnus-delay" "gnus/gnus-delay.el" (20244 35516 0 0)) ;;; Generated autoloads from gnus/gnus-delay.el (autoload 'gnus-delay-article "gnus-delay" "\ @@ -11923,7 +11963,7 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil. ;;;*** ;;;### (autoloads (gnus-user-format-function-D gnus-user-format-function-d) -;;;;;; "gnus-diary" "gnus/gnus-diary.el" (20355 10021 546955 0)) +;;;;;; "gnus-diary" "gnus/gnus-diary.el" (20244 35516 0 0)) ;;; Generated autoloads from gnus/gnus-diary.el (autoload 'gnus-user-format-function-d "gnus-diary" "\ @@ -11939,7 +11979,7 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil. ;;;*** ;;;### (autoloads (turn-on-gnus-dired-mode) "gnus-dired" "gnus/gnus-dired.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from gnus/gnus-dired.el (autoload 'turn-on-gnus-dired-mode "gnus-dired" "\ @@ -11950,7 +11990,7 @@ Convenience method to turn on gnus-dired-mode. ;;;*** ;;;### (autoloads (gnus-draft-reminder) "gnus-draft" "gnus/gnus-draft.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from gnus/gnus-draft.el (autoload 'gnus-draft-reminder "gnus-draft" "\ @@ -11962,8 +12002,8 @@ Reminder user if there are unsent drafts. ;;;### (autoloads (gnus-convert-png-to-face gnus-convert-face-to-png ;;;;;; gnus-face-from-file gnus-x-face-from-file gnus-insert-random-x-face-header -;;;;;; gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (20549 -;;;;;; 54573 979353 0)) +;;;;;; gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (20550 +;;;;;; 14882 0 0)) ;;; Generated autoloads from gnus/gnus-fun.el (autoload 'gnus-random-x-face "gnus-fun" "\ @@ -12008,8 +12048,7 @@ FILE should be a PNG file that's 48x48 and smaller than or equal to ;;;*** ;;;### (autoloads (gnus-treat-mail-gravatar gnus-treat-from-gravatar) -;;;;;; "gnus-gravatar" "gnus/gnus-gravatar.el" (20355 10021 546955 -;;;;;; 0)) +;;;;;; "gnus-gravatar" "gnus/gnus-gravatar.el" (20244 35516 0 0)) ;;; Generated autoloads from gnus/gnus-gravatar.el (autoload 'gnus-treat-from-gravatar "gnus-gravatar" "\ @@ -12027,7 +12066,7 @@ If gravatars are already displayed, remove them. ;;;*** ;;;### (autoloads (gnus-fetch-group-other-frame gnus-fetch-group) -;;;;;; "gnus-group" "gnus/gnus-group.el" (20553 51627 169867 0)) +;;;;;; "gnus-group" "gnus/gnus-group.el" (20553 63503 0 0)) ;;; Generated autoloads from gnus/gnus-group.el (autoload 'gnus-fetch-group "gnus-group" "\ @@ -12045,7 +12084,7 @@ Pop up a frame and enter GROUP. ;;;*** ;;;### (autoloads (gnus-html-prefetch-images gnus-article-html) "gnus-html" -;;;;;; "gnus/gnus-html.el" (20355 10021 546955 0)) +;;;;;; "gnus/gnus-html.el" (20276 3849 0 0)) ;;; Generated autoloads from gnus/gnus-html.el (autoload 'gnus-article-html "gnus-html" "\ @@ -12061,7 +12100,7 @@ Pop up a frame and enter GROUP. ;;;*** ;;;### (autoloads (gnus-batch-score) "gnus-kill" "gnus/gnus-kill.el" -;;;;;; (20495 51111 757560 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from gnus/gnus-kill.el (defalias 'gnus-batch-kill 'gnus-batch-score) @@ -12076,7 +12115,7 @@ Usage: emacs -batch -l ~/.emacs -l gnus -f gnus-batch-score ;;;### (autoloads (gnus-mailing-list-mode gnus-mailing-list-insinuate ;;;;;; turn-on-gnus-mailing-list-mode) "gnus-ml" "gnus/gnus-ml.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from gnus/gnus-ml.el (autoload 'turn-on-gnus-mailing-list-mode "gnus-ml" "\ @@ -12101,7 +12140,7 @@ Minor mode for providing mailing-list commands. ;;;### (autoloads (gnus-group-split-fancy gnus-group-split gnus-group-split-update ;;;;;; gnus-group-split-setup) "gnus-mlspl" "gnus/gnus-mlspl.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from gnus/gnus-mlspl.el (autoload 'gnus-group-split-setup "gnus-mlspl" "\ @@ -12202,7 +12241,7 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns: ;;;*** ;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail) -;;;;;; "gnus-msg" "gnus/gnus-msg.el" (20533 5993 500881 0)) +;;;;;; "gnus-msg" "gnus/gnus-msg.el" (20600 16892 0 0)) ;;; Generated autoloads from gnus/gnus-msg.el (autoload 'gnus-msg-mail "gnus-msg" "\ @@ -12229,7 +12268,7 @@ Like `message-reply'. ;;;*** ;;;### (autoloads (gnus-notifications) "gnus-notifications" "gnus/gnus-notifications.el" -;;;;;; (20559 4008 701730 0)) +;;;;;; (20600 16892 0 0)) ;;; Generated autoloads from gnus/gnus-notifications.el (autoload 'gnus-notifications "gnus-notifications" "\ @@ -12247,7 +12286,7 @@ This is typically a function to add in ;;;### (autoloads (gnus-treat-newsgroups-picon gnus-treat-mail-picon ;;;;;; gnus-treat-from-picon) "gnus-picon" "gnus/gnus-picon.el" -;;;;;; (20523 62082 997685 0)) +;;;;;; (20523 63054 0 0)) ;;; Generated autoloads from gnus/gnus-picon.el (autoload 'gnus-treat-from-picon "gnus-picon" "\ @@ -12274,7 +12313,7 @@ If picons are already displayed, remove them. ;;;;;; gnus-sorted-nintersection gnus-sorted-range-intersection ;;;;;; gnus-sorted-intersection gnus-intersection gnus-sorted-complement ;;;;;; gnus-sorted-ndifference gnus-sorted-difference) "gnus-range" -;;;;;; "gnus/gnus-range.el" (20544 36659 880486 0)) +;;;;;; "gnus/gnus-range.el" (20544 52783 0 0)) ;;; Generated autoloads from gnus/gnus-range.el (autoload 'gnus-sorted-difference "gnus-range" "\ @@ -12342,8 +12381,7 @@ Add NUM into sorted LIST by side effect. ;;;*** ;;;### (autoloads (gnus-registry-install-hooks gnus-registry-initialize) -;;;;;; "gnus-registry" "gnus/gnus-registry.el" (20544 36659 880486 -;;;;;; 0)) +;;;;;; "gnus-registry" "gnus/gnus-registry.el" (20544 52783 0 0)) ;;; Generated autoloads from gnus/gnus-registry.el (autoload 'gnus-registry-initialize "gnus-registry" "\ @@ -12359,8 +12397,8 @@ Install the registry hooks. ;;;*** ;;;### (autoloads (gnus-sieve-article-add-rule gnus-sieve-generate -;;;;;; gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (20355 -;;;;;; 10021 546955 0)) +;;;;;; gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from gnus/gnus-sieve.el (autoload 'gnus-sieve-update "gnus-sieve" "\ @@ -12388,7 +12426,7 @@ See the documentation for these variables and functions for details. ;;;*** ;;;### (autoloads (gnus-update-format) "gnus-spec" "gnus/gnus-spec.el" -;;;;;; (20458 56750 651721 0)) +;;;;;; (20460 33749 0 0)) ;;; Generated autoloads from gnus/gnus-spec.el (autoload 'gnus-update-format "gnus-spec" "\ @@ -12399,7 +12437,7 @@ Update the format specification near point. ;;;*** ;;;### (autoloads (gnus-declare-backend) "gnus-start" "gnus/gnus-start.el" -;;;;;; (20495 51111 757560 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from gnus/gnus-start.el (autoload 'gnus-declare-backend "gnus-start" "\ @@ -12410,7 +12448,7 @@ Declare back end NAME with ABILITIES as a Gnus back end. ;;;*** ;;;### (autoloads (gnus-summary-bookmark-jump) "gnus-sum" "gnus/gnus-sum.el" -;;;;;; (20540 39589 424586 0)) +;;;;;; (20540 61982 0 0)) ;;; Generated autoloads from gnus/gnus-sum.el (autoload 'gnus-summary-bookmark-jump "gnus-sum" "\ @@ -12422,7 +12460,7 @@ BOOKMARK is a bookmark name or a bookmark record. ;;;*** ;;;### (autoloads (gnus-sync-install-hooks gnus-sync-initialize) -;;;;;; "gnus-sync" "gnus/gnus-sync.el" (20545 57511 257469 0)) +;;;;;; "gnus-sync" "gnus/gnus-sync.el" (20600 16892 0 0)) ;;; Generated autoloads from gnus/gnus-sync.el (autoload 'gnus-sync-initialize "gnus-sync" "\ @@ -12438,7 +12476,7 @@ Install the sync hooks. ;;;*** ;;;### (autoloads (gnus-add-configuration) "gnus-win" "gnus/gnus-win.el" -;;;;;; (20447 49522 409090 0)) +;;;;;; (20448 36271 0 0)) ;;; Generated autoloads from gnus/gnus-win.el (autoload 'gnus-add-configuration "gnus-win" "\ @@ -12449,7 +12487,7 @@ Add the window configuration CONF to `gnus-buffer-configuration'. ;;;*** ;;;### (autoloads (gnutls-min-prime-bits) "gnutls" "net/gnutls.el" -;;;;;; (20476 31768 298871 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from net/gnutls.el (defvar gnutls-min-prime-bits 256 "\ @@ -12465,8 +12503,8 @@ A value of nil says to use the default GnuTLS value.") ;;;*** -;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (20545 57511 -;;;;;; 257469 0)) +;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (20550 14882 +;;;;;; 0 0)) ;;; Generated autoloads from play/gomoku.el (autoload 'gomoku "gomoku" "\ @@ -12493,8 +12531,8 @@ Use \\[describe-mode] for more info. ;;;*** ;;;### (autoloads (goto-address-prog-mode goto-address-mode goto-address -;;;;;; goto-address-at-point) "goto-addr" "net/goto-addr.el" (20566 -;;;;;; 63671 243798 0)) +;;;;;; goto-address-at-point) "goto-addr" "net/goto-addr.el" (20567 +;;;;;; 31133 0 0)) ;;; Generated autoloads from net/goto-addr.el (define-obsolete-function-alias 'goto-address-at-mouse 'goto-address-at-point "22.1") @@ -12536,7 +12574,7 @@ Like `goto-address-mode', but only for comments and strings. ;;;*** ;;;### (autoloads (gravatar-retrieve-synchronously gravatar-retrieve) -;;;;;; "gravatar" "gnus/gravatar.el" (20355 10021 546955 0)) +;;;;;; "gravatar" "gnus/gravatar.el" (20290 33419 0 0)) ;;; Generated autoloads from gnus/gravatar.el (autoload 'gravatar-retrieve "gravatar" "\ @@ -12554,8 +12592,8 @@ Retrieve MAIL-ADDRESS gravatar and returns it. ;;;### (autoloads (zrgrep rgrep lgrep grep-find grep grep-mode grep-compute-defaults ;;;;;; grep-process-setup grep-setup-hook grep-find-command grep-command -;;;;;; grep-window-height) "grep" "progmodes/grep.el" (20572 16038 -;;;;;; 402143 0)) +;;;;;; grep-window-height) "grep" "progmodes/grep.el" (20577 48876 +;;;;;; 0 0)) ;;; Generated autoloads from progmodes/grep.el (defvar grep-window-height nil "\ @@ -12718,8 +12756,7 @@ file name to `*.gz', and sets `grep-highlight-matches' to `always'. ;;;*** -;;;### (autoloads (gs-load-image) "gs" "gs.el" (20355 10021 546955 -;;;;;; 0)) +;;;### (autoloads (gs-load-image) "gs" "gs.el" (20244 35516 0 0)) ;;; Generated autoloads from gs.el (autoload 'gs-load-image "gs" "\ @@ -12733,8 +12770,8 @@ the form \"WINDOW-ID PIXMAP-ID\". Value is non-nil if successful. ;;;*** ;;;### (autoloads (gud-tooltip-mode gdb-script-mode jdb pdb perldb -;;;;;; xdb dbx sdb gud-gdb) "gud" "progmodes/gud.el" (20537 63402 -;;;;;; 936234 0)) +;;;;;; xdb dbx sdb gud-gdb) "gud" "progmodes/gud.el" (20539 37147 +;;;;;; 0 0)) ;;; Generated autoloads from progmodes/gud.el (autoload 'gud-gdb "gud" "\ @@ -12824,7 +12861,7 @@ it if ARG is omitted or nil. ;;;### (autoloads (setf gv-define-simple-setter gv-define-setter ;;;;;; gv--defun-declaration gv-define-expander gv-letplace gv-get) -;;;;;; "gv" "emacs-lisp/gv.el" (20580 10161 446444 0)) +;;;;;; "gv" "emacs-lisp/gv.el" (20579 15299 0 0)) ;;; Generated autoloads from emacs-lisp/gv.el (autoload 'gv-get "gv" "\ @@ -12913,8 +12950,8 @@ The return value is the last VAL in the list. ;;;*** -;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (20566 -;;;;;; 63671 243798 0)) +;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (20567 +;;;;;; 31133 0 0)) ;;; Generated autoloads from play/handwrite.el (autoload 'handwrite "handwrite" "\ @@ -12932,7 +12969,7 @@ Variables: `handwrite-linespace' (default 12) ;;;*** ;;;### (autoloads (hanoi-unix-64 hanoi-unix hanoi) "hanoi" "play/hanoi.el" -;;;;;; (20478 3673 653810 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from play/hanoi.el (autoload 'hanoi "hanoi" "\ @@ -12961,7 +12998,7 @@ to be updated. ;;;### (autoloads (mail-check-payment mail-add-payment-async mail-add-payment ;;;;;; hashcash-verify-payment hashcash-insert-payment-async hashcash-insert-payment) -;;;;;; "hashcash" "mail/hashcash.el" (20355 10021 546955 0)) +;;;;;; "hashcash" "mail/hashcash.el" (20356 35090 0 0)) ;;; Generated autoloads from mail/hashcash.el (autoload 'hashcash-insert-payment "hashcash" "\ @@ -13006,8 +13043,8 @@ Prefix arg sets default accept amount temporarily. ;;;### (autoloads (scan-buf-previous-region scan-buf-next-region ;;;;;; scan-buf-move-to-region help-at-pt-display-when-idle help-at-pt-set-timer ;;;;;; help-at-pt-cancel-timer display-local-help help-at-pt-kbd-string -;;;;;; help-at-pt-string) "help-at-pt" "help-at-pt.el" (20355 10021 -;;;;;; 546955 0)) +;;;;;; help-at-pt-string) "help-at-pt" "help-at-pt.el" (20244 35516 +;;;;;; 0 0)) ;;; Generated autoloads from help-at-pt.el (autoload 'help-at-pt-string "help-at-pt" "\ @@ -13137,7 +13174,7 @@ different regions. With numeric argument ARG, behaves like ;;;### (autoloads (doc-file-to-info doc-file-to-man describe-categories ;;;;;; describe-syntax describe-variable variable-at-point describe-function-1 ;;;;;; find-lisp-object-file-name help-C-file-name describe-function) -;;;;;; "help-fns" "help-fns.el" (20584 7212 455152 0)) +;;;;;; "help-fns" "help-fns.el" (20600 16892 0 0)) ;;; Generated autoloads from help-fns.el (autoload 'describe-function "help-fns" "\ @@ -13214,12 +13251,27 @@ Produce a texinfo buffer with sorted doc-strings from the DOC file. \(fn FILE)" t nil) +;;;*** + +;;;### (autoloads (three-step-help) "help-macro" "help-macro.el" +;;;;;; (20589 46442 0 0)) +;;; Generated autoloads from help-macro.el + +(defvar three-step-help nil "\ +Non-nil means give more info about Help command in three steps. +The three steps are simple prompt, prompt with all options, and +window listing and describing the options. +A value of nil means skip the middle step, so that \\[help-command] \\[help-command] +gives the window that lists the options.") + +(custom-autoload 'three-step-help "help-macro" t) + ;;;*** ;;;### (autoloads (help-bookmark-jump help-xref-on-pp help-insert-xref-button ;;;;;; help-xref-button help-make-xrefs help-buffer help-setup-xref ;;;;;; help-mode-finish help-mode-setup help-mode) "help-mode" "help-mode.el" -;;;;;; (20510 18478 782378 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from help-mode.el (autoload 'help-mode "help-mode" "\ @@ -13319,7 +13371,7 @@ BOOKMARK is a bookmark name or a bookmark record. ;;;*** ;;;### (autoloads (Helper-help Helper-describe-bindings) "helper" -;;;;;; "emacs-lisp/helper.el" (20355 10021 546955 0)) +;;;;;; "emacs-lisp/helper.el" (20244 35516 0 0)) ;;; Generated autoloads from emacs-lisp/helper.el (autoload 'Helper-describe-bindings "helper" "\ @@ -13335,7 +13387,7 @@ Provide help for current mode. ;;;*** ;;;### (autoloads (hexlify-buffer hexl-find-file hexl-mode) "hexl" -;;;;;; "hexl.el" (20523 62082 997685 0)) +;;;;;; "hexl.el" (20523 63054 0 0)) ;;; Generated autoloads from hexl.el (autoload 'hexl-mode "hexl" "\ @@ -13432,7 +13484,7 @@ This discards the buffer's undo information. ;;;### (autoloads (hi-lock-write-interactive-patterns hi-lock-unface-buffer ;;;;;; hi-lock-face-phrase-buffer hi-lock-face-buffer hi-lock-line-face-buffer ;;;;;; global-hi-lock-mode hi-lock-mode) "hi-lock" "hi-lock.el" -;;;;;; (20566 63671 243798 0)) +;;;;;; (20600 16892 0 0)) ;;; Generated autoloads from hi-lock.el (autoload 'hi-lock-mode "hi-lock" "\ @@ -13549,8 +13601,8 @@ updated as you type. (autoload 'hi-lock-face-phrase-buffer "hi-lock" "\ Set face of each match of phrase REGEXP to FACE. -Whitespace in REGEXP converted to arbitrary whitespace and initial -lower-case letters made case insensitive. +If called interactively, replaces whitespace in REGEXP with +arbitrary whitespace and makes initial lower-case letters case-insensitive. If Font Lock mode is enabled in the buffer, it is used to highlight REGEXP. If Font Lock mode is disabled, overlays are @@ -13580,7 +13632,7 @@ be found in variable `hi-lock-interactive-patterns'. ;;;*** ;;;### (autoloads (hide-ifdef-mode) "hideif" "progmodes/hideif.el" -;;;;;; (20541 6907 775259 0)) +;;;;;; (20589 46442 0 0)) ;;; Generated autoloads from progmodes/hideif.el (autoload 'hide-ifdef-mode "hideif" "\ @@ -13624,7 +13676,7 @@ Several variables affect how the hiding is done: ;;;*** ;;;### (autoloads (turn-off-hideshow hs-minor-mode) "hideshow" "progmodes/hideshow.el" -;;;;;; (20566 63671 243798 0)) +;;;;;; (20567 31133 0 0)) ;;; Generated autoloads from progmodes/hideshow.el (defvar hs-special-modes-alist (mapcar 'purecopy '((c-mode "{" "}" "/[*/]" nil nil) (c++-mode "{" "}" "/[*/]" nil nil) (bibtex-mode ("@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil nil) (js-mode "{" "}" "/[*/]" nil))) "\ @@ -13690,8 +13742,8 @@ Unconditionally turn off `hs-minor-mode'. ;;;;;; highlight-compare-buffers highlight-changes-rotate-faces ;;;;;; highlight-changes-previous-change highlight-changes-next-change ;;;;;; highlight-changes-remove-highlight highlight-changes-visible-mode -;;;;;; highlight-changes-mode) "hilit-chg" "hilit-chg.el" (20355 -;;;;;; 10021 546955 0)) +;;;;;; highlight-changes-mode) "hilit-chg" "hilit-chg.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from hilit-chg.el (autoload 'highlight-changes-mode "hilit-chg" "\ @@ -13823,7 +13875,7 @@ See `highlight-changes-mode' for more information on Highlight-Changes mode. ;;;*** ;;;### (autoloads (make-hippie-expand-function hippie-expand) "hippie-exp" -;;;;;; "hippie-exp.el" (20584 7212 455152 0)) +;;;;;; "hippie-exp.el" (20585 55103 0 0)) ;;; Generated autoloads from hippie-exp.el (autoload 'hippie-expand "hippie-exp" "\ @@ -13848,7 +13900,7 @@ argument VERBOSE non-nil makes the function verbose. ;;;*** ;;;### (autoloads (global-hl-line-mode hl-line-mode) "hl-line" "hl-line.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from hl-line.el (autoload 'hl-line-mode "hl-line" "\ @@ -13901,7 +13953,7 @@ Global-Hl-Line mode uses the functions `global-hl-line-unhighlight' and ;;;;;; holiday-bahai-holidays holiday-islamic-holidays holiday-christian-holidays ;;;;;; holiday-hebrew-holidays holiday-other-holidays holiday-local-holidays ;;;;;; holiday-oriental-holidays holiday-general-holidays) "holidays" -;;;;;; "calendar/holidays.el" (20566 63671 243798 0)) +;;;;;; "calendar/holidays.el" (20567 31133 0 0)) ;;; Generated autoloads from calendar/holidays.el (define-obsolete-variable-alias 'general-holidays 'holiday-general-holidays "23.1") @@ -14049,8 +14101,8 @@ The optional LABEL is used to label the buffer created. ;;;*** -;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from gnus/html2text.el (autoload 'html2text "html2text" "\ @@ -14061,7 +14113,7 @@ Convert HTML to plain text in the current buffer. ;;;*** ;;;### (autoloads (htmlfontify-copy-and-link-dir htmlfontify-buffer) -;;;;;; "htmlfontify" "htmlfontify.el" (20577 33959 40183 0)) +;;;;;; "htmlfontify" "htmlfontify.el" (20577 48876 0 0)) ;;; Generated autoloads from htmlfontify.el (autoload 'htmlfontify-buffer "htmlfontify" "\ @@ -14094,8 +14146,8 @@ You may also want to set `hfy-page-header' and `hfy-page-footer'. ;;;*** ;;;### (autoloads (define-ibuffer-filter define-ibuffer-op define-ibuffer-sorter -;;;;;; define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (20478 -;;;;;; 3673 653810 0)) +;;;;;; define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (20511 +;;;;;; 52965 0 0)) ;;; Generated autoloads from ibuf-macs.el (autoload 'define-ibuffer-column "ibuf-macs" "\ @@ -14121,7 +14173,7 @@ inlined into the compiled format versions. This means that if you change its definition, you should explicitly call `ibuffer-recompile-formats'. -\(fn SYMBOL (&key NAME INLINE PROPS SUMMARIZER) &rest BODY)" nil nil) +\(fn SYMBOL (&key NAME INLINE PROPS SUMMARIZER) &rest BODY)" nil (quote macro)) (autoload 'define-ibuffer-sorter "ibuf-macs" "\ Define a method of sorting named NAME. @@ -14133,7 +14185,7 @@ For sorting, the forms in BODY will be evaluated with `a' bound to one buffer object, and `b' bound to another. BODY should return a non-nil value if and only if `a' is \"less than\" `b'. -\(fn NAME DOCUMENTATION (&key DESCRIPTION) &rest BODY)" nil nil) +\(fn NAME DOCUMENTATION (&key DESCRIPTION) &rest BODY)" nil (quote macro)) (autoload 'define-ibuffer-op "ibuf-macs" "\ Generate a function which operates on a buffer. @@ -14166,7 +14218,7 @@ confirmation message, in the form: COMPLEX means this function is special; see the source code of this macro for exactly what it does. -\(fn OP ARGS DOCUMENTATION (&key INTERACTIVE MARK MODIFIER-P DANGEROUS OPSTRING ACTIVE-OPSTRING COMPLEX) &rest BODY)" nil nil) +\(fn OP ARGS DOCUMENTATION (&key INTERACTIVE MARK MODIFIER-P DANGEROUS OPSTRING ACTIVE-OPSTRING COMPLEX) &rest BODY)" nil (quote macro)) (autoload 'define-ibuffer-filter "ibuf-macs" "\ Define a filter named NAME. @@ -14179,12 +14231,12 @@ not a particular buffer should be displayed or not. The forms in BODY will be evaluated with BUF bound to the buffer object, and QUALIFIER bound to the current value of the filter. -\(fn NAME DOCUMENTATION (&key READER DESCRIPTION) &rest BODY)" nil nil) +\(fn NAME DOCUMENTATION (&key READER DESCRIPTION) &rest BODY)" nil (quote macro)) ;;;*** ;;;### (autoloads (ibuffer ibuffer-other-window ibuffer-list-buffers) -;;;;;; "ibuffer" "ibuffer.el" (20576 13312 649004 817000)) +;;;;;; "ibuffer" "ibuffer.el" (20577 48876 0 0)) ;;; Generated autoloads from ibuffer.el (autoload 'ibuffer-list-buffers "ibuffer" "\ @@ -14225,7 +14277,7 @@ FORMATS is the value to use for `ibuffer-formats'. ;;;### (autoloads (icalendar-import-buffer icalendar-import-file ;;;;;; icalendar-export-region icalendar-export-file) "icalendar" -;;;;;; "calendar/icalendar.el" (20577 33959 40183 0)) +;;;;;; "calendar/icalendar.el" (20600 16892 0 0)) ;;; Generated autoloads from calendar/icalendar.el (autoload 'icalendar-export-file "icalendar" "\ @@ -14277,8 +14329,8 @@ buffer `*icalendar-errors*'. ;;;*** -;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (20453 -;;;;;; 5437 764254 0)) +;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (20452 +;;;;;; 44311 0 0)) ;;; Generated autoloads from icomplete.el (defvar icomplete-mode nil "\ @@ -14300,8 +14352,8 @@ the mode if ARG is omitted or nil. ;;;*** -;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (20356 35090 +;;;;;; 0 0)) ;;; Generated autoloads from progmodes/icon.el (autoload 'icon-mode "icon" "\ @@ -14342,7 +14394,7 @@ with no args, if that value is non-nil. ;;;*** ;;;### (autoloads (idlwave-shell) "idlw-shell" "progmodes/idlw-shell.el" -;;;;;; (20572 16038 402143 0)) +;;;;;; (20577 48876 0 0)) ;;; Generated autoloads from progmodes/idlw-shell.el (autoload 'idlwave-shell "idlw-shell" "\ @@ -14368,7 +14420,7 @@ See also the variable `idlwave-shell-prompt-pattern'. ;;;*** ;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el" -;;;;;; (20576 42138 697312 0)) +;;;;;; (20577 48876 0 0)) ;;; Generated autoloads from progmodes/idlwave.el (autoload 'idlwave-mode "idlwave" "\ @@ -14502,8 +14554,8 @@ The main features of this mode are ;;;;;; ido-find-alternate-file ido-find-file-other-window ido-find-file ;;;;;; ido-find-file-in-dir ido-switch-buffer-other-frame ido-insert-buffer ;;;;;; ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window -;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (20585 -;;;;;; 28088 480237 0)) +;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (20592 +;;;;;; 26321 0 0)) ;;; Generated autoloads from ido.el (defvar ido-mode nil "\ @@ -14762,7 +14814,7 @@ DEF, if non-nil, is the default value. ;;;*** -;;;### (autoloads (ielm) "ielm" "ielm.el" (20566 63671 243798 0)) +;;;### (autoloads (ielm) "ielm" "ielm.el" (20567 31133 0 0)) ;;; Generated autoloads from ielm.el (autoload 'ielm "ielm" "\ @@ -14773,8 +14825,8 @@ Switches to the buffer `*ielm*', or creates it if it does not exist. ;;;*** -;;;### (autoloads (iimage-mode) "iimage" "iimage.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads (iimage-mode) "iimage" "iimage.el" (20276 3849 +;;;;;; 0 0)) ;;; Generated autoloads from iimage.el (define-obsolete-function-alias 'turn-on-iimage-mode 'iimage-mode "24.1") @@ -14795,7 +14847,7 @@ the mode if ARG is omitted or nil, and toggle it if ARG is `toggle'. ;;;;;; create-image image-type-auto-detected-p image-type-available-p ;;;;;; image-type image-type-from-file-name image-type-from-file-header ;;;;;; image-type-from-buffer image-type-from-data) "image" "image.el" -;;;;;; (20574 57775 217760 0)) +;;;;;; (20577 48876 0 0)) ;;; Generated autoloads from image.el (autoload 'image-type-from-data "image" "\ @@ -14995,7 +15047,7 @@ If Emacs is compiled without ImageMagick support, this does nothing. ;;;;;; image-dired-jump-thumbnail-buffer image-dired-delete-tag ;;;;;; image-dired-tag-files image-dired-show-all-from-dir image-dired-display-thumbs ;;;;;; image-dired-dired-with-window-configuration image-dired-dired-toggle-marked-thumbs) -;;;;;; "image-dired" "image-dired.el" (20478 3673 653810 0)) +;;;;;; "image-dired" "image-dired.el" (20511 52965 0 0)) ;;; Generated autoloads from image-dired.el (autoload 'image-dired-dired-toggle-marked-thumbs "image-dired" "\ @@ -15133,7 +15185,7 @@ easy-to-use form. ;;;### (autoloads (auto-image-file-mode insert-image-file image-file-name-regexp ;;;;;; image-file-name-regexps image-file-name-extensions) "image-file" -;;;;;; "image-file.el" (20355 10021 546955 0)) +;;;;;; "image-file.el" (20244 35516 0 0)) ;;; Generated autoloads from image-file.el (defvar image-file-name-extensions (purecopy '("png" "jpeg" "jpg" "gif" "tiff" "tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm" "svg")) "\ @@ -15196,8 +15248,7 @@ An image file is one whose name has an extension in ;;;*** ;;;### (autoloads (image-bookmark-jump image-mode-as-text image-minor-mode -;;;;;; image-mode) "image-mode" "image-mode.el" (20580 10161 446444 -;;;;;; 0)) +;;;;;; image-mode) "image-mode" "image-mode.el" (20580 46629 0 0)) ;;; Generated autoloads from image-mode.el (autoload 'image-mode "image-mode" "\ @@ -15242,8 +15293,7 @@ on these modes. ;;;*** ;;;### (autoloads (imenu imenu-add-menubar-index imenu-add-to-menubar -;;;;;; imenu-sort-function) "imenu" "imenu.el" (20577 33959 40183 -;;;;;; 0)) +;;;;;; imenu-sort-function) "imenu" "imenu.el" (20577 48876 0 0)) ;;; Generated autoloads from imenu.el (defvar imenu-sort-function nil "\ @@ -15383,7 +15433,7 @@ for more information. ;;;### (autoloads (indian-2-column-to-ucs-region in-is13194-pre-write-conversion ;;;;;; in-is13194-post-read-conversion indian-compose-string indian-compose-region) -;;;;;; "ind-util" "language/ind-util.el" (20355 10021 546955 0)) +;;;;;; "ind-util" "language/ind-util.el" (20244 35516 0 0)) ;;; Generated autoloads from language/ind-util.el (autoload 'indian-compose-region "ind-util" "\ @@ -15414,7 +15464,7 @@ Convert old Emacs Devanagari characters to UCS. ;;;*** ;;;### (autoloads (inferior-lisp) "inf-lisp" "progmodes/inf-lisp.el" -;;;;;; (20584 7212 455152 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from progmodes/inf-lisp.el (autoload 'inferior-lisp "inf-lisp" "\ @@ -15436,8 +15486,7 @@ of `inferior-lisp-program'). Runs the hooks from ;;;;;; Info-goto-emacs-key-command-node Info-goto-emacs-command-node ;;;;;; Info-mode info-finder info-apropos Info-index Info-directory ;;;;;; Info-on-current-buffer info-standalone info-emacs-bug info-emacs-manual -;;;;;; info info-other-window) "info" "info.el" (20561 18280 338092 -;;;;;; 0)) +;;;;;; info info-other-window) "info" "info.el" (20567 31133 0 0)) ;;; Generated autoloads from info.el (defcustom Info-default-directory-list (let* ((config-dir (file-name-as-directory (or (and (featurep 'ns) (let ((dir (expand-file-name "../info" data-directory))) (if (file-directory-p dir) dir))) configure-info-directory))) (prefixes (prune-directory-list '("/usr/local/" "/usr/" "/opt/" "/"))) (suffixes '("share/" "" "gnu/" "gnu/lib/" "gnu/lib/emacs/" "emacs/" "lib/" "lib/emacs/")) (standard-info-dirs (apply #'nconc (mapcar (lambda (pfx) (let ((dirs (mapcar (lambda (sfx) (concat pfx sfx "info/")) suffixes))) (prune-directory-list dirs))) prefixes))) (dirs (if (member config-dir standard-info-dirs) (nconc standard-info-dirs (list config-dir)) (cons config-dir standard-info-dirs)))) (if (not (eq system-type 'windows-nt)) dirs (let* ((instdir (file-name-directory invocation-directory)) (dir1 (expand-file-name "../info/" instdir)) (dir2 (expand-file-name "../../../info/" instdir))) (cond ((file-exists-p dir1) (append dirs (list dir1))) ((file-exists-p dir2) (append dirs (list dir2))) (t dirs))))) "\ @@ -15647,7 +15696,7 @@ Go to Info buffer that displays MANUAL, creating it if none already exists. ;;;### (autoloads (info-complete-file info-complete-symbol info-lookup-file ;;;;;; info-lookup-symbol info-lookup-reset) "info-look" "info-look.el" -;;;;;; (20474 44971 970015 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from info-look.el (autoload 'info-lookup-reset "info-look" "\ @@ -15696,7 +15745,7 @@ Perform completion on file preceding point. ;;;### (autoloads (info-xref-docstrings info-xref-check-all-custom ;;;;;; info-xref-check-all info-xref-check) "info-xref" "info-xref.el" -;;;;;; (20476 31768 298871 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from info-xref.el (autoload 'info-xref-check "info-xref" "\ @@ -15779,8 +15828,7 @@ the sources handy. ;;;*** ;;;### (autoloads (batch-info-validate Info-validate Info-split Info-split-threshold -;;;;;; Info-tagify) "informat" "informat.el" (20355 10021 546955 -;;;;;; 0)) +;;;;;; Info-tagify) "informat" "informat.el" (20244 35516 0 0)) ;;; Generated autoloads from informat.el (autoload 'Info-tagify "informat" "\ @@ -15823,11 +15871,23 @@ For example, invoke \"emacs -batch -f batch-info-validate $info/ ~/*.info\" \(fn)" nil nil) +;;;*** + +;;;### (autoloads (inversion-require-emacs) "inversion" "cedet/inversion.el" +;;;;;; (20592 26321 0 0)) +;;; Generated autoloads from cedet/inversion.el + +(autoload 'inversion-require-emacs "inversion" "\ +Declare that you need either EMACS-VER, XEMACS-VER or SXEMACS-ver. +Only checks one based on which kind of Emacs is being run. + +\(fn EMACS-VER XEMACS-VER SXEMACS-VER)" nil nil) + ;;;*** ;;;### (autoloads (isearch-process-search-multibyte-characters isearch-toggle-input-method ;;;;;; isearch-toggle-specified-input-method) "isearch-x" "international/isearch-x.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from international/isearch-x.el (autoload 'isearch-toggle-specified-input-method "isearch-x" "\ @@ -15847,8 +15907,8 @@ Toggle input method in interactive search. ;;;*** -;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from isearchb.el (autoload 'isearchb-activate "isearchb" "\ @@ -15864,7 +15924,7 @@ accessed via isearchb. ;;;### (autoloads (iso-cvt-define-menu iso-cvt-write-only iso-cvt-read-only ;;;;;; iso-sgml2iso iso-iso2sgml iso-iso2duden iso-iso2gtex iso-gtex2iso ;;;;;; iso-tex2iso iso-iso2tex iso-german iso-spanish) "iso-cvt" -;;;;;; "international/iso-cvt.el" (20355 10021 546955 0)) +;;;;;; "international/iso-cvt.el" (20244 35516 0 0)) ;;; Generated autoloads from international/iso-cvt.el (autoload 'iso-spanish "iso-cvt" "\ @@ -15955,7 +16015,7 @@ Add submenus to the File menu, to convert to and from various formats. ;;;*** ;;;### (autoloads nil "iso-transl" "international/iso-transl.el" -;;;;;; (20486 36135 22104 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from international/iso-transl.el (define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map) (autoload 'iso-transl-ctl-x-8-map "iso-transl" "Keymap for C-x 8 prefix." t 'keymap) @@ -15966,7 +16026,7 @@ Add submenus to the File menu, to convert to and from various formats. ;;;;;; ispell-complete-word ispell-continue ispell-buffer ispell-comments-and-strings ;;;;;; ispell-region ispell-change-dictionary ispell-kill-ispell ;;;;;; ispell-help ispell-pdict-save ispell-word ispell-personal-dictionary) -;;;;;; "ispell" "textmodes/ispell.el" (20566 63671 243798 0)) +;;;;;; "ispell" "textmodes/ispell.el" (20567 31133 0 0)) ;;; Generated autoloads from textmodes/ispell.el (put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive)))) @@ -16194,7 +16254,7 @@ You can bind this to the key C-c i in GNUS or mail by adding to ;;;*** ;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (20577 -;;;;;; 33959 40183 0)) +;;;;;; 48876 0 0)) ;;; Generated autoloads from iswitchb.el (defvar iswitchb-mode nil "\ @@ -16222,8 +16282,7 @@ between buffers using substrings. See `iswitchb' for details. ;;;### (autoloads (read-hiragana-string japanese-zenkaku-region japanese-hankaku-region ;;;;;; japanese-hiragana-region japanese-katakana-region japanese-zenkaku ;;;;;; japanese-hankaku japanese-hiragana japanese-katakana setup-japanese-environment-internal) -;;;;;; "japan-util" "language/japan-util.el" (20355 10021 546955 -;;;;;; 0)) +;;;;;; "japan-util" "language/japan-util.el" (20244 35516 0 0)) ;;; Generated autoloads from language/japan-util.el (autoload 'setup-japanese-environment-internal "japan-util" "\ @@ -16301,7 +16360,7 @@ If non-nil, second arg INITIAL-INPUT is a string to insert before reading. ;;;*** ;;;### (autoloads (jka-compr-uninstall jka-compr-handler) "jka-compr" -;;;;;; "jka-compr.el" (20355 10021 546955 0)) +;;;;;; "jka-compr.el" (20318 5885 0 0)) ;;; Generated autoloads from jka-compr.el (defvar jka-compr-inhibit nil "\ @@ -16324,7 +16383,7 @@ by `jka-compr-installed'. ;;;*** -;;;### (autoloads (js-mode) "js" "progmodes/js.el" (20532 45476 981297 +;;;### (autoloads (js-mode) "js" "progmodes/js.el" (20535 44414 0 ;;;;;; 0)) ;;; Generated autoloads from progmodes/js.el @@ -16339,7 +16398,7 @@ Major mode for editing JavaScript. ;;;### (autoloads (keypad-setup keypad-numlock-shifted-setup keypad-shifted-setup ;;;;;; keypad-numlock-setup keypad-setup) "keypad" "emulation/keypad.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from emulation/keypad.el (defvar keypad-setup nil "\ @@ -16395,7 +16454,7 @@ the decimal key on the keypad is mapped to DECIMAL instead of `.' ;;;*** ;;;### (autoloads (kinsoku) "kinsoku" "international/kinsoku.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from international/kinsoku.el (autoload 'kinsoku "kinsoku" "\ @@ -16416,8 +16475,8 @@ the context of text formatting. ;;;*** -;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from international/kkc.el (defvar kkc-after-update-conversion-functions nil "\ @@ -16442,7 +16501,7 @@ and the return value is the length of the conversion. ;;;### (autoloads (kmacro-end-call-mouse kmacro-end-and-call-macro ;;;;;; kmacro-end-or-call-macro kmacro-start-macro-or-insert-counter ;;;;;; kmacro-call-macro kmacro-end-macro kmacro-start-macro kmacro-exec-ring-item) -;;;;;; "kmacro" "kmacro.el" (20471 22929 875294 592000)) +;;;;;; "kmacro" "kmacro.el" (20511 52965 0 0)) ;;; Generated autoloads from kmacro.el (global-set-key "\C-x(" 'kmacro-start-macro) (global-set-key "\C-x)" 'kmacro-end-macro) @@ -16553,7 +16612,7 @@ If kbd macro currently being defined end it before activating it. ;;;*** ;;;### (autoloads (setup-korean-environment-internal) "korea-util" -;;;;;; "language/korea-util.el" (20501 3499 284800 0)) +;;;;;; "language/korea-util.el" (20511 52965 0 0)) ;;; Generated autoloads from language/korea-util.el (defvar default-korean-keyboard (purecopy (if (string-match "3" (or (getenv "HANGUL_KEYBOARD_TYPE") "")) "3" "")) "\ @@ -16568,7 +16627,7 @@ The kind of Korean keyboard for Korean input method. ;;;*** ;;;### (autoloads (landmark landmark-test-run) "landmark" "play/landmark.el" -;;;;;; (20545 57511 257469 0)) +;;;;;; (20550 14882 0 0)) ;;; Generated autoloads from play/landmark.el (defalias 'landmark-repeat 'landmark-test-run) @@ -16600,7 +16659,7 @@ Use \\[describe-mode] for more info. ;;;### (autoloads (lao-compose-region lao-composition-function lao-transcribe-roman-to-lao-string ;;;;;; lao-transcribe-single-roman-syllable-to-lao lao-compose-string) -;;;;;; "lao-util" "language/lao-util.el" (20355 10021 546955 0)) +;;;;;; "lao-util" "language/lao-util.el" (20244 35516 0 0)) ;;; Generated autoloads from language/lao-util.el (autoload 'lao-compose-string "lao-util" "\ @@ -16639,8 +16698,7 @@ Transcribe Romanized Lao string STR to Lao character string. ;;;### (autoloads (latexenc-find-file-coding-system latexenc-coding-system-to-inputenc ;;;;;; latexenc-inputenc-to-coding-system latex-inputenc-coding-alist) -;;;;;; "latexenc" "international/latexenc.el" (20355 10021 546955 -;;;;;; 0)) +;;;;;; "latexenc" "international/latexenc.el" (20244 35516 0 0)) ;;; Generated autoloads from international/latexenc.el (defvar latex-inputenc-coding-alist (purecopy '(("ansinew" . windows-1252) ("applemac" . mac-roman) ("ascii" . us-ascii) ("cp1250" . windows-1250) ("cp1252" . windows-1252) ("cp1257" . cp1257) ("cp437de" . cp437) ("cp437" . cp437) ("cp850" . cp850) ("cp852" . cp852) ("cp858" . cp858) ("cp865" . cp865) ("latin1" . iso-8859-1) ("latin2" . iso-8859-2) ("latin3" . iso-8859-3) ("latin4" . iso-8859-4) ("latin5" . iso-8859-5) ("latin9" . iso-8859-15) ("next" . next) ("utf8" . utf-8) ("utf8x" . utf-8))) "\ @@ -16672,8 +16730,8 @@ coding system names is determined from `latex-inputenc-coding-alist'. ;;;*** ;;;### (autoloads (latin1-display-ucs-per-lynx latin1-display latin1-display) -;;;;;; "latin1-disp" "international/latin1-disp.el" (20577 33959 -;;;;;; 40183 0)) +;;;;;; "latin1-disp" "international/latin1-disp.el" (20577 48876 +;;;;;; 0 0)) ;;; Generated autoloads from international/latin1-disp.el (defvar latin1-display nil "\ @@ -16715,7 +16773,7 @@ use either \\[customize] or the function `latin1-display'.") ;;;*** ;;;### (autoloads (ld-script-mode) "ld-script" "progmodes/ld-script.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from progmodes/ld-script.el (autoload 'ld-script-mode "ld-script" "\ @@ -16725,8 +16783,7 @@ A major mode to edit GNU ld script files ;;;*** -;;;### (autoloads (life) "life" "play/life.el" (20545 57511 257469 -;;;;;; 0)) +;;;### (autoloads (life) "life" "play/life.el" (20550 14882 0 0)) ;;; Generated autoloads from play/life.el (autoload 'life "life" "\ @@ -16740,7 +16797,7 @@ generations (this defaults to 1). ;;;*** ;;;### (autoloads (global-linum-mode linum-mode) "linum" "linum.el" -;;;;;; (20580 10161 446444 0)) +;;;;;; (20580 46629 0 0)) ;;; Generated autoloads from linum.el (autoload 'linum-mode "linum" "\ @@ -16776,8 +16833,8 @@ See `linum-mode' for more information on Linum mode. ;;;*** -;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (20476 -;;;;;; 31768 298871 0)) +;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (20511 +;;;;;; 52965 0 0)) ;;; Generated autoloads from loadhist.el (autoload 'unload-feature "loadhist" "\ @@ -16809,7 +16866,7 @@ something strange, such as redefining an Emacs function. ;;;*** ;;;### (autoloads (locate-with-filter locate locate-ls-subdir-switches) -;;;;;; "locate" "locate.el" (20566 63671 243798 0)) +;;;;;; "locate" "locate.el" (20567 31133 0 0)) ;;; Generated autoloads from locate.el (defvar locate-ls-subdir-switches (purecopy "-al") "\ @@ -16861,8 +16918,8 @@ except that FILTER is not optional. ;;;*** -;;;### (autoloads (log-edit) "log-edit" "vc/log-edit.el" (20584 7212 -;;;;;; 455152 0)) +;;;### (autoloads (log-edit) "log-edit" "vc/log-edit.el" (20589 46442 +;;;;;; 0 0)) ;;; Generated autoloads from vc/log-edit.el (autoload 'log-edit "log-edit" "\ @@ -16893,8 +16950,8 @@ done. Otherwise, it uses the current buffer. ;;;*** -;;;### (autoloads (log-view-mode) "log-view" "vc/log-view.el" (20515 -;;;;;; 36389 544939 0)) +;;;### (autoloads (log-view-mode) "log-view" "vc/log-view.el" (20517 +;;;;;; 4109 0 0)) ;;; Generated autoloads from vc/log-view.el (autoload 'log-view-mode "log-view" "\ @@ -16904,8 +16961,8 @@ Major mode for browsing CVS log output. ;;;*** -;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from longlines.el (autoload 'longlines-mode "longlines" "\ @@ -16931,8 +16988,8 @@ newlines are indicated with a symbol. ;;;*** ;;;### (autoloads (print-region lpr-region print-buffer lpr-buffer -;;;;;; lpr-command lpr-switches printer-name) "lpr" "lpr.el" (20476 -;;;;;; 31768 298871 0)) +;;;;;; lpr-command lpr-switches printer-name) "lpr" "lpr.el" (20511 +;;;;;; 52965 0 0)) ;;; Generated autoloads from lpr.el (defvar lpr-windows-system (memq system-type '(ms-dos windows-nt)) "\ @@ -17028,7 +17085,7 @@ for further customization of the printer command. ;;;*** ;;;### (autoloads (ls-lisp-support-shell-wildcards) "ls-lisp" "ls-lisp.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20276 3849 0 0)) ;;; Generated autoloads from ls-lisp.el (defvar ls-lisp-support-shell-wildcards t "\ @@ -17039,8 +17096,8 @@ Otherwise they are treated as Emacs regexps (for backward compatibility).") ;;;*** -;;;### (autoloads (lunar-phases) "lunar" "calendar/lunar.el" (20566 -;;;;;; 63671 243798 0)) +;;;### (autoloads (lunar-phases) "lunar" "calendar/lunar.el" (20567 +;;;;;; 31133 0 0)) ;;; Generated autoloads from calendar/lunar.el (autoload 'lunar-phases "lunar" "\ @@ -17054,8 +17111,8 @@ This function is suitable for execution in an init file. ;;;*** -;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (20356 +;;;;;; 35090 0 0)) ;;; Generated autoloads from progmodes/m4-mode.el (autoload 'm4-mode "m4-mode" "\ @@ -17066,7 +17123,7 @@ A major mode to edit m4 macro files. ;;;*** ;;;### (autoloads (apply-macro-to-region-lines kbd-macro-query insert-kbd-macro -;;;;;; name-last-kbd-macro) "macros" "macros.el" (20355 10021 546955 +;;;;;; name-last-kbd-macro) "macros" "macros.el" (20244 35516 0 ;;;;;; 0)) ;;; Generated autoloads from macros.el @@ -17156,7 +17213,7 @@ and then select the region of un-tablified names and use ;;;*** ;;;### (autoloads (what-domain mail-extract-address-components) "mail-extr" -;;;;;; "mail/mail-extr.el" (20355 10021 546955 0)) +;;;;;; "mail/mail-extr.el" (20356 35090 0 0)) ;;; Generated autoloads from mail/mail-extr.el (autoload 'mail-extract-address-components "mail-extr" "\ @@ -17188,7 +17245,7 @@ Convert mail domain DOMAIN to the country it corresponds to. ;;;### (autoloads (mail-hist-put-headers-into-history mail-hist-keep-history ;;;;;; mail-hist-enable mail-hist-define-keys) "mail-hist" "mail/mail-hist.el" -;;;;;; (20566 63671 243798 0)) +;;;;;; (20567 31133 0 0)) ;;; Generated autoloads from mail/mail-hist.el (autoload 'mail-hist-define-keys "mail-hist" "\ @@ -17220,7 +17277,7 @@ This function normally would be called when the message is sent. ;;;### (autoloads (mail-fetch-field mail-unquote-printable-region ;;;;;; mail-unquote-printable mail-quote-printable-region mail-quote-printable ;;;;;; mail-file-babyl-p mail-dont-reply-to-names mail-use-rfc822) -;;;;;; "mail-utils" "mail/mail-utils.el" (20355 10021 546955 0)) +;;;;;; "mail-utils" "mail/mail-utils.el" (20318 5885 0 0)) ;;; Generated autoloads from mail/mail-utils.el (defvar mail-use-rfc822 nil "\ @@ -17295,8 +17352,8 @@ matches may be returned from the message body. ;;;*** ;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup -;;;;;; mail-abbrevs-mode) "mailabbrev" "mail/mailabbrev.el" (20566 -;;;;;; 63671 243798 0)) +;;;;;; mail-abbrevs-mode) "mailabbrev" "mail/mailabbrev.el" (20567 +;;;;;; 31133 0 0)) ;;; Generated autoloads from mail/mailabbrev.el (defvar mail-abbrevs-mode nil "\ @@ -17347,7 +17404,7 @@ double-quotes. ;;;### (autoloads (mail-complete mail-completion-at-point-function ;;;;;; define-mail-alias expand-mail-aliases mail-complete-style) -;;;;;; "mailalias" "mail/mailalias.el" (20577 33959 40183 0)) +;;;;;; "mailalias" "mail/mailalias.el" (20577 48876 0 0)) ;;; Generated autoloads from mail/mailalias.el (defvar mail-complete-style 'angles "\ @@ -17401,7 +17458,7 @@ current header, calls `mail-complete-function' and passes prefix ARG if any. ;;;*** ;;;### (autoloads (mailclient-send-it) "mailclient" "mail/mailclient.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from mail/mailclient.el (autoload 'mailclient-send-it "mailclient" "\ @@ -17415,8 +17472,7 @@ The mail client is taken to be the handler of mailto URLs. ;;;### (autoloads (makefile-imake-mode makefile-bsdmake-mode makefile-makepp-mode ;;;;;; makefile-gmake-mode makefile-automake-mode makefile-mode) -;;;;;; "make-mode" "progmodes/make-mode.el" (20392 30149 675975 -;;;;;; 59000)) +;;;;;; "make-mode" "progmodes/make-mode.el" (20412 11425 0 0)) ;;; Generated autoloads from progmodes/make-mode.el (autoload 'makefile-mode "make-mode" "\ @@ -17533,8 +17589,8 @@ An adapted `makefile-mode' that knows about imake. ;;;*** -;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from makesum.el (autoload 'make-command-summary "makesum" "\ @@ -17546,7 +17602,7 @@ Previous contents of that buffer are killed first. ;;;*** ;;;### (autoloads (Man-bookmark-jump man-follow man) "man" "man.el" -;;;;;; (20523 62082 997685 0)) +;;;;;; (20523 63054 0 0)) ;;; Generated autoloads from man.el (defalias 'manual-entry 'man) @@ -17600,8 +17656,8 @@ Default bookmark handler for Man buffers. ;;;*** -;;;### (autoloads (master-mode) "master" "master.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads (master-mode) "master" "master.el" (20244 35516 +;;;;;; 0 0)) ;;; Generated autoloads from master.el (autoload 'master-mode "master" "\ @@ -17624,7 +17680,7 @@ yourself the value of `master-of' by calling `master-show-slave'. ;;;*** ;;;### (autoloads (minibuffer-depth-indicate-mode) "mb-depth" "mb-depth.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from mb-depth.el (defvar minibuffer-depth-indicate-mode nil "\ @@ -17657,7 +17713,7 @@ recursion depth in the minibuffer prompt. This is only useful if ;;;;;; message-forward-make-body message-forward message-recover ;;;;;; message-supersede message-cancel-news message-followup message-wide-reply ;;;;;; message-reply message-news message-mail message-mode) "message" -;;;;;; "gnus/message.el" (20567 23165 75548 0)) +;;;;;; "gnus/message.el" (20567 31133 0 0)) ;;; Generated autoloads from gnus/message.el (define-mail-user-agent 'message-user-agent 'message-mail 'message-send-and-exit 'message-kill-buffer 'message-send-hook) @@ -17823,7 +17879,7 @@ which specify the range to operate on. ;;;*** ;;;### (autoloads (metapost-mode metafont-mode) "meta-mode" "progmodes/meta-mode.el" -;;;;;; (20399 35365 4050 0)) +;;;;;; (20412 11425 0 0)) ;;; Generated autoloads from progmodes/meta-mode.el (autoload 'metafont-mode "meta-mode" "\ @@ -17840,7 +17896,7 @@ Major mode for editing MetaPost sources. ;;;### (autoloads (metamail-region metamail-buffer metamail-interpret-body ;;;;;; metamail-interpret-header) "metamail" "mail/metamail.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20356 35090 0 0)) ;;; Generated autoloads from mail/metamail.el (autoload 'metamail-interpret-header "metamail" "\ @@ -17885,7 +17941,7 @@ redisplayed as output is inserted. ;;;### (autoloads (mh-fully-kill-draft mh-send-letter mh-user-agent-compose ;;;;;; mh-smail-batch mh-smail-other-window mh-smail) "mh-comp" -;;;;;; "mh-e/mh-comp.el" (20355 10021 546955 0)) +;;;;;; "mh-e/mh-comp.el" (20244 35516 0 0)) ;;; Generated autoloads from mh-e/mh-comp.el (autoload 'mh-smail "mh-comp" "\ @@ -17975,8 +18031,8 @@ delete the draft message. ;;;*** -;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (20244 35516 +;;;;;; 0 0)) ;;; Generated autoloads from mh-e/mh-e.el (put 'mh-progs 'risky-local-variable t) @@ -17993,7 +18049,7 @@ Display version information about MH-E and the MH mail handling system. ;;;*** ;;;### (autoloads (mh-folder-mode mh-nmail mh-rmail) "mh-folder" -;;;;;; "mh-e/mh-folder.el" (20371 55972 331861 0)) +;;;;;; "mh-e/mh-folder.el" (20373 41604 0 0)) ;;; Generated autoloads from mh-e/mh-folder.el (autoload 'mh-rmail "mh-folder" "\ @@ -18075,7 +18131,7 @@ perform the operation on all messages in that region. ;;;*** ;;;### (autoloads (midnight-delay-set clean-buffer-list) "midnight" -;;;;;; "midnight.el" (20478 3673 653810 0)) +;;;;;; "midnight.el" (20511 52965 0 0)) ;;; Generated autoloads from midnight.el (autoload 'clean-buffer-list "midnight" "\ @@ -18102,7 +18158,7 @@ to its second argument TM. ;;;*** ;;;### (autoloads (minibuffer-electric-default-mode) "minibuf-eldef" -;;;;;; "minibuf-eldef.el" (20580 10161 446444 0)) +;;;;;; "minibuf-eldef.el" (20580 46629 0 0)) ;;; Generated autoloads from minibuf-eldef.el (defvar minibuffer-electric-default-mode nil "\ @@ -18132,7 +18188,7 @@ is modified to remove the default indication. ;;;*** ;;;### (autoloads (list-dynamic-libraries butterfly) "misc" "misc.el" -;;;;;; (20533 5993 500881 0)) +;;;;;; (20535 44414 0 0)) ;;; Generated autoloads from misc.el (autoload 'butterfly "misc" "\ @@ -18162,7 +18218,7 @@ The return value is always nil. ;;;### (autoloads (multi-isearch-files-regexp multi-isearch-files ;;;;;; multi-isearch-buffers-regexp multi-isearch-buffers multi-isearch-setup) -;;;;;; "misearch" "misearch.el" (20490 33188 850375 0)) +;;;;;; "misearch" "misearch.el" (20511 52965 0 0)) ;;; Generated autoloads from misearch.el (add-hook 'isearch-mode-hook 'multi-isearch-setup) @@ -18244,7 +18300,7 @@ whose file names match the specified wildcard. ;;;*** ;;;### (autoloads (mixal-mode) "mixal-mode" "progmodes/mixal-mode.el" -;;;;;; (20566 63671 243798 0)) +;;;;;; (20567 31133 0 0)) ;;; Generated autoloads from progmodes/mixal-mode.el (autoload 'mixal-mode "mixal-mode" "\ @@ -18255,7 +18311,7 @@ Major mode for the mixal asm language. ;;;*** ;;;### (autoloads (mm-default-file-encoding) "mm-encode" "gnus/mm-encode.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from gnus/mm-encode.el (autoload 'mm-default-file-encoding "mm-encode" "\ @@ -18266,7 +18322,7 @@ Return a default encoding for FILE. ;;;*** ;;;### (autoloads (mm-inline-external-body mm-extern-cache-contents) -;;;;;; "mm-extern" "gnus/mm-extern.el" (20355 10021 546955 0)) +;;;;;; "mm-extern" "gnus/mm-extern.el" (20244 35516 0 0)) ;;; Generated autoloads from gnus/mm-extern.el (autoload 'mm-extern-cache-contents "mm-extern" "\ @@ -18285,7 +18341,7 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing. ;;;*** ;;;### (autoloads (mm-inline-partial) "mm-partial" "gnus/mm-partial.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from gnus/mm-partial.el (autoload 'mm-inline-partial "mm-partial" "\ @@ -18299,7 +18355,7 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing. ;;;*** ;;;### (autoloads (mm-url-insert-file-contents-external mm-url-insert-file-contents) -;;;;;; "mm-url" "gnus/mm-url.el" (20495 51111 757560 0)) +;;;;;; "mm-url" "gnus/mm-url.el" (20511 52965 0 0)) ;;; Generated autoloads from gnus/mm-url.el (autoload 'mm-url-insert-file-contents "mm-url" "\ @@ -18316,7 +18372,7 @@ Insert file contents of URL using `mm-url-program'. ;;;*** ;;;### (autoloads (mm-uu-dissect-text-parts mm-uu-dissect) "mm-uu" -;;;;;; "gnus/mm-uu.el" (20355 10021 546955 0)) +;;;;;; "gnus/mm-uu.el" (20318 5885 0 0)) ;;; Generated autoloads from gnus/mm-uu.el (autoload 'mm-uu-dissect "mm-uu" "\ @@ -18336,7 +18392,7 @@ Assume text has been decoded if DECODED is non-nil. ;;;*** ;;;### (autoloads (mml-attach-file mml-to-mime) "mml" "gnus/mml.el" -;;;;;; (20567 23165 75548 0)) +;;;;;; (20567 31133 0 0)) ;;; Generated autoloads from gnus/mml.el (autoload 'mml-to-mime "mml" "\ @@ -18362,7 +18418,7 @@ body) or \"attachment\" (separate from the body). ;;;*** ;;;### (autoloads (mml1991-sign mml1991-encrypt) "mml1991" "gnus/mml1991.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20291 57212 0 0)) ;;; Generated autoloads from gnus/mml1991.el (autoload 'mml1991-encrypt "mml1991" "\ @@ -18379,7 +18435,7 @@ body) or \"attachment\" (separate from the body). ;;;### (autoloads (mml2015-self-encrypt mml2015-sign mml2015-encrypt ;;;;;; mml2015-verify-test mml2015-verify mml2015-decrypt-test mml2015-decrypt) -;;;;;; "mml2015" "gnus/mml2015.el" (20355 10021 546955 0)) +;;;;;; "mml2015" "gnus/mml2015.el" (20244 35516 0 0)) ;;; Generated autoloads from gnus/mml2015.el (autoload 'mml2015-decrypt "mml2015" "\ @@ -18419,16 +18475,16 @@ body) or \"attachment\" (separate from the body). ;;;*** -;;;### (autoloads nil "mode-local" "cedet/mode-local.el" (20406 8611 -;;;;;; 875037 0)) +;;;### (autoloads nil "mode-local" "cedet/mode-local.el" (20412 11425 +;;;;;; 0 0)) ;;; Generated autoloads from cedet/mode-local.el (put 'define-overloadable-function 'doc-string-elt 3) ;;;*** -;;;### (autoloads (m2-mode) "modula2" "progmodes/modula2.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (m2-mode) "modula2" "progmodes/modula2.el" (20356 +;;;;;; 35090 0 0)) ;;; Generated autoloads from progmodes/modula2.el (defalias 'modula-2-mode 'm2-mode) @@ -18462,7 +18518,7 @@ followed by the first character of the construct. ;;;*** ;;;### (autoloads (denato-region nato-region unmorse-region morse-region) -;;;;;; "morse" "play/morse.el" (20355 10021 546955 0)) +;;;;;; "morse" "play/morse.el" (20244 35516 0 0)) ;;; Generated autoloads from play/morse.el (autoload 'morse-region "morse" "\ @@ -18488,7 +18544,7 @@ Convert NATO phonetic alphabet in region to ordinary ASCII text. ;;;*** ;;;### (autoloads (mouse-drag-drag mouse-drag-throw) "mouse-drag" -;;;;;; "mouse-drag.el" (20566 63671 243798 0)) +;;;;;; "mouse-drag.el" (20567 31133 0 0)) ;;; Generated autoloads from mouse-drag.el (autoload 'mouse-drag-throw "mouse-drag" "\ @@ -18535,7 +18591,7 @@ To test this function, evaluate: ;;;*** -;;;### (autoloads (mpc) "mpc" "mpc.el" (20523 62082 997685 0)) +;;;### (autoloads (mpc) "mpc" "mpc.el" (20523 63054 0 0)) ;;; Generated autoloads from mpc.el (autoload 'mpc "mpc" "\ @@ -18545,8 +18601,7 @@ Main entry point for MPC. ;;;*** -;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (20545 57511 257469 -;;;;;; 0)) +;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (20550 14882 0 0)) ;;; Generated autoloads from play/mpuz.el (autoload 'mpuz "mpuz" "\ @@ -18556,7 +18611,7 @@ Multiplication puzzle with GNU Emacs. ;;;*** -;;;### (autoloads (msb-mode) "msb" "msb.el" (20476 31768 298871 0)) +;;;### (autoloads (msb-mode) "msb" "msb.el" (20511 52965 0 0)) ;;; Generated autoloads from msb.el (defvar msb-mode nil "\ @@ -18586,7 +18641,7 @@ different buffer menu using the function `msb'. ;;;;;; describe-current-coding-system describe-current-coding-system-briefly ;;;;;; describe-coding-system describe-character-set list-charset-chars ;;;;;; read-charset list-character-sets) "mule-diag" "international/mule-diag.el" -;;;;;; (20577 33959 40183 0)) +;;;;;; (20577 48876 0 0)) ;;; Generated autoloads from international/mule-diag.el (autoload 'list-character-sets "mule-diag" "\ @@ -18723,7 +18778,7 @@ The default is 20. If LIMIT is negative, do not limit the listing. ;;;;;; coding-system-translation-table-for-decode coding-system-pre-write-conversion ;;;;;; coding-system-post-read-conversion lookup-nested-alist set-nested-alist ;;;;;; truncate-string-to-width store-substring) "mule-util" "international/mule-util.el" -;;;;;; (20577 33959 40183 0)) +;;;;;; (20577 48876 0 0)) ;;; Generated autoloads from international/mule-util.el (defsubst string-to-list (string) "\ @@ -18857,8 +18912,8 @@ per-character basis, this may not be accurate. ;;;### (autoloads (network-connection network-connection-to-service ;;;;;; whois-reverse-lookup whois finger ftp run-dig dns-lookup-host ;;;;;; nslookup nslookup-host ping traceroute route arp netstat -;;;;;; iwconfig ifconfig) "net-utils" "net/net-utils.el" (20355 -;;;;;; 10021 546955 0)) +;;;;;; iwconfig ifconfig) "net-utils" "net/net-utils.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from net/net-utils.el (autoload 'ifconfig "net-utils" "\ @@ -18952,8 +19007,8 @@ Open a network connection to HOST on PORT. ;;;*** -;;;### (autoloads (netrc-credentials) "netrc" "net/netrc.el" (20495 -;;;;;; 51111 757560 0)) +;;;### (autoloads (netrc-credentials) "netrc" "net/netrc.el" (20511 +;;;;;; 52965 0 0)) ;;; Generated autoloads from net/netrc.el (autoload 'netrc-credentials "netrc" "\ @@ -18966,7 +19021,7 @@ listed in the PORTS list. ;;;*** ;;;### (autoloads (open-network-stream) "network-stream" "net/network-stream.el" -;;;;;; (20369 14251 85829 0)) +;;;;;; (20373 41604 0 0)) ;;; Generated autoloads from net/network-stream.el (autoload 'open-network-stream "network-stream" "\ @@ -19057,7 +19112,7 @@ STARTTLS upgrades even if Emacs doesn't have built-in TLS functionality. ;;;*** ;;;### (autoloads (newsticker-start newsticker-running-p) "newst-backend" -;;;;;; "net/newst-backend.el" (20577 33959 40183 0)) +;;;;;; "net/newst-backend.el" (20577 48876 0 0)) ;;; Generated autoloads from net/newst-backend.el (autoload 'newsticker-running-p "newst-backend" "\ @@ -19079,7 +19134,7 @@ Run `newsticker-start-hook' if newsticker was not running already. ;;;*** ;;;### (autoloads (newsticker-plainview) "newst-plainview" "net/newst-plainview.el" -;;;;;; (20434 17809 692608 0)) +;;;;;; (20434 28080 0 0)) ;;; Generated autoloads from net/newst-plainview.el (autoload 'newsticker-plainview "newst-plainview" "\ @@ -19090,7 +19145,7 @@ Start newsticker plainview. ;;;*** ;;;### (autoloads (newsticker-show-news) "newst-reader" "net/newst-reader.el" -;;;;;; (20434 17809 692608 0)) +;;;;;; (20434 28080 0 0)) ;;; Generated autoloads from net/newst-reader.el (autoload 'newsticker-show-news "newst-reader" "\ @@ -19101,8 +19156,7 @@ Start reading news. You may want to bind this to a key. ;;;*** ;;;### (autoloads (newsticker-start-ticker newsticker-ticker-running-p) -;;;;;; "newst-ticker" "net/newst-ticker.el" (20427 14766 970343 -;;;;;; 0)) +;;;;;; "newst-ticker" "net/newst-ticker.el" (20428 57510 0 0)) ;;; Generated autoloads from net/newst-ticker.el (autoload 'newsticker-ticker-running-p "newst-ticker" "\ @@ -19123,7 +19177,7 @@ running already. ;;;*** ;;;### (autoloads (newsticker-treeview) "newst-treeview" "net/newst-treeview.el" -;;;;;; (20577 33959 40183 0)) +;;;;;; (20592 26321 0 0)) ;;; Generated autoloads from net/newst-treeview.el (autoload 'newsticker-treeview "newst-treeview" "\ @@ -19134,7 +19188,7 @@ Start newsticker treeview. ;;;*** ;;;### (autoloads (nndiary-generate-nov-databases) "nndiary" "gnus/nndiary.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from gnus/nndiary.el (autoload 'nndiary-generate-nov-databases "nndiary" "\ @@ -19144,8 +19198,8 @@ Generate NOV databases in all nndiary directories. ;;;*** -;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from gnus/nndoc.el (autoload 'nndoc-add-type "nndoc" "\ @@ -19160,7 +19214,7 @@ symbol in the alist. ;;;*** ;;;### (autoloads (nnfolder-generate-active-file) "nnfolder" "gnus/nnfolder.el" -;;;;;; (20458 56750 651721 0)) +;;;;;; (20460 33749 0 0)) ;;; Generated autoloads from gnus/nnfolder.el (autoload 'nnfolder-generate-active-file "nnfolder" "\ @@ -19172,7 +19226,7 @@ This command does not work if you use short group names. ;;;*** ;;;### (autoloads (nnml-generate-nov-databases) "nnml" "gnus/nnml.el" -;;;;;; (20458 56750 651721 0)) +;;;;;; (20460 33749 0 0)) ;;; Generated autoloads from gnus/nnml.el (autoload 'nnml-generate-nov-databases "nnml" "\ @@ -19183,7 +19237,7 @@ Generate NOV databases in all nnml directories. ;;;*** ;;;### (autoloads (disable-command enable-command disabled-command-function) -;;;;;; "novice" "novice.el" (20566 63671 243798 0)) +;;;;;; "novice" "novice.el" (20567 31133 0 0)) ;;; Generated autoloads from novice.el (define-obsolete-variable-alias 'disabled-command-hook 'disabled-command-function "22.1") @@ -19216,7 +19270,7 @@ future sessions. ;;;*** ;;;### (autoloads (nroff-mode) "nroff-mode" "textmodes/nroff-mode.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from textmodes/nroff-mode.el (autoload 'nroff-mode "nroff-mode" "\ @@ -19231,7 +19285,7 @@ closing requests for requests that are used in matched pairs. ;;;*** ;;;### (autoloads (nxml-glyph-display-string) "nxml-glyph" "nxml/nxml-glyph.el" -;;;;;; (20523 62082 997685 0)) +;;;;;; (20523 63054 0 0)) ;;; Generated autoloads from nxml/nxml-glyph.el (autoload 'nxml-glyph-display-string "nxml-glyph" "\ @@ -19243,8 +19297,8 @@ Return nil if the face cannot display a glyph for N. ;;;*** -;;;### (autoloads (nxml-mode) "nxml-mode" "nxml/nxml-mode.el" (20478 -;;;;;; 3673 653810 0)) +;;;### (autoloads (nxml-mode) "nxml-mode" "nxml/nxml-mode.el" (20511 +;;;;;; 52965 0 0)) ;;; Generated autoloads from nxml/nxml-mode.el (autoload 'nxml-mode "nxml-mode" "\ @@ -19306,7 +19360,7 @@ Many aspects this mode can be customized using ;;;*** ;;;### (autoloads (nxml-enable-unicode-char-name-sets) "nxml-uchnm" -;;;;;; "nxml/nxml-uchnm.el" (20355 10021 546955 0)) +;;;;;; "nxml/nxml-uchnm.el" (20244 35516 0 0)) ;;; Generated autoloads from nxml/nxml-uchnm.el (autoload 'nxml-enable-unicode-char-name-sets "nxml-uchnm" "\ @@ -19330,7 +19384,7 @@ the variable `nxml-enabled-unicode-blocks'. ;;;;;; org-babel-pop-to-session-maybe org-babel-load-in-session-maybe ;;;;;; org-babel-expand-src-block-maybe org-babel-view-src-block-info ;;;;;; org-babel-execute-maybe org-babel-execute-safely-maybe) "ob" -;;;;;; "org/ob.el" (20585 28088 480237 0)) +;;;;;; "org/ob.el" (20585 55103 0 0)) ;;; Generated autoloads from org/ob.el (autoload 'org-babel-execute-safely-maybe "ob" "\ @@ -19553,7 +19607,7 @@ Mark current src block. ;;;*** ;;;### (autoloads (org-babel-describe-bindings) "ob-keys" "org/ob-keys.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from org/ob-keys.el (autoload 'org-babel-describe-bindings "ob-keys" "\ @@ -19564,8 +19618,8 @@ Describe all keybindings behind `org-babel-key-prefix'. ;;;*** ;;;### (autoloads (org-babel-lob-get-info org-babel-lob-execute-maybe -;;;;;; org-babel-lob-ingest) "ob-lob" "org/ob-lob.el" (20585 28088 -;;;;;; 480237 0)) +;;;;;; org-babel-lob-ingest) "ob-lob" "org/ob-lob.el" (20585 55103 +;;;;;; 0 0)) ;;; Generated autoloads from org/ob-lob.el (autoload 'org-babel-lob-ingest "ob-lob" "\ @@ -19590,7 +19644,7 @@ Return a Library of Babel function call as a string. ;;;### (autoloads (org-babel-tangle org-babel-tangle-file org-babel-load-file ;;;;;; org-babel-tangle-lang-exts) "ob-tangle" "org/ob-tangle.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from org/ob-tangle.el (defvar org-babel-tangle-lang-exts '(("emacs-lisp" . "el")) "\ @@ -19632,7 +19686,7 @@ exported source code blocks by language. ;;;*** ;;;### (autoloads (inferior-octave) "octave-inf" "progmodes/octave-inf.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20356 35090 0 0)) ;;; Generated autoloads from progmodes/octave-inf.el (autoload 'inferior-octave "octave-inf" "\ @@ -19655,7 +19709,7 @@ startup file, `~/.emacs-octave'. ;;;*** ;;;### (autoloads (octave-mode) "octave-mod" "progmodes/octave-mod.el" -;;;;;; (20566 63671 243798 0)) +;;;;;; (20567 31133 0 0)) ;;; Generated autoloads from progmodes/octave-mod.el (autoload 'octave-mode "octave-mod" "\ @@ -19746,7 +19800,7 @@ including a reproducible test case and send the message. ;;;;;; org-store-link org-run-like-in-org-mode turn-on-orgstruct++ ;;;;;; turn-on-orgstruct orgstruct-mode org-global-cycle org-mode ;;;;;; org-version org-babel-do-load-languages) "org" "org/org.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from org/org.el (autoload 'org-babel-do-load-languages "org" "\ @@ -20044,7 +20098,7 @@ modified. ;;;;;; org-search-view org-agenda-list org-batch-store-agenda-views ;;;;;; org-store-agenda-views org-batch-agenda-csv org-batch-agenda ;;;;;; org-agenda org-toggle-sticky-agenda) "org-agenda" "org/org-agenda.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20592 26321 0 0)) ;;; Generated autoloads from org/org-agenda.el (autoload 'org-toggle-sticky-agenda "org-agenda" "\ @@ -20307,7 +20361,7 @@ to override `appt-message-warning-time'. ;;;### (autoloads (org-archive-subtree-default-with-confirmation ;;;;;; org-archive-subtree-default) "org-archive" "org/org-archive.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from org/org-archive.el (autoload 'org-archive-subtree-default "org-archive" "\ @@ -20328,7 +20382,7 @@ This command is set with the variable `org-archive-default-command'. ;;;;;; org-replace-region-by-ascii org-export-as-ascii-to-buffer ;;;;;; org-export-as-utf8-to-buffer org-export-as-utf8 org-export-as-latin1-to-buffer ;;;;;; org-export-as-latin1) "org-ascii" "org/org-ascii.el" (20585 -;;;;;; 28088 480237 0)) +;;;;;; 55103 0 0)) ;;; Generated autoloads from org/org-ascii.el (autoload 'org-export-as-latin1 "org-ascii" "\ @@ -20402,7 +20456,7 @@ publishing directory. ;;;*** ;;;### (autoloads (org-attach) "org-attach" "org/org-attach.el" (20585 -;;;;;; 28088 480237 0)) +;;;;;; 55103 0 0)) ;;; Generated autoloads from org/org-attach.el (autoload 'org-attach "org-attach" "\ @@ -20414,7 +20468,7 @@ Shows a list of commands and prompts for another key to execute a command. ;;;*** ;;;### (autoloads (org-bbdb-anniversaries) "org-bbdb" "org/org-bbdb.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from org/org-bbdb.el (autoload 'org-bbdb-anniversaries "org-bbdb" "\ @@ -20425,8 +20479,8 @@ Extract anniversaries from BBDB for display in the agenda. ;;;*** ;;;### (autoloads (org-capture-import-remember-templates org-capture-insert-template-here -;;;;;; org-capture) "org-capture" "org/org-capture.el" (20585 28088 -;;;;;; 480237 0)) +;;;;;; org-capture) "org-capture" "org/org-capture.el" (20585 55103 +;;;;;; 0 0)) ;;; Generated autoloads from org/org-capture.el (defvar org-capture-initial nil) @@ -20470,7 +20524,7 @@ Set org-capture-templates to be similar to `org-remember-templates'. ;;;### (autoloads (org-clock-persistence-insinuate org-get-clocktable ;;;;;; org-clock-in-last) "org-clock" "org/org-clock.el" (20585 -;;;;;; 28088 480237 0)) +;;;;;; 55103 0 0)) ;;; Generated autoloads from org/org-clock.el (autoload 'org-clock-in-last "org-clock" "\ @@ -20501,7 +20555,7 @@ Set up hooks for clock persistence. ;;;*** ;;;### (autoloads (org-check-version) "org-compat" "org/org-compat.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from org/org-compat.el (autoload 'org-check-version "org-compat" "\ @@ -20512,7 +20566,7 @@ Try very hard to provide sensible version strings. ;;;*** ;;;### (autoloads (org-datetree-find-date-create) "org-datetree" -;;;;;; "org/org-datetree.el" (20585 28088 480237 0)) +;;;;;; "org/org-datetree.el" (20585 55103 0 0)) ;;; Generated autoloads from org/org-datetree.el (autoload 'org-datetree-find-date-create "org-datetree" "\ @@ -20528,7 +20582,7 @@ tree can be found. ;;;### (autoloads (org-export-as-docbook org-export-as-docbook-pdf-and-open ;;;;;; org-export-as-docbook-pdf org-export-region-as-docbook org-replace-region-by-docbook ;;;;;; org-export-as-docbook-to-buffer org-export-as-docbook-batch) -;;;;;; "org-docbook" "org/org-docbook.el" (20585 28088 480237 0)) +;;;;;; "org-docbook" "org/org-docbook.el" (20585 55103 0 0)) ;;; Generated autoloads from org/org-docbook.el (autoload 'org-export-as-docbook-batch "org-docbook" "\ @@ -20604,7 +20658,7 @@ publishing directory. ;;;*** ;;;### (autoloads (org-element-context org-element-at-point org-element-interpret-data) -;;;;;; "org-element" "org/org-element.el" (20585 28088 480237 0)) +;;;;;; "org-element" "org/org-element.el" (20592 26321 0 0)) ;;; Generated autoloads from org/org-element.el (autoload 'org-element-interpret-data "org-element" "\ @@ -20663,7 +20717,7 @@ and :post-blank properties. ;;;### (autoloads (org-insert-export-options-template org-export-as-org ;;;;;; org-export-visible org-export) "org-exp" "org/org-exp.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from org/org-exp.el (autoload 'org-export "org-exp" "\ @@ -20725,7 +20779,7 @@ Insert into the buffer a template with information for exporting. ;;;### (autoloads (org-feed-show-raw-feed org-feed-goto-inbox org-feed-update ;;;;;; org-feed-update-all) "org-feed" "org/org-feed.el" (20585 -;;;;;; 28088 480237 0)) +;;;;;; 55103 0 0)) ;;; Generated autoloads from org/org-feed.el (autoload 'org-feed-update-all "org-feed" "\ @@ -20753,7 +20807,7 @@ Show the raw feed buffer of a feed. ;;;*** ;;;### (autoloads (org-footnote-normalize org-footnote-action) "org-footnote" -;;;;;; "org/org-footnote.el" (20585 28088 480237 0)) +;;;;;; "org/org-footnote.el" (20585 55103 0 0)) ;;; Generated autoloads from org/org-footnote.el (autoload 'org-footnote-action "org-footnote" "\ @@ -20804,7 +20858,7 @@ Additional note on `org-footnote-insert-pos-for-preprocessor': ;;;### (autoloads (org-freemind-to-org-mode org-freemind-from-org-sparse-tree ;;;;;; org-freemind-from-org-mode org-freemind-from-org-mode-node ;;;;;; org-freemind-show org-export-as-freemind) "org-freemind" -;;;;;; "org/org-freemind.el" (20585 28088 480237 0)) +;;;;;; "org/org-freemind.el" (20585 55103 0 0)) ;;; Generated autoloads from org/org-freemind.el (autoload 'org-export-as-freemind "org-freemind" "\ @@ -20865,7 +20919,7 @@ Convert FreeMind file MM-FILE to `org-mode' file ORG-FILE. ;;;### (autoloads (org-export-htmlize-generate-css org-export-as-html ;;;;;; org-export-region-as-html org-replace-region-by-html org-export-as-html-to-buffer ;;;;;; org-export-as-html-batch org-export-as-html-and-open) "org-html" -;;;;;; "org/org-html.el" (20585 28088 480237 0)) +;;;;;; "org/org-html.el" (20585 55103 0 0)) ;;; Generated autoloads from org/org-html.el (put 'org-export-html-style-include-default 'safe-local-variable 'booleanp) @@ -20959,7 +21013,7 @@ that uses these same face definitions. ;;;### (autoloads (org-export-icalendar-combine-agenda-files org-export-icalendar-all-agenda-files ;;;;;; org-export-icalendar-this-file) "org-icalendar" "org/org-icalendar.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from org/org-icalendar.el (autoload 'org-export-icalendar-this-file "org-icalendar" "\ @@ -20987,7 +21041,7 @@ The file is stored under the name `org-combined-agenda-icalendar-file'. ;;;### (autoloads (org-id-store-link org-id-find-id-file org-id-find ;;;;;; org-id-goto org-id-get-with-outline-drilling org-id-get-with-outline-path-completion ;;;;;; org-id-get org-id-copy org-id-get-create) "org-id" "org/org-id.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from org/org-id.el (autoload 'org-id-get-create "org-id" "\ @@ -21056,7 +21110,7 @@ Store a link to the current entry, using its ID. ;;;*** ;;;### (autoloads (org-indent-mode) "org-indent" "org/org-indent.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from org/org-indent.el (autoload 'org-indent-mode "org-indent" "\ @@ -21074,7 +21128,7 @@ during idle time. ;;;*** ;;;### (autoloads (org-irc-store-link) "org-irc" "org/org-irc.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from org/org-irc.el (autoload 'org-irc-store-link "org-irc" "\ @@ -21087,7 +21141,7 @@ Dispatch to the appropriate function to store a link to an IRC session. ;;;### (autoloads (org-export-as-pdf-and-open org-export-as-pdf org-export-as-latex ;;;;;; org-export-region-as-latex org-replace-region-by-latex org-export-as-latex-to-buffer ;;;;;; org-export-as-latex-batch) "org-latex" "org/org-latex.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from org/org-latex.el (autoload 'org-export-as-latex-batch "org-latex" "\ @@ -21168,7 +21222,7 @@ Export as LaTeX, then process through to PDF, and open. ;;;### (autoloads (org-lparse-region org-replace-region-by org-lparse-to-buffer ;;;;;; org-lparse-batch org-lparse-and-open) "org-lparse" "org/org-lparse.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from org/org-lparse.el (autoload 'org-lparse-and-open "org-lparse" "\ @@ -21226,7 +21280,7 @@ in a window. A non-interactive call will only return the buffer. ;;;### (autoloads (org-mobile-create-sumo-agenda org-mobile-pull ;;;;;; org-mobile-push) "org-mobile" "org/org-mobile.el" (20585 -;;;;;; 28088 480237 0)) +;;;;;; 55103 0 0)) ;;; Generated autoloads from org/org-mobile.el (autoload 'org-mobile-push "org-mobile" "\ @@ -21252,7 +21306,7 @@ Create a file that contains all custom agenda views. ;;;### (autoloads (org-export-as-odf-and-open org-export-as-odf org-export-odt-convert ;;;;;; org-export-as-odt org-export-as-odt-batch org-export-as-odt-and-open) -;;;;;; "org-odt" "org/org-odt.el" (20585 28088 480237 0)) +;;;;;; "org-odt" "org/org-odt.el" (20585 55103 0 0)) ;;; Generated autoloads from org/org-odt.el (put 'org-export-odt-preferred-output-format 'safe-local-variable 'stringp) @@ -21324,7 +21378,7 @@ formula file. ;;;*** ;;;### (autoloads (org-plot/gnuplot) "org-plot" "org/org-plot.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from org/org-plot.el (autoload 'org-plot/gnuplot "org-plot" "\ @@ -21338,7 +21392,7 @@ line directly before or after the table. ;;;### (autoloads (org-publish-current-project org-publish-current-file ;;;;;; org-publish-all org-publish) "org-publish" "org/org-publish.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from org/org-publish.el (defalias 'org-publish-project 'org-publish) @@ -21372,7 +21426,7 @@ the project. ;;;### (autoloads (org-remember-handler org-remember org-remember-apply-template ;;;;;; org-remember-annotation org-remember-insinuate) "org-remember" -;;;;;; "org/org-remember.el" (20585 28088 480237 0)) +;;;;;; "org/org-remember.el" (20592 26321 0 0)) ;;; Generated autoloads from org/org-remember.el (autoload 'org-remember-insinuate "org-remember" "\ @@ -21449,7 +21503,7 @@ See also the variable `org-reverse-note-order'. ;;;### (autoloads (org-table-to-lisp orgtbl-mode turn-on-orgtbl org-table-iterate-buffer-tables ;;;;;; org-table-recalculate-buffer-tables) "org-table" "org/org-table.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from org/org-table.el (autoload 'org-table-recalculate-buffer-tables "org-table" "\ @@ -21483,7 +21537,7 @@ The table is taken from the parameter TXT, or from the buffer at point. ;;;*** ;;;### (autoloads (org-export-as-taskjuggler-and-open org-export-as-taskjuggler) -;;;;;; "org-taskjuggler" "org/org-taskjuggler.el" (20585 28088 480237 +;;;;;; "org-taskjuggler" "org/org-taskjuggler.el" (20585 55103 0 ;;;;;; 0)) ;;; Generated autoloads from org/org-taskjuggler.el @@ -21512,7 +21566,7 @@ with the TaskJuggler GUI. ;;;### (autoloads (org-timer-set-timer org-timer-item org-timer-change-times-in-region ;;;;;; org-timer org-timer-stop org-timer-pause-or-continue org-timer-start) -;;;;;; "org-timer" "org/org-timer.el" (20585 28088 480237 0)) +;;;;;; "org-timer" "org/org-timer.el" (20585 55103 0 0)) ;;; Generated autoloads from org/org-timer.el (autoload 'org-timer-start "org-timer" "\ @@ -21584,7 +21638,7 @@ replace any running timer. ;;;*** ;;;### (autoloads (org-git-version org-release) "org-version" "org/org-version.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from org/org-version.el (autoload 'org-release "org-version" "\ @@ -21605,7 +21659,7 @@ The location of ODT styles.") ;;;*** ;;;### (autoloads (org-export-as-xoxo) "org-xoxo" "org/org-xoxo.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from org/org-xoxo.el (autoload 'org-export-as-xoxo "org-xoxo" "\ @@ -21617,7 +21671,7 @@ The XOXO buffer is named *xoxo-* ;;;*** ;;;### (autoloads (outline-minor-mode outline-mode) "outline" "outline.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20356 35090 0 0)) ;;; Generated autoloads from outline.el (put 'outline-regexp 'safe-local-variable 'stringp) (put 'outline-heading-end-regexp 'safe-local-variable 'stringp) @@ -21681,7 +21735,7 @@ See the command `outline-mode' for more information on this mode. ;;;### (autoloads (list-packages describe-package package-initialize ;;;;;; package-refresh-contents package-install-file package-install-from-buffer ;;;;;; package-install package-enable-at-startup) "package" "emacs-lisp/package.el" -;;;;;; (20576 42138 697312 0)) +;;;;;; (20577 48876 0 0)) ;;; Generated autoloads from emacs-lisp/package.el (defvar package-enable-at-startup t "\ @@ -21751,8 +21805,8 @@ The list is displayed in a buffer named `*Packages*'. ;;;*** -;;;### (autoloads (show-paren-mode) "paren" "paren.el" (20542 50478 -;;;;;; 439878 507000)) +;;;### (autoloads (show-paren-mode) "paren" "paren.el" (20544 52783 +;;;;;; 0 0)) ;;; Generated autoloads from paren.el (defvar show-paren-mode nil "\ @@ -21779,7 +21833,7 @@ matching parenthesis is highlighted in `show-paren-style' after ;;;*** ;;;### (autoloads (parse-time-string) "parse-time" "calendar/parse-time.el" -;;;;;; (20478 3673 653810 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from calendar/parse-time.el (put 'parse-time-rules 'risky-local-variable t) @@ -21792,8 +21846,8 @@ unknown are returned as nil. ;;;*** -;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (20478 -;;;;;; 3673 653810 0)) +;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (20511 +;;;;;; 52965 0 0)) ;;; Generated autoloads from progmodes/pascal.el (autoload 'pascal-mode "pascal" "\ @@ -21846,7 +21900,7 @@ no args, if that value is non-nil. ;;;*** ;;;### (autoloads (password-in-cache-p password-cache-expiry password-cache) -;;;;;; "password-cache" "password-cache.el" (20577 33959 40183 0)) +;;;;;; "password-cache" "password-cache.el" (20577 48876 0 0)) ;;; Generated autoloads from password-cache.el (defvar password-cache t "\ @@ -21868,7 +21922,7 @@ Check if KEY is in the cache. ;;;*** ;;;### (autoloads (pcase-let pcase-let* pcase) "pcase" "emacs-lisp/pcase.el" -;;;;;; (20582 12914 894781 0)) +;;;;;; (20581 44007 0 0)) ;;; Generated autoloads from emacs-lisp/pcase.el (autoload 'pcase "pcase" "\ @@ -21929,8 +21983,8 @@ of the form (UPAT EXP). ;;;*** -;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from pcmpl-cvs.el (autoload 'pcomplete/cvs "pcmpl-cvs" "\ @@ -21941,7 +21995,7 @@ Completion rules for the `cvs' command. ;;;*** ;;;### (autoloads (pcomplete/tar pcomplete/make pcomplete/bzip2 pcomplete/gzip) -;;;;;; "pcmpl-gnu" "pcmpl-gnu.el" (20572 16038 402143 0)) +;;;;;; "pcmpl-gnu" "pcmpl-gnu.el" (20577 48876 0 0)) ;;; Generated autoloads from pcmpl-gnu.el (autoload 'pcomplete/gzip "pcmpl-gnu" "\ @@ -21969,7 +22023,7 @@ Completion for the GNU tar utility. ;;;*** ;;;### (autoloads (pcomplete/mount pcomplete/umount pcomplete/kill) -;;;;;; "pcmpl-linux" "pcmpl-linux.el" (20355 10021 546955 0)) +;;;;;; "pcmpl-linux" "pcmpl-linux.el" (20244 35516 0 0)) ;;; Generated autoloads from pcmpl-linux.el (autoload 'pcomplete/kill "pcmpl-linux" "\ @@ -21990,7 +22044,7 @@ Completion for GNU/Linux `mount'. ;;;*** ;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (20523 -;;;;;; 62082 997685 0)) +;;;;;; 63054 0 0)) ;;; Generated autoloads from pcmpl-rpm.el (autoload 'pcomplete/rpm "pcmpl-rpm" "\ @@ -22002,7 +22056,7 @@ Completion for the `rpm' command. ;;;### (autoloads (pcomplete/scp pcomplete/ssh pcomplete/chgrp pcomplete/chown ;;;;;; pcomplete/which pcomplete/xargs pcomplete/rm pcomplete/rmdir -;;;;;; pcomplete/cd) "pcmpl-unix" "pcmpl-unix.el" (20376 40834 914217 +;;;;;; pcomplete/cd) "pcmpl-unix" "pcmpl-unix.el" (20375 3831 0 ;;;;;; 0)) ;;; Generated autoloads from pcmpl-unix.el @@ -22060,8 +22114,8 @@ Includes files as well as host names followed by a colon. ;;;### (autoloads (pcomplete-shell-setup pcomplete-comint-setup pcomplete-list ;;;;;; pcomplete-help pcomplete-expand pcomplete-continue pcomplete-expand-and-complete -;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (20582 -;;;;;; 12914 894781 0)) +;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (20585 +;;;;;; 55103 0 0)) ;;; Generated autoloads from pcomplete.el (autoload 'pcomplete "pcomplete" "\ @@ -22120,7 +22174,7 @@ Setup `shell-mode' to use pcomplete. ;;;### (autoloads (cvs-dired-use-hook cvs-dired-action cvs-status ;;;;;; cvs-update cvs-examine cvs-quickdir cvs-checkout) "pcvs" -;;;;;; "vc/pcvs.el" (20584 7212 455152 0)) +;;;;;; "vc/pcvs.el" (20585 55103 0 0)) ;;; Generated autoloads from vc/pcvs.el (autoload 'cvs-checkout "pcvs" "\ @@ -22195,8 +22249,8 @@ The exact behavior is determined also by `cvs-dired-use-hook'." (when (stringp d ;;;*** -;;;### (autoloads nil "pcvs-defs" "vc/pcvs-defs.el" (20576 42138 -;;;;;; 697312 0)) +;;;### (autoloads nil "pcvs-defs" "vc/pcvs-defs.el" (20577 48876 +;;;;;; 0 0)) ;;; Generated autoloads from vc/pcvs-defs.el (defvar cvs-global-menu (let ((m (make-sparse-keymap "PCL-CVS"))) (define-key m [status] `(menu-item ,(purecopy "Directory Status") cvs-status :help ,(purecopy "A more verbose status of a workarea"))) (define-key m [checkout] `(menu-item ,(purecopy "Checkout Module") cvs-checkout :help ,(purecopy "Check out a module from the repository"))) (define-key m [update] `(menu-item ,(purecopy "Update Directory") cvs-update :help ,(purecopy "Fetch updates from the repository"))) (define-key m [examine] `(menu-item ,(purecopy "Examine Directory") cvs-examine :help ,(purecopy "Examine the current state of a workarea"))) (fset 'cvs-global-menu m)) "\ @@ -22205,7 +22259,7 @@ Global menu used by PCL-CVS.") ;;;*** ;;;### (autoloads (perl-mode) "perl-mode" "progmodes/perl-mode.el" -;;;;;; (20566 63671 243798 0)) +;;;;;; (20567 31133 0 0)) ;;; Generated autoloads from progmodes/perl-mode.el (put 'perl-indent-level 'safe-local-variable 'integerp) (put 'perl-continued-statement-offset 'safe-local-variable 'integerp) @@ -22267,7 +22321,7 @@ Turning on Perl mode runs the normal hook `perl-mode-hook'. ;;;*** ;;;### (autoloads (picture-mode) "picture" "textmodes/picture.el" -;;;;;; (20551 9899 283417 0)) +;;;;;; (20553 2323 0 0)) ;;; Generated autoloads from textmodes/picture.el (autoload 'picture-mode "picture" "\ @@ -22348,7 +22402,7 @@ they are not by default assigned to keys. ;;;*** ;;;### (autoloads (plstore-mode plstore-open) "plstore" "gnus/plstore.el" -;;;;;; (20378 29222 722320 0)) +;;;;;; (20380 26775 0 0)) ;;; Generated autoloads from gnus/plstore.el (autoload 'plstore-open "plstore" "\ @@ -22364,7 +22418,7 @@ Major mode for editing PLSTORE files. ;;;*** ;;;### (autoloads (po-find-file-coding-system) "po" "textmodes/po.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from textmodes/po.el (autoload 'po-find-file-coding-system "po" "\ @@ -22375,8 +22429,7 @@ Called through `file-coding-system-alist', before the file is visited for real. ;;;*** -;;;### (autoloads (pong) "pong" "play/pong.el" (20478 3673 653810 -;;;;;; 0)) +;;;### (autoloads (pong) "pong" "play/pong.el" (20511 52965 0 0)) ;;; Generated autoloads from play/pong.el (autoload 'pong "pong" "\ @@ -22392,8 +22445,8 @@ pong-mode keybindings:\\ ;;;*** -;;;### (autoloads (pop3-movemail) "pop3" "gnus/pop3.el" (20458 56750 -;;;;;; 651721 0)) +;;;### (autoloads (pop3-movemail) "pop3" "gnus/pop3.el" (20460 33749 +;;;;;; 0 0)) ;;; Generated autoloads from gnus/pop3.el (autoload 'pop3-movemail "pop3" "\ @@ -22406,7 +22459,7 @@ Use streaming commands. ;;;### (autoloads (pp-macroexpand-last-sexp pp-eval-last-sexp pp-macroexpand-expression ;;;;;; pp-eval-expression pp pp-buffer pp-to-string) "pp" "emacs-lisp/pp.el" -;;;;;; (20495 51111 757560 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from emacs-lisp/pp.el (autoload 'pp-to-string "pp" "\ @@ -22474,7 +22527,7 @@ Ignores leading comment characters. ;;;;;; pr-ps-buffer-print pr-ps-buffer-using-ghostscript pr-ps-buffer-preview ;;;;;; pr-ps-directory-ps-print pr-ps-directory-print pr-ps-directory-using-ghostscript ;;;;;; pr-ps-directory-preview pr-interface) "printing" "printing.el" -;;;;;; (20566 63671 243798 0)) +;;;;;; (20567 31133 0 0)) ;;; Generated autoloads from printing.el (autoload 'pr-interface "printing" "\ @@ -23061,8 +23114,7 @@ are both set to t. ;;;*** -;;;### (autoloads (proced) "proced" "proced.el" (20576 13095 881042 -;;;;;; 0)) +;;;### (autoloads (proced) "proced" "proced.el" (20600 16892 0 0)) ;;; Generated autoloads from proced.el (autoload 'proced "proced" "\ @@ -23082,7 +23134,7 @@ Proced buffers. ;;;### (autoloads (profiler-find-profile-other-frame profiler-find-profile-other-window ;;;;;; profiler-find-profile profiler-start) "profiler" "profiler.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20600 16892 0 0)) ;;; Generated autoloads from profiler.el (autoload 'profiler-start "profiler" "\ @@ -23111,7 +23163,7 @@ Open profile FILENAME. ;;;*** ;;;### (autoloads (run-prolog mercury-mode prolog-mode) "prolog" -;;;;;; "progmodes/prolog.el" (20576 42138 697312 0)) +;;;;;; "progmodes/prolog.el" (20577 48876 0 0)) ;;; Generated autoloads from progmodes/prolog.el (autoload 'prolog-mode "prolog" "\ @@ -23146,8 +23198,8 @@ With prefix argument ARG, restart the Prolog process if running before. ;;;*** -;;;### (autoloads (bdf-directory-list) "ps-bdf" "ps-bdf.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (bdf-directory-list) "ps-bdf" "ps-bdf.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from ps-bdf.el (defvar bdf-directory-list (if (memq system-type '(ms-dos windows-nt)) (list (expand-file-name "fonts/bdf" installation-directory)) '("/usr/local/share/emacs/fonts/bdf")) "\ @@ -23158,8 +23210,8 @@ The default value is '(\"/usr/local/share/emacs/fonts/bdf\").") ;;;*** -;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (20576 -;;;;;; 42138 697312 0)) +;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (20577 +;;;;;; 48876 0 0)) ;;; Generated autoloads from progmodes/ps-mode.el (autoload 'ps-mode "ps-mode" "\ @@ -23210,8 +23262,8 @@ Typing \\\\[ps-run-goto-error] when the cursor is at the number ;;;;;; ps-spool-region ps-spool-buffer-with-faces ps-spool-buffer ;;;;;; ps-print-region-with-faces ps-print-region ps-print-buffer-with-faces ;;;;;; ps-print-buffer ps-print-customize ps-print-color-p ps-paper-type -;;;;;; ps-page-dimensions-database) "ps-print" "ps-print.el" (20566 -;;;;;; 63671 243798 0)) +;;;;;; ps-page-dimensions-database) "ps-print" "ps-print.el" (20567 +;;;;;; 31133 0 0)) ;;; Generated autoloads from ps-print.el (defvar ps-page-dimensions-database (purecopy (list (list 'a4 (/ (* 72 21.0) 2.54) (/ (* 72 29.7) 2.54) "A4") (list 'a3 (/ (* 72 29.7) 2.54) (/ (* 72 42.0) 2.54) "A3") (list 'letter (* 72 8.5) (* 72 11.0) "Letter") (list 'legal (* 72 8.5) (* 72 14.0) "Legal") (list 'letter-small (* 72 7.68) (* 72 10.16) "LetterSmall") (list 'tabloid (* 72 11.0) (* 72 17.0) "Tabloid") (list 'ledger (* 72 17.0) (* 72 11.0) "Ledger") (list 'statement (* 72 5.5) (* 72 8.5) "Statement") (list 'executive (* 72 7.5) (* 72 10.0) "Executive") (list 'a4small (* 72 7.47) (* 72 10.85) "A4Small") (list 'b4 (* 72 10.125) (* 72 14.33) "B4") (list 'b5 (* 72 7.16) (* 72 10.125) "B5") '(addresslarge 236.0 99.0 "AddressLarge") '(addresssmall 236.0 68.0 "AddressSmall") '(cuthanging13 90.0 222.0 "CutHanging13") '(cuthanging15 90.0 114.0 "CutHanging15") '(diskette 181.0 136.0 "Diskette") '(eurofilefolder 139.0 112.0 "EuropeanFilefolder") '(eurofoldernarrow 526.0 107.0 "EuroFolderNarrow") '(eurofolderwide 526.0 136.0 "EuroFolderWide") '(euronamebadge 189.0 108.0 "EuroNameBadge") '(euronamebadgelarge 223.0 136.0 "EuroNameBadgeLarge") '(filefolder 230.0 37.0 "FileFolder") '(jewelry 76.0 136.0 "Jewelry") '(mediabadge 180.0 136.0 "MediaBadge") '(multipurpose 126.0 68.0 "MultiPurpose") '(retaillabel 90.0 104.0 "RetailLabel") '(shipping 271.0 136.0 "Shipping") '(slide35mm 26.0 104.0 "Slide35mm") '(spine8mm 187.0 26.0 "Spine8mm") '(topcoated 425.19685 136.0 "TopCoatedPaper") '(topcoatedpaper 396.0 136.0 "TopcoatedPaper150") '(vhsface 205.0 127.0 "VHSFace") '(vhsspine 400.0 50.0 "VHSSpine") '(zipdisk 156.0 136.0 "ZipDisk"))) "\ @@ -23408,7 +23460,7 @@ If EXTENSION is any other symbol, it is ignored. ;;;*** ;;;### (autoloads (python-mode run-python) "python" "progmodes/python.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20600 16892 0 0)) ;;; Generated autoloads from progmodes/python.el (add-to-list 'auto-mode-alist (cons (purecopy "\\.py\\'") 'python-mode)) @@ -23444,7 +23496,7 @@ if that value is non-nil. ;;;*** ;;;### (autoloads (quoted-printable-decode-region) "qp" "gnus/qp.el" -;;;;;; (20557 48712 315579 0)) +;;;;;; (20559 38659 0 0)) ;;; Generated autoloads from gnus/qp.el (autoload 'quoted-printable-decode-region "qp" "\ @@ -23467,7 +23519,7 @@ them into characters should be done separately. ;;;;;; quail-defrule quail-install-decode-map quail-install-map ;;;;;; quail-define-rules quail-show-keyboard-layout quail-set-keyboard-layout ;;;;;; quail-define-package quail-use-package quail-title) "quail" -;;;;;; "international/quail.el" (20523 62082 997685 0)) +;;;;;; "international/quail.el" (20523 63054 0 0)) ;;; Generated autoloads from international/quail.el (autoload 'quail-title "quail" "\ @@ -23698,8 +23750,8 @@ of each directory. ;;;### (autoloads (quickurl-list quickurl-list-mode quickurl-edit-urls ;;;;;; quickurl-browse-url-ask quickurl-browse-url quickurl-add-url -;;;;;; quickurl-ask quickurl) "quickurl" "net/quickurl.el" (20566 -;;;;;; 63671 243798 0)) +;;;;;; quickurl-ask quickurl) "quickurl" "net/quickurl.el" (20567 +;;;;;; 31133 0 0)) ;;; Generated autoloads from net/quickurl.el (defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn (require 'quickurl) (add-hook 'local-write-file-hooks (lambda () (quickurl-read) nil)))\n;; End:\n" "\ @@ -23771,7 +23823,7 @@ Display `quickurl-list' as a formatted list using `quickurl-list-mode'. ;;;*** ;;;### (autoloads (rcirc-track-minor-mode rcirc-connect rcirc) "rcirc" -;;;;;; "net/rcirc.el" (20541 6907 775259 0)) +;;;;;; "net/rcirc.el" (20540 61982 0 0)) ;;; Generated autoloads from net/rcirc.el (autoload 'rcirc "rcirc" "\ @@ -23809,8 +23861,8 @@ if ARG is omitted or nil. ;;;*** -;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (20290 +;;;;;; 33419 0 0)) ;;; Generated autoloads from net/rcompile.el (autoload 'remote-compile "rcompile" "\ @@ -23822,7 +23874,7 @@ See \\[compile]. ;;;*** ;;;### (autoloads (re-builder) "re-builder" "emacs-lisp/re-builder.el" -;;;;;; (20427 14766 970343 0)) +;;;;;; (20428 57510 0 0)) ;;; Generated autoloads from emacs-lisp/re-builder.el (defalias 'regexp-builder 're-builder) @@ -23840,8 +23892,8 @@ matching parts of the target buffer will be highlighted. ;;;*** -;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (20356 2211 -;;;;;; 532900 0)) +;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (20356 35090 +;;;;;; 0 0)) ;;; Generated autoloads from recentf.el (defvar recentf-mode nil "\ @@ -23871,7 +23923,7 @@ were operated on recently. ;;;;;; string-rectangle delete-whitespace-rectangle open-rectangle ;;;;;; insert-rectangle yank-rectangle copy-rectangle-as-kill kill-rectangle ;;;;;; extract-rectangle delete-extract-rectangle delete-rectangle) -;;;;;; "rect" "rect.el" (20501 3499 284800 0)) +;;;;;; "rect" "rect.el" (20511 52965 0 0)) ;;; Generated autoloads from rect.el (autoload 'delete-rectangle "rect" "\ @@ -24005,8 +24057,8 @@ with a prefix argument, prompt for START-AT and FORMAT. ;;;*** -;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (20478 -;;;;;; 3673 653810 0)) +;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (20511 +;;;;;; 52965 0 0)) ;;; Generated autoloads from textmodes/refill.el (autoload 'refill-mode "refill" "\ @@ -24027,8 +24079,8 @@ For true \"word wrap\" behavior, use `visual-line-mode' instead. ;;;*** ;;;### (autoloads (reftex-reset-scanning-information reftex-mode -;;;;;; turn-on-reftex) "reftex" "textmodes/reftex.el" (20585 28088 -;;;;;; 480237 0)) +;;;;;; turn-on-reftex) "reftex" "textmodes/reftex.el" (20592 26321 +;;;;;; 0 0)) ;;; Generated autoloads from textmodes/reftex.el (autoload 'turn-on-reftex "reftex" "\ @@ -24078,7 +24130,7 @@ This enforces rescanning the buffer on next use. ;;;*** ;;;### (autoloads (reftex-citation) "reftex-cite" "textmodes/reftex-cite.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from textmodes/reftex-cite.el (autoload 'reftex-citation "reftex-cite" "\ @@ -24108,7 +24160,7 @@ While entering the regexp, completion on knows citation keys is possible. ;;;*** ;;;### (autoloads (reftex-isearch-minor-mode) "reftex-global" "textmodes/reftex-global.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from textmodes/reftex-global.el (autoload 'reftex-isearch-minor-mode "reftex-global" "\ @@ -24125,7 +24177,7 @@ With no argument, this command toggles ;;;*** ;;;### (autoloads (reftex-index-phrases-mode) "reftex-index" "textmodes/reftex-index.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from textmodes/reftex-index.el (autoload 'reftex-index-phrases-mode "reftex-index" "\ @@ -24158,7 +24210,7 @@ Here are all local bindings. ;;;*** ;;;### (autoloads (reftex-all-document-files) "reftex-parse" "textmodes/reftex-parse.el" -;;;;;; (20585 28088 480237 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from textmodes/reftex-parse.el (autoload 'reftex-all-document-files "reftex-parse" "\ @@ -24170,8 +24222,8 @@ of master file. ;;;*** -;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (20585 -;;;;;; 28088 480237 0)) +;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (20600 +;;;;;; 16892 0 0)) ;;; Generated autoloads from textmodes/reftex-vars.el (put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) (put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) @@ -24181,7 +24233,7 @@ of master file. ;;;*** ;;;### (autoloads (regexp-opt-depth regexp-opt) "regexp-opt" "emacs-lisp/regexp-opt.el" -;;;;;; (20522 38650 757441 0)) +;;;;;; (20522 50437 0 0)) ;;; Generated autoloads from emacs-lisp/regexp-opt.el (autoload 'regexp-opt "regexp-opt" "\ @@ -24212,7 +24264,7 @@ This means the number of non-shy regexp grouping constructs ;;;### (autoloads (remember-diary-extract-entries remember-clipboard ;;;;;; remember-other-frame remember) "remember" "textmodes/remember.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from textmodes/remember.el (autoload 'remember "remember" "\ @@ -24243,8 +24295,7 @@ Extract diary entries from the region. ;;;*** -;;;### (autoloads (repeat) "repeat" "repeat.el" (20574 57775 217760 -;;;;;; 0)) +;;;### (autoloads (repeat) "repeat" "repeat.el" (20577 48876 0 0)) ;;; Generated autoloads from repeat.el (autoload 'repeat "repeat" "\ @@ -24267,7 +24318,7 @@ recently executed command not bound to an input event\". ;;;*** ;;;### (autoloads (reporter-submit-bug-report) "reporter" "mail/reporter.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from mail/reporter.el (autoload 'reporter-submit-bug-report "reporter" "\ @@ -24299,7 +24350,7 @@ mail-sending package is used for editing and sending the message. ;;;*** ;;;### (autoloads (reposition-window) "reposition" "reposition.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from reposition.el (autoload 'reposition-window "reposition" "\ @@ -24326,7 +24377,7 @@ first comment line visible (if point is in a comment). ;;;*** ;;;### (autoloads (global-reveal-mode reveal-mode) "reveal" "reveal.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from reveal.el (autoload 'reveal-mode "reveal" "\ @@ -24362,7 +24413,7 @@ the mode if ARG is omitted or nil. ;;;*** ;;;### (autoloads (make-ring ring-p) "ring" "emacs-lisp/ring.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20331 12564 0 0)) ;;; Generated autoloads from emacs-lisp/ring.el (autoload 'ring-p "ring" "\ @@ -24377,8 +24428,8 @@ Make a ring that can contain SIZE elements. ;;;*** -;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (20402 11562 -;;;;;; 85788 0)) +;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (20412 11425 +;;;;;; 0 0)) ;;; Generated autoloads from net/rlogin.el (autoload 'rlogin "rlogin" "\ @@ -24427,8 +24478,7 @@ variable. ;;;;;; rmail-secondary-file-directory rmail-primary-inbox-list rmail-highlighted-headers ;;;;;; rmail-retry-ignored-headers rmail-displayed-headers rmail-ignored-headers ;;;;;; rmail-user-mail-address-regexp rmail-movemail-variant-p rmail-spool-directory -;;;;;; rmail-file-name) "rmail" "mail/rmail.el" (20568 19013 9762 -;;;;;; 342000)) +;;;;;; rmail-file-name) "rmail" "mail/rmail.el" (20600 16892 0 0)) ;;; Generated autoloads from mail/rmail.el (defvar rmail-file-name (purecopy "~/RMAIL") "\ @@ -24626,8 +24676,8 @@ Set PASSWORD to be used for retrieving mail from a POP or IMAP server. ;;;*** ;;;### (autoloads (rmail-output-body-to-file rmail-output-as-seen -;;;;;; rmail-output) "rmailout" "mail/rmailout.el" (20530 3765 184907 -;;;;;; 0)) +;;;;;; rmail-output) "rmailout" "mail/rmailout.el" (20535 44414 +;;;;;; 0 0)) ;;; Generated autoloads from mail/rmailout.el (put 'rmail-output-file-alist 'risky-local-variable t) @@ -24692,7 +24742,7 @@ than appending to it. Deletes the message after writing if ;;;*** ;;;### (autoloads (rng-c-load-schema) "rng-cmpct" "nxml/rng-cmpct.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from nxml/rng-cmpct.el (autoload 'rng-c-load-schema "rng-cmpct" "\ @@ -24704,7 +24754,7 @@ Return a pattern. ;;;*** ;;;### (autoloads (rng-nxml-mode-init) "rng-nxml" "nxml/rng-nxml.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20356 35090 0 0)) ;;; Generated autoloads from nxml/rng-nxml.el (autoload 'rng-nxml-mode-init "rng-nxml" "\ @@ -24717,7 +24767,7 @@ Validation will be enabled if `rng-nxml-auto-validate-flag' is non-nil. ;;;*** ;;;### (autoloads (rng-validate-mode) "rng-valid" "nxml/rng-valid.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20290 33419 0 0)) ;;; Generated autoloads from nxml/rng-valid.el (autoload 'rng-validate-mode "rng-valid" "\ @@ -24747,8 +24797,8 @@ to use for finding the schema. ;;;*** -;;;### (autoloads (rng-xsd-compile) "rng-xsd" "nxml/rng-xsd.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (rng-xsd-compile) "rng-xsd" "nxml/rng-xsd.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from nxml/rng-xsd.el (put 'http://www\.w3\.org/2001/XMLSchema-datatypes 'rng-dt-compile 'rng-xsd-compile) @@ -24776,7 +24826,7 @@ must be equal. ;;;*** ;;;### (autoloads (robin-use-package robin-modify-package robin-define-package) -;;;;;; "robin" "international/robin.el" (20523 62082 997685 0)) +;;;;;; "robin" "international/robin.el" (20523 63054 0 0)) ;;; Generated autoloads from international/robin.el (autoload 'robin-define-package "robin" "\ @@ -24809,8 +24859,7 @@ Start using robin package NAME, which is a string. ;;;*** ;;;### (autoloads (toggle-rot13-mode rot13-other-window rot13-region -;;;;;; rot13-string rot13) "rot13" "rot13.el" (20355 10021 546955 -;;;;;; 0)) +;;;;;; rot13-string rot13) "rot13" "rot13.el" (20244 35516 0 0)) ;;; Generated autoloads from rot13.el (autoload 'rot13 "rot13" "\ @@ -24848,7 +24897,7 @@ Toggle the use of ROT13 encoding for the current window. ;;;*** ;;;### (autoloads (rst-minor-mode rst-mode) "rst" "textmodes/rst.el" -;;;;;; (20576 13095 881042 0)) +;;;;;; (20600 16892 0 0)) ;;; Generated autoloads from textmodes/rst.el (add-to-list 'auto-mode-alist (purecopy '("\\.re?st\\'" . rst-mode))) @@ -24879,7 +24928,7 @@ for modes derived from Text mode, like Mail mode. ;;;*** ;;;### (autoloads (ruby-mode) "ruby-mode" "progmodes/ruby-mode.el" -;;;;;; (20576 42138 697312 0)) +;;;;;; (20577 48876 0 0)) ;;; Generated autoloads from progmodes/ruby-mode.el (autoload 'ruby-mode "ruby-mode" "\ @@ -24900,8 +24949,8 @@ The variable `ruby-indent-level' controls the amount of indentation. ;;;*** -;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from ruler-mode.el (defvar ruler-mode nil "\ @@ -24918,8 +24967,8 @@ if ARG is omitted or nil. ;;;*** -;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (20518 -;;;;;; 12580 46478 0)) +;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (20517 +;;;;;; 30410 0 0)) ;;; Generated autoloads from emacs-lisp/rx.el (autoload 'rx-to-string "rx" "\ @@ -25231,7 +25280,7 @@ enclosed in `(and ...)'. ;;;*** ;;;### (autoloads (savehist-mode) "savehist" "savehist.el" (20577 -;;;;;; 33959 40183 0)) +;;;;;; 48876 0 0)) ;;; Generated autoloads from savehist.el (defvar savehist-mode nil "\ @@ -25263,7 +25312,7 @@ histories, which is probably undesirable. ;;;*** ;;;### (autoloads (dsssl-mode scheme-mode) "scheme" "progmodes/scheme.el" -;;;;;; (20427 14766 970343 0)) +;;;;;; (20428 57510 0 0)) ;;; Generated autoloads from progmodes/scheme.el (autoload 'scheme-mode "scheme" "\ @@ -25305,7 +25354,7 @@ that variable's value is a string. ;;;*** ;;;### (autoloads (gnus-score-mode) "score-mode" "gnus/score-mode.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from gnus/score-mode.el (autoload 'gnus-score-mode "score-mode" "\ @@ -25319,7 +25368,7 @@ This mode is an extended emacs-lisp mode. ;;;*** ;;;### (autoloads (scroll-all-mode) "scroll-all" "scroll-all.el" -;;;;;; (20363 61861 222722 0)) +;;;;;; (20373 41604 0 0)) ;;; Generated autoloads from scroll-all.el (defvar scroll-all-mode nil "\ @@ -25345,7 +25394,7 @@ one window apply to all visible windows in the same frame. ;;;*** ;;;### (autoloads (scroll-lock-mode) "scroll-lock" "scroll-lock.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20276 3849 0 0)) ;;; Generated autoloads from scroll-lock.el (autoload 'scroll-lock-mode "scroll-lock" "\ @@ -25361,8 +25410,7 @@ vertically fixed relative to window boundaries during scrolling. ;;;*** -;;;### (autoloads nil "secrets" "net/secrets.el" (20478 3673 653810 -;;;;;; 0)) +;;;### (autoloads nil "secrets" "net/secrets.el" (20511 52965 0 0)) ;;; Generated autoloads from net/secrets.el (when (featurep 'dbusbind) (autoload 'secrets-show-secrets "secrets" nil t)) @@ -25370,7 +25418,7 @@ vertically fixed relative to window boundaries during scrolling. ;;;*** ;;;### (autoloads (semantic-mode semantic-default-submodes) "semantic" -;;;;;; "cedet/semantic.el" (20355 10021 546955 0)) +;;;;;; "cedet/semantic.el" (20600 16892 0 0)) ;;; Generated autoloads from cedet/semantic.el (defvar semantic-default-submodes '(global-semantic-idle-scheduler-mode global-semanticdb-minor-mode) "\ @@ -25385,7 +25433,17 @@ The possible elements of this list include the following: `global-semantic-highlight-func-mode' - Highlight the current tag. `global-semantic-stickyfunc-mode' - Show current fun in header line. `global-semantic-mru-bookmark-mode' - Provide `switch-to-buffer'-like - keybinding for tag names.") + keybinding for tag names. + `global-cedet-m3-minor-mode' - A mouse 3 context menu. + `global-semantic-idle-local-symbol-highlight-mode' - Highlight references + of the symbol under point. +The following modes are more targeted at people who want to see + some internal information of the semantic parser in action: + `global-semantic-highlight-edits-mode' - Visualize incremental parser by + highlighting not-yet parsed changes. + `global-semantic-show-unmatched-syntax-mode' - Highlight unmatched lexical + syntax tokens. + `global-semantic-show-parser-state-mode' - Display the parser cache state.") (custom-autoload 'semantic-default-submodes "semantic" t) @@ -25414,6 +25472,28 @@ Semantic mode. \(fn &optional ARG)" t nil) +;;;*** + +;;;### (autoloads (bovine-grammar-mode) "semantic/bovine/grammar" +;;;;;; "cedet/semantic/bovine/grammar.el" (20592 26321 0 0)) +;;; Generated autoloads from cedet/semantic/bovine/grammar.el + +(autoload 'bovine-grammar-mode "semantic/bovine/grammar" "\ +Major mode for editing Bovine grammars. + +\(fn)" t nil) + +;;;*** + +;;;### (autoloads (wisent-grammar-mode) "semantic/wisent/grammar" +;;;;;; "cedet/semantic/wisent/grammar.el" (20592 26321 0 0)) +;;; Generated autoloads from cedet/semantic/wisent/grammar.el + +(autoload 'wisent-grammar-mode "semantic/wisent/grammar" "\ +Major mode for editing Wisent grammars. + +\(fn)" t nil) + ;;;*** ;;;### (autoloads (mail-other-frame mail-other-window mail mail-mailing-lists @@ -25424,7 +25504,7 @@ Semantic mode. ;;;;;; mail-personal-alias-file mail-default-reply-to mail-archive-file-name ;;;;;; mail-header-separator send-mail-function mail-interactive ;;;;;; mail-self-blind mail-specify-envelope-from mail-from-style) -;;;;;; "sendmail" "mail/sendmail.el" (20577 33959 40183 0)) +;;;;;; "sendmail" "mail/sendmail.el" (20577 48876 0 0)) ;;; Generated autoloads from mail/sendmail.el (defvar mail-from-style 'default "\ @@ -25706,8 +25786,8 @@ Like `mail' command, but display mail buffer in another frame. ;;;*** ;;;### (autoloads (server-save-buffers-kill-terminal server-mode -;;;;;; server-force-delete server-start) "server" "server.el" (20584 -;;;;;; 7212 455152 0)) +;;;;;; server-force-delete server-start) "server" "server.el" (20600 +;;;;;; 16892 0 0)) ;;; Generated autoloads from server.el (put 'server-host 'risky-local-variable t) @@ -25774,7 +25854,7 @@ only these files will be asked to be saved. ;;;*** -;;;### (autoloads (ses-mode) "ses" "ses.el" (20553 51627 169867 0)) +;;;### (autoloads (ses-mode) "ses" "ses.el" (20553 63503 0 0)) ;;; Generated autoloads from ses.el (autoload 'ses-mode "ses" "\ @@ -25793,7 +25873,7 @@ These are active only in the minibuffer, when entering or editing a formula: ;;;*** ;;;### (autoloads (html-mode sgml-mode) "sgml-mode" "textmodes/sgml-mode.el" -;;;;;; (20580 10161 446444 0)) +;;;;;; (20580 46629 0 0)) ;;; Generated autoloads from textmodes/sgml-mode.el (autoload 'sgml-mode "sgml-mode" "\ @@ -25859,7 +25939,7 @@ To work around that, do: ;;;*** ;;;### (autoloads (sh-mode) "sh-script" "progmodes/sh-script.el" -;;;;;; (20577 33959 40183 0)) +;;;;;; (20600 16892 0 0)) ;;; Generated autoloads from progmodes/sh-script.el (put 'sh-shell 'safe-local-variable 'symbolp) @@ -25923,7 +26003,7 @@ with your script for an edit-interpret-debug cycle. ;;;*** ;;;### (autoloads (list-load-path-shadows) "shadow" "emacs-lisp/shadow.el" -;;;;;; (20572 16038 402143 0)) +;;;;;; (20577 48876 0 0)) ;;; Generated autoloads from emacs-lisp/shadow.el (autoload 'list-load-path-shadows "shadow" "\ @@ -25973,8 +26053,8 @@ function, `load-path-shadows-find'. ;;;*** ;;;### (autoloads (shadow-initialize shadow-define-regexp-group shadow-define-literal-group -;;;;;; shadow-define-cluster) "shadowfile" "shadowfile.el" (20355 -;;;;;; 10021 546955 0)) +;;;;;; shadow-define-cluster) "shadowfile" "shadowfile.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from shadowfile.el (autoload 'shadow-define-cluster "shadowfile" "\ @@ -26013,7 +26093,7 @@ Set up file shadowing. ;;;*** ;;;### (autoloads (shell shell-dumb-shell-regexp) "shell" "shell.el" -;;;;;; (20566 63671 243798 0)) +;;;;;; (20567 31133 0 0)) ;;; Generated autoloads from shell.el (defvar shell-dumb-shell-regexp (purecopy "cmd\\(proxy\\)?\\.exe") "\ @@ -26061,8 +26141,8 @@ Otherwise, one argument `-i' is passed to the shell. ;;;*** -;;;### (autoloads (shr-insert-document) "shr" "gnus/shr.el" (20486 -;;;;;; 36135 22104 0)) +;;;### (autoloads (shr-insert-document) "shr" "gnus/shr.el" (20600 +;;;;;; 16892 0 0)) ;;; Generated autoloads from gnus/shr.el (autoload 'shr-insert-document "shr" "\ @@ -26075,8 +26155,7 @@ DOM should be a parse tree as generated by ;;;*** ;;;### (autoloads (sieve-upload-and-kill sieve-upload-and-bury sieve-upload -;;;;;; sieve-manage) "sieve" "gnus/sieve.el" (20487 57003 603251 -;;;;;; 0)) +;;;;;; sieve-manage) "sieve" "gnus/sieve.el" (20511 52965 0 0)) ;;; Generated autoloads from gnus/sieve.el (autoload 'sieve-manage "sieve" "\ @@ -26102,7 +26181,7 @@ DOM should be a parse tree as generated by ;;;*** ;;;### (autoloads (sieve-mode) "sieve-mode" "gnus/sieve-mode.el" -;;;;;; (20487 57003 603251 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from gnus/sieve-mode.el (autoload 'sieve-mode "sieve-mode" "\ @@ -26117,8 +26196,8 @@ Turning on Sieve mode runs `sieve-mode-hook'. ;;;*** -;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (20356 +;;;;;; 35090 0 0)) ;;; Generated autoloads from progmodes/simula.el (autoload 'simula-mode "simula" "\ @@ -26167,7 +26246,7 @@ with no arguments, if that value is non-nil. ;;;*** ;;;### (autoloads (skeleton-pair-insert-maybe skeleton-insert skeleton-proxy-new -;;;;;; define-skeleton) "skeleton" "skeleton.el" (20541 6907 775259 +;;;;;; define-skeleton) "skeleton" "skeleton.el" (20540 61982 0 ;;;;;; 0)) ;;; Generated autoloads from skeleton.el @@ -26280,7 +26359,7 @@ symmetrical ones, and the same character twice for the others. ;;;*** ;;;### (autoloads (smerge-start-session smerge-mode smerge-ediff) -;;;;;; "smerge-mode" "vc/smerge-mode.el" (20585 28088 480237 0)) +;;;;;; "smerge-mode" "vc/smerge-mode.el" (20585 55103 0 0)) ;;; Generated autoloads from vc/smerge-mode.el (autoload 'smerge-ediff "smerge-mode" "\ @@ -26308,7 +26387,7 @@ If no conflict maker is found, turn off `smerge-mode'. ;;;*** ;;;### (autoloads (smiley-buffer smiley-region) "smiley" "gnus/smiley.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from gnus/smiley.el (autoload 'smiley-region "smiley" "\ @@ -26326,7 +26405,7 @@ interactively. If there's no argument, do it at the current buffer. ;;;*** ;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail" -;;;;;; "mail/smtpmail.el" (20551 9899 283417 0)) +;;;;;; "mail/smtpmail.el" (20550 14882 0 0)) ;;; Generated autoloads from mail/smtpmail.el (autoload 'smtpmail-send-it "smtpmail" "\ @@ -26341,7 +26420,7 @@ Send mail that was queued as a result of setting `smtpmail-queue-mail'. ;;;*** -;;;### (autoloads (snake) "snake" "play/snake.el" (20478 3673 653810 +;;;### (autoloads (snake) "snake" "play/snake.el" (20511 52965 0 ;;;;;; 0)) ;;; Generated autoloads from play/snake.el @@ -26366,7 +26445,7 @@ Snake mode keybindings: ;;;*** ;;;### (autoloads (snmpv2-mode snmp-mode) "snmp-mode" "net/snmp-mode.el" -;;;;;; (20577 33959 40183 0)) +;;;;;; (20577 48876 0 0)) ;;; Generated autoloads from net/snmp-mode.el (autoload 'snmp-mode "snmp-mode" "\ @@ -26395,8 +26474,8 @@ then `snmpv2-mode-hook'. ;;;*** -;;;### (autoloads (sunrise-sunset) "solar" "calendar/solar.el" (20566 -;;;;;; 63671 243798 0)) +;;;### (autoloads (sunrise-sunset) "solar" "calendar/solar.el" (20567 +;;;;;; 31133 0 0)) ;;; Generated autoloads from calendar/solar.el (autoload 'sunrise-sunset "solar" "\ @@ -26411,8 +26490,8 @@ This function is suitable for execution in an init file. ;;;*** -;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (20427 -;;;;;; 14766 970343 0)) +;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (20428 +;;;;;; 57510 0 0)) ;;; Generated autoloads from play/solitaire.el (autoload 'solitaire "solitaire" "\ @@ -26489,8 +26568,7 @@ Pick your favorite shortcuts: ;;;### (autoloads (reverse-region sort-columns sort-regexp-fields ;;;;;; sort-fields sort-numeric-fields sort-pages sort-paragraphs -;;;;;; sort-lines sort-subr) "sort" "sort.el" (20507 42276 222255 -;;;;;; 0)) +;;;;;; sort-lines sort-subr) "sort" "sort.el" (20511 52965 0 0)) ;;; Generated autoloads from sort.el (put 'sort-fold-case 'safe-local-variable 'booleanp) @@ -26639,8 +26717,8 @@ From a program takes two point or marker arguments, BEG and END. ;;;*** -;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (20458 -;;;;;; 56750 651721 0)) +;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (20460 +;;;;;; 33749 0 0)) ;;; Generated autoloads from gnus/spam.el (autoload 'spam-initialize "spam" "\ @@ -26656,7 +26734,7 @@ installed through `spam-necessary-extra-headers'. ;;;### (autoloads (spam-report-deagentize spam-report-agentize spam-report-url-to-file ;;;;;; spam-report-url-ping-mm-url spam-report-process-queue) "spam-report" -;;;;;; "gnus/spam-report.el" (20355 10021 546955 0)) +;;;;;; "gnus/spam-report.el" (20244 35516 0 0)) ;;; Generated autoloads from gnus/spam-report.el (autoload 'spam-report-process-queue "spam-report" "\ @@ -26699,7 +26777,7 @@ Spam reports will be queued with the method used when ;;;*** ;;;### (autoloads (speedbar-get-focus speedbar-frame-mode) "speedbar" -;;;;;; "speedbar.el" (20566 63671 243798 0)) +;;;;;; "speedbar.el" (20567 31133 0 0)) ;;; Generated autoloads from speedbar.el (defalias 'speedbar 'speedbar-frame-mode) @@ -26723,8 +26801,8 @@ selected. If the speedbar frame is active, then select the attached frame. ;;;*** -;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from play/spook.el (autoload 'spook "spook" "\ @@ -26743,7 +26821,7 @@ Return a vector containing the lines from `spook-phrases-file'. ;;;;;; sql-ms sql-ingres sql-solid sql-mysql sql-sqlite sql-informix ;;;;;; sql-sybase sql-oracle sql-product-interactive sql-connect ;;;;;; sql-mode sql-help sql-add-product-keywords) "sql" "progmodes/sql.el" -;;;;;; (20566 63671 243798 0)) +;;;;;; (20567 31133 0 0)) ;;; Generated autoloads from progmodes/sql.el (autoload 'sql-add-product-keywords "sql" "\ @@ -27239,7 +27317,7 @@ buffer. ;;;*** ;;;### (autoloads (srecode-template-mode) "srecode/srt-mode" "cedet/srecode/srt-mode.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20585 59413 0 0)) ;;; Generated autoloads from cedet/srecode/srt-mode.el (autoload 'srecode-template-mode "srecode/srt-mode" "\ @@ -27252,7 +27330,7 @@ Major-mode for writing SRecode macros. ;;;*** ;;;### (autoloads (starttls-open-stream) "starttls" "gnus/starttls.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from gnus/starttls.el (autoload 'starttls-open-stream "starttls" "\ @@ -27279,8 +27357,8 @@ GnuTLS requires a port number. ;;;;;; strokes-mode strokes-list-strokes strokes-load-user-strokes ;;;;;; strokes-help strokes-describe-stroke strokes-do-complex-stroke ;;;;;; strokes-do-stroke strokes-read-complex-stroke strokes-read-stroke -;;;;;; strokes-global-set-stroke) "strokes" "strokes.el" (20566 -;;;;;; 63671 243798 0)) +;;;;;; strokes-global-set-stroke) "strokes" "strokes.el" (20600 +;;;;;; 16892 0 0)) ;;; Generated autoloads from strokes.el (autoload 'strokes-global-set-stroke "strokes" "\ @@ -27394,7 +27472,7 @@ Read a complex stroke and insert its glyph into the current buffer. ;;;*** ;;;### (autoloads (studlify-buffer studlify-word studlify-region) -;;;;;; "studly" "play/studly.el" (20355 10021 546955 0)) +;;;;;; "studly" "play/studly.el" (19765 60663 0 0)) ;;; Generated autoloads from play/studly.el (autoload 'studlify-region "studly" "\ @@ -27415,7 +27493,7 @@ Studlify-case the current buffer. ;;;*** ;;;### (autoloads (global-subword-mode subword-mode) "subword" "progmodes/subword.el" -;;;;;; (20524 51365 2559 0)) +;;;;;; (20535 44414 0 0)) ;;; Generated autoloads from progmodes/subword.el (autoload 'subword-mode "subword" "\ @@ -27471,7 +27549,7 @@ See `subword-mode' for more information on Subword mode. ;;;*** ;;;### (autoloads (sc-cite-original) "supercite" "mail/supercite.el" -;;;;;; (20576 42138 697312 0)) +;;;;;; (20577 48876 0 0)) ;;; Generated autoloads from mail/supercite.el (autoload 'sc-cite-original "supercite" "\ @@ -27503,8 +27581,8 @@ and `sc-post-hook' is run after the guts of this function. ;;;*** -;;;### (autoloads (gpm-mouse-mode) "t-mouse" "t-mouse.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (gpm-mouse-mode) "t-mouse" "t-mouse.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from t-mouse.el (define-obsolete-function-alias 't-mouse-mode 'gpm-mouse-mode "23.1") @@ -27532,8 +27610,8 @@ It relies on the `gpm' daemon being activated. ;;;*** -;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (20244 35516 +;;;;;; 0 0)) ;;; Generated autoloads from tabify.el (autoload 'untabify "tabify" "\ @@ -27568,7 +27646,7 @@ The variable `tab-width' controls the spacing of tab stops. ;;;;;; table-recognize table-insert-row-column table-insert-column ;;;;;; table-insert-row table-insert table-point-left-cell-hook ;;;;;; table-point-entered-cell-hook table-load-hook table-cell-map-hook) -;;;;;; "table" "textmodes/table.el" (20566 63671 243798 0)) +;;;;;; "table" "textmodes/table.el" (20589 46442 0 0)) ;;; Generated autoloads from textmodes/table.el (defvar table-cell-map-hook nil "\ @@ -27931,10 +28009,14 @@ JUSTIFY is a symbol 'left, 'center or 'right for horizontal, or top, \(fn JUSTIFY)" t nil) (autoload 'table-fixed-width-mode "table" "\ -Toggle fixing width mode. -In the fixed width mode, typing inside a cell never changes the cell -width where in the normal mode the cell width expands automatically in -order to prevent a word being folded into multiple lines. +Cell width is fixed when this is non-nil. +Normally it should be nil for allowing automatic cell width expansion +that widens a cell when it is necessary. When non-nil, typing in a +cell does not automatically expand the cell width. A word that is too +long to fit in a cell is chopped into multiple lines. The chopped +location is indicated by `table-word-continuation-char'. This +variable's value can be toggled by \\[table-fixed-width-mode] at +run-time. \(fn &optional ARG)" t nil) @@ -28156,8 +28238,8 @@ converts a table into plain text without frames. It is a companion to ;;;*** -;;;### (autoloads (talk talk-connect) "talk" "talk.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads (talk talk-connect) "talk" "talk.el" (20244 35516 +;;;;;; 0 0)) ;;; Generated autoloads from talk.el (autoload 'talk-connect "talk" "\ @@ -28172,8 +28254,8 @@ Connect to the Emacs talk group from the current X display or tty frame. ;;;*** -;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (20585 28088 -;;;;;; 480237 0)) +;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (20585 55103 +;;;;;; 0 0)) ;;; Generated autoloads from tar-mode.el (autoload 'tar-mode "tar-mode" "\ @@ -28197,7 +28279,7 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'. ;;;*** ;;;### (autoloads (tcl-help-on-word inferior-tcl tcl-mode) "tcl" -;;;;;; "progmodes/tcl.el" (20580 10161 446444 0)) +;;;;;; "progmodes/tcl.el" (20580 46629 0 0)) ;;; Generated autoloads from progmodes/tcl.el (autoload 'tcl-mode "tcl" "\ @@ -28245,8 +28327,8 @@ Prefix argument means invert sense of `tcl-use-smart-word-finder'. ;;;*** -;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (20244 35516 +;;;;;; 0 0)) ;;; Generated autoloads from net/telnet.el (autoload 'telnet "telnet" "\ @@ -28272,7 +28354,7 @@ Normally input is edited in Emacs and sent a line at a time. ;;;*** ;;;### (autoloads (serial-term ansi-term term make-term) "term" "term.el" -;;;;;; (20580 10161 446444 0)) +;;;;;; (20580 46629 0 0)) ;;; Generated autoloads from term.el (autoload 'make-term "term" "\ @@ -28314,8 +28396,8 @@ use in that buffer. ;;;*** -;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from terminal.el (autoload 'terminal-emulator "terminal" "\ @@ -28352,7 +28434,7 @@ subprocess started. ;;;*** ;;;### (autoloads (testcover-this-defun) "testcover" "emacs-lisp/testcover.el" -;;;;;; (20580 10161 446444 0)) +;;;;;; (20579 15299 0 0)) ;;; Generated autoloads from emacs-lisp/testcover.el (autoload 'testcover-this-defun "testcover" "\ @@ -28362,8 +28444,8 @@ Start coverage on function under point. ;;;*** -;;;### (autoloads (tetris) "tetris" "play/tetris.el" (20545 57511 -;;;;;; 257469 0)) +;;;### (autoloads (tetris) "tetris" "play/tetris.el" (20550 14882 +;;;;;; 0 0)) ;;; Generated autoloads from play/tetris.el (autoload 'tetris "tetris" "\ @@ -28394,7 +28476,7 @@ tetris-mode keybindings: ;;;;;; tex-start-commands tex-start-options slitex-run-command latex-run-command ;;;;;; tex-run-command tex-offer-save tex-main-file tex-first-line-header-regexp ;;;;;; tex-directory tex-shell-file-name) "tex-mode" "textmodes/tex-mode.el" -;;;;;; (20584 7212 455152 0)) +;;;;;; (20600 16892 0 0)) ;;; Generated autoloads from textmodes/tex-mode.el (defvar tex-shell-file-name nil "\ @@ -28696,7 +28778,7 @@ Major mode to edit DocTeX files. ;;;*** ;;;### (autoloads (texi2info texinfo-format-region texinfo-format-buffer) -;;;;;; "texinfmt" "textmodes/texinfmt.el" (20434 17809 692608 0)) +;;;;;; "texinfmt" "textmodes/texinfmt.el" (20434 28080 0 0)) ;;; Generated autoloads from textmodes/texinfmt.el (autoload 'texinfo-format-buffer "texinfmt" "\ @@ -28736,7 +28818,7 @@ if large. You can use `Info-split' to do this manually. ;;;*** ;;;### (autoloads (texinfo-mode texinfo-close-quote texinfo-open-quote) -;;;;;; "texinfo" "textmodes/texinfo.el" (20478 3673 653810 0)) +;;;;;; "texinfo" "textmodes/texinfo.el" (20511 52965 0 0)) ;;; Generated autoloads from textmodes/texinfo.el (defvar texinfo-open-quote (purecopy "``") "\ @@ -28822,7 +28904,7 @@ value of `texinfo-mode-hook'. ;;;### (autoloads (thai-composition-function thai-compose-buffer ;;;;;; thai-compose-string thai-compose-region) "thai-util" "language/thai-util.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20276 3849 0 0)) ;;; Generated autoloads from language/thai-util.el (autoload 'thai-compose-region "thai-util" "\ @@ -28851,7 +28933,7 @@ Compose Thai characters in the current buffer. ;;;### (autoloads (list-at-point number-at-point symbol-at-point ;;;;;; sexp-at-point thing-at-point bounds-of-thing-at-point forward-thing) -;;;;;; "thingatpt" "thingatpt.el" (20416 44451 205563 0)) +;;;;;; "thingatpt" "thingatpt.el" (20419 46656 0 0)) ;;; Generated autoloads from thingatpt.el (autoload 'forward-thing "thingatpt" "\ @@ -28914,7 +28996,7 @@ Return the Lisp list at point, or nil if none is found. ;;;### (autoloads (thumbs-dired-setroot thumbs-dired-show thumbs-dired-show-marked ;;;;;; thumbs-show-from-dir thumbs-find-thumb) "thumbs" "thumbs.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from thumbs.el (autoload 'thumbs-find-thumb "thumbs" "\ @@ -28952,8 +29034,8 @@ In dired, call the setroot program on the image at point. ;;;;;; tibetan-post-read-conversion tibetan-compose-buffer tibetan-decompose-buffer ;;;;;; tibetan-decompose-string tibetan-decompose-region tibetan-compose-region ;;;;;; tibetan-compose-string tibetan-transcription-to-tibetan tibetan-tibetan-to-transcription -;;;;;; tibetan-char-p) "tibet-util" "language/tibet-util.el" (20355 -;;;;;; 10021 546955 0)) +;;;;;; tibetan-char-p) "tibet-util" "language/tibet-util.el" (20356 +;;;;;; 35090 0 0)) ;;; Generated autoloads from language/tibet-util.el (autoload 'tibetan-char-p "tibet-util" "\ @@ -29027,7 +29109,7 @@ See also docstring of the function tibetan-compose-region. ;;;*** ;;;### (autoloads (tildify-buffer tildify-region) "tildify" "textmodes/tildify.el" -;;;;;; (20373 11301 906925 0)) +;;;;;; (20373 41604 0 0)) ;;; Generated autoloads from textmodes/tildify.el (autoload 'tildify-region "tildify" "\ @@ -29052,7 +29134,7 @@ This function performs no refilling of the changed text. ;;;### (autoloads (emacs-init-time emacs-uptime display-time-world ;;;;;; display-time-mode display-time display-time-day-and-date) -;;;;;; "time" "time.el" (20561 45732 920134 0)) +;;;;;; "time" "time.el" (20567 31133 0 0)) ;;; Generated autoloads from time.el (defvar display-time-day-and-date nil "\ @@ -29118,7 +29200,7 @@ Return a string giving the duration of the Emacs initialization. ;;;;;; time-to-day-in-year date-leap-year-p days-between date-to-day ;;;;;; time-add time-subtract time-since days-to-time time-less-p ;;;;;; seconds-to-time date-to-time) "time-date" "calendar/time-date.el" -;;;;;; (20453 5437 764254 0)) +;;;;;; (20452 57825 0 0)) ;;; Generated autoloads from calendar/time-date.el (autoload 'date-to-time "time-date" "\ @@ -29232,7 +29314,7 @@ This function does not work for SECONDS greater than `most-positive-fixnum'. ;;;*** ;;;### (autoloads (time-stamp-toggle-active time-stamp) "time-stamp" -;;;;;; "time-stamp.el" (20566 63671 243798 0)) +;;;;;; "time-stamp.el" (20567 31133 0 0)) ;;; Generated autoloads from time-stamp.el (put 'time-stamp-format 'safe-local-variable 'stringp) (put 'time-stamp-time-zone 'safe-local-variable 'string-or-null-p) @@ -29276,7 +29358,7 @@ With ARG, turn time stamping on if and only if arg is positive. ;;;;;; timeclock-workday-remaining-string timeclock-reread-log timeclock-query-out ;;;;;; timeclock-change timeclock-status-string timeclock-out timeclock-in ;;;;;; timeclock-mode-line-display) "timeclock" "calendar/timeclock.el" -;;;;;; (20566 63671 243798 0)) +;;;;;; (20600 16892 0 0)) ;;; Generated autoloads from calendar/timeclock.el (autoload 'timeclock-mode-line-display "timeclock" "\ @@ -29376,7 +29458,7 @@ relative only to the time worked today, and not to past time. ;;;*** ;;;### (autoloads (batch-titdic-convert titdic-convert) "titdic-cnv" -;;;;;; "international/titdic-cnv.el" (20355 10021 546955 0)) +;;;;;; "international/titdic-cnv.el" (20290 33419 0 0)) ;;; Generated autoloads from international/titdic-cnv.el (autoload 'titdic-convert "titdic-cnv" "\ @@ -29399,7 +29481,7 @@ To get complete usage, invoke \"emacs -batch -f batch-titdic-convert -h\". ;;;*** ;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm" -;;;;;; "tmm.el" (20433 53542 563193 0)) +;;;;;; "tmm.el" (20432 55251 0 0)) ;;; Generated autoloads from tmm.el (define-key global-map "\M-`" 'tmm-menubar) (define-key global-map [menu-bar mouse-1] 'tmm-menubar-mouse) @@ -29439,7 +29521,7 @@ Its value should be an event that has a binding in MENU. ;;;### (autoloads (todo-show todo-cp todo-mode todo-print todo-top-priorities ;;;;;; todo-insert-item todo-add-item-non-interactively todo-add-category) -;;;;;; "todo-mode" "calendar/todo-mode.el" (20355 10021 546955 0)) +;;;;;; "todo-mode" "calendar/todo-mode.el" (20244 35516 0 0)) ;;; Generated autoloads from calendar/todo-mode.el (autoload 'todo-add-category "todo-mode" "\ @@ -29499,7 +29581,7 @@ Show TODO list. ;;;### (autoloads (tool-bar-local-item-from-menu tool-bar-add-item-from-menu ;;;;;; tool-bar-local-item tool-bar-add-item toggle-tool-bar-mode-from-frame) -;;;;;; "tool-bar" "tool-bar.el" (20355 10021 546955 0)) +;;;;;; "tool-bar" "tool-bar.el" (20290 33419 0 0)) ;;; Generated autoloads from tool-bar.el (autoload 'toggle-tool-bar-mode-from-frame "tool-bar" "\ @@ -29570,7 +29652,7 @@ holds a keymap. ;;;*** ;;;### (autoloads (tpu-edt-on tpu-edt-mode) "tpu-edt" "emulation/tpu-edt.el" -;;;;;; (20566 63671 243798 0)) +;;;;;; (20567 31133 0 0)) ;;; Generated autoloads from emulation/tpu-edt.el (defvar tpu-edt-mode nil "\ @@ -29600,7 +29682,7 @@ Turn on TPU/edt emulation. ;;;*** ;;;### (autoloads (tpu-mapper) "tpu-mapper" "emulation/tpu-mapper.el" -;;;;;; (20566 63671 243798 0)) +;;;;;; (20567 31133 0 0)) ;;; Generated autoloads from emulation/tpu-mapper.el (autoload 'tpu-mapper "tpu-mapper" "\ @@ -29634,8 +29716,8 @@ your local X guru can try to figure out why the key is being ignored. ;;;*** -;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (20244 35516 +;;;;;; 0 0)) ;;; Generated autoloads from emacs-lisp/tq.el (autoload 'tq-create "tq" "\ @@ -29649,7 +29731,7 @@ to a tcp server on another machine. ;;;*** ;;;### (autoloads (trace-function-background trace-function trace-buffer) -;;;;;; "trace" "emacs-lisp/trace.el" (20485 15269 390836 0)) +;;;;;; "trace" "emacs-lisp/trace.el" (20511 52965 0 0)) ;;; Generated autoloads from emacs-lisp/trace.el (defvar trace-buffer (purecopy "*trace-output*") "\ @@ -29686,7 +29768,7 @@ BUFFER defaults to `trace-buffer'. ;;;### (autoloads (tramp-unload-tramp tramp-completion-handle-file-name-completion ;;;;;; tramp-completion-handle-file-name-all-completions tramp-unload-file-name-handlers ;;;;;; tramp-file-name-handler tramp-syntax tramp-mode) "tramp" -;;;;;; "net/tramp.el" (20561 18280 338092 0)) +;;;;;; "net/tramp.el" (20600 16892 0 0)) ;;; Generated autoloads from net/tramp.el (defvar tramp-mode t "\ @@ -29819,7 +29901,7 @@ Discard Tramp from loading remote files. ;;;*** ;;;### (autoloads (tramp-ftp-enable-ange-ftp) "tramp-ftp" "net/tramp-ftp.el" -;;;;;; (20438 24016 194668 0)) +;;;;;; (20438 17064 0 0)) ;;; Generated autoloads from net/tramp-ftp.el (autoload 'tramp-ftp-enable-ange-ftp "tramp-ftp" "\ @@ -29829,8 +29911,8 @@ Discard Tramp from loading remote files. ;;;*** -;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (20584 -;;;;;; 7212 455152 0)) +;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (20585 +;;;;;; 55103 0 0)) ;;; Generated autoloads from tutorial.el (autoload 'help-with-tutorial "tutorial" "\ @@ -29855,7 +29937,7 @@ resumed later. ;;;*** ;;;### (autoloads (tai-viet-composition-function) "tv-util" "language/tv-util.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (19765 60663 0 0)) ;;; Generated autoloads from language/tv-util.el (autoload 'tai-viet-composition-function "tv-util" "\ @@ -29866,7 +29948,7 @@ resumed later. ;;;*** ;;;### (autoloads (2C-split 2C-associate-buffer 2C-two-columns) "two-column" -;;;;;; "textmodes/two-column.el" (20566 63671 243798 0)) +;;;;;; "textmodes/two-column.el" (20567 31133 0 0)) ;;; Generated autoloads from textmodes/two-column.el (autoload '2C-command "two-column" () t 'keymap) (global-set-key "\C-x6" '2C-command) @@ -29915,7 +29997,7 @@ First column's text sSs Second column's text ;;;### (autoloads (type-break-guesstimate-keystroke-threshold type-break-statistics ;;;;;; type-break type-break-mode) "type-break" "type-break.el" -;;;;;; (20582 12914 894781 0)) +;;;;;; (20581 48325 0 0)) ;;; Generated autoloads from type-break.el (defvar type-break-mode nil "\ @@ -30047,8 +30129,8 @@ FRAC should be the inverse of the fractional value; for example, a value of ;;;*** -;;;### (autoloads (uce-reply-to-uce) "uce" "mail/uce.el" (20566 63671 -;;;;;; 243798 0)) +;;;### (autoloads (uce-reply-to-uce) "uce" "mail/uce.el" (20567 31133 +;;;;;; 0 0)) ;;; Generated autoloads from mail/uce.el (autoload 'uce-reply-to-uce "uce" "\ @@ -30066,7 +30148,7 @@ You might need to set `uce-mail-reader' before using this. ;;;;;; ucs-normalize-NFKC-string ucs-normalize-NFKC-region ucs-normalize-NFKD-string ;;;;;; ucs-normalize-NFKD-region ucs-normalize-NFC-string ucs-normalize-NFC-region ;;;;;; ucs-normalize-NFD-string ucs-normalize-NFD-region) "ucs-normalize" -;;;;;; "international/ucs-normalize.el" (20476 31768 298871 0)) +;;;;;; "international/ucs-normalize.el" (20511 52965 0 0)) ;;; Generated autoloads from international/ucs-normalize.el (autoload 'ucs-normalize-NFD-region "ucs-normalize" "\ @@ -30132,7 +30214,7 @@ Normalize the string STR by the Unicode NFC and Mac OS's HFS Plus. ;;;*** ;;;### (autoloads (ununderline-region underline-region) "underline" -;;;;;; "textmodes/underline.el" (20355 10021 546955 0)) +;;;;;; "textmodes/underline.el" (20244 35516 0 0)) ;;; Generated autoloads from textmodes/underline.el (autoload 'underline-region "underline" "\ @@ -30153,7 +30235,7 @@ which specify the range to operate on. ;;;*** ;;;### (autoloads (unrmail batch-unrmail) "unrmail" "mail/unrmail.el" -;;;;;; (20369 14251 85829 0)) +;;;;;; (20373 41604 0 0)) ;;; Generated autoloads from mail/unrmail.el (autoload 'batch-unrmail "unrmail" "\ @@ -30172,8 +30254,8 @@ Convert old-style Rmail Babyl file FILE to system inbox format file TO-FILE. ;;;*** -;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (20244 +;;;;;; 35516 0 0)) ;;; Generated autoloads from emacs-lisp/unsafep.el (autoload 'unsafep "unsafep" "\ @@ -30186,7 +30268,7 @@ UNSAFEP-VARS is a list of symbols with local bindings. ;;;*** ;;;### (autoloads (url-retrieve-synchronously url-retrieve) "url" -;;;;;; "url/url.el" (20478 3673 653810 0)) +;;;;;; "url/url.el" (20511 52965 0 0)) ;;; Generated autoloads from url/url.el (autoload 'url-retrieve "url" "\ @@ -30234,7 +30316,7 @@ no further processing). URL is either a string or a parsed URL. ;;;*** ;;;### (autoloads (url-register-auth-scheme url-get-authentication) -;;;;;; "url-auth" "url/url-auth.el" (20355 10021 546955 0)) +;;;;;; "url-auth" "url/url-auth.el" (20244 35516 0 0)) ;;; Generated autoloads from url/url-auth.el (autoload 'url-get-authentication "url-auth" "\ @@ -30276,7 +30358,7 @@ RATING a rating between 1 and 10 of the strength of the authentication. ;;;*** ;;;### (autoloads (url-cache-extract url-is-cached url-store-in-cache) -;;;;;; "url-cache" "url/url-cache.el" (20355 10021 546955 0)) +;;;;;; "url-cache" "url/url-cache.el" (20276 3849 0 0)) ;;; Generated autoloads from url/url-cache.el (autoload 'url-store-in-cache "url-cache" "\ @@ -30297,8 +30379,8 @@ Extract FNAM from the local disk cache. ;;;*** -;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (20244 35516 +;;;;;; 0 0)) ;;; Generated autoloads from url/url-cid.el (autoload 'url-cid "url-cid" "\ @@ -30309,7 +30391,7 @@ Extract FNAM from the local disk cache. ;;;*** ;;;### (autoloads (url-dav-vc-registered url-dav-request url-dav-supported-p) -;;;;;; "url-dav" "url/url-dav.el" (20501 3499 284800 0)) +;;;;;; "url-dav" "url/url-dav.el" (20511 52965 0 0)) ;;; Generated autoloads from url/url-dav.el (autoload 'url-dav-supported-p "url-dav" "\ @@ -30343,8 +30425,8 @@ added to this list, so most requests can just pass in nil. ;;;*** -;;;### (autoloads (url-file) "url-file" "url/url-file.el" (20478 -;;;;;; 3673 653810 0)) +;;;### (autoloads (url-file) "url-file" "url/url-file.el" (20511 +;;;;;; 52965 0 0)) ;;; Generated autoloads from url/url-file.el (autoload 'url-file "url-file" "\ @@ -30355,7 +30437,7 @@ Handle file: and ftp: URLs. ;;;*** ;;;### (autoloads (url-open-stream url-gateway-nslookup-host) "url-gw" -;;;;;; "url/url-gw.el" (20478 3673 653810 0)) +;;;;;; "url/url-gw.el" (20511 52965 0 0)) ;;; Generated autoloads from url/url-gw.el (autoload 'url-gateway-nslookup-host "url-gw" "\ @@ -30375,7 +30457,7 @@ Might do a non-blocking connection; use `process-status' to check. ;;;### (autoloads (url-insert-file-contents url-file-local-copy url-copy-file ;;;;;; url-file-handler url-handler-mode) "url-handlers" "url/url-handlers.el" -;;;;;; (20584 7212 455152 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from url/url-handlers.el (defvar url-handler-mode nil "\ @@ -30429,67 +30511,9 @@ accessible. ;;;*** -;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p -;;;;;; url-http) "url-http" "url/url-http.el" (20522 38650 757441 +;;;### (autoloads nil "url-http" "url/url-http.el" (20589 46442 0 ;;;;;; 0)) ;;; Generated autoloads from url/url-http.el - -(autoload 'url-http "url-http" "\ -Retrieve URL via HTTP asynchronously. -URL must be a parsed URL. See `url-generic-parse-url' for details. -When retrieval is completed, the function CALLBACK is executed with -CBARGS as the arguments. - -Optional arg RETRY-BUFFER, if non-nil, specifies the buffer of a -previous `url-http' call, which is being re-attempted. - -\(fn URL CALLBACK CBARGS &optional RETRY-BUFFER)" nil nil) - -(autoload 'url-http-file-exists-p "url-http" "\ - - -\(fn URL)" nil nil) - -(defalias 'url-http-file-readable-p 'url-http-file-exists-p) - -(autoload 'url-http-file-attributes "url-http" "\ - - -\(fn URL &optional ID-FORMAT)" nil nil) - -(autoload 'url-http-options "url-http" "\ -Return a property list describing options available for URL. -This list is retrieved using the `OPTIONS' HTTP method. - -Property list members: - -methods - A list of symbols specifying what HTTP methods the resource - supports. - -dav - A list of numbers specifying what DAV protocol/schema versions are - supported. - -dasl - A list of supported DASL search types supported (string form) - -ranges - A list of the units available for use in partial document fetches. - -p3p - The `Platform For Privacy Protection' description for the resource. - Currently this is just the raw header contents. This is likely to - change once P3P is formally supported by the URL package or - Emacs/W3. - -\(fn URL)" nil nil) - -(defconst url-https-default-port 443 "\ -Default HTTPS port.") - -(defconst url-https-asynchronous-p t "\ -HTTPS retrievals are asynchronous.") (autoload 'url-default-expander "url-expand") (defalias 'url-https-expand-file-name 'url-default-expander) @@ -30500,8 +30524,8 @@ HTTPS retrievals are asynchronous.") ;;;*** -;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (20244 35516 +;;;;;; 0 0)) ;;; Generated autoloads from url/url-irc.el (autoload 'url-irc "url-irc" "\ @@ -30511,8 +30535,8 @@ HTTPS retrievals are asynchronous.") ;;;*** -;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (20355 -;;;;;; 10021 546955 0)) +;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (20356 +;;;;;; 35090 0 0)) ;;; Generated autoloads from url/url-ldap.el (autoload 'url-ldap "url-ldap" "\ @@ -30526,7 +30550,7 @@ URL can be a URL string, or a URL vector of the type returned by ;;;*** ;;;### (autoloads (url-mailto url-mail) "url-mailto" "url/url-mailto.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from url/url-mailto.el (autoload 'url-mail "url-mailto" "\ @@ -30542,8 +30566,7 @@ Handle the mailto: URL syntax. ;;;*** ;;;### (autoloads (url-data url-generic-emulator-loader url-info -;;;;;; url-man) "url-misc" "url/url-misc.el" (20478 3673 653810 -;;;;;; 0)) +;;;;;; url-man) "url-misc" "url/url-misc.el" (20511 52965 0 0)) ;;; Generated autoloads from url/url-misc.el (autoload 'url-man "url-misc" "\ @@ -30575,7 +30598,7 @@ Fetch a data URL (RFC 2397). ;;;*** ;;;### (autoloads (url-snews url-news) "url-news" "url/url-news.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from url/url-news.el (autoload 'url-news "url-news" "\ @@ -30592,7 +30615,7 @@ Fetch a data URL (RFC 2397). ;;;### (autoloads (url-ns-user-pref url-ns-prefs isInNet isResolvable ;;;;;; dnsResolve dnsDomainIs isPlainHostName) "url-ns" "url/url-ns.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from url/url-ns.el (autoload 'isPlainHostName "url-ns" "\ @@ -30633,7 +30656,7 @@ Fetch a data URL (RFC 2397). ;;;*** ;;;### (autoloads (url-generic-parse-url url-recreate-url) "url-parse" -;;;;;; "url/url-parse.el" (20577 33959 40183 0)) +;;;;;; "url/url-parse.el" (20577 48876 0 0)) ;;; Generated autoloads from url/url-parse.el (autoload 'url-recreate-url "url-parse" "\ @@ -30685,7 +30708,7 @@ parses to ;;;*** ;;;### (autoloads (url-setup-privacy-info) "url-privacy" "url/url-privacy.el" -;;;;;; (20478 3673 653810 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from url/url-privacy.el (autoload 'url-setup-privacy-info "url-privacy" "\ @@ -30696,7 +30719,7 @@ Setup variables that expose info about you and your system. ;;;*** ;;;### (autoloads (url-queue-retrieve) "url-queue" "url/url-queue.el" -;;;;;; (20478 3673 653810 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from url/url-queue.el (autoload 'url-queue-retrieve "url-queue" "\ @@ -30716,8 +30739,8 @@ The variable `url-queue-timeout' sets a timeout. ;;;;;; url-percentage url-display-percentage url-pretty-length url-strip-leading-spaces ;;;;;; url-eat-trailing-space url-get-normalized-date url-lazy-message ;;;;;; url-normalize-url url-insert-entities-in-string url-parse-args -;;;;;; url-debug url-debug) "url-util" "url/url-util.el" (20584 -;;;;;; 7212 455152 0)) +;;;;;; url-debug url-debug) "url-util" "url/url-util.el" (20585 +;;;;;; 55103 0 0)) ;;; Generated autoloads from url/url-util.el (defvar url-debug nil "\ @@ -30891,7 +30914,7 @@ This uses `url-current-object', set locally to the buffer. ;;;*** ;;;### (autoloads (ask-user-about-supersession-threat ask-user-about-lock) -;;;;;; "userlock" "userlock.el" (20555 6946 859539 0)) +;;;;;; "userlock" "userlock.el" (20553 63503 0 0)) ;;; Generated autoloads from userlock.el (autoload 'ask-user-about-lock "userlock" "\ @@ -30921,7 +30944,7 @@ The buffer in question is current when this function is called. ;;;### (autoloads (utf-7-imap-pre-write-conversion utf-7-pre-write-conversion ;;;;;; utf-7-imap-post-read-conversion utf-7-post-read-conversion) -;;;;;; "utf-7" "international/utf-7.el" (20355 10021 546955 0)) +;;;;;; "utf-7" "international/utf-7.el" (20244 35516 0 0)) ;;; Generated autoloads from international/utf-7.el (autoload 'utf-7-post-read-conversion "utf-7" "\ @@ -30946,8 +30969,8 @@ The buffer in question is current when this function is called. ;;;*** -;;;### (autoloads (utf7-encode) "utf7" "gnus/utf7.el" (20355 10021 -;;;;;; 546955 0)) +;;;### (autoloads (utf7-encode) "utf7" "gnus/utf7.el" (20244 35516 +;;;;;; 0 0)) ;;; Generated autoloads from gnus/utf7.el (autoload 'utf7-encode "utf7" "\ @@ -30959,7 +30982,7 @@ Encode UTF-7 STRING. Use IMAP modification if FOR-IMAP is non-nil. ;;;### (autoloads (uudecode-decode-region uudecode-decode-region-internal ;;;;;; uudecode-decode-region-external) "uudecode" "mail/uudecode.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20356 35090 0 0)) ;;; Generated autoloads from mail/uudecode.el (autoload 'uudecode-decode-region-external "uudecode" "\ @@ -30990,7 +31013,7 @@ If FILE-NAME is non-nil, save the result to FILE-NAME. ;;;;;; vc-revision-other-window vc-root-diff vc-ediff vc-version-ediff ;;;;;; vc-diff vc-version-diff vc-register vc-next-action vc-before-checkin-hook ;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc/vc.el" (20580 -;;;;;; 10161 446444 0)) +;;;;;; 46629 0 0)) ;;; Generated autoloads from vc/vc.el (defvar vc-checkout-hook nil "\ @@ -31268,7 +31291,7 @@ Return the branch part of a revision number REV. ;;;*** ;;;### (autoloads (vc-annotate) "vc-annotate" "vc/vc-annotate.el" -;;;;;; (20478 3673 653810 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from vc/vc-annotate.el (autoload 'vc-annotate "vc-annotate" "\ @@ -31305,8 +31328,7 @@ mode-specific menu. `vc-annotate-color-map' and ;;;*** -;;;### (autoloads nil "vc-arch" "vc/vc-arch.el" (20478 3673 653810 -;;;;;; 0)) +;;;### (autoloads nil "vc-arch" "vc/vc-arch.el" (20511 52965 0 0)) ;;; Generated autoloads from vc/vc-arch.el (defun vc-arch-registered (file) (if (vc-find-root file "{arch}/=tagging-method") @@ -31316,8 +31338,7 @@ mode-specific menu. `vc-annotate-color-map' and ;;;*** -;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (20584 7212 455152 -;;;;;; 0)) +;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (20585 55103 0 0)) ;;; Generated autoloads from vc/vc-bzr.el (defconst vc-bzr-admin-dirname ".bzr" "\ @@ -31333,8 +31354,7 @@ Name of the format file in a .bzr directory.") ;;;*** -;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (20542 46798 773957 -;;;;;; 0)) +;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (20544 52783 0 0)) ;;; Generated autoloads from vc/vc-cvs.el (defun vc-cvs-registered (f) "Return non-nil if file F is registered with CVS." @@ -31345,7 +31365,7 @@ Name of the format file in a .bzr directory.") ;;;*** -;;;### (autoloads (vc-dir) "vc-dir" "vc/vc-dir.el" (20522 9637 465791 +;;;### (autoloads (vc-dir) "vc-dir" "vc/vc-dir.el" (20522 30367 0 ;;;;;; 0)) ;;; Generated autoloads from vc/vc-dir.el @@ -31371,7 +31391,7 @@ These are the commands available for use in the file status buffer: ;;;*** ;;;### (autoloads (vc-do-command) "vc-dispatcher" "vc/vc-dispatcher.el" -;;;;;; (20489 12324 656827 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from vc/vc-dispatcher.el (autoload 'vc-do-command "vc-dispatcher" "\ @@ -31394,8 +31414,7 @@ case, and the process object in the asynchronous case. ;;;*** -;;;### (autoloads nil "vc-git" "vc/vc-git.el" (20566 63671 243798 -;;;;;; 0)) +;;;### (autoloads nil "vc-git" "vc/vc-git.el" (20589 46442 0 0)) ;;; Generated autoloads from vc/vc-git.el (defun vc-git-registered (file) "Return non-nil if FILE is registered with git." @@ -31406,7 +31425,7 @@ case, and the process object in the asynchronous case. ;;;*** -;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (20489 12324 656827 0)) +;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (20511 52965 0 0)) ;;; Generated autoloads from vc/vc-hg.el (defun vc-hg-registered (file) "Return non-nil if FILE is registered with hg." @@ -31417,7 +31436,7 @@ case, and the process object in the asynchronous case. ;;;*** -;;;### (autoloads nil "vc-mtn" "vc/vc-mtn.el" (20524 51365 2559 0)) +;;;### (autoloads nil "vc-mtn" "vc/vc-mtn.el" (20523 62975 0 0)) ;;; Generated autoloads from vc/vc-mtn.el (defconst vc-mtn-admin-dir "_MTN" "\ @@ -31434,7 +31453,7 @@ Name of the monotone directory's format file.") ;;;*** ;;;### (autoloads (vc-rcs-master-templates) "vc-rcs" "vc/vc-rcs.el" -;;;;;; (20584 7212 455152 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from vc/vc-rcs.el (defvar vc-rcs-master-templates (purecopy '("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\ @@ -31448,7 +31467,7 @@ For a description of possible values, see `vc-check-master-templates'.") ;;;*** ;;;### (autoloads (vc-sccs-master-templates) "vc-sccs" "vc/vc-sccs.el" -;;;;;; (20584 7212 455152 0)) +;;;;;; (20585 55103 0 0)) ;;; Generated autoloads from vc/vc-sccs.el (defvar vc-sccs-master-templates (purecopy '("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir)) "\ @@ -31466,8 +31485,7 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir) ;;;*** -;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (20355 10021 546955 -;;;;;; 0)) +;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (20318 5885 0 0)) ;;; Generated autoloads from vc/vc-svn.el (defun vc-svn-registered (f) (let ((admin-dir (cond ((and (eq system-type 'windows-nt) @@ -31481,7 +31499,7 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir) ;;;*** ;;;### (autoloads (vera-mode) "vera-mode" "progmodes/vera-mode.el" -;;;;;; (20577 33959 40183 0)) +;;;;;; (20577 48876 0 0)) ;;; Generated autoloads from progmodes/vera-mode.el (add-to-list 'auto-mode-alist (cons (purecopy "\\.vr[hi]?\\'") 'vera-mode)) @@ -31539,7 +31557,7 @@ Key bindings: ;;;*** ;;;### (autoloads (verilog-mode) "verilog-mode" "progmodes/verilog-mode.el" -;;;;;; (20581 31014 234484 0)) +;;;;;; (20600 16892 0 0)) ;;; Generated autoloads from progmodes/verilog-mode.el (autoload 'verilog-mode "verilog-mode" "\ @@ -31678,7 +31696,7 @@ Key bindings specific to `verilog-mode-map' are: ;;;*** ;;;### (autoloads (vhdl-mode) "vhdl-mode" "progmodes/vhdl-mode.el" -;;;;;; (20584 7212 455152 0)) +;;;;;; (20600 16892 0 0)) ;;; Generated autoloads from progmodes/vhdl-mode.el (autoload 'vhdl-mode "vhdl-mode" "\ @@ -32232,7 +32250,7 @@ Key bindings: ;;;*** -;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (20566 63671 243798 +;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (20567 31133 0 ;;;;;; 0)) ;;; Generated autoloads from emulation/vi.el @@ -32288,7 +32306,7 @@ Syntax table and abbrevs while in vi mode remain as they were in Emacs. ;;;### (autoloads (viqr-pre-write-conversion viqr-post-read-conversion ;;;;;; viet-encode-viqr-buffer viet-encode-viqr-region viet-decode-viqr-buffer ;;;;;; viet-decode-viqr-region viet-encode-viscii-char) "viet-util" -;;;;;; "language/viet-util.el" (20355 10021 546955 0)) +;;;;;; "language/viet-util.el" (20244 35516 0 0)) ;;; Generated autoloads from language/viet-util.el (autoload 'viet-encode-viscii-char "viet-util" "\ @@ -32336,7 +32354,7 @@ Convert Vietnamese characters of the current buffer to `VIQR' mnemonics. ;;;;;; view-mode view-buffer-other-frame view-buffer-other-window ;;;;;; view-buffer view-file-other-frame view-file-other-window ;;;;;; view-file kill-buffer-if-not-modified view-remove-frame-by-deleting) -;;;;;; "view" "view.el" (20577 33959 40183 0)) +;;;;;; "view" "view.el" (20577 48876 0 0)) ;;; Generated autoloads from view.el (defvar view-remove-frame-by-deleting t "\ @@ -32593,7 +32611,7 @@ Exit View mode and make the current buffer editable. ;;;*** ;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (20513 -;;;;;; 18948 537867 0)) +;;;;;; 36786 0 0)) ;;; Generated autoloads from emulation/vip.el (autoload 'vip-setup "vip" "\ @@ -32609,7 +32627,7 @@ Turn on VIP emulation of VI. ;;;*** ;;;### (autoloads (viper-mode toggle-viper-mode) "viper" "emulation/viper.el" -;;;;;; (20566 63671 243798 0)) +;;;;;; (20567 31133 0 0)) ;;; Generated autoloads from emulation/viper.el (autoload 'toggle-viper-mode "viper" "\ @@ -32626,7 +32644,7 @@ Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Top'. ;;;*** ;;;### (autoloads (warn lwarn display-warning) "warnings" "emacs-lisp/warnings.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20244 35516 0 0)) ;;; Generated autoloads from emacs-lisp/warnings.el (defvar warning-prefix-function nil "\ @@ -32716,7 +32734,7 @@ this is equivalent to `display-warning', using ;;;*** ;;;### (autoloads (wdired-change-to-wdired-mode) "wdired" "wdired.el" -;;;;;; (20510 18478 782378 0)) +;;;;;; (20511 52965 0 0)) ;;; Generated autoloads from wdired.el (autoload 'wdired-change-to-wdired-mode "wdired" "\ @@ -32733,8 +32751,8 @@ See `wdired-mode'. ;;;*** -;;;### (autoloads (webjump) "webjump" "net/webjump.el" (20566 63671 -;;;;;; 243798 0)) +;;;### (autoloads (webjump) "webjump" "net/webjump.el" (20567 31133 +;;;;;; 0 0)) ;;; Generated autoloads from net/webjump.el (autoload 'webjump "webjump" "\ @@ -32751,7 +32769,7 @@ Please submit bug reports and other feedback to the author, Neil W. Van Dyke ;;;*** ;;;### (autoloads (which-function-mode) "which-func" "progmodes/which-func.el" -;;;;;; (20577 33959 40183 0)) +;;;;;; (20577 48876 0 0)) ;;; Generated autoloads from progmodes/which-func.el (put 'which-func-format 'risky-local-variable t) (put 'which-func-current 'risky-local-variable t) @@ -32784,8 +32802,8 @@ in certain major modes. ;;;### (autoloads (whitespace-report-region whitespace-report whitespace-cleanup-region ;;;;;; whitespace-cleanup global-whitespace-toggle-options whitespace-toggle-options ;;;;;; global-whitespace-newline-mode global-whitespace-mode whitespace-newline-mode -;;;;;; whitespace-mode) "whitespace" "whitespace.el" (20508 13724 -;;;;;; 260761 0)) +;;;;;; whitespace-mode) "whitespace" "whitespace.el" (20511 52965 +;;;;;; 0 0)) ;;; Generated autoloads from whitespace.el (autoload 'whitespace-mode "whitespace" "\ @@ -33184,8 +33202,8 @@ cleaning up these problems. ;;;*** ;;;### (autoloads (widget-minor-mode widget-browse-other-window widget-browse -;;;;;; widget-browse-at) "wid-browse" "wid-browse.el" (20478 3673 -;;;;;; 653810 0)) +;;;;;; widget-browse-at) "wid-browse" "wid-browse.el" (20511 52965 +;;;;;; 0 0)) ;;; Generated autoloads from wid-browse.el (autoload 'widget-browse-at "wid-browse" "\ @@ -33215,7 +33233,7 @@ if ARG is omitted or nil. ;;;### (autoloads (widget-setup widget-insert widget-delete widget-create ;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (20373 -;;;;;; 11301 906925 0)) +;;;;;; 41604 0 0)) ;;; Generated autoloads from wid-edit.el (autoload 'widgetp "wid-edit" "\ @@ -33258,8 +33276,8 @@ Setup current buffer so editing string widgets works. ;;;*** ;;;### (autoloads (windmove-default-keybindings windmove-down windmove-right -;;;;;; windmove-up windmove-left) "windmove" "windmove.el" (20566 -;;;;;; 63671 243798 0)) +;;;;;; windmove-up windmove-left) "windmove" "windmove.el" (20567 +;;;;;; 31133 0 0)) ;;; Generated autoloads from windmove.el (autoload 'windmove-left "windmove" "\ @@ -33311,8 +33329,8 @@ Default MODIFIER is 'shift. ;;;*** -;;;### (autoloads (winner-mode) "winner" "winner.el" (20584 7212 -;;;;;; 455152 0)) +;;;### (autoloads (winner-mode) "winner" "winner.el" (20585 55103 +;;;;;; 0 0)) ;;; Generated autoloads from winner.el (defvar winner-mode nil "\ @@ -33336,8 +33354,7 @@ the mode if ARG is omitted or nil, and toggle it if ARG is `toggle'. ;;;*** ;;;### (autoloads (woman-bookmark-jump woman-find-file woman-dired-find-file -;;;;;; woman woman-locale) "woman" "woman.el" (20539 18737 159373 -;;;;;; 0)) +;;;;;; woman woman-locale) "woman" "woman.el" (20539 37147 0 0)) ;;; Generated autoloads from woman.el (defvar woman-locale nil "\ @@ -33386,7 +33403,7 @@ Default bookmark handler for Woman buffers. ;;;*** ;;;### (autoloads (wordstar-mode) "ws-mode" "emulation/ws-mode.el" -;;;;;; (20355 10021 546955 0)) +;;;;;; (20331 12564 0 0)) ;;; Generated autoloads from emulation/ws-mode.el (autoload 'wordstar-mode "ws-mode" "\ @@ -33498,8 +33515,8 @@ The key bindings are: ;;;*** -;;;### (autoloads (xesam-search) "xesam" "net/xesam.el" (20478 3673 -;;;;;; 653810 0)) +;;;### (autoloads (xesam-search) "xesam" "net/xesam.el" (20511 52965 +;;;;;; 0 0)) ;;; Generated autoloads from net/xesam.el (autoload 'xesam-search "xesam" "\ @@ -33519,7 +33536,7 @@ Example: ;;;*** ;;;### (autoloads (xml-parse-region xml-parse-file) "xml" "xml.el" -;;;;;; (20528 48420 241677 0)) +;;;;;; (20535 44414 0 0)) ;;; Generated autoloads from xml.el (autoload 'xml-parse-file "xml" "\ @@ -33576,7 +33593,7 @@ Both features can be combined by providing a cons cell ;;;*** ;;;### (autoloads (xmltok-get-declared-encoding-position) "xmltok" -;;;;;; "nxml/xmltok.el" (20355 10021 546955 0)) +;;;;;; "nxml/xmltok.el" (20244 35516 0 0)) ;;; Generated autoloads from nxml/xmltok.el (autoload 'xmltok-get-declared-encoding-position "xmltok" "\ @@ -33594,8 +33611,8 @@ If LIMIT is non-nil, then do not consider characters beyond LIMIT. ;;;*** -;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (20485 -;;;;;; 15269 390836 0)) +;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (20511 +;;;;;; 52965 0 0)) ;;; Generated autoloads from xt-mouse.el (defvar xterm-mouse-mode nil "\ @@ -33625,7 +33642,7 @@ down the SHIFT key while pressing the mouse button. ;;;*** ;;;### (autoloads (yenc-extract-filename yenc-decode-region) "yenc" -;;;;;; "gnus/yenc.el" (20355 10021 546955 0)) +;;;;;; "gnus/yenc.el" (20244 35516 0 0)) ;;; Generated autoloads from gnus/yenc.el (autoload 'yenc-decode-region "yenc" "\ @@ -33641,7 +33658,7 @@ Extract file name from an yenc header. ;;;*** ;;;### (autoloads (psychoanalyze-pinhead apropos-zippy insert-zippyism -;;;;;; yow) "yow" "play/yow.el" (20364 42504 244840 586000)) +;;;;;; yow) "yow" "play/yow.el" (20373 41604 0 0)) ;;; Generated autoloads from play/yow.el (autoload 'yow "yow" "\ @@ -33667,8 +33684,7 @@ Zippy goes to the analyst. ;;;*** -;;;### (autoloads (zone) "zone" "play/zone.el" (20545 57511 257469 -;;;;;; 0)) +;;;### (autoloads (zone) "zone" "play/zone.el" (20550 14882 0 0)) ;;; Generated autoloads from play/zone.el (autoload 'zone "zone" "\ @@ -33711,20 +33727,19 @@ Zone out, completely. ;;;;;; "cedet/ede/proj-shared.el" "cedet/ede/proj.el" "cedet/ede/project-am.el" ;;;;;; "cedet/ede/shell.el" "cedet/ede/simple.el" "cedet/ede/source.el" ;;;;;; "cedet/ede/speedbar.el" "cedet/ede/srecode.el" "cedet/ede/system.el" -;;;;;; "cedet/ede/util.el" "cedet/inversion.el" "cedet/pulse.el" -;;;;;; "cedet/semantic/analyze.el" "cedet/semantic/analyze/complete.el" -;;;;;; "cedet/semantic/analyze/debug.el" "cedet/semantic/analyze/fcn.el" -;;;;;; "cedet/semantic/analyze/refs.el" "cedet/semantic/bovine.el" -;;;;;; "cedet/semantic/bovine/c-by.el" "cedet/semantic/bovine/c.el" -;;;;;; "cedet/semantic/bovine/debug.el" "cedet/semantic/bovine/el.el" -;;;;;; "cedet/semantic/bovine/gcc.el" "cedet/semantic/bovine/make-by.el" -;;;;;; "cedet/semantic/bovine/make.el" "cedet/semantic/bovine/scm-by.el" -;;;;;; "cedet/semantic/bovine/scm.el" "cedet/semantic/chart.el" -;;;;;; "cedet/semantic/complete.el" "cedet/semantic/ctxt.el" "cedet/semantic/db-debug.el" -;;;;;; "cedet/semantic/db-ebrowse.el" "cedet/semantic/db-el.el" -;;;;;; "cedet/semantic/db-file.el" "cedet/semantic/db-find.el" "cedet/semantic/db-global.el" -;;;;;; "cedet/semantic/db-javascript.el" "cedet/semantic/db-mode.el" -;;;;;; "cedet/semantic/db-ref.el" "cedet/semantic/db-typecache.el" +;;;;;; "cedet/ede/util.el" "cedet/pulse.el" "cedet/semantic/analyze.el" +;;;;;; "cedet/semantic/analyze/complete.el" "cedet/semantic/analyze/debug.el" +;;;;;; "cedet/semantic/analyze/fcn.el" "cedet/semantic/analyze/refs.el" +;;;;;; "cedet/semantic/bovine.el" "cedet/semantic/bovine/c-by.el" +;;;;;; "cedet/semantic/bovine/c.el" "cedet/semantic/bovine/debug.el" +;;;;;; "cedet/semantic/bovine/el.el" "cedet/semantic/bovine/gcc.el" +;;;;;; "cedet/semantic/bovine/make-by.el" "cedet/semantic/bovine/make.el" +;;;;;; "cedet/semantic/bovine/scm-by.el" "cedet/semantic/bovine/scm.el" +;;;;;; "cedet/semantic/chart.el" "cedet/semantic/complete.el" "cedet/semantic/ctxt.el" +;;;;;; "cedet/semantic/db-debug.el" "cedet/semantic/db-ebrowse.el" +;;;;;; "cedet/semantic/db-el.el" "cedet/semantic/db-file.el" "cedet/semantic/db-find.el" +;;;;;; "cedet/semantic/db-global.el" "cedet/semantic/db-javascript.el" +;;;;;; "cedet/semantic/db-mode.el" "cedet/semantic/db-ref.el" "cedet/semantic/db-typecache.el" ;;;;;; "cedet/semantic/db.el" "cedet/semantic/debug.el" "cedet/semantic/decorate.el" ;;;;;; "cedet/semantic/decorate/include.el" "cedet/semantic/decorate/mode.el" ;;;;;; "cedet/semantic/dep.el" "cedet/semantic/doc.el" "cedet/semantic/ede-grammar.el" @@ -33753,71 +33768,70 @@ Zone out, completely. ;;;;;; "cedet/srecode/loaddefs.el" "cedet/srecode/map.el" "cedet/srecode/mode.el" ;;;;;; "cedet/srecode/semantic.el" "cedet/srecode/srt-wy.el" "cedet/srecode/srt.el" ;;;;;; "cedet/srecode/table.el" "cedet/srecode/template.el" "cedet/srecode/texi.el" -;;;;;; "cus-dep.el" "dframe.el" "dired-aux.el" "dired-x.el" "dos-fns.el" -;;;;;; "dos-vars.el" "dos-w32.el" "dynamic-setting.el" "emacs-lisp/authors.el" -;;;;;; "emacs-lisp/avl-tree.el" "emacs-lisp/bindat.el" "emacs-lisp/byte-opt.el" -;;;;;; "emacs-lisp/chart.el" "emacs-lisp/cl-extra.el" "emacs-lisp/cl-loaddefs.el" -;;;;;; "emacs-lisp/cl-macs.el" "emacs-lisp/cl-seq.el" "emacs-lisp/cl.el" -;;;;;; "emacs-lisp/eieio-base.el" "emacs-lisp/eieio-custom.el" "emacs-lisp/eieio-datadebug.el" -;;;;;; "emacs-lisp/eieio-opt.el" "emacs-lisp/eieio-speedbar.el" -;;;;;; "emacs-lisp/eieio.el" "emacs-lisp/find-gc.el" "emacs-lisp/gulp.el" -;;;;;; "emacs-lisp/lisp-mnt.el" "emacs-lisp/package-x.el" "emacs-lisp/regi.el" -;;;;;; "emacs-lisp/smie.el" "emacs-lisp/tcover-ses.el" "emacs-lisp/tcover-unsafep.el" -;;;;;; "emulation/cua-gmrk.el" "emulation/cua-rect.el" "emulation/edt-lk201.el" -;;;;;; "emulation/edt-mapper.el" "emulation/edt-pc.el" "emulation/edt-vt100.el" -;;;;;; "emulation/tpu-extras.el" "emulation/viper-cmd.el" "emulation/viper-ex.el" -;;;;;; "emulation/viper-init.el" "emulation/viper-keym.el" "emulation/viper-macs.el" -;;;;;; "emulation/viper-mous.el" "emulation/viper-util.el" "erc/erc-backend.el" -;;;;;; "erc/erc-goodies.el" "erc/erc-ibuffer.el" "erc/erc-lang.el" -;;;;;; "eshell/em-alias.el" "eshell/em-banner.el" "eshell/em-basic.el" -;;;;;; "eshell/em-cmpl.el" "eshell/em-dirs.el" "eshell/em-glob.el" -;;;;;; "eshell/em-hist.el" "eshell/em-ls.el" "eshell/em-pred.el" -;;;;;; "eshell/em-prompt.el" "eshell/em-rebind.el" "eshell/em-script.el" -;;;;;; "eshell/em-smart.el" "eshell/em-term.el" "eshell/em-unix.el" -;;;;;; "eshell/em-xtra.el" "eshell/esh-arg.el" "eshell/esh-cmd.el" -;;;;;; "eshell/esh-ext.el" "eshell/esh-groups.el" "eshell/esh-io.el" -;;;;;; "eshell/esh-module.el" "eshell/esh-opt.el" "eshell/esh-proc.el" -;;;;;; "eshell/esh-util.el" "eshell/esh-var.el" "ezimage.el" "foldout.el" -;;;;;; "format-spec.el" "fringe.el" "generic-x.el" "gnus/compface.el" -;;;;;; "gnus/gnus-async.el" "gnus/gnus-bcklg.el" "gnus/gnus-cite.el" -;;;;;; "gnus/gnus-cus.el" "gnus/gnus-demon.el" "gnus/gnus-dup.el" -;;;;;; "gnus/gnus-eform.el" "gnus/gnus-ems.el" "gnus/gnus-int.el" -;;;;;; "gnus/gnus-logic.el" "gnus/gnus-mh.el" "gnus/gnus-salt.el" -;;;;;; "gnus/gnus-score.el" "gnus/gnus-setup.el" "gnus/gnus-srvr.el" -;;;;;; "gnus/gnus-topic.el" "gnus/gnus-undo.el" "gnus/gnus-util.el" -;;;;;; "gnus/gnus-uu.el" "gnus/gnus-vm.el" "gnus/gssapi.el" "gnus/ietf-drums.el" -;;;;;; "gnus/legacy-gnus-agent.el" "gnus/mail-parse.el" "gnus/mail-prsvr.el" -;;;;;; "gnus/mail-source.el" "gnus/mailcap.el" "gnus/messcompat.el" -;;;;;; "gnus/mm-archive.el" "gnus/mm-bodies.el" "gnus/mm-decode.el" -;;;;;; "gnus/mm-util.el" "gnus/mm-view.el" "gnus/mml-sec.el" "gnus/mml-smime.el" -;;;;;; "gnus/nnagent.el" "gnus/nnbabyl.el" "gnus/nndir.el" "gnus/nndraft.el" -;;;;;; "gnus/nneething.el" "gnus/nngateway.el" "gnus/nnheader.el" -;;;;;; "gnus/nnimap.el" "gnus/nnir.el" "gnus/nnmail.el" "gnus/nnmaildir.el" -;;;;;; "gnus/nnmairix.el" "gnus/nnmbox.el" "gnus/nnmh.el" "gnus/nnnil.el" -;;;;;; "gnus/nnoo.el" "gnus/nnregistry.el" "gnus/nnrss.el" "gnus/nnspool.el" -;;;;;; "gnus/nntp.el" "gnus/nnvirtual.el" "gnus/nnweb.el" "gnus/registry.el" -;;;;;; "gnus/rfc1843.el" "gnus/rfc2045.el" "gnus/rfc2047.el" "gnus/rfc2104.el" -;;;;;; "gnus/rfc2231.el" "gnus/rtree.el" "gnus/shr-color.el" "gnus/sieve-manage.el" -;;;;;; "gnus/smime.el" "gnus/spam-stat.el" "gnus/spam-wash.el" "help-macro.el" -;;;;;; "hex-util.el" "hfy-cmap.el" "ibuf-ext.el" "international/cp51932.el" -;;;;;; "international/eucjp-ms.el" "international/fontset.el" "international/iso-ascii.el" -;;;;;; "international/ja-dic-cnv.el" "international/ja-dic-utl.el" -;;;;;; "international/ogonek.el" "international/uni-bidi.el" "international/uni-category.el" -;;;;;; "international/uni-combining.el" "international/uni-comment.el" -;;;;;; "international/uni-decimal.el" "international/uni-decomposition.el" -;;;;;; "international/uni-digit.el" "international/uni-lowercase.el" -;;;;;; "international/uni-mirrored.el" "international/uni-name.el" -;;;;;; "international/uni-numeric.el" "international/uni-old-name.el" -;;;;;; "international/uni-titlecase.el" "international/uni-uppercase.el" -;;;;;; "json.el" "kermit.el" "language/hanja-util.el" "language/thai-word.el" -;;;;;; "ldefs-boot.el" "loadup.el" "mail/blessmail.el" "mail/mailheader.el" -;;;;;; "mail/mspools.el" "mail/rfc2368.el" "mail/rfc822.el" "mail/rmail-spam-filter.el" -;;;;;; "mail/rmailedit.el" "mail/rmailkwd.el" "mail/rmailmm.el" -;;;;;; "mail/rmailmsc.el" "mail/rmailsort.el" "mail/rmailsum.el" -;;;;;; "mail/undigest.el" "md4.el" "mh-e/mh-acros.el" "mh-e/mh-alias.el" -;;;;;; "mh-e/mh-buffers.el" "mh-e/mh-compat.el" "mh-e/mh-funcs.el" -;;;;;; "mh-e/mh-gnus.el" "mh-e/mh-identity.el" "mh-e/mh-inc.el" -;;;;;; "mh-e/mh-junk.el" "mh-e/mh-letter.el" "mh-e/mh-limit.el" +;;;;;; "cus-dep.el" "cus-load.el" "dframe.el" "dired-aux.el" "dired-x.el" +;;;;;; "dos-fns.el" "dos-vars.el" "dos-w32.el" "dynamic-setting.el" +;;;;;; "emacs-lisp/authors.el" "emacs-lisp/avl-tree.el" "emacs-lisp/bindat.el" +;;;;;; "emacs-lisp/byte-opt.el" "emacs-lisp/chart.el" "emacs-lisp/cl-extra.el" +;;;;;; "emacs-lisp/cl-loaddefs.el" "emacs-lisp/cl-macs.el" "emacs-lisp/cl-seq.el" +;;;;;; "emacs-lisp/cl.el" "emacs-lisp/eieio-base.el" "emacs-lisp/eieio-datadebug.el" +;;;;;; "emacs-lisp/eieio-speedbar.el" "emacs-lisp/eieio.el" "emacs-lisp/find-gc.el" +;;;;;; "emacs-lisp/gulp.el" "emacs-lisp/lisp-mnt.el" "emacs-lisp/package-x.el" +;;;;;; "emacs-lisp/regi.el" "emacs-lisp/smie.el" "emacs-lisp/tcover-ses.el" +;;;;;; "emacs-lisp/tcover-unsafep.el" "emulation/cua-gmrk.el" "emulation/cua-rect.el" +;;;;;; "emulation/edt-lk201.el" "emulation/edt-mapper.el" "emulation/edt-pc.el" +;;;;;; "emulation/edt-vt100.el" "emulation/tpu-extras.el" "emulation/viper-cmd.el" +;;;;;; "emulation/viper-ex.el" "emulation/viper-init.el" "emulation/viper-keym.el" +;;;;;; "emulation/viper-macs.el" "emulation/viper-mous.el" "emulation/viper-util.el" +;;;;;; "erc/erc-backend.el" "erc/erc-goodies.el" "erc/erc-ibuffer.el" +;;;;;; "erc/erc-lang.el" "eshell/em-alias.el" "eshell/em-banner.el" +;;;;;; "eshell/em-basic.el" "eshell/em-cmpl.el" "eshell/em-dirs.el" +;;;;;; "eshell/em-glob.el" "eshell/em-hist.el" "eshell/em-ls.el" +;;;;;; "eshell/em-pred.el" "eshell/em-prompt.el" "eshell/em-rebind.el" +;;;;;; "eshell/em-script.el" "eshell/em-smart.el" "eshell/em-term.el" +;;;;;; "eshell/em-unix.el" "eshell/em-xtra.el" "eshell/esh-arg.el" +;;;;;; "eshell/esh-cmd.el" "eshell/esh-ext.el" "eshell/esh-groups.el" +;;;;;; "eshell/esh-io.el" "eshell/esh-module.el" "eshell/esh-opt.el" +;;;;;; "eshell/esh-proc.el" "eshell/esh-util.el" "eshell/esh-var.el" +;;;;;; "ezimage.el" "finder-inf.el" "foldout.el" "format-spec.el" +;;;;;; "fringe.el" "generic-x.el" "gnus/compface.el" "gnus/gnus-async.el" +;;;;;; "gnus/gnus-bcklg.el" "gnus/gnus-cite.el" "gnus/gnus-cus.el" +;;;;;; "gnus/gnus-demon.el" "gnus/gnus-dup.el" "gnus/gnus-eform.el" +;;;;;; "gnus/gnus-ems.el" "gnus/gnus-int.el" "gnus/gnus-logic.el" +;;;;;; "gnus/gnus-mh.el" "gnus/gnus-salt.el" "gnus/gnus-score.el" +;;;;;; "gnus/gnus-setup.el" "gnus/gnus-srvr.el" "gnus/gnus-topic.el" +;;;;;; "gnus/gnus-undo.el" "gnus/gnus-util.el" "gnus/gnus-uu.el" +;;;;;; "gnus/gnus-vm.el" "gnus/gssapi.el" "gnus/ietf-drums.el" "gnus/legacy-gnus-agent.el" +;;;;;; "gnus/mail-parse.el" "gnus/mail-prsvr.el" "gnus/mail-source.el" +;;;;;; "gnus/mailcap.el" "gnus/messcompat.el" "gnus/mm-archive.el" +;;;;;; "gnus/mm-bodies.el" "gnus/mm-decode.el" "gnus/mm-util.el" +;;;;;; "gnus/mm-view.el" "gnus/mml-sec.el" "gnus/mml-smime.el" "gnus/nnagent.el" +;;;;;; "gnus/nnbabyl.el" "gnus/nndir.el" "gnus/nndraft.el" "gnus/nneething.el" +;;;;;; "gnus/nngateway.el" "gnus/nnheader.el" "gnus/nnimap.el" "gnus/nnir.el" +;;;;;; "gnus/nnmail.el" "gnus/nnmaildir.el" "gnus/nnmairix.el" "gnus/nnmbox.el" +;;;;;; "gnus/nnmh.el" "gnus/nnnil.el" "gnus/nnoo.el" "gnus/nnregistry.el" +;;;;;; "gnus/nnrss.el" "gnus/nnspool.el" "gnus/nntp.el" "gnus/nnvirtual.el" +;;;;;; "gnus/nnweb.el" "gnus/registry.el" "gnus/rfc1843.el" "gnus/rfc2045.el" +;;;;;; "gnus/rfc2047.el" "gnus/rfc2104.el" "gnus/rfc2231.el" "gnus/rtree.el" +;;;;;; "gnus/shr-color.el" "gnus/sieve-manage.el" "gnus/smime.el" +;;;;;; "gnus/spam-stat.el" "gnus/spam-wash.el" "hex-util.el" "hfy-cmap.el" +;;;;;; "ibuf-ext.el" "international/cp51932.el" "international/eucjp-ms.el" +;;;;;; "international/fontset.el" "international/iso-ascii.el" "international/ja-dic-cnv.el" +;;;;;; "international/ja-dic-utl.el" "international/ogonek.el" "international/uni-bidi.el" +;;;;;; "international/uni-category.el" "international/uni-combining.el" +;;;;;; "international/uni-comment.el" "international/uni-decimal.el" +;;;;;; "international/uni-decomposition.el" "international/uni-digit.el" +;;;;;; "international/uni-lowercase.el" "international/uni-mirrored.el" +;;;;;; "international/uni-name.el" "international/uni-numeric.el" +;;;;;; "international/uni-old-name.el" "international/uni-titlecase.el" +;;;;;; "international/uni-uppercase.el" "json.el" "kermit.el" "language/hanja-util.el" +;;;;;; "language/thai-word.el" "ldefs-boot.el" "loadup.el" "mail/blessmail.el" +;;;;;; "mail/mailheader.el" "mail/mspools.el" "mail/rfc2368.el" +;;;;;; "mail/rfc822.el" "mail/rmail-spam-filter.el" "mail/rmailedit.el" +;;;;;; "mail/rmailkwd.el" "mail/rmailmm.el" "mail/rmailmsc.el" "mail/rmailsort.el" +;;;;;; "mail/rmailsum.el" "mail/undigest.el" "md4.el" "mh-e/mh-acros.el" +;;;;;; "mh-e/mh-alias.el" "mh-e/mh-buffers.el" "mh-e/mh-compat.el" +;;;;;; "mh-e/mh-funcs.el" "mh-e/mh-gnus.el" "mh-e/mh-identity.el" +;;;;;; "mh-e/mh-inc.el" "mh-e/mh-junk.el" "mh-e/mh-letter.el" "mh-e/mh-limit.el" ;;;;;; "mh-e/mh-loaddefs.el" "mh-e/mh-mime.el" "mh-e/mh-print.el" ;;;;;; "mh-e/mh-scan.el" "mh-e/mh-search.el" "mh-e/mh-seq.el" "mh-e/mh-show.el" ;;;;;; "mh-e/mh-speed.el" "mh-e/mh-thread.el" "mh-e/mh-tool-bar.el" @@ -33879,8 +33893,8 @@ Zone out, completely. ;;;;;; "vc/ediff-init.el" "vc/ediff-merg.el" "vc/ediff-ptch.el" ;;;;;; "vc/ediff-vers.el" "vc/ediff-wind.el" "vc/pcvs-info.el" "vc/pcvs-parse.el" ;;;;;; "vc/pcvs-util.el" "vc/vc-dav.el" "vcursor.el" "vt-control.el" -;;;;;; "vt100-led.el" "w32-fns.el" "w32-vars.el" "x-dnd.el") (20585 -;;;;;; 28294 985050 730000)) +;;;;;; "vt100-led.el" "w32-common-fns.el" "w32-fns.el" "w32-vars.el" +;;;;;; "x-dnd.el") (20600 26805 968824 63000)) ;;;*** From bd0ffffd5a90e25d32708dd4fec29578648e1fad Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Fri, 12 Oct 2012 16:07:58 -0400 Subject: [PATCH 192/272] * lisp/emacs-lisp/eieio.el (lisp-imenu-generic-expression): Fix typo. --- lisp/ChangeLog | 8 ++++++-- lisp/emacs-lisp/eieio.el | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4424a5fb389..dd43dbb2fb2 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-10-12 Stefan Monnier + + * emacs-lisp/eieio.el (lisp-imenu-generic-expression): Fix typo. + 2012-10-12 Glenn Morris * mail/rmailsum.el (rmail-header-summary): @@ -5,8 +9,8 @@ 2012-10-12 Fabián Ezequiel Gallina - * progmodes/python.el (python-mode-map): Replace - subtitute-key-definition with proper command remapping. + * progmodes/python.el (python-mode-map): + Replace subtitute-key-definition with proper command remapping. (python-nav--up-list): Fix behavior for blocks on the same level. 2012-10-11 Stefan Monnier diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el index 7e64b42d9e4..9bbb149177f 100644 --- a/lisp/emacs-lisp/eieio.el +++ b/lisp/emacs-lisp/eieio.el @@ -2750,7 +2750,7 @@ This method signals `no-next-method' by default. Override this method to not throw an error, and its return value becomes the return value of `call-next-method'." (signal 'no-next-method (list (object-name object) args)) -) + ) (defgeneric clone (obj &rest params) "Make a copy of OBJ, and then supply PARAMS. @@ -3050,7 +3050,7 @@ Optional argument NOESCAPE is passed to `prin1-to-string' when appropriate." ;;; Interfacing with imenu in emacs lisp mode ;; (Only if the expression is defined) ;; -(if (eval-when-compile (boundp 'list-imenu-generic-expression)) +(if (eval-when-compile (boundp 'lisp-imenu-generic-expression)) (progn (defun eieio-update-lisp-imenu-expression () From 06485aa8215af39f9f5f999933aa39d349a2bdf9 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Fri, 12 Oct 2012 16:11:50 -0400 Subject: [PATCH 193/272] * src/doc.c (get_doc_string): Don't signal an error if the file is missing. * lisp/help-fns.el (describe-variable, describe-function-1): * lisp/help-mode.el (help-make-xrefs): Remove error handler, made unneeded. --- lisp/ChangeLog | 3 +++ lisp/help-fns.el | 14 +++++--------- lisp/help-mode.el | 14 ++++++-------- src/ChangeLog | 4 ++++ src/doc.c | 3 ++- 5 files changed, 20 insertions(+), 18 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index dd43dbb2fb2..2a92c1178cf 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2012-10-12 Stefan Monnier + * help-fns.el (describe-variable, describe-function-1): + * help-mode.el (help-make-xrefs): Remove error handler, made unneeded. + * emacs-lisp/eieio.el (lisp-imenu-generic-expression): Fix typo. 2012-10-12 Glenn Morris diff --git a/lisp/help-fns.el b/lisp/help-fns.el index f17b29de720..b552d8c1357 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -615,9 +615,7 @@ FILE is the file where FUNCTION was probably defined." (point))) (terpri)(terpri) - (let* ((doc-raw (condition-case err - (documentation function t) - (error (format "No Doc! %S" err)))) + (let* ((doc-raw (documentation function t)) ;; If the function is autoloaded, and its docstring has ;; key substitution constructs, load the library. (doc (progn @@ -849,12 +847,10 @@ it is displayed along with the global value." (obsolete (get variable 'byte-obsolete-variable)) (use (car obsolete)) (safe-var (get variable 'safe-local-variable)) - (doc (condition-case err - (or (documentation-property - variable 'variable-documentation) - (documentation-property - alias 'variable-documentation)) - (error (format "Doc not found: %S" err)))) + (doc (or (documentation-property + variable 'variable-documentation) + (documentation-property + alias 'variable-documentation))) (extra-line nil)) ;; Mention if it's a local variable. diff --git a/lisp/help-mode.el b/lisp/help-mode.el index 9924300647c..c1ce5a521be 100644 --- a/lisp/help-mode.el +++ b/lisp/help-mode.el @@ -505,14 +505,12 @@ that." ((and (or (boundp sym) (get sym 'variable-documentation)) - (condition-case err - (or - (documentation-property - sym 'variable-documentation) - (documentation-property - (indirect-variable sym) - 'variable-documentation)) - (error (message "No doc found: %S" err) nil))) + (or + (documentation-property + sym 'variable-documentation) + (documentation-property + (indirect-variable sym) + 'variable-documentation))) (help-xref-button 8 'help-variable sym)) ((fboundp sym) (help-xref-button 8 'help-function sym))))))) diff --git a/src/ChangeLog b/src/ChangeLog index d6429501059..d753221b996 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-12 Stefan Monnier + + * doc.c (get_doc_string): Don't signal an error if the file is missing. + 2012-10-12 Jan Djärv * nsterm.m (hold_event_q): New static variable. diff --git a/src/doc.c b/src/doc.c index d2d664df266..9ead1addfba 100644 --- a/src/doc.c +++ b/src/doc.c @@ -144,7 +144,8 @@ get_doc_string (Lisp_Object filepos, bool unibyte, bool definition) } #endif if (fd < 0) - error ("Cannot open doc string file \"%s\"", name); + return concat3 (build_string ("Cannot open doc string file \""), + file, build_string ("\"\n")); } /* Seek only to beginning of disk block. */ From d6453ce49724b0a3bd24922ff0ad02f391d6e517 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 12 Oct 2012 17:52:01 -0700 Subject: [PATCH 194/272] Fix some stat-related races. * fileio.c (Fwrite_region): Avoid race condition if a file is removed or renamed by some other process immediately after Emacs writes it but before Emacs stats it. Do not assume that stat (or fstat) succeeds. * image.c (slurp_file): Resolve the file name with fopen + fstat rather than stat + fopen. (pbm_read_file) [0]: Remove unused code with stat race. * process.c (allocate_pty) [HAVE_PTYS && !PTY_ITERATION && !PTY_OPEN]: Remove ineffective code with stat race. --- src/ChangeLog | 13 +++++++++++++ src/fileio.c | 16 ++++++++++++---- src/image.c | 44 ++------------------------------------------ src/process.c | 17 ----------------- 4 files changed, 27 insertions(+), 63 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index d753221b996..6c03ef0ba0a 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,16 @@ +2012-10-13 Paul Eggert + + Fix some stat-related races. + * fileio.c (Fwrite_region): Avoid race condition if a file is + removed or renamed by some other process immediately after Emacs + writes it but before Emacs stats it. Do not assume that stat (or + fstat) succeeds. + * image.c (slurp_file): Resolve the file name with fopen + fstat + rather than stat + fopen. + (pbm_read_file) [0]: Remove unused code with stat race. + * process.c (allocate_pty) [HAVE_PTYS && !PTY_ITERATION && !PTY_OPEN]: + Remove ineffective code with stat race. + 2012-10-12 Stefan Monnier * doc.c (get_doc_string): Don't signal an error if the file is missing. diff --git a/src/fileio.c b/src/fileio.c index 5de5bc2b021..460eaf1e0b0 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -4545,6 +4545,7 @@ This calls `write-region-annotate-functions' at the start, and int save_errno = 0; const char *fn; struct stat st; + EMACS_TIME modtime; ptrdiff_t count = SPECPDL_INDEX (); int count1; Lisp_Object handler; @@ -4757,12 +4758,19 @@ This calls `write-region-annotate-functions' at the start, and } #endif + modtime = invalid_emacs_time (); + if (visiting) + { + if (fstat (desc, &st) == 0) + modtime = get_stat_mtime (&st); + else + ok = 0, save_errno = errno; + } + /* NFS can report a write failure now. */ if (emacs_close (desc) < 0) ok = 0, save_errno = errno; - stat (fn, &st); - /* Discard the unwind protect for close_file_unwind. */ specpdl_ptr = specpdl + count1; @@ -4790,9 +4798,9 @@ This calls `write-region-annotate-functions' at the start, and /* Do this before reporting IO error to avoid a "file has changed on disk" warning on next attempt to save. */ - if (visiting) + if (EMACS_TIME_VALID_P (modtime)) { - current_buffer->modtime = get_stat_mtime (&st); + current_buffer->modtime = modtime; current_buffer->modtime_size = st.st_size; } diff --git a/src/image.c b/src/image.c index 9b41cf74993..d52c3a29a27 100644 --- a/src/image.c +++ b/src/image.c @@ -2140,12 +2140,11 @@ x_find_image_file (Lisp_Object file) static unsigned char * slurp_file (char *file, ptrdiff_t *size) { - FILE *fp = NULL; + FILE *fp = fopen (file, "rb"); unsigned char *buf = NULL; struct stat st; - if (stat (file, &st) == 0 - && (fp = fopen (file, "rb")) != NULL + if (fp && fstat (fileno (fp), &st) == 0 && 0 <= st.st_size && st.st_size <= min (PTRDIFF_MAX, SIZE_MAX) && (buf = xmalloc (st.st_size), fread (buf, 1, st.st_size, fp) == st.st_size)) @@ -5004,45 +5003,6 @@ pbm_scan_number (unsigned char **s, unsigned char *end) } -#ifdef HAVE_NTGUI -#if 0 /* Unused. ++kfs */ - -/* Read FILE into memory. Value is a pointer to a buffer allocated - with xmalloc holding FILE's contents. Value is null if an error - occurred. *SIZE is set to the size of the file. */ - -static char * -pbm_read_file (Lisp_Object file, int *size) -{ - FILE *fp = NULL; - char *buf = NULL; - struct stat st; - - if (stat (SDATA (file), &st) == 0 - && (fp = fopen (SDATA (file), "rb")) != NULL - && 0 <= st.st_size && st.st_size <= min (PTRDIFF_MAX, SIZE_MAX) - && (buf = xmalloc (st.st_size), - fread (buf, 1, st.st_size, fp) == st.st_size)) - { - *size = st.st_size; - fclose (fp); - } - else - { - if (fp) - fclose (fp); - if (buf) - { - xfree (buf); - buf = NULL; - } - } - - return buf; -} -#endif -#endif /* HAVE_NTGUI */ - /* Load PBM image IMG for use on frame F. */ static bool diff --git a/src/process.c b/src/process.c index 2cbce9d28ea..d45a2c6e8e0 100644 --- a/src/process.c +++ b/src/process.c @@ -646,23 +646,6 @@ allocate_pty (void) PTY_OPEN; #else /* no PTY_OPEN */ { - { /* Some systems name their pseudoterminals so that there are gaps in - the usual sequence - for example, on HP9000/S700 systems, there - are no pseudoterminals with names ending in 'f'. So we wait for - three failures in a row before deciding that we've reached the - end of the ptys. */ - int failed_count = 0; - struct stat stb; - - if (stat (pty_name, &stb) < 0) - { - failed_count++; - if (failed_count >= 3) - return -1; - } - else - failed_count = 0; - } # ifdef O_NONBLOCK fd = emacs_open (pty_name, O_RDWR | O_NONBLOCK, 0); # else From 73f2b4abf53a5391f995edacf39c6de89fdc8f45 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sat, 13 Oct 2012 09:18:52 +0800 Subject: [PATCH 195/272] Document 24.3 ImageMagick changes. * doc/emacs/files.texi (File Conveniences): ImageMagick enabled by default. * doc/lispref/display.texi (ImageMagick Images): ImageMagick enabled by default. --- doc/emacs/ChangeLog | 4 +++ doc/emacs/files.texi | 25 +++++++++++------ doc/lispref/ChangeLog | 4 +++ doc/lispref/display.texi | 60 +++++++++++++--------------------------- etc/NEWS | 6 ++-- 5 files changed, 46 insertions(+), 53 deletions(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 3aad65f7bed..47a4c8da522 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,7 @@ +2012-10-13 Chong Yidong + + * files.texi (File Conveniences): ImageMagick enabled by default. + 2012-10-10 Dani Moncayo * basic.texi (Arguments): Fix typos. diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi index c1cebc424ca..e12bb385653 100644 --- a/doc/emacs/files.texi +++ b/doc/emacs/files.texi @@ -1931,15 +1931,22 @@ non-@code{nil}. Currently, Emacs only supports animation in GIF files. @cindex ImageMagick support - If your Emacs was compiled with ImageMagick support, it is possible -to view a much wider variety of image types in Image mode, by -rendering the images via ImageMagick. However, this feature is -currently disabled by default. To enable it, add the following line -to your init file: - -@example -(imagemagick-register-types) -@end example +@vindex imagemagick-enabled-types +@vindex imagemagick-types-inhibit + If Emacs was compiled with support for the ImageMagick library, it +can use ImageMagick to render a wide variety of images. The variable +@code{imagemagick-enabled-types} lists the image types that Emacs may +render using ImageMagick; each element in the list should be an +internal ImageMagick name for an image type, as a symbol or an +equivalent string (e.g.@: @code{BMP} for @file{.bmp} images). To +enable ImageMagick for all possible image types, change +@code{imagemagick-enabled-types} to @code{t}. The variable +@code{imagemagick-types-inhibit} lists the image types which should +never be rendered using ImageMagick, regardless of the value of +@code{imagemagick-enabled-types} (the default list includes types like +@code{C} and @code{HTML}, which ImageMagick can render as an ``image'' +but Emacs should not). To disable ImageMagick entirely, change +@code{imagemagick-types-inhibit} to @code{t}. @findex thumbs-mode @findex mode, thumbs diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 974a0d67192..40c457ffe07 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,7 @@ +2012-10-13 Chong Yidong + + * display.texi (ImageMagick Images): ImageMagick enabled by default. + 2012-10-05 Chong Yidong * minibuf.texi (Basic Completion): Clarify list form of completion diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 11a86f3c1c5..3f92c50e2bc 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -4579,56 +4579,34 @@ specifying the bounding box of the PostScript image, analogous to the @cindex images, support for more formats If you build Emacs with ImageMagick support, you can use the -ImageMagick library to load many image formats. The image type symbol +ImageMagick library to load many image formats (@pxref{File +Conveniences,,, emacs, The GNU Emacs Manual}). The image type symbol for images loaded via ImageMagick is @code{imagemagick}, regardless of the actual underlying image format. @defun imagemagick-types This function returns a list of image file extensions supported by the -current ImageMagick installation. +current ImageMagick installation. Each list element is a symbol +representing an internal ImageMagick name for an image type, such as +@code{BMP} for @file{.bmp} images. @end defun - By default, Emacs does not use ImageMagick to display images in -Image mode, e.g.@: when visiting such files with @kbd{C-x C-f}. This -feature is enabled by calling @code{imagemagick-register-types}. - -@defun imagemagick-register-types -This function enables using Image mode to visit image files supported -by ImageMagick. @xref{File Conveniences,,, emacs, The GNU Emacs -Manual}. It also causes @code{create-image} and other helper -functions to associate such file names with the @code{imagemagick} -image type (@pxref{Defining Images}). - -All image file extensions supported by ImageMagick are registered, -except those specified in @code{imagemagick-types-inhibit}. If Emacs -was not compiled with ImageMagick support, this function does nothing. -@end defun - -@defopt imagemagick-types-inhibit -This variable specifies a list of image types that should @emph{not} -be registered by @code{imagemagick-register-types}. Each entry in -this list should be one of the symbols returned by -@code{imagemagick-types}. The default value lists several file types -that are considered ``images'' by ImageMagick, but which should not be -considered as images by Emacs, including C files and HTML files. +@defopt imagemagick-enabled-types +The value of this variable is a list of ImageMagick image types which +Emacs may attempt to render using ImageMagick. Each list element +should be one of the symbols in the list returned by +@code{imagemagick-types}, or an equivalent string. Alternatively, a +value of @code{t} enables ImageMagick for all possible image types. +Regardless of the value of this variable, +@code{imagemagick-types-inhibit} (see below) takes precedence. @end defopt -@ignore -@c I don't know what this means. I suspect it means eg loading jpg -@c images via libjpeg or ImageMagick. But it doesn't work. -@c If you don't have libjpeg support compiled in, you cannot -@c view jpeg images, even if you have imagemagick support: -@c http://debbugs.gnu.org/9045 -@c And if you have both compiled in, then you always get -@c the libjpeg version: -@c http://debbugs.gnu.org/10746 -There may be overlap between image loaders in your Emacs installation, -and you may prefer to use a different one for a given image type -(which loader will be used in practice depends on the priority of the -loaders). -For example, if you never want to use the ImageMagick loader to view -JPEG files, add @code{JPG} to this list. -@end ignore +@defopt imagemagick-types-inhibit +The value of this variable lists the ImageMagick image types which +should never be rendered using ImageMagick, regardless of the value of +@code{imagemagick-enabled-types}. A value of @code{t} disables +ImageMagick entirely. +@end defopt Images loaded with ImageMagick support the following additional image descriptor properties: diff --git a/etc/NEWS b/etc/NEWS index 2b934741c2c..5a310d8f82c 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -137,16 +137,16 @@ It is no longer necessary to call `imagemagick-register-types' explicitly to install ImageMagick image types; that function is called automatically at startup, or when customizing a relevant imagemagick- option. - ++++ *** Setting `imagemagick-types-inhibit' to t now disables the use of ImageMagick to view images. You must call imagemagick-register-types afterwards if you do not use customize to change this. - ++++ *** The new variable `imagemagick-enabled-types' also affects which ImageMagick types are treated as images. The function `imagemagick-filter-types' returns the list of types that will be treated as images. - +--- *** Images displayed via ImageMagick now support transparency and the :background image spec property. From 7001d5793cd18716688372c09f784c85019127b2 Mon Sep 17 00:00:00 2001 From: Gregor Zattler Date: Fri, 12 Oct 2012 19:22:36 -0700 Subject: [PATCH 196/272] Small emacs-lisp-intro.texi correction (tiny change) * doc/lispintro/emacs-lisp-intro.texi (Narrowing advantages): Minor update for changed what-line implementation. Fixes: debbugs:12629 --- doc/lispintro/ChangeLog | 5 +++++ doc/lispintro/emacs-lisp-intro.texi | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog index bc2ed8a8d82..b37426612f1 100644 --- a/doc/lispintro/ChangeLog +++ b/doc/lispintro/ChangeLog @@ -1,3 +1,8 @@ +2012-10-13 Gregor Zattler (tiny change) + + * emacs-lisp-intro.texi (Narrowing advantages): + Minor update for changed what-line implementation. (Bug#12629) + 2012-08-24 Chong Yidong * Version 24.2 released. diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index 9446333db2a..c0c7dec47bd 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi @@ -6681,8 +6681,8 @@ buffer; or conversely, an Emacs Lisp function needs to work on all of a buffer that has been narrowed. The @code{what-line} function, for example, removes the narrowing from a buffer, if it has any narrowing and when it has finished its job, restores the narrowing to what it was. -On the other hand, the @code{count-lines} function, which is called by -@code{what-line}, uses narrowing to restrict itself to just that portion +On the other hand, the @code{count-lines} function +uses narrowing to restrict itself to just that portion of the buffer in which it is interested and then restores the previous situation. From 88ded8accac910447a8b5411f6e37443b1fd6be8 Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Sat, 13 Oct 2012 09:58:53 +0200 Subject: [PATCH 197/272] In debug restore window configuration when debugger-will-be-back is non-nil (Bug#12623). * emacs-lisp/debug.el (debug): When debugger-will-be-back is non-nil, restore window configuration (Bug#12623). --- lisp/ChangeLog | 5 +++++ lisp/emacs-lisp/debug.el | 26 +++++++++++++++----------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2a92c1178cf..5ac455feb13 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-13 Martin Rudalics + + * emacs-lisp/debug.el (debug): When debugger-will-be-back is + non-nil, restore window configuration (Bug#12623). + 2012-10-12 Stefan Monnier * help-fns.el (describe-variable, describe-function-1): diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el index 6b308119abb..c30ccf3315e 100644 --- a/lisp/emacs-lisp/debug.el +++ b/lisp/emacs-lisp/debug.el @@ -213,7 +213,8 @@ first will be printed into the backtrace buffer." (or enable-recursive-minibuffers (> (minibuffer-depth) 0))) (standard-input t) (standard-output t) inhibit-redisplay - (cursor-in-echo-area nil)) + (cursor-in-echo-area nil) + (window-configuration (current-window-configuration))) (unwind-protect (save-excursion (when (eq (car debugger-args) 'debug) @@ -266,16 +267,19 @@ first will be printed into the backtrace buffer." ;; Make sure we unbind buffer-read-only in the right buffer. (save-excursion (recursive-edit)))) - (when (and (not debugger-will-be-back) - (window-live-p debugger-window) - (eq (window-buffer debugger-window) debugger-buffer)) - ;; Record height of debugger window. - (setq debugger-previous-window-height - (window-total-size debugger-window)) - ;; Unshow debugger-buffer. - (quit-restore-window debugger-window debugger-bury-or-kill) - ;; Restore current buffer (Bug#12502). - (set-buffer debugger-old-buffer)) + (if debugger-will-be-back + ;; Restore previous window configuration (Bug#12623). + (set-window-configuration window-configuration) + (when (and (window-live-p debugger-window) + (eq (window-buffer debugger-window) debugger-buffer)) + (progn + ;; Record height of debugger window. + (setq debugger-previous-window-height + (window-total-size debugger-window)) + ;; Unshow debugger-buffer. + (quit-restore-window debugger-window debugger-bury-or-kill) + ;; Restore current buffer (Bug#12502). + (set-buffer debugger-old-buffer)))) ;; Restore previous state of debugger-buffer in case we were ;; in a recursive invocation of the debugger, otherwise just ;; erase the buffer and put it into fundamental mode. From ce2fe65ae1abf53f5408e636a8bbee7b40ce3f2a Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Sat, 13 Oct 2012 10:55:26 +0200 Subject: [PATCH 198/272] * fileio.c: Formatting fixes. --- src/ChangeLog | 4 ++++ src/fileio.c | 55 ++++++++++++++++++++++++--------------------------- 2 files changed, 30 insertions(+), 29 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 6c03ef0ba0a..f5b5bbdc7b1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-13 Andreas Schwab + + * fileio.c: Formatting fixes. + 2012-10-13 Paul Eggert Fix some stat-related races. diff --git a/src/fileio.c b/src/fileio.c index 460eaf1e0b0..e3a91c2c9da 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -1370,8 +1370,7 @@ See also the function `substitute-in-file-name'.") p = nm; while (*p) { - if (p[0] == '/' && p[1] == '/' - ) + if (p[0] == '/' && p[1] == '/') nm = p + 1; if (p[0] == '/' && p[1] == '~') nm = p + 1, lose = 1; @@ -1510,17 +1509,16 @@ search_embedded_absfilename (char *nm, char *endp) for (p = nm + 1; p < endp; p++) { - if ((0 - || IS_DIRECTORY_SEP (p[-1])) + if (IS_DIRECTORY_SEP (p[-1]) && file_name_absolute_p (p) #if defined (WINDOWSNT) || defined (CYGWIN) /* // at start of file name is meaningful in Apollo, WindowsNT and Cygwin systems. */ && !(IS_DIRECTORY_SEP (p[0]) && p - 1 == nm) #endif /* not (WINDOWSNT || CYGWIN) */ - ) + ) { - for (s = p; *s && (!IS_DIRECTORY_SEP (*s)); s++); + for (s = p; *s && !IS_DIRECTORY_SEP (*s); s++); if (p[0] == '~' && s > p + 1) /* We've got "/~something/". */ { char *o = alloca (s - p + 1); @@ -1735,7 +1733,7 @@ those `/' is discarded. */) *x = 0; /* If /~ or // appears, discard everything through first slash. */ - while ((p = search_embedded_absfilename (xnm, x))) + while ((p = search_embedded_absfilename (xnm, x)) != NULL) /* This time we do not start over because we've already expanded envvars and replaced $$ with $. Maybe we should start over as well, but we'd need to quote some $ to $$ first. */ @@ -2169,7 +2167,7 @@ With a prefix argument, TRASH is nil. */) encoded_file = ENCODE_FILE (filename); - if (0 > unlink (SSDATA (encoded_file))) + if (unlink (SSDATA (encoded_file)) < 0) report_file_error ("Removing old name", list1 (filename)); return Qnil; } @@ -2218,8 +2216,8 @@ This is what happens in interactive use with M-x. */) #endif ) { - Lisp_Object fname = NILP (Ffile_directory_p (file)) - ? file : Fdirectory_file_name (file); + Lisp_Object fname = (NILP (Ffile_directory_p (file)) + ? file : Fdirectory_file_name (file)); newname = Fexpand_file_name (Ffile_name_nondirectory (fname), newname); } else @@ -2247,7 +2245,7 @@ This is what happens in interactive use with M-x. */) || INTEGERP (ok_if_already_exists)) barf_or_query_if_file_exists (newname, "rename to it", INTEGERP (ok_if_already_exists), 0, 0); - if (0 > rename (SSDATA (encoded_file), SSDATA (encoded_newname))) + if (rename (SSDATA (encoded_file), SSDATA (encoded_newname)) < 0) { if (errno == EXDEV) { @@ -2328,7 +2326,7 @@ This is what happens in interactive use with M-x. */) INTEGERP (ok_if_already_exists), 0, 0); unlink (SSDATA (newname)); - if (0 > link (SSDATA (encoded_file), SSDATA (encoded_newname))) + if (link (SSDATA (encoded_file), SSDATA (encoded_newname)) < 0) report_file_error ("Adding new name", list2 (file, newname)); UNGCPRO; @@ -2385,15 +2383,14 @@ This happens for interactive use with M-x. */) || INTEGERP (ok_if_already_exists)) barf_or_query_if_file_exists (linkname, "make it a link", INTEGERP (ok_if_already_exists), 0, 0); - if (0 > symlink (SSDATA (encoded_filename), - SSDATA (encoded_linkname))) + if (symlink (SSDATA (encoded_filename), SSDATA (encoded_linkname)) < 0) { /* If we didn't complain already, silently delete existing file. */ if (errno == EEXIST) { unlink (SSDATA (encoded_linkname)); - if (0 <= symlink (SSDATA (encoded_filename), - SSDATA (encoded_linkname))) + if (symlink (SSDATA (encoded_filename), SSDATA (encoded_linkname)) + >= 0) { UNGCPRO; return Qnil; @@ -3203,7 +3200,7 @@ emacs_lseek (int fd, EMACS_INT offset, int whence) { /* Use "&" rather than "&&" to suppress a bogus GCC warning; see . */ - if (! ((TYPE_MINIMUM (off_t) <= offset) & (offset <= TYPE_MAXIMUM (off_t)))) + if (! ((offset >= TYPE_MINIMUM (off_t)) & (offset <= TYPE_MAXIMUM (off_t)))) { errno = EINVAL; return -1; @@ -3376,7 +3373,7 @@ variable `last-coding-system-used' to the coding system actually used. */) if (!NILP (beg)) { - if (! (RANGED_INTEGERP (0, beg, TYPE_MAXIMUM (off_t)))) + if (! RANGED_INTEGERP (0, beg, TYPE_MAXIMUM (off_t))) wrong_type_argument (intern ("file-offset"), beg); beg_offset = XFASTINT (beg); } @@ -3385,7 +3382,7 @@ variable `last-coding-system-used' to the coding system actually used. */) if (!NILP (end)) { - if (! (RANGED_INTEGERP (0, end, TYPE_MAXIMUM (off_t)))) + if (! RANGED_INTEGERP (0, end, TYPE_MAXIMUM (off_t))) wrong_type_argument (intern ("file-offset"), end); end_offset = XFASTINT (end); } @@ -3421,8 +3418,8 @@ variable `last-coding-system-used' to the coding system actually used. */) if (beg_offset < likely_end) { - ptrdiff_t buf_bytes = - Z_BYTE - (!NILP (replace) ? ZV_BYTE - BEGV_BYTE : 0); + ptrdiff_t buf_bytes + = Z_BYTE - (!NILP (replace) ? ZV_BYTE - BEGV_BYTE : 0); ptrdiff_t buf_growth_max = BUF_BYTES_MAX - buf_bytes; off_t likely_growth = likely_end - beg_offset; if (buf_growth_max < likely_growth) @@ -5050,12 +5047,12 @@ e_write (int desc, Lisp_Object string, ptrdiff_t start, ptrdiff_t end, if (coding->produced > 0) { - coding->produced -= - emacs_write (desc, - STRINGP (coding->dst_object) - ? SSDATA (coding->dst_object) - : (char *) BYTE_POS_ADDR (coding->dst_pos_byte), - coding->produced); + coding->produced + -= emacs_write (desc, + STRINGP (coding->dst_object) + ? SSDATA (coding->dst_object) + : (char *) BYTE_POS_ADDR (coding->dst_pos_byte), + coding->produced); if (coding->produced) return 0; @@ -5234,8 +5231,8 @@ auto_save_1 (void) if (stat (SSDATA (BVAR (current_buffer, filename)), &st) >= 0) /* But make sure we can overwrite it later! */ auto_save_mode_bits = (st.st_mode | 0600) & 0777; - else if ((modes = Ffile_modes (BVAR (current_buffer, filename)), - INTEGERP (modes))) + else if (modes = Ffile_modes (BVAR (current_buffer, filename)), + INTEGERP (modes)) /* Remote files don't cooperate with stat. */ auto_save_mode_bits = (XINT (modes) | 0600) & 0777; } From b1367cba38b88b64530f40b1935b38a8c08f2fd6 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sat, 13 Oct 2012 17:37:25 +0800 Subject: [PATCH 199/272] Doc fix for url-http. * url-http.el (url-http): * url.el (url-retrieve-internal): Doc fix. Fixes: debbugs:6407 --- lisp/url/ChangeLog | 5 +++++ lisp/url/url-http.el | 8 ++++++-- lisp/url/url.el | 12 +++++++----- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index c7fc4fcbfe1..f7fe5029afe 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog @@ -1,3 +1,8 @@ +2012-10-13 Chong Yidong + + * url-http.el (url-http): + * url.el (url-retrieve-internal): Doc fix (Bug#6407). + 2012-10-08 Glenn Morris * url-methods.el (url-scheme-get-property): url-https.el was diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index 85b6efcde0d..73d53e08c59 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el @@ -1150,8 +1150,12 @@ the end of the document." (defun url-http (url callback cbargs &optional retry-buffer) "Retrieve URL via HTTP asynchronously. URL must be a parsed URL. See `url-generic-parse-url' for details. -When retrieval is completed, the function CALLBACK is executed with -CBARGS as the arguments. + +When retrieval is completed, execute the function CALLBACK, using +the arguments listed in CBARGS. The first element in CBARGS +should be a plist describing what has happened so far during the +request, as described in the docstring of `url-retrieve' (if in +doubt, specify nil). Optional arg RETRY-BUFFER, if non-nil, specifies the buffer of a previous `url-http' call, which is being re-attempted." diff --git a/lisp/url/url.el b/lisp/url/url.el index 87ae7a51aac..b219151a30c 100644 --- a/lisp/url/url.el +++ b/lisp/url/url.el @@ -131,9 +131,9 @@ characters are percent-encoded; see `url-encode-url'. CALLBACK is called when the object has been completely retrieved, with the current buffer containing the object, and any MIME headers associated with it. It is called as (apply CALLBACK STATUS CBARGS). -STATUS is a list with an even number of elements representing -what happened during the request, with most recent events first, -or an empty list if no events have occurred. Each pair is one of: +STATUS is a plist representing what happened during the request, +with most recent events first, or an empty list if no events have +occurred. Each pair is one of: \(:redirect REDIRECTED-TO) - the request was redirected to this URL \(:error (ERROR-SYMBOL . DATA)) - an error occurred. The error can be @@ -169,8 +169,10 @@ URL-encoded before it's used." (defun url-retrieve-internal (url callback cbargs &optional silent inhibit-cookies) "Internal function; external interface is `url-retrieve'. -CBARGS is what the callback will actually receive - the first item is -the list of events, as described in the docstring of `url-retrieve'. +CBARGS is the list of arguments that the callback function will +receive; its first element should be a plist specifying what has +happened so far during the request, as described in the docstring +of `url-retrieve' (if in doubt, specify nil). If SILENT, don't message progress reports and the like. If INHIBIT-COOKIES, cookies will neither be stored nor sent to From 0d11ff1cf2c3af79a9c4e9ef437488b6469fca52 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sat, 13 Oct 2012 17:51:59 +0800 Subject: [PATCH 200/272] After saving ispell dictionary, re-enable flyspell if necessary. * lisp/textmodes/ispell.el (ispell-pdict-save): If flyspell-mode is enabled, re-enable it. Fixes: debbugs:11963 --- lisp/ChangeLog | 5 +++++ lisp/textmodes/ispell.el | 13 ++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5ac455feb13..d58eb0bfbbf 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-13 Chong Yidong + + * textmodes/ispell.el (ispell-pdict-save): If flyspell-mode is + enabled, re-enable it (Bug#11963). + 2012-10-13 Martin Rudalics * emacs-lisp/debug.el (debug): When debugger-will-be-back is diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index 51a4800de52..d591dc5fa85 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el @@ -1893,11 +1893,14 @@ If so, ask if it needs to be saved." (interactive (list ispell-silently-savep t)) (if (and ispell-pdict-modified-p (listp ispell-pdict-modified-p)) (setq ispell-pdict-modified-p (car ispell-pdict-modified-p))) - (if (or ispell-pdict-modified-p force-save) - (if (or no-query (y-or-n-p "Personal dictionary modified. Save? ")) - (progn - (ispell-send-string "#\n") ; save dictionary - (message "Personal dictionary saved.")))) + (when (and (or ispell-pdict-modified-p force-save) + (or no-query + (y-or-n-p "Personal dictionary modified. Save? "))) + (ispell-send-string "#\n") ; save dictionary + (message "Personal dictionary saved.") + (when flyspell-mode + (flyspell-mode 0) + (flyspell-mode 1))) ;; unassert variable, even if not saved to avoid questioning. (setq ispell-pdict-modified-p nil)) From 076a4db2fe51a9a1d3a379955499a12059c50d45 Mon Sep 17 00:00:00 2001 From: Liam Stitt Date: Sat, 13 Oct 2012 18:51:26 +0800 Subject: [PATCH 201/272] Add .xz to some url code (tiny change). * url-vars.el (url-uncompressor-alist): * url-file.el (url-file-find-possibly-compressed-file, url-file): Recognize .xz compression. Fixes: debbugs:11839 --- lisp/url/ChangeLog | 6 ++++++ lisp/url/url-file.el | 3 ++- lisp/url/url-vars.el | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index f7fe5029afe..59222bcc957 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog @@ -1,3 +1,9 @@ +2012-10-13 Liam Stitt (tiny change) + + * url-vars.el (url-uncompressor-alist): + * url-file.el (url-file-find-possibly-compressed-file, url-file): + Recognize .xz compression (Bug#11839). + 2012-10-13 Chong Yidong * url-http.el (url-http): diff --git a/lisp/url/url-file.el b/lisp/url/url-file.el index 4bbbdcf200c..3515d7493cc 100644 --- a/lisp/url/url-file.el +++ b/lisp/url/url-file.el @@ -40,7 +40,7 @@ can do automatic decompression for them, and won't find 'foo' if 'foo.gz' exists, even though the FTP server would happily serve it up to them." (let ((scratch nil) - (compressed-extensions '("" ".gz" ".z" ".Z" ".bz2")) + (compressed-extensions '("" ".gz" ".z" ".Z" ".bz2" ".xz")) (found nil)) (while (and compressed-extensions (not found)) (if (file-exists-p (setq scratch (concat fname (pop compressed-extensions)))) @@ -177,6 +177,7 @@ to them." (".uue" "x-uuencoded") (".hqx" "x-hqx") (".bz2" "x-bzip2") + (".xz" "x-xz") (_ nil))) (if (file-directory-p filename) diff --git a/lisp/url/url-vars.el b/lisp/url/url-vars.el index 29f1e2cde0c..fdfd0e9868d 100644 --- a/lisp/url/url-vars.el +++ b/lisp/url/url-vars.el @@ -152,7 +152,8 @@ variable." (".uue" . "x-uuencoded") (".hqx" . "x-hqx") (".Z" . "x-compress") - (".bz2" . "x-bzip2")) + (".bz2" . "x-bzip2") + (".xz" . "x-xz")) "An alist of file extensions and appropriate content-transfer-encodings." :type '(repeat (cons :format "%v" (string :tag "Extension") From 0ba06a77fd4ccf92f1106b8ab7d8d64d6d812a1d Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Sat, 13 Oct 2012 21:58:52 +0900 Subject: [PATCH 202/272] coding.c (detect_coding): Set coding->id before calling this->detector. --- src/ChangeLog | 5 +++++ src/coding.c | 3 +++ 2 files changed, 8 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index d753221b996..3787e006c4f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-10-13 HANATAKA, Shinya (tiny change) + + * coding.c (detect_coding): Set coding->id before calling + this->detector. + 2012-10-12 Stefan Monnier * doc.c (get_doc_string): Don't signal an error if the file is missing. diff --git a/src/coding.c b/src/coding.c index d9606cf5710..412d7245223 100644 --- a/src/coding.c +++ b/src/coding.c @@ -6301,6 +6301,9 @@ detect_coding (struct coding_system *coding) { category = coding_priorities[i]; this = coding_categories + category; + /* Some of this->detector (e.g. detect_coding_sjis) + require this information. */ + coding->id = this->id; if (this->id < 0) { /* No coding system of this category is defined. */ From b166258b8ffe420a17ca10bc09b9b4e41a3b29ff Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 13 Oct 2012 12:39:42 -0700 Subject: [PATCH 203/272] usertags updates --- admin/notes/bugtracker | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/admin/notes/bugtracker b/admin/notes/bugtracker index 1d1c196f073..ee385f4dd75 100644 --- a/admin/notes/bugtracker +++ b/admin/notes/bugtracker @@ -270,32 +270,35 @@ to a bug. There are two differences between normal tags and user tags: 1) Anyone can define any valid usertag they like. In contrast, only a limited, predefined set of normal tags are available (see above). -2) A usertag is associated with a specific email address. +2) A usertag is associated with a specific user. This is normally +an email address (with an "@" sign and least 4 characters after the "@"), +but on debbugs.gnu.org, the definition is less strict - anything with +5 or more alphanumeric characters will work. For personal tags, +using an email address is still recommended. Please only use the +"emacs" user, or other short users, for "official" tags. -You set usertags in the same way as tags, by talking to the control -server. One difference is that you can also specify the associated -email address. If you don't explicitly specify an address, then it -will use the one from which you send the control message. The address -must have the form of an email address (with an "@" sign and least 4 -characters after the "@"). +You set usertags in the same way as tags, by talking to the control server. +One difference is that you can also specify the associated user. +If you don't explicitly specify a user, then it will use the email +address from which you send the control message. *** Setting usertags a) In a control message: -user bug-gnu-emacs@gnu.org +user emacs # or email@example.com usertags 1234 any-tag-you-like This will add a usertag "any-tag-you-like" to bug 1234. The tag will -be associated with the address "bug-gnu-emacs@gnu.org". If you omit -the first line, the tag will be associated with your email address. +be associated with the user "emacs". If you omit the first line, +the tag will be associated with your email address. The syntax of the usertags command is the same as that of tags (eg wrt the optional [=+-] argument). b) In an initial submission, in the pseudo-header: -User: bug-gnu-emacs@gnu.org +User: emacs Usertags: a-new-tag Again, the "User" is optional. @@ -312,7 +315,7 @@ http://debbugs.gnu.org/cgi/pkgindex.cgi?indexon=users **** To find all bugs usertagged by a given email address: -http://debbugs.gnu.org/cgi/pkgreport.cgi?users=bug-gnu-emacs@gnu.org +http://debbugs.gnu.org/cgi/pkgreport.cgi?users=emacs (Supposedly, the "users" field can be a comma-separated list of more than one email address, but it does not seem to work for me.) @@ -322,7 +325,7 @@ than one email address, but it does not seem to work for me.) This works just like a normal tags search, but with the addition of a "users" field. Eg: -http://debbugs.gnu.org/cgi/pkgreport.cgi?users=bug-gnu-emacs@gnu.org;tag=calendar +http://debbugs.gnu.org/cgi/pkgreport.cgi?users=emacs;tag=calendar *** To merge bugs: Eg when bad replies create a bunch of new bugs for the same report. From 3071811230cf9f6cd461a34cc7202565c4f9947a Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 13 Oct 2012 13:17:16 -0700 Subject: [PATCH 204/272] Comment --- lisp/url/url-file.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lisp/url/url-file.el b/lisp/url/url-file.el index 3515d7493cc..59aaccbe074 100644 --- a/lisp/url/url-file.el +++ b/lisp/url/url-file.el @@ -166,6 +166,8 @@ to them." (or filename (error "File does not exist: %s" (url-recreate-url url))) ;; Need to figure out the content-type from the real extension, ;; not the compressed one. + ;; FIXME should this regexp not include more extensions; basically + ;; everything that url-file-find-possibly-compressed-file does? (setq uncompressed-filename (if (string-match "\\.\\(gz\\|Z\\|z\\)$" filename) (substring filename 0 (match-beginning 0)) filename)) From 537f336d6228aa48d36c7749aff348569da0ab61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Sat, 13 Oct 2012 23:52:09 +0200 Subject: [PATCH 205/272] * gtkutil.c (xg_set_widget_bg): Divide by 65535. Fixes: debbugs:12612 --- src/ChangeLog | 5 +++++ src/gtkutil.c | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 56131aca4b2..6bb34d9866a 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-13 Jan Djärv + + * gtkutil.c (xg_set_widget_bg): Divide by 65535 (Bug#12612). + 2012-10-13 HANATAKA, Shinya (tiny change) * coding.c (detect_coding): Set coding->id before calling @@ -1290,6 +1294,7 @@ * sysdep.c (init_signals): Do not use SA_NODEFER. It wasn't wanted even on POSIXish hosts, and it doesn't work on Windows. +>>>>>>> MERGE-SOURCE 2012-09-23 Jan Djärv * xterm.c (x_term_init): Call fixup_locale before and after calling diff --git a/src/gtkutil.c b/src/gtkutil.c index 1bf2b533b41..4367b534cb9 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -1035,9 +1035,9 @@ xg_set_widget_bg (FRAME_PTR f, GtkWidget *w, long unsigned int pixel) xbg.pixel = pixel; if (XQueryColor (FRAME_X_DISPLAY (f), FRAME_X_COLORMAP (f), &xbg)) { - bg.red = (double)xbg.red/65536.0; - bg.green = (double)xbg.green/65536.0; - bg.blue = (double)xbg.blue/65536.0; + bg.red = (double)xbg.red/65535.0; + bg.green = (double)xbg.green/65535.0; + bg.blue = (double)xbg.blue/65535.0; bg.alpha = 1.0; gtk_widget_override_background_color (w, GTK_STATE_FLAG_NORMAL, &bg); } From 8336c6b3c5a971104437ca1939fae3ab998c486a Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 13 Oct 2012 17:17:07 -0700 Subject: [PATCH 206/272] ChangeLog fix --- src/ChangeLog | 1 - 1 file changed, 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 6bb34d9866a..346fe0e86b3 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1294,7 +1294,6 @@ * sysdep.c (init_signals): Do not use SA_NODEFER. It wasn't wanted even on POSIXish hosts, and it doesn't work on Windows. ->>>>>>> MERGE-SOURCE 2012-09-23 Jan Djärv * xterm.c (x_term_init): Call fixup_locale before and after calling From 5046ef67ca8b5a2eab769b4a6e486ae060b5df13 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sat, 13 Oct 2012 21:39:56 -0400 Subject: [PATCH 207/272] * lisp/emacs-lisp/gv.el (if): Don't use closures in non-lexical-binding code. --- lisp/ChangeLog | 4 ++++ lisp/emacs-lisp/gv.el | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d58eb0bfbbf..6c9fe7c4b47 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-10-14 Stefan Monnier + + * emacs-lisp/gv.el (if): Don't use closures in non-lexical-binding code. + 2012-10-13 Chong Yidong * textmodes/ispell.el (ispell-pdict-save): If flyspell-mode is diff --git a/lisp/emacs-lisp/gv.el b/lisp/emacs-lisp/gv.el index 7858c183e4b..1a30d67fbbc 100644 --- a/lisp/emacs-lisp/gv.el +++ b/lisp/emacs-lisp/gv.el @@ -358,7 +358,8 @@ The return value is the last VAL in the list. (put 'if 'gv-expander (lambda (do test then &rest else) - (if (macroexp-small-p (funcall do 'dummy (lambda (_) 'dummy))) + (if (or (not lexical-binding) ;The other code requires lexical-binding. + (macroexp-small-p (funcall do 'dummy (lambda (_) 'dummy)))) ;; This duplicates the `do' code, which is a problem if that ;; code is large, but otherwise results in more efficient code. `(if ,test ,(gv-get then do) From 9760c73c668269cd8de4625b0137d574551c98e5 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sat, 13 Oct 2012 21:42:48 -0400 Subject: [PATCH 208/272] * lisp/emacs-lisp/eieio.el (eieio-oset-default, eieio-oset, oset-default) (oset): Move uses of object-class-fast macro after its definition. --- lisp/ChangeLog | 3 + lisp/emacs-lisp/eieio.el | 130 +++++++++++++++++++-------------------- 2 files changed, 68 insertions(+), 65 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6c9fe7c4b47..a31d474d8a3 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2012-10-14 Stefan Monnier + * emacs-lisp/eieio.el (eieio-oset-default, eieio-oset, oset-default) + (oset): Move uses of object-class-fast macro after its definition. + * emacs-lisp/gv.el (if): Don't use closures in non-lexical-binding code. 2012-10-13 Chong Yidong diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el index 9bbb149177f..5f8cbea7c27 100644 --- a/lisp/emacs-lisp/eieio.el +++ b/lisp/emacs-lisp/eieio.el @@ -1556,71 +1556,6 @@ Fills in OBJ's SLOT with its default value." ;; return it verbatim (t val))) -;;; Object Set macros -;; -(defmacro oset (obj slot value) - "Set the value in OBJ for slot SLOT to VALUE. -SLOT is the slot name as specified in `defclass' or the tag created -with in the :initarg slot. VALUE can be any Lisp object." - `(eieio-oset ,obj (quote ,slot) ,value)) - -(defun eieio-oset (obj slot value) - "Do the work for the macro `oset'. -Fills in OBJ's SLOT with VALUE." - (if (not (eieio-object-p obj)) (signal 'wrong-type-argument (list 'eieio-object-p obj))) - (if (not (symbolp slot)) (signal 'wrong-type-argument (list 'symbolp slot))) - (let ((c (eieio-slot-name-index (object-class-fast obj) obj slot))) - (if (not c) - ;; It might be missing because it is a :class allocated slot. - ;; Let's check that info out. - (if (setq c - (eieio-class-slot-name-index (aref obj object-class) slot)) - ;; Oset that slot. - (progn - (eieio-validate-class-slot-value (object-class-fast obj) c value slot) - (aset (aref (class-v (aref obj object-class)) - class-class-allocation-values) - c value)) - ;; See oref for comment on `slot-missing' - (slot-missing obj slot 'oset value) - ;;(signal 'invalid-slot-name (list (object-name obj) slot)) - ) - (eieio-validate-slot-value (object-class-fast obj) c value slot) - (aset obj c value)))) - -(defmacro oset-default (class slot value) - "Set the default slot in CLASS for SLOT to VALUE. -The default value is usually set with the :initform tag during class -creation. This allows users to change the default behavior of classes -after they are created." - `(eieio-oset-default ,class (quote ,slot) ,value)) - -(defun eieio-oset-default (class slot value) - "Do the work for the macro `oset-default'. -Fills in the default value in CLASS' in SLOT with VALUE." - (if (not (class-p class)) (signal 'wrong-type-argument (list 'class-p class))) - (if (not (symbolp slot)) (signal 'wrong-type-argument (list 'symbolp slot))) - (let* ((scoped-class class) - (c (eieio-slot-name-index class nil slot))) - (if (not c) - ;; It might be missing because it is a :class allocated slot. - ;; Let's check that info out. - (if (setq c (eieio-class-slot-name-index class slot)) - (progn - ;; Oref that slot. - (eieio-validate-class-slot-value class c value slot) - (aset (aref (class-v class) class-class-allocation-values) c - value)) - (signal 'invalid-slot-name (list (class-name class) slot))) - (eieio-validate-slot-value class c value slot) - ;; Set this into the storage for defaults. - (setcar (nthcdr (- c 3) (aref (class-v class) class-public-d)) - value) - ;; Take the value, and put it into our cache object. - (eieio-oset (aref (class-v class) class-default-object-cache) - slot value) - ))) - ;;; Handy CLOS macros ;; (defmacro with-slots (spec-list object &rest body) @@ -1871,6 +1806,71 @@ method invocation orders of the involved classes." (setq ia (cdr ia))) f)) +;;; Object Set macros +;; +(defmacro oset (obj slot value) + "Set the value in OBJ for slot SLOT to VALUE. +SLOT is the slot name as specified in `defclass' or the tag created +with in the :initarg slot. VALUE can be any Lisp object." + `(eieio-oset ,obj (quote ,slot) ,value)) + +(defun eieio-oset (obj slot value) + "Do the work for the macro `oset'. +Fills in OBJ's SLOT with VALUE." + (if (not (eieio-object-p obj)) (signal 'wrong-type-argument (list 'eieio-object-p obj))) + (if (not (symbolp slot)) (signal 'wrong-type-argument (list 'symbolp slot))) + (let ((c (eieio-slot-name-index (object-class-fast obj) obj slot))) + (if (not c) + ;; It might be missing because it is a :class allocated slot. + ;; Let's check that info out. + (if (setq c + (eieio-class-slot-name-index (aref obj object-class) slot)) + ;; Oset that slot. + (progn + (eieio-validate-class-slot-value (object-class-fast obj) c value slot) + (aset (aref (class-v (aref obj object-class)) + class-class-allocation-values) + c value)) + ;; See oref for comment on `slot-missing' + (slot-missing obj slot 'oset value) + ;;(signal 'invalid-slot-name (list (object-name obj) slot)) + ) + (eieio-validate-slot-value (object-class-fast obj) c value slot) + (aset obj c value)))) + +(defmacro oset-default (class slot value) + "Set the default slot in CLASS for SLOT to VALUE. +The default value is usually set with the :initform tag during class +creation. This allows users to change the default behavior of classes +after they are created." + `(eieio-oset-default ,class (quote ,slot) ,value)) + +(defun eieio-oset-default (class slot value) + "Do the work for the macro `oset-default'. +Fills in the default value in CLASS' in SLOT with VALUE." + (if (not (class-p class)) (signal 'wrong-type-argument (list 'class-p class))) + (if (not (symbolp slot)) (signal 'wrong-type-argument (list 'symbolp slot))) + (let* ((scoped-class class) + (c (eieio-slot-name-index class nil slot))) + (if (not c) + ;; It might be missing because it is a :class allocated slot. + ;; Let's check that info out. + (if (setq c (eieio-class-slot-name-index class slot)) + (progn + ;; Oref that slot. + (eieio-validate-class-slot-value class c value slot) + (aset (aref (class-v class) class-class-allocation-values) c + value)) + (signal 'invalid-slot-name (list (class-name class) slot))) + (eieio-validate-slot-value class c value slot) + ;; Set this into the storage for defaults. + (setcar (nthcdr (- c 3) (aref (class-v class) class-public-d)) + value) + ;; Take the value, and put it into our cache object. + (eieio-oset (aref (class-v class) class-default-object-cache) + slot value) + ))) + ;;; CLOS queries into classes and slots ;; (defun slot-boundp (object slot) From 8111f5e6f05228e36496f3bdccad711f569acb9b Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 14 Oct 2012 09:40:05 +0200 Subject: [PATCH 209/272] Adapt compile.el to changes in MSVC diagnostics format. lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): Adjust the msft regexp to the output of Studio 2010, and move msft before edg-1. See the discussion on emacs-devel, http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00579.html, for the details. etc/compilation.txt (msft): Add error messages in new Studio 2010 format. test/automated/compile-tests.el (compile-tests--test-regexps-data): Add data for msft's new format. --- etc/ChangeLog | 5 +++++ etc/compilation.txt | 7 +++++++ lisp/ChangeLog | 8 ++++++++ lisp/progmodes/compile.el | 9 +++++++++ test/ChangeLog | 5 +++++ test/automated/compile-tests.el | 4 ++++ 6 files changed, 38 insertions(+) diff --git a/etc/ChangeLog b/etc/ChangeLog index 2bfae3696c5..0a1a5b8b8b7 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,3 +1,8 @@ +2012-10-14 Eli Zaretskii + + * compilation.txt (msft): Add error messages in new Studio 2010 + format. + 2012-10-11 Kenichi Handa * charsets/CNS-2.map, charsets/CNS-3.map, charsets/CNS-4.map, diff --git a/etc/compilation.txt b/etc/compilation.txt index 269f8d23e6b..8d31847569c 100644 --- a/etc/compilation.txt +++ b/etc/compilation.txt @@ -308,6 +308,13 @@ made it more strict about the error message that follows. keyboard handler.c(537) : warning C4005: 'min' : macro redefinition d:\tmp\test.c(23) : error C2143: syntax error : missing ';' before 'if' d:\tmp\test.c(1145) : see declaration of 'nsRefPtr' +1>test_main.cpp(29): error C2144: syntax error : 'int' should be preceded by ';' +1>test_main.cpp(29): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int +1> +1>Build FAILED. +1> +1>Time Elapsed 00:00:01.46 +========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== * Open Watcom diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a31d474d8a3..7393bbc2845 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2012-10-14 Eli Zaretskii + + * progmodes/compile.el (compilation-error-regexp-alist-alist): + Adjust the msft regexp to the output of Studio 2010, and move msft + before edg-1. See the discussion on emacs-devel, + http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00579.html, + for the details. + 2012-10-14 Stefan Monnier * emacs-lisp/eieio.el (eieio-oset-default, eieio-oset, oset-default) diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 09fba380f15..10fd7a75eaa 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -171,6 +171,15 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1)) "\\(?:^cucumber\\(?: -p [^[:space:]]+\\)?\\|#\\)\ \\(?: \\)\\([^\(].*\\):\\([1-9][0-9]*\\)" 1 2) + (msft + ;; Must be before edg-1, so that MSVC's longer messages are + ;; considered before EDG. + ;; The message may be a "warning", "error", or "fatal error" with + ;; an error code, or "see declaration of" without an error code. + "^ *\\([0-9]+>\\)?\\(\\(?:[a-zA-Z]:\\)?[^:(\t\n]+\\)(\\([0-9]+\\)) ?\ +: \\(?:see declaration\\|\\(?:warnin\\(g\\)\\|[a-z ]+\\) C[0-9]+:\\)" + 2 3 nil (4)) + (edg-1 "^\\([^ \n]+\\)(\\([0-9]+\\)): \\(?:error\\|warnin\\(g\\)\\|remar\\(k\\)\\)" 1 2 nil (3 . 4)) diff --git a/test/ChangeLog b/test/ChangeLog index a7e22aa9ae1..72b44747bac 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,8 @@ +2012-10-14 Eli Zaretskii + + * automated/compile-tests.el (compile-tests--test-regexps-data): + Add new data for msft's new format. + 2012-09-08 Dmitry Gutov * automated/ruby-mode-tests.el: diff --git a/test/automated/compile-tests.el b/test/automated/compile-tests.el index ecd0e8856f7..9415ee3a17e 100644 --- a/test/automated/compile-tests.el +++ b/test/automated/compile-tests.el @@ -215,6 +215,10 @@ 1 nil 23 "d:\\tmp\\test.c") ("d:\\tmp\\test.c(1145) : see declaration of 'nsRefPtr'" 1 nil 1145 "d:\\tmp\\test.c") + ("1>test_main.cpp(29): error C2144: syntax error : 'int' should be preceded by ';'" + 3 nil 29 "test_main.cpp") + ("1>test_main.cpp(29): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int" + 3 nil 29 "test_main.cpp") ;; watcom ("..\src\ctrl\lister.c(109): Error! E1009: Expecting ';' but found '{'" 1 nil 109 "..\src\ctrl\lister.c") From f5772b8eaee90d0b50a60bd55d9d28805a2543cb Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Sun, 14 Oct 2012 17:01:30 +0900 Subject: [PATCH 210/272] Add more mappings for the charset japanese-jisx0208-1978. --- admin/ChangeLog | 4 ++++ admin/charsets/Makefile | 14 ++++++++++++-- etc/ChangeLog | 4 ++++ etc/charsets/JISC6226.map | 7 ++++++- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/admin/ChangeLog b/admin/ChangeLog index ca2ebbdfa06..e21293d618d 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,7 @@ +2012-10-12 Kenichi Handa + + * charsets/Makefile (JISC6226.map): Add missing mappings. + 2012-10-11 Kenichi Handa * charsets/mapconv: Adjusted for the change of mapfiles/*.gz to diff --git a/admin/charsets/Makefile b/admin/charsets/Makefile index 91f541979da..e5cf2508d85 100644 --- a/admin/charsets/Makefile +++ b/admin/charsets/Makefile @@ -197,9 +197,19 @@ cp51932.el: CP932-2BYTE.map cp51932.awk eucjp-ms.el: ${GLIBC_CHARMAPS}/EUC-JP-MS.gz eucjp-ms.awk @zcat $< | $(AWK) -f eucjp-ms.awk > $@ -JISC6226.map : mapfiles/Uni2JIS mapconv kuten.awk +JISC6226.map: mapfiles/Uni2JIS mapconv kuten.awk # Generating $@... - @./mapconv $< '/^[^#].*0-/' YASUOKA kuten.awk > $@ +# As Uni2JIS doesn't contain mappings of characters added to Unicode +# recently, we add them manually here (including one correction for +# U+005C vs U+FF3C). These changes are based on bogytech's blog at +# http://bogytech.blogspot.jp/search/label/emacs. + @./mapconv $< '/^[^#].*0-/' YASUOKA kuten.awk \ + | sed -e '/0x2140/s/005C/FF3C/' \ + -e '$$ a 0x3442 0x3D4E' \ + -e '$$ a 0x374E 0x25874' \ + -e '$$ a 0x3764 0x28EF6' \ + -e '$$ a 0x513D 0x2F80F' \ + -e '$$ a 0x7045 0x9724' > $@ KSC5601.map: ${GLIBC_CHARMAPS}/EUC-KR.gz mapconv compact.awk # Generating $@... diff --git a/etc/ChangeLog b/etc/ChangeLog index 2bfae3696c5..27237ca0f61 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,3 +1,7 @@ +2012-10-14 Kenichi Handa + + * charsets/JISC6226.map: Re-generated. + 2012-10-11 Kenichi Handa * charsets/CNS-2.map, charsets/CNS-3.map, charsets/CNS-4.map, diff --git a/etc/charsets/JISC6226.map b/etc/charsets/JISC6226.map index cba6df50b75..953867f72db 100644 --- a/etc/charsets/JISC6226.map +++ b/etc/charsets/JISC6226.map @@ -31,7 +31,7 @@ 0x213D 0x2014 0x213E 0x2010 0x213F 0xFF0F -0x2140 0x005C +0x2140 0xFF3C 0x2141 0x301C 0x2142 0x2016 0x2143 0xFF5C @@ -6797,3 +6797,8 @@ 0x737C 0x9F95 0x737D 0x9F9C 0x737E 0x9FA0 +0x3442 0x3D4E +0x374E 0x25874 +0x3764 0x28EF6 +0x513D 0x2F80F +0x7045 0x9724 From 7b9abf24ee3fa39a2f0dc2cf186737216cffc6ad Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 14 Oct 2012 19:07:00 +0200 Subject: [PATCH 211/272] lisp/window.el (display-buffer): Doc fix. --- lisp/ChangeLog | 2 ++ lisp/window.el | 22 ++++++++++++++-------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7393bbc2845..a14217358dc 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,7 @@ 2012-10-14 Eli Zaretskii + * window.el (display-buffer): Doc fix. + * progmodes/compile.el (compilation-error-regexp-alist-alist): Adjust the msft regexp to the output of Studio 2010, and move msft before edg-1. See the discussion on emacs-devel, diff --git a/lisp/window.el b/lisp/window.el index b033f9c26e3..a17e0adcdfe 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -5361,8 +5361,16 @@ BUFFER-OR-NAME must be a buffer or the name of an existing buffer. Return the window chosen for displaying BUFFER-OR-NAME, or nil if no such window is found. -Optional argument ACTION should have the form (FUNCTION . ALIST). -FUNCTION is either a function or a list of functions. +Optional argument ACTION, if non-nil, should specify a display +action. Its form is described below. + +Optional argument FRAME, if non-nil, acts like an additional +ALIST entry (reusable-frames . FRAME) to the action list of ACTION, +specifying the frame(s) to search for a window that is already +displaying the buffer. See `display-buffer-reuse-window' + +If ACTION is non-nil, it should have the form (FUNCTION . ALIST), +where FUNCTION is either a function or a list of functions, and ALIST is an arbitrary association list (alist). Each such FUNCTION should accept two arguments: the buffer to @@ -5379,6 +5387,9 @@ function in the combined function list in turn, passing the buffer as the first argument and the combined alist as the second argument, until one of the functions returns non-nil. +If ACTION is nil, the function list and the alist are built using +only the other variables mentioned above. + Available action functions include: `display-buffer-same-window' `display-buffer-reuse-window' @@ -5407,12 +5418,7 @@ The ACTION argument to `display-buffer' can also have a non-nil and non-list value. This means to display the buffer in a window other than the selected one, even if it is already displayed in the selected window. If called interactively with a prefix -argument, ACTION is t. - -Optional argument FRAME, if non-nil, acts like an additional -ALIST entry (reusable-frames . FRAME), specifying the frame(s) to -search for a window that is already displaying the buffer. See -`display-buffer-reuse-window'." +argument, ACTION is t." (interactive (list (read-buffer "Display buffer: " (other-buffer)) (if current-prefix-arg t))) (let ((buffer (if (bufferp buffer-or-name) From a36fb15e087568aa9aa304bf2bf53d09b6b1894c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Sun, 14 Oct 2012 20:28:48 +0200 Subject: [PATCH 212/272] * nsterm.m (ns_select): Count fd:s in writefs also. Fixes: debbugs:12422 --- src/ChangeLog | 4 ++++ src/nsterm.m | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 346fe0e86b3..0b3d02f75ac 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-14 Jan Djärv + + * nsterm.m (ns_select): Count fd:s in writefs also (Bug#12422). + 2012-10-13 Jan Djärv * gtkutil.c (xg_set_widget_bg): Divide by 65535 (Bug#12612). diff --git a/src/nsterm.m b/src/nsterm.m index 98dd0a8aab1..dfc84db50f7 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -3444,7 +3444,10 @@ overwriting cursor (usually when cursor on a tab) */ /* NSTRACE (ns_select); */ for (k = 0; readfds && k < nfds+1; k++) - if (FD_ISSET(k, readfds)) ++nr; + { + if (FD_ISSET(k, readfds)) ++nr; + if (FD_ISSET(k, writefds)) ++nr; + } if (NSApp == nil || (timeout && timeout->tv_sec == 0 && timeout->tv_nsec == 0)) From bf659b3f5819b9c3664c08fb01a7e51efff01fe4 Mon Sep 17 00:00:00 2001 From: David Engster Date: Sun, 14 Oct 2012 21:20:28 +0200 Subject: [PATCH 213/272] Merge changes from CEDET upstream. * semantic.el (semantic-error-if-unparsed): New function. Raise error if buffer was not parsed by Semantic (bug #12045). (navigate-menu, edit-menu, cedet-menu-map): Enable Semantic items only if buffer was parsed. Also, replace ':active' with ':enable' where necessary. * semantic/wisent/python.el (semantic-python-get-system-include-path): Use `python-shell-internal-send-string' if available to query Python for system paths. * semantic/senator.el (senator-next-tag): (senator-previous-tag): (senator-go-to-up-reference): Use `semantic-error-if-unparsed'. * semantic/complete.el (semantic-complete-jump-local): (semantic-complete-jump): (semantic-complete-jump-local-members): (semantic-complete-self-insert): Use `semantic-error-if-unparsed'. (semantic-complete-inline-project): Fix autoload cookie. * semantic/analyze/complete.el (semantic-analyze-possible-completions): Check if buffer was parsed. Only raise an error if function was called interactively, otherwise silently return nil. * cedet.el (cedet-menu-map): Fix copy&paste typo in menu creation. --- lisp/cedet/ChangeLog | 30 ++++++++++++++++++++ lisp/cedet/cedet.el | 2 +- lisp/cedet/semantic.el | 37 +++++++++++++++++++------ lisp/cedet/semantic/analyze/complete.el | 33 ++++++++++++---------- lisp/cedet/semantic/complete.el | 5 +++- lisp/cedet/semantic/senator.el | 3 ++ lisp/cedet/semantic/wisent/python.el | 27 ++++++------------ 7 files changed, 95 insertions(+), 42 deletions(-) diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog index 0aeeeebc562..754bde475ad 100644 --- a/lisp/cedet/ChangeLog +++ b/lisp/cedet/ChangeLog @@ -1,3 +1,33 @@ +2012-10-14 David Engster + + * semantic.el (semantic-error-if-unparsed): New function. Raise + error if buffer was not parsed by Semantic (bug #12045). + (navigate-menu, edit-menu, cedet-menu-map): Enable Semantic items + only if buffer was parsed. Also, replace ':active' with ':enable' + where necessary. + + * semantic/wisent/python.el + (semantic-python-get-system-include-path): Use + `python-shell-internal-send-string' if available to query Python + for system paths. + + * semantic/senator.el (senator-next-tag): + (senator-previous-tag): + (senator-go-to-up-reference): Use `semantic-error-if-unparsed'. + + * semantic/complete.el (semantic-complete-jump-local): + (semantic-complete-jump): + (semantic-complete-jump-local-members): + (semantic-complete-self-insert): Use `semantic-error-if-unparsed'. + (semantic-complete-inline-project): Fix autoload cookie. + + * semantic/analyze/complete.el + (semantic-analyze-possible-completions): Check if buffer was + parsed. Only raise an error if function was called interactively, + otherwise silently return nil. + + * cedet.el (cedet-menu-map): Fix copy&paste typo in menu creation. + 2012-10-07 David Engster * semantic/wisent/python.el (semantic-ctxt-current-function) diff --git a/lisp/cedet/cedet.el b/lisp/cedet/cedet.el index 5c21e4ab538..327a72f9dc7 100644 --- a/lisp/cedet/cedet.el +++ b/lisp/cedet/cedet.el @@ -59,7 +59,7 @@ (define-key map [navigate-menu] 'undefined) (define-key map [semantic-options-separator] 'undefined) (define-key map [global-semantic-highlight-func-mode] 'undefined) - (define-key map [global-semantic-highlight-func-mode] 'undefined) + (define-key map [global-semantic-stickyfunc-mode] 'undefined) (define-key map [global-semantic-decoration-mode] 'undefined) (define-key map [global-semantic-idle-completions-mode] 'undefined) (define-key map [global-semantic-idle-summary-mode] 'undefined) diff --git a/lisp/cedet/semantic.el b/lisp/cedet/semantic.el index e02790cbfa8..373864a43d5 100644 --- a/lisp/cedet/semantic.el +++ b/lisp/cedet/semantic.el @@ -319,6 +319,11 @@ a parse of the buffer.") "Return non-nil if the current buffer was set up for parsing." semantic-new-buffer-fcn-was-run) +(defsubst semantic-error-if-unparsed () + "Raise an error if current buffer was not parsed by Semantic." + (unless semantic-new-buffer-fcn-was-run + (error "Buffer was not parsed by Semantic."))) + (defsubst semantic--umatched-syntax-needs-refresh-p () "Return non-nil if the unmatched syntax cache needs a refresh. That is, if it is dirty or if the current parse tree isn't up to date." @@ -907,75 +912,91 @@ Throw away all the old tags, and recreate the tag database." ;; Edit Tags submenu: (define-key edit-menu [semantic-analyze-possible-completions] '(menu-item "List Completions" semantic-analyze-possible-completions + :enable (semantic-active-p) :help "Display a list of completions for the tag at point")) (define-key edit-menu [semantic-complete-analyze-inline] '(menu-item "Complete Tag Inline" semantic-complete-analyze-inline + :enable (semantic-active-p) :help "Display inline completion for the tag at point")) (define-key edit-menu [semantic-completion-separator] '("--")) (define-key edit-menu [senator-transpose-tags-down] '(menu-item "Transpose Tags Down" senator-transpose-tags-down - :active (semantic-current-tag) + :enable (and (semantic-active-p) + (semantic-current-tag)) :help "Transpose the current tag and the next tag")) (define-key edit-menu [senator-transpose-tags-up] '(menu-item "Transpose Tags Up" senator-transpose-tags-up - :active (semantic-current-tag) + :enable (and (semantic-active-p) + (semantic-current-tag)) :help "Transpose the current tag and the previous tag")) (define-key edit-menu [semantic-edit-separator] '("--")) (define-key edit-menu [senator-yank-tag] '(menu-item "Yank Tag" senator-yank-tag - :active (not (ring-empty-p senator-tag-ring)) + :enable (not (ring-empty-p senator-tag-ring)) :help "Yank the head of the tag ring into the buffer")) (define-key edit-menu [senator-copy-tag-to-register] '(menu-item "Copy Tag To Register" senator-copy-tag-to-register - :active (semantic-current-tag) + :enable (and (semantic-active-p) + (semantic-current-tag)) :help "Yank the head of the tag ring into the buffer")) (define-key edit-menu [senator-copy-tag] '(menu-item "Copy Tag" senator-copy-tag - :active (semantic-current-tag) + :enable (and (semantic-active-p) + (semantic-current-tag)) :help "Copy the current tag to the tag ring")) (define-key edit-menu [senator-kill-tag] '(menu-item "Kill Tag" senator-kill-tag - :active (semantic-current-tag) + :enable (and (semantic-active-p) + (semantic-current-tag)) :help "Kill the current tag, and copy it to the tag ring")) ;; Navigate Tags submenu: (define-key navigate-menu [senator-narrow-to-defun] '(menu-item "Narrow to Tag" senator-narrow-to-defun - :active (semantic-current-tag) + :enable (and (semantic-active-p) + (semantic-current-tag)) :help "Narrow the buffer to the bounds of the current tag")) (define-key navigate-menu [semantic-narrow-to-defun-separator] '("--")) (define-key navigate-menu [semantic-symref-symbol] '(menu-item "Find Tag References..." semantic-symref-symbol + :enable (semantic-active-p) :help "Read a tag and list the references to it")) (define-key navigate-menu [semantic-complete-jump] '(menu-item "Find Tag Globally..." semantic-complete-jump + :enable (semantic-active-p) :help "Read a tag name and find it in the current project")) (define-key navigate-menu [semantic-complete-jump-local-members] '(menu-item "Find Local Members ..." semantic-complete-jump-local-members + :enable (semantic-active-p) :help "Read a tag name and find a local member with that name")) (define-key navigate-menu [semantic-complete-jump-local] '(menu-item "Find Tag in This Buffer..." semantic-complete-jump-local + :enable (semantic-active-p) :help "Read a tag name and find it in this buffer")) (define-key navigate-menu [semantic-navigation-separator] '("--")) (define-key navigate-menu [senator-go-to-up-reference] '(menu-item "Parent Tag" senator-go-to-up-reference + :enable (semantic-active-p) :help "Navigate up one reference by tag")) (define-key navigate-menu [senator-next-tag] '(menu-item "Next Tag" senator-next-tag + :enable (semantic-active-p) :help "Go to the next tag")) (define-key navigate-menu [senator-previous-tag] '(menu-item "Previous Tag" senator-previous-tag + :enable (semantic-active-p) :help "Go to the previous tag")) ;; Top level menu items: (define-key cedet-menu-map [semantic-force-refresh] '(menu-item "Reparse Buffer" semantic-force-refresh :help "Force a full reparse of the current buffer" - :visible semantic-mode)) + :visible semantic-mode + :enable (semantic-active-p))) (define-key cedet-menu-map [semantic-edit-menu] `(menu-item "Edit Tags" ,edit-menu :visible semantic-mode)) diff --git a/lisp/cedet/semantic/analyze/complete.el b/lisp/cedet/semantic/analyze/complete.el index edc3cdc230c..bb9bbf6352f 100644 --- a/lisp/cedet/semantic/analyze/complete.el +++ b/lisp/cedet/semantic/analyze/complete.el @@ -87,20 +87,25 @@ in a buffer." ;; In theory, we don't need the below since the context will ;; do it for us. ;;(semantic-refresh-tags-safe) - (with-syntax-table semantic-lex-syntax-table - (let* ((context (if (semantic-analyze-context-child-p context) - context - (semantic-analyze-current-context context))) - (ans (if (not context) - (error "Nothing to complete") - (:override)))) - ;; If interactive, display them. - (when (called-interactively-p 'any) - (with-output-to-temp-buffer "*Possible Completions*" - (semantic-analyze-princ-sequence ans "" (current-buffer))) - (shrink-window-if-larger-than-buffer - (get-buffer-window "*Possible Completions*"))) - ans))) + (if (semantic-active-p) + (with-syntax-table semantic-lex-syntax-table + (let* ((context (if (semantic-analyze-context-child-p context) + context + (semantic-analyze-current-context context))) + (ans (if (not context) + (error "Nothing to complete") + (:override)))) + ;; If interactive, display them. + (when (called-interactively-p 'any) + (with-output-to-temp-buffer "*Possible Completions*" + (semantic-analyze-princ-sequence ans "" (current-buffer))) + (shrink-window-if-larger-than-buffer + (get-buffer-window "*Possible Completions*"))) + ans)) + ;; Buffer was not parsed by Semantic. + ;; Raise error if called interactively. + (when (cedet-called-interactively-p 'any) + (error "Buffer was not parsed by Semantic.")))) (defun semantic-analyze-possible-completions-default (context &optional flags) "Default method for producing smart completions. diff --git a/lisp/cedet/semantic/complete.el b/lisp/cedet/semantic/complete.el index 9c2da9faefa..59d17f2f8bb 100644 --- a/lisp/cedet/semantic/complete.el +++ b/lisp/cedet/semantic/complete.el @@ -2088,6 +2088,7 @@ completion works." (defun semantic-complete-jump-local () "Jump to a local semantic symbol." (interactive) + (semantic-error-if-unparsed) (let ((tag (semantic-complete-read-tag-buffer-deep "Jump to symbol: "))) (when (semantic-tag-p tag) (push-mark) @@ -2101,6 +2102,7 @@ completion works." (defun semantic-complete-jump () "Jump to a semantic symbol." (interactive) + (semantic-error-if-unparsed) (let* ((tag (semantic-complete-read-tag-project "Jump to symbol: "))) (when (semantic-tag-p tag) (push-mark) @@ -2115,6 +2117,7 @@ completion works." (defun semantic-complete-jump-local-members () "Jump to a semantic symbol." (interactive) + (semantic-error-if-unparsed) (let* ((tag (semantic-complete-read-tag-local-members "Jump to symbol: "))) (when (semantic-tag-p tag) (let ((start (condition-case nil (semantic-tag-start tag) @@ -2216,7 +2219,7 @@ use `semantic-complete-analyze-inline' to complete." (error nil)) )) -;;;;###autoload +;;;###autoload (defun semantic-complete-inline-project () "Perform inline completion for any symbol in the current project. `semantic-analyze-possible-completions' is used to determine the diff --git a/lisp/cedet/semantic/senator.el b/lisp/cedet/semantic/senator.el index 64f99a8ad6f..1138c13096a 100644 --- a/lisp/cedet/semantic/senator.el +++ b/lisp/cedet/semantic/senator.el @@ -255,6 +255,7 @@ TEXT, BOUND, NOERROR, and COUNT arguments are interpreted." "Navigate to the next Semantic tag. Return the tag or nil if at end of buffer." (interactive) + (semantic-error-if-unparsed) (let ((pos (point)) (tag (semantic-current-tag)) where) @@ -294,6 +295,7 @@ Return the tag or nil if at end of buffer." "Navigate to the previous Semantic tag. Return the tag or nil if at beginning of buffer." (interactive) + (semantic-error-if-unparsed) (let ((pos (point)) (tag (semantic-current-tag)) where) @@ -519,6 +521,7 @@ If that parent which is only a reference in the function tag is found, we can jump to it. Some tags such as includes have other reference features." (interactive) + (semantic-error-if-unparsed) (let ((result (semantic-up-reference (or tag (semantic-current-tag))))) (if (not result) (error "No up reference found") diff --git a/lisp/cedet/semantic/wisent/python.el b/lisp/cedet/semantic/wisent/python.el index a0ea488f0fe..89c0499b7da 100644 --- a/lisp/cedet/semantic/wisent/python.el +++ b/lisp/cedet/semantic/wisent/python.el @@ -48,24 +48,15 @@ (defun semantic-python-get-system-include-path () "Evaluate some Python code that determines the system include path." - (python-proc) - (if python-buffer - (with-current-buffer python-buffer - (set (make-local-variable 'python-preoutput-result) nil) - (python-send-string - "import sys; print '_emacs_out ' + '\\0'.join(sys.path)") - (accept-process-output (python-proc) 2) - (if python-preoutput-result - (split-string python-preoutput-result "[\0\n]" t) - ;; Try a second, Python3k compatible shot - (python-send-string - "import sys; print('_emacs_out ' + '\\0'.join(sys.path))") - (accept-process-output (python-proc) 2) - (if python-preoutput-result - (split-string python-preoutput-result "[\0\n]" t) - (message "Timeout while querying Python for system include path.") - nil))) - (message "Python seems to be unavailable on this system."))) + (delq nil + (mapcar + (lambda (dir) + (when (file-directory-p dir) + dir)) + (split-string + (python-shell-internal-send-string + "import sys;print ('\\n'.join(sys.path))") + "\n" t)))) (defcustom-mode-local-semantic-dependency-system-include-path python-mode semantic-python-dependency-system-include-path From 1a9653aa8c2d31d5951345643944f7e2a8df8ca2 Mon Sep 17 00:00:00 2001 From: David Engster Date: Sun, 14 Oct 2012 21:31:45 +0200 Subject: [PATCH 214/272] Fix last commit. (semantic-analyze-possible-completions): Replace CEDET compatibility function `cedet-called-interactively-p' with `called-interactively-p'. --- lisp/cedet/semantic/analyze/complete.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/cedet/semantic/analyze/complete.el b/lisp/cedet/semantic/analyze/complete.el index bb9bbf6352f..a83f4ff0ac8 100644 --- a/lisp/cedet/semantic/analyze/complete.el +++ b/lisp/cedet/semantic/analyze/complete.el @@ -104,7 +104,7 @@ in a buffer." ans)) ;; Buffer was not parsed by Semantic. ;; Raise error if called interactively. - (when (cedet-called-interactively-p 'any) + (when (called-interactively-p 'any) (error "Buffer was not parsed by Semantic.")))) (defun semantic-analyze-possible-completions-default (context &optional flags) From 33d4113cf5da783b5b1ab559587640f39a0831dc Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Sun, 14 Oct 2012 15:25:37 -0800 Subject: [PATCH 215/272] * image.c (init_tiff_functions, init_imagemagick_functions) (init_svg_functions): Fix cygw32 build break by using these functions only when WINDOWSNT _and_ HAVE_NTGUI. --- src/ChangeLog | 6 ++++++ src/image.c | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 0b3d02f75ac..bb7ddcfd39e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2012-10-14 Daniel Colascione + + * image.c (init_tiff_functions, init_imagemagick_functions) + (init_svg_functions): Fix cygw32 build break by using these + functions only when WINDOWSNT _and_ HAVE_NTGUI. + 2012-10-14 Jan Djärv * nsterm.m (ns_select): Count fd:s in writefs also (Bug#12422). diff --git a/src/image.c b/src/image.c index d52c3a29a27..538ae2b7772 100644 --- a/src/image.c +++ b/src/image.c @@ -6577,7 +6577,7 @@ static const struct image_keyword tiff_format[TIFF_LAST] = {":index", IMAGE_NON_NEGATIVE_INTEGER_VALUE, 0} }; -#ifdef HAVE_NTGUI +#if defined HAVE_NTGUI && defined WINDOWSNT static bool init_tiff_functions (void); #else #define init_tiff_functions NULL @@ -7529,7 +7529,7 @@ static struct image_keyword imagemagick_format[IMAGEMAGICK_LAST] = {":crop", IMAGE_DONT_CHECK_VALUE_TYPE, 0} }; -#ifdef HAVE_NTGUI +#if defined HAVE_NTGUI && defined WINDOWSNT static bool init_imagemagick_functions (void); #else #define init_imagemagick_functions NULL @@ -8083,7 +8083,7 @@ static const struct image_keyword svg_format[SVG_LAST] = {":background", IMAGE_STRING_OR_NIL_VALUE, 0} }; -#ifdef HAVE_NTGUI +#if defined HAVE_NTGUI && defined WINDOWSNT static bool init_svg_functions (void); #else #define init_svg_functions NULL From 3e0341b0a481d833942f3964a70e7f3494588ce6 Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Sun, 14 Oct 2012 17:38:07 -0800 Subject: [PATCH 216/272] Fix cygw32 build break with dbus compilation --- src/ChangeLog | 6 ++++++ src/dbusbind.c | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index bb7ddcfd39e..e142cad7bf6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2012-10-15 Daniel Colascione + + * dbusbind.c: Fix cygw32 build break when compiling with dbus + enabled by undefining the symbol "interface", which the platform + headers define to something incompatible. + 2012-10-14 Daniel Colascione * image.c (init_tiff_functions, init_imagemagick_functions) diff --git a/src/dbusbind.c b/src/dbusbind.c index c2eefd605bb..43938bb79d5 100644 --- a/src/dbusbind.c +++ b/src/dbusbind.c @@ -32,6 +32,10 @@ along with GNU Emacs. If not, see . */ #define DBUS_NUM_MESSAGE_TYPES 5 #endif +#ifdef interface +#undef interface +#endif + /* Subroutines. */ static Lisp_Object Qdbus_init_bus; From d18a0d2460cbcf73f9bd136912006fc0c11f55e0 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Mon, 15 Oct 2012 12:03:04 +0800 Subject: [PATCH 217/272] More documentation fixes for changes to defun, defmacro, etc. * doc/lispref/functions.texi (Anonymous Functions): Explicitly list the docstring, declare, and interactive arguments to lambda. (Defining Functions): Likewise for defun. (Inline Functions): Likewise for defsubst. (Declare Form): Tweak description. * doc/lispref/macros.texi (Defining Macros): defmacro is now a macro. Explicitly list the docstring and declare arguments. * emacs-lisp/byte-run.el (defsubst): Doc fix. --- doc/lispref/ChangeLog | 11 +++++ doc/lispref/functions.texi | 81 ++++++++++++++++++------------------- doc/lispref/macros.texi | 45 +++++++++++---------- lisp/ChangeLog | 4 ++ lisp/emacs-lisp/byte-run.el | 3 +- 5 files changed, 81 insertions(+), 63 deletions(-) diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 40c457ffe07..acf6f8a51ff 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,14 @@ +2012-10-15 Chong Yidong + + * macros.texi (Defining Macros): defmacro is now a macro. + Explicitly list the docstring and declare arguments. + + * functions.texi (Anonymous Functions): Explicitly list the + docstring, declare, and interactive arguments to lambda. + (Defining Functions): Likewise for defun. + (Inline Functions): Likewise for defsubst. + (Declare Form): Tweak description. + 2012-10-13 Chong Yidong * display.texi (ImageMagick Images): ImageMagick enabled by default. diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index 845561f91ec..c94e46dad18 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi @@ -522,21 +522,20 @@ Scheme.) is called @dfn{defining a function}, and it is done with the @code{defun} special form. -@defmac defun name argument-list body-forms... +@defmac defun name args [doc] [declare] [interactive] body@dots{} @code{defun} is the usual way to define new Lisp functions. It -defines the symbol @var{name} as a function that looks like this: +defines the symbol @var{name} as a function with argument list +@var{args} and body forms given by @var{body}. Neither @var{name} nor +@var{args} should be quoted. -@example -(lambda @var{argument-list} . @var{body-forms}) -@end example +@var{doc}, if present, should be a string specifying the function's +documentation string (@pxref{Function Documentation}). @var{declare}, +if present, should be a @code{declare} form specifying function +metadata (@pxref{Declare Form}). @var{interactive}, if present, +should be an @code{interactive} form specifying how the function is to +be called interactively (@pxref{Interactive Call}). -@code{defun} stores this lambda expression in the function cell of -@var{name}. Its return value is @emph{undefined}. - -As described previously, @var{argument-list} is a list of argument -names and may include the keywords @code{&optional} and @code{&rest}. -Also, the first two of the @var{body-forms} may be a documentation -string and an interactive declaration. @xref{Lambda Components}. +The return value of @code{defun} is undefined. Here are some examples: @@ -582,14 +581,14 @@ redefinition from unintentional redefinition. @end defmac @cindex function aliases -@defun defalias name definition &optional docstring +@defun defalias name definition &optional doc @anchor{Definition of defalias} This special form defines the symbol @var{name} as a function, with definition @var{definition} (which can be any valid Lisp function). Its return value is @emph{undefined}. -If @var{docstring} is non-@code{nil}, it becomes the function -documentation of @var{name}. Otherwise, any documentation provided by +If @var{doc} is non-@code{nil}, it becomes the function documentation +of @var{name}. Otherwise, any documentation provided by @var{definition} is used. The proper place to use @code{defalias} is where a specific function @@ -902,11 +901,14 @@ function, you can in principle use any method to construct the list. But typically you should use the @code{lambda} macro, or the @code{function} special form, or the @code{#'} read syntax: -@defmac lambda args body... -This macro returns an anonymous function with argument list @var{args} -and body forms given by @var{body}. In effect, this macro makes -@code{lambda} forms ``self-quoting'': evaluating a form whose @sc{car} -is @code{lambda} yields the form itself: +@defmac lambda args [doc] [interactive] body@dots{} +This macro returns an anonymous function with argument list +@var{args}, documentation string @var{doc} (if any), interactive spec +@var{interactive} (if any), and body forms given by @var{body}. + +In effect, this macro makes @code{lambda} forms ``self-quoting'': +evaluating a form whose @sc{car} is @code{lambda} yields the form +itself: @example (lambda (x) (* x x)) @@ -1169,13 +1171,13 @@ If provided, @var{when} should be a string indicating when the function was first made obsolete---for example, a date or a release number. @end defun -@defmac define-obsolete-function-alias obsolete-name current-name &optional when docstring +@defmac define-obsolete-function-alias obsolete-name current-name &optional when doc This convenience macro marks the function @var{obsolete-name} obsolete and also defines it as an alias for the function @var{current-name}. It is equivalent to the following: @example -(defalias @var{obsolete-name} @var{current-name} @var{docstring}) +(defalias @var{obsolete-name} @var{current-name} @var{doc}) (make-obsolete @var{obsolete-name} @var{current-name} @var{when}) @end example @end defmac @@ -1213,16 +1215,16 @@ this: @section Inline Functions @cindex inline functions -@defmac defsubst name argument-list body-forms... -Define an inline function. The syntax is exactly the same as -@code{defun} (@pxref{Defining Functions}). -@end defmac - - You can define an @dfn{inline function} by using @code{defsubst} -instead of @code{defun}. An inline function works just like an -ordinary function except for one thing: when you byte-compile a call + An @dfn{inline function} is a function that works just like an +ordinary function, except for one thing: when you byte-compile a call to the function (@pxref{Byte Compilation}), the function's definition -is expanded into the caller. +is expanded into the caller. To define an inline function, use +@code{defsubst} instead of @code{defun}. + +@defmac defsubst name args [doc] [declare] [interactive] body@dots{} +This macro defines an inline function. Its syntax is exactly the same +as @code{defun} (@pxref{Defining Functions}). +@end defmac Making a function inline often makes its function calls run faster. But it also has disadvantages. For one thing, it reduces flexibility; @@ -1266,16 +1268,13 @@ convention in Emacs Lisp mode. @anchor{Definition of declare} @defmac declare @var{specs}@dots{} This macro ignores its arguments and evaluates to @code{nil}; it has -no run-time effect. However, when a @code{declare} form occurs as the -@emph{very first form} in the body of a @code{defun} function -definition or a @code{defmacro} macro definition (@pxref{Defining -Macros}, for a description of @code{defmacro}), it appends the -properties specified by @var{specs} to the function or macro. This -work is specially performed by the @code{defun} and @code{defmacro} -macros. - -Note that if you put a @code{declare} form in an interactive function, -it should go before the @code{interactive} form. +no run-time effect. However, when a @code{declare} form occurs in the +@var{declare} argument of a @code{defun} or @code{defsubst} function +definition (@pxref{Defining Functions}) or a @code{defmacro} macro +definition (@pxref{Defining Macros}), it appends the properties +specified by @var{specs} to the function or macro. This work is +specially performed by @code{defun}, @code{defsubst}, and +@code{defmacro}. Each element in @var{specs} should have the form @code{(@var{property} @var{args}@dots{})}, which should not be quoted. These have the diff --git a/doc/lispref/macros.texi b/doc/lispref/macros.texi index 0a5152a43a1..8be6a3fbcde 100644 --- a/doc/lispref/macros.texi +++ b/doc/lispref/macros.texi @@ -185,35 +185,38 @@ During Compile}). @node Defining Macros @section Defining Macros - A Lisp macro is a list whose @sc{car} is @code{macro}. Its @sc{cdr} should -be a function; expansion of the macro works by applying the function -(with @code{apply}) to the list of unevaluated argument-expressions -from the macro call. + A Lisp macro object is a list whose @sc{car} is @code{macro}, and +whose @sc{cdr} is a lambda expression. Expansion of the macro works +by applying the lambda expression (with @code{apply}) to the list of +@emph{unevaluated} arguments from the macro call. It is possible to use an anonymous Lisp macro just like an anonymous -function, but this is never done, because it does not make sense to pass -an anonymous macro to functionals such as @code{mapcar}. In practice, -all Lisp macros have names, and they are usually defined with the -special form @code{defmacro}. +function, but this is never done, because it does not make sense to +pass an anonymous macro to functionals such as @code{mapcar}. In +practice, all Lisp macros have names, and they are almost always +defined with the @code{defmacro} macro. -@defspec defmacro name argument-list body-forms@dots{} -@code{defmacro} defines the symbol @var{name} as a macro that looks -like this: +@defmac defmacro name args [doc] [declare] body@dots{} +@code{defmacro} defines the symbol @var{name} (which should not be +quoted) as a macro that looks like this: @example -(macro lambda @var{argument-list} . @var{body-forms}) +(macro lambda @var{args} . @var{body}) @end example -(Note that the @sc{cdr} of this list is a function---a lambda expression.) -This macro object is stored in the function cell of @var{name}. Its return -value is @emph{undefined}. +(Note that the @sc{cdr} of this list is a lambda expression.) This +macro object is stored in the function cell of @var{name}. The +meaning of @var{args} is the same as in a function, and the keywords +@code{&rest} and @code{&optional} may be used (@pxref{Argument List}). +Neither @var{name} nor @var{args} should be quoted. The return value +of @code{defmacro} is undefined. -The shape and meaning of @var{argument-list} is the same as in a -function, and the keywords @code{&rest} and @code{&optional} may be used -(@pxref{Argument List}). Macros may have a documentation string, but -any @code{interactive} declaration is ignored since macros cannot be -called interactively. -@end defspec +@var{doc}, if present, should be a string specifying the macro's +documentation string. @var{declare}, if present, should be a +@code{declare} form specifying metadata for the macro (@pxref{Declare +Form}). Note that macros cannot have interactive declarations, since +they cannot be called interactively. +@end defmac Macros often need to construct large list structures from a mixture of constants and nonconstant parts. To make this easier, use the diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a14217358dc..96f859ec603 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-10-15 Chong Yidong + + * emacs-lisp/byte-run.el (defsubst): Doc fix. + 2012-10-14 Eli Zaretskii * window.el (display-buffer): Doc fix. diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el index d740574f1e4..462b4a25154 100644 --- a/lisp/emacs-lisp/byte-run.el +++ b/lisp/emacs-lisp/byte-run.el @@ -232,7 +232,8 @@ The return value is undefined. ;; fns))) (defmacro defsubst (name arglist &rest body) - "Define an inline function. The syntax is just like that of `defun'." + "Define an inline function. The syntax is just like that of `defun'. +\(fn NAME ARGLIST &optional DOCSTRING DECL &rest BODY)" (declare (debug defun) (doc-string 3)) (or (memq (get name 'byte-optimizer) '(nil byte-compile-inline-expand)) From dca778d53aad12df44dbac8f99c288fa4f9f04b2 Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Mon, 15 Oct 2012 11:03:56 +0200 Subject: [PATCH 218/272] Fix Fwindow_end's handling of cached position (Bug#12600). * window.c (Fwindow_end): Rewrite check whether cached position can be used (Bug#12600). (resize_frame_windows, grow_mini_window, shrink_mini_window): Set windows_or_buffers_changed. --- src/ChangeLog | 7 +++++++ src/window.c | 8 +++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index e142cad7bf6..6acc22a1b27 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2012-10-15 Martin Rudalics + + * window.c (Fwindow_end): Rewrite check whether cached position + can be used (Bug#12600). + (resize_frame_windows, grow_mini_window, shrink_mini_window): + Set windows_or_buffers_changed. + 2012-10-15 Daniel Colascione * dbusbind.c: Fix cygw32 build break when compiling with dbus diff --git a/src/window.c b/src/window.c index 61d2a8b073f..b4fee61cac8 100644 --- a/src/window.c +++ b/src/window.c @@ -1464,9 +1464,7 @@ if it isn't already recorded. */) #endif if (! NILP (update) - && ! (! NILP (w->window_end_valid) - && w->last_modified >= BUF_MODIFF (b) - && w->last_overlay_modified >= BUF_OVERLAY_MODIFF (b)) + && (windows_or_buffers_changed || NILP (w->window_end_valid)) && !noninteractive) { struct text_pos startp; @@ -3795,6 +3793,8 @@ resize_frame_windows (struct frame *f, int size, int horflag) (m, make_number (XINT (r->top_line) + XINT (r->total_lines))); } } + + windows_or_buffers_changed++; } @@ -4208,6 +4208,7 @@ grow_mini_window (struct window *w, int delta) w->last_modified = 0; w->last_overlay_modified = 0; + windows_or_buffers_changed++; adjust_glyphs (f); unblock_input (); } @@ -4245,6 +4246,7 @@ shrink_mini_window (struct window *w) w->last_modified = 0; w->last_overlay_modified = 0; + windows_or_buffers_changed++; adjust_glyphs (f); unblock_input (); } From 9520f2f20c77fbb2631511f9c0c8e74c5759d834 Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Mon, 15 Oct 2012 02:10:17 -0800 Subject: [PATCH 219/272] Add comment for undef of "interface" --- src/ChangeLog | 4 ++++ src/dbusbind.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index 6acc22a1b27..b822c7e6af1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-15 Daniel Colascione + + * dbusbind.c: Add comment explaining reason for previous change. + 2012-10-15 Martin Rudalics * window.c (Fwindow_end): Rewrite check whether cached position diff --git a/src/dbusbind.c b/src/dbusbind.c index 43938bb79d5..08f34f47042 100644 --- a/src/dbusbind.c +++ b/src/dbusbind.c @@ -32,6 +32,10 @@ along with GNU Emacs. If not, see . */ #define DBUS_NUM_MESSAGE_TYPES 5 #endif + +/* Some platforms define the symbol "interface", but we want to use it + * as a variable name below. */ + #ifdef interface #undef interface #endif From 8599b23a90cf10e7308a59dbf9197d8e4c439ee2 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 15 Oct 2012 12:49:57 -0400 Subject: [PATCH 220/272] * lisp/erc/erc.el (erc-log): Make it into a defsubst. (erc-with-server-buffer, define-erc-module, erc-with-buffer) (erc-with-all-buffers-of-server): Use `declare'. * lisp/erc/erc-backend.el (erc-log): Adjust autoload accordingly. --- lisp/erc/ChangeLog | 17 ++++++++++++----- lisp/erc/erc-backend.el | 2 +- lisp/erc/erc.el | 18 +++++++----------- src/ChangeLog | 15 +++++++-------- 4 files changed, 27 insertions(+), 25 deletions(-) diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 8b4df6099bc..343a6655701 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -1,3 +1,10 @@ +2012-10-15 Stefan Monnier + + * erc.el (erc-log): Make it into a defsubst. + (erc-with-server-buffer, define-erc-module, erc-with-buffer) + (erc-with-all-buffers-of-server): Use `declare'. + * erc-backend.el (erc-log): Adjust autoload accordingly. + 2012-10-07 Deniz Dogan * erc-log.el (erc-generate-log-file-name-function): @@ -42,8 +49,8 @@ 2012-08-21 Julien Danjou - * erc-match.el (erc-match-message): Use - `erc-match-exclude-server-buffer' not + * erc-match.el (erc-match-message): + Use `erc-match-exclude-server-buffer' not `erc-track-exclude-server-buffer'. 2012-08-20 Josh Feinstein @@ -56,8 +63,8 @@ (erc-lurker-threshold-time): New variables. (erc-lurker-maybe-trim, erc-lurker-initialize, erc-lurker-cleanup) (erc-hide-current-message-p, erc-canonicalize-server-name) - (erc-lurker-update-status, erc-lurker-p): New functions. Together - they maintain state about which users have spoken in the last + (erc-lurker-update-status, erc-lurker-p): New functions. + Together they maintain state about which users have spoken in the last erc-lurker-threshold-time, with all other users being considered lurkers whose messages of types in erc-lurker-hide-list will not be displayed by erc-display-message. @@ -192,7 +199,7 @@ * erc.el (erc-ssl): Made into a synonym for erc-tls, which provides a superset of the same functionality. - (erc-open-ssl-stream): Removed. + (erc-open-ssl-stream): Remove. (erc-open-tls-stream): Use `open-network-stream' instead of `open-tls-stream' directly to be able to use the built-in TLS support. diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el index 20ccd071b95..b8b5c90b596 100644 --- a/lisp/erc/erc-backend.el +++ b/lisp/erc/erc-backend.el @@ -100,7 +100,7 @@ (require 'erc-compat) (eval-when-compile (require 'cl)) (autoload 'erc-with-buffer "erc" nil nil 'macro) -(autoload 'erc-log "erc" nil nil 'macro) +(autoload 'erc-log "erc") ;;;; Variables and options diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index bbd9dad4310..2e97131b603 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -362,13 +362,12 @@ nicknames with erc-server-user struct instances.") (defmacro erc-with-server-buffer (&rest body) "Execute BODY in the current ERC server buffer. If no server buffer exists, return nil." + (declare (indent 0) (debug (body))) (let ((buffer (make-symbol "buffer"))) `(let ((,buffer (erc-server-buffer))) (when (buffer-live-p ,buffer) (with-current-buffer ,buffer ,@body))))) -(put 'erc-with-server-buffer 'lisp-indent-function 0) -(put 'erc-with-server-buffer 'edebug-form-spec '(body)) (defstruct (erc-server-user (:type vector) :named) ;; User data @@ -1236,6 +1235,7 @@ Example: 'erc-replace-insert)) ((remove-hook 'erc-insert-modify-hook 'erc-replace-insert)))" + (declare (doc-string 3)) (let* ((sn (symbol-name name)) (mode (intern (format "erc-%s-mode" (downcase sn)))) (group (intern (format "erc-%s" (downcase sn)))) @@ -1281,8 +1281,6 @@ if ARG is omitted or nil. (put ',enable 'definition-name ',name) (put ',disable 'definition-name ',name)))) -(put 'define-erc-module 'doc-string-elt 3) - (defun erc-once-with-server-event (event &rest forms) "Execute FORMS the next time EVENT occurs in the `current-buffer'. @@ -1334,10 +1332,10 @@ connection over which the data was received that triggered EVENT." (add-hook hook fun nil nil) fun)) -(defmacro erc-log (string) +(defsubst erc-log (string) "Logs STRING if logging is on (see `erc-log-p')." - `(when erc-log-p - (erc-log-aux ,string))) + (when erc-log-p + (erc-log-aux string))) (defun erc-server-buffer () "Return the server buffer for the current buffer's process. @@ -1621,6 +1619,7 @@ See `erc-get-buffer' for details. See also `with-current-buffer'. \(fn (TARGET [PROCESS]) BODY...)" + (declare (indent 1) (debug ((form &optional form) body))) (let ((buf (make-symbol "buf")) (proc (make-symbol "proc")) (target (make-symbol "target")) @@ -1637,8 +1636,6 @@ See also `with-current-buffer'. (when (buffer-live-p ,buf) (with-current-buffer ,buf ,@body))))) -(put 'erc-with-buffer 'lisp-indent-function 1) -(put 'erc-with-buffer 'edebug-form-spec '((form &optional form) body)) (defun erc-get-buffer (target &optional proc) "Return the buffer matching TARGET in the process PROC. @@ -1688,6 +1685,7 @@ needs to match PROC." FORMS will be evaluated in all buffers having the process PROCESS and where PRED matches or in all buffers of the server process if PRED is nil." + (declare (indent 1) (debug (form form body))) ;; Make the evaluation have the correct order (let ((pre (make-symbol "pre")) (pro (make-symbol "pro"))) @@ -1701,8 +1699,6 @@ nil." ;; Silence the byte-compiler by binding the result of mapcar to ;; a variable. res))) -(put 'erc-with-all-buffers-of-server 'lisp-indent-function 1) -(put 'erc-with-all-buffers-of-server 'edebug-form-spec '(form form body)) ;; (iswitchb-mode) will autoload iswitchb.el (defvar iswitchb-temp-buflist) diff --git a/src/ChangeLog b/src/ChangeLog index b822c7e6af1..398eda841fe 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -80,8 +80,7 @@ a file exists. This avoids expensive system calls on MS-Windows. (Bug#12587) - * w32.c (init_environment): Call 'check_existing' instead of - 'stat'. + * w32.c (init_environment): Call 'check_existing' instead of 'stat'. * lread.c (openp) [WINDOWSNT]: Call 'access' instead of 'stat' to determine whether a file exists and is not a directory. @@ -299,8 +298,8 @@ * w32heap.c: Include w32common.h. (sysinfo_cache, syspage_mask, osinfo_cache, w32_major_version) - (w32_minor_version, w32_build_number, w32_subtype): Remove - duplicate definitions. + (w32_minor_version, w32_build_number, w32_subtype): + Remove duplicate definitions. * w32fns.c: Include w32common.h; include w32heap.h only in WINDOWSNT. @@ -512,8 +511,8 @@ * nsterm.m (ns_in_resize): Remove (Bug#12479). (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove. - (ns_clear_frame, sendEvent, windowDidResize, drawRect:): Remove - ns_in_resize check. + (ns_clear_frame, sendEvent, windowDidResize, drawRect:): + Remove ns_in_resize check. (ns_clear_frame_area): Remove resize handle code. * nsfns.m (ns_in_resize): Remove. @@ -560,8 +559,8 @@ * w32proc.c (stop_timer_thread): Fix declaration of 'err'. * w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so - that time stamps of directories could also be changed. Don't - request the too broad GENERIC_WRITE, only the more restrictive + that time stamps of directories could also be changed. + Don't request the too broad GENERIC_WRITE, only the more restrictive FILE_WRITE_ATTRIBUTES access rights. * fileio.c (Fset_file_times): Special-case ignoring errors for From 1a9c683079f638f251eee7a17f9c6ae369d30ef7 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 15 Oct 2012 16:56:07 -0400 Subject: [PATCH 221/272] Apply program-transform-name etc in more places (bug#12536#34) * Makefile.in (install-man, install-etc): Apply $TRANSFORM. (clean): Delete etc/emacs.tmpdesktop. * .bzrignore: Add etc/emacs.tmpdesktop. * etc/NEWS: Mention this. Unrelated copyedits. --- ChangeLog | 6 ++++++ Makefile.in | 20 ++++++++++++++------ etc/NEWS | 39 +++++++++++++++++++++++++-------------- 3 files changed, 45 insertions(+), 20 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9c839658429..0d45d3440c6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2012-10-15 Glenn Morris + + * Makefile.in (install-man, install-etc): + Apply $TRANSFORM. (Bug#12536#34) + (clean): Delete etc/emacs.tmpdesktop. + 2012-10-11 Kenichi Handa * .bzrignore: Add several files under admin/charsets. diff --git a/Makefile.in b/Makefile.in index 571013e3244..95f851b0ada 100644 --- a/Makefile.in +++ b/Makefile.in @@ -622,18 +622,24 @@ install-man: thisdir=`/bin/pwd`; \ cd ${mansrcdir}; \ for page in *.1; do \ + dest=`echo "$${page}" | sed '$(TRANSFORM)'`; \ (cd $${thisdir}; \ - ${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${page}); \ + ${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${dest}); \ ( [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ] ) || continue ; \ - rm -f $(DESTDIR)${man1dir}/$${page}.gz; \ - ${GZIP_PROG} -9n $(DESTDIR)${man1dir}/$${page}; \ + rm -f $(DESTDIR)${man1dir}/$${dest}.gz; \ + ${GZIP_PROG} -9n $(DESTDIR)${man1dir}/$${dest}; \ done ## Install those items from etc/ that need to end up elsewhere. install-etc: umask 022; ${MKDIR_P} $(DESTDIR)${desktopdir} - ${INSTALL_DATA} ${srcdir}/etc/emacs.desktop \ - $(DESTDIR)${desktopdir}/emacs.desktop + dest=`echo emacs | sed '$(TRANSFORM)'`; \ + tmp=etc/emacs.tmpdesktop; rm -f $${tmp}; \ + sed -e "/^Exec=emacs/ s/emacs/$${dest}/" \ + -e "/^Icon=emacs/ s/emacs/$${dest}/" \ + ${srcdir}/etc/emacs.desktop > $${tmp}; \ + ${INSTALL_DATA} $${tmp} $(DESTDIR)${desktopdir}/$${dest}.desktop; \ + rm -f $${tmp} thisdir=`/bin/pwd`; \ cd ${iconsrcdir} || exit 1; umask 022 ; \ for dir in */*/apps */*/mimetypes; do \ @@ -641,8 +647,9 @@ install-etc: ( cd $${thisdir}; ${MKDIR_P} $(DESTDIR)${icondir}/$${dir} ) ; \ for icon in $${dir}/*.*; do \ [ -r $${icon} ] || continue ; \ + dest=`echo "$${icon}" | sed '$(TRANSFORM)'` ; \ ( cd $${thisdir}; \ - ${INSTALL_DATA} ${iconsrcdir}/$${icon} $(DESTDIR)${icondir}/$${icon} ) \ + ${INSTALL_DATA} ${iconsrcdir}/$${icon} $(DESTDIR)${icondir}/$${dest} ) \ || exit 1; \ done ; \ done @@ -729,6 +736,7 @@ mostlyclean: FRC ### ### Delete `.dvi' files here if they are not part of the distribution. clean: FRC + -rm -f etc/emacs.tmpdesktop (cd src; $(MAKE) $(MFLAGS) clean) (cd oldXMenu; $(MAKE) $(MFLAGS) clean) (cd lwlib; $(MAKE) $(MFLAGS) clean) diff --git a/etc/NEWS b/etc/NEWS index 5a310d8f82c..337dfc31aff 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -47,7 +47,7 @@ no warnings; on older and on non-GNU systems the generated warnings may be useful. --- -** The configuration option '--enable-use-lisp-union-type' has been +** The configure option '--enable-use-lisp-union-type' has been renamed to '--enable-check-lisp-object-type', as the resulting Lisp_Object type no longer uses a union to implement the compile time check that this option enables. @@ -61,6 +61,12 @@ as it was confusingly-named and rarely useful. overwriting "emacs" in the installation bin/ directory with a link to emacs-VERSION. +--- +** The configure option `--program-transform-name' applies to more than +just the installed binaries. Now it also affects the man pages, icons, +and desktop file. It does not affect the info pages, since this would +break links between the various manuals. + --- ** Emacs uses libtinfo in preference to libncurses, if available. @@ -203,7 +209,9 @@ The PCL-CVS commands are still available via the keyboard. --- *** Fullscreen and frame parameter fullscreen is supported. --- -*** A file dialog is used when open/saved is done from the menu/toolbar. +*** A file dialog is used for open/save operations initiated from the +menu/toolbar. + * Editing Changes in Emacs 24.3 @@ -415,8 +423,8 @@ The global binding for `M-=', `count-words-region' is in effect. channel keys found, if any. ** Flymake uses fringe bitmaps to indicate errors and warnings. -See flymake-fringe-indicator-position, flymake-error-bitmap and -flymake-warning-bitmap. +See `flymake-fringe-indicator-position', `flymake-error-bitmap' and +`flymake-warning-bitmap'. ** Follow mode @@ -634,6 +642,10 @@ inefficiency, and not namespace-clean. * New Modes and Packages in Emacs 24.3 + +FIXME? erc-desktop-notifications.el, gv.el, profiler.el, +gnus-notifications.el, mm-archive.el + * Incompatible Lisp Changes in Emacs 24.3 @@ -848,7 +860,7 @@ describing the cycle. ** Miscellaneous new functions: *** `autoloadp' -*** `autoload-do-load'. +*** `autoload-do-load' +++ *** `buffer-narrowed-p' tests if the buffer is narrowed. *** `file-name-base' returns a file name sans directory and extension. @@ -873,7 +885,7 @@ See the "Face Attributes" section of the Elisp manual. *** `automount-dir-prefix' *** `buffer-has-markers-at' -*** `macro-declaration-function' (use `macro-declarations-alist'). +*** `macro-declaration-function' (use `macro-declarations-alist') *** `window-system-version' *** `dired-pop-to-buffer' (use `dired-mark-pop-up') *** `query-replace-interactive' @@ -881,21 +893,20 @@ See the "Face Attributes" section of the Elisp manual. * Changes in Emacs 24.3 on non-free operating systems -** New configure.bat options on MS-Windows: - -*** --without-libxml2 omits support for libxml2, even if its presence -is detected. ++++ +** On MS Windows, you can pass --without-libxml2 to configure.bat to omit +support for libxml2, even if its presence is detected. ** When invoked with the -nw switch to run on the Windows text-mode terminal, Emacs now supports mouse highlight, help-echo (in the echo area), and -mouse-autoselect-window. +`mouse-autoselect-window'. -** Two new functions are available in Cygwin builds of Emacs: -cygwin-convert-path-from-windows and cygwin-convert-path-to-windows. +** Two new functions are available in Cygwin builds: +`cygwin-convert-path-from-windows' and `cygwin-convert-path-to-windows'. These functions allow Lisp code to access the Cygwin file-name mapping machinery to convert between Cygwin and Windows-native file names. -** On MS-Windows Vista and later Emacs now supports symbolic links. +** On MS Windows Vista and later Emacs now supports symbolic links. * Changes in Emacs 24.2 From f14a43805d112a783d769c61ac234015595199c2 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 15 Oct 2012 17:00:19 -0400 Subject: [PATCH 222/272] Improve previous NEWS change --- etc/NEWS | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 337dfc31aff..00d5109aba6 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -62,10 +62,11 @@ overwriting "emacs" in the installation bin/ directory with a link to emacs-VERSION. --- -** The configure option `--program-transform-name' applies to more than -just the installed binaries. Now it also affects the man pages, icons, -and desktop file. It does not affect the info pages, since this would -break links between the various manuals. +** The configure options `--program-prefix', `--program-suffix', and +`--program-transform-name' apply to more than just the installed +binaries. Now they also affect the man pages, icons, and the +etc/emacs.desktop file; but not the info pages, since this would break +links between the various manuals. --- ** Emacs uses libtinfo in preference to libncurses, if available. From 293902c8b28955cce23d0ae79820d363ba99bf72 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 15 Oct 2012 17:57:20 -0400 Subject: [PATCH 223/272] (install-etc): Fix previous change --- Makefile.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.in b/Makefile.in index 95f851b0ada..d929160c597 100644 --- a/Makefile.in +++ b/Makefile.in @@ -647,9 +647,9 @@ install-etc: ( cd $${thisdir}; ${MKDIR_P} $(DESTDIR)${icondir}/$${dir} ) ; \ for icon in $${dir}/*.*; do \ [ -r $${icon} ] || continue ; \ - dest=`echo "$${icon}" | sed '$(TRANSFORM)'` ; \ + dest=`echo "$${icon}" | sed -e 's|.*/||' -e '$(TRANSFORM)'` ; \ ( cd $${thisdir}; \ - ${INSTALL_DATA} ${iconsrcdir}/$${icon} $(DESTDIR)${icondir}/$${dest} ) \ + ${INSTALL_DATA} ${iconsrcdir}/$${icon} $(DESTDIR)${icondir}/$${dir}/$${dest} ) \ || exit 1; \ done ; \ done From 61655b89f454597079c7f1ddf680d654c2c5f4e8 Mon Sep 17 00:00:00 2001 From: Dmitry Antipov Date: Tue, 16 Oct 2012 06:22:25 +0400 Subject: [PATCH 224/272] * editfns.c (get_system_name): Remove. * lisp.h (get_system_name): Remove prototype. * xrdb.c (getenv, getpwuid, getpwnam): Remove prototypes. (get_environ_db): Use Vsystem_name. Avoid call to strlen. --- src/ChangeLog | 7 +++++++ src/editfns.c | 9 --------- src/lisp.h | 1 - src/xrdb.c | 12 ++++-------- 4 files changed, 11 insertions(+), 18 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 398eda841fe..26bd1925a5f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2012-10-16 Dmitry Antipov + + * editfns.c (get_system_name): Remove. + * lisp.h (get_system_name): Remove prototype. + * xrdb.c (getenv, getpwuid, getpwnam): Remove prototypes. + (get_environ_db): Use Vsystem_name. Avoid call to strlen. + 2012-10-15 Daniel Colascione * dbusbind.c: Add comment explaining reason for previous change. diff --git a/src/editfns.c b/src/editfns.c index 19fad7130a7..c5d4ed295ab 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -1339,15 +1339,6 @@ DEFUN ("system-name", Fsystem_name, Ssystem_name, 0, 0, 0, return Vsystem_name; } -const char * -get_system_name (void) -{ - if (STRINGP (Vsystem_name)) - return SSDATA (Vsystem_name); - else - return ""; -} - DEFUN ("emacs-pid", Femacs_pid, Semacs_pid, 0, 0, 0, doc: /* Return the process ID of Emacs, as a number. */) (void) diff --git a/src/lisp.h b/src/lisp.h index 7afe7b373fe..01f6ca5e57c 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3127,7 +3127,6 @@ extern Lisp_Object make_buffer_string (ptrdiff_t, ptrdiff_t, bool); extern Lisp_Object make_buffer_string_both (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, bool); extern void init_editfns (void); -const char *get_system_name (void); extern void syms_of_editfns (void); extern void set_time_zone_rule (const char *); diff --git a/src/xrdb.c b/src/xrdb.c index 73672c9617c..9d056a607e4 100644 --- a/src/xrdb.c +++ b/src/xrdb.c @@ -24,7 +24,7 @@ along with GNU Emacs. If not, see . */ #include #include #include - +#include #include #include "lisp.h" @@ -48,11 +48,6 @@ along with GNU Emacs. If not, see . */ #include "keyboard.h" #endif -extern char *getenv (const char *); - -extern struct passwd *getpwuid (uid_t); -extern struct passwd *getpwnam (const char *); - char *x_get_string_resource (XrmDatabase rdb, const char *name, const char *class); static int file_p (const char *filename); @@ -429,8 +424,9 @@ get_environ_db (void) { static char const xdefaults[] = ".Xdefaults-"; char *home = gethomedir (); - char const *host = get_system_name (); - ptrdiff_t pathsize = strlen (home) + sizeof xdefaults + strlen (host); + char const *host = SSDATA (Vsystem_name); + ptrdiff_t pathsize = (strlen (home) + sizeof xdefaults + + SBYTES (Vsystem_name)); path = xrealloc (home, pathsize); strcat (strcat (path, xdefaults), host); p = path; From 12fbe7552ce1614d54728736ea11a75fc5e0761f Mon Sep 17 00:00:00 2001 From: Dmitry Antipov Date: Tue, 16 Oct 2012 11:56:44 +0400 Subject: [PATCH 225/272] * alloc.c (Fmake_byte_code): Fix typo in comment. * print.c (print_interval): Define as static to match prototype. * indent.c (disptab_matches_widthtab, recompute_width_table): Convert to eassert. --- src/ChangeLog | 7 +++++++ src/alloc.c | 2 +- src/indent.c | 6 ++---- src/print.c | 2 +- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 26bd1925a5f..3c62dffc3e0 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2012-10-16 Dmitry Antipov + + * alloc.c (Fmake_byte_code): Fix typo in comment. + * print.c (print_interval): Define as static to match prototype. + * indent.c (disptab_matches_widthtab, recompute_width_table): + Convert to eassert. + 2012-10-16 Dmitry Antipov * editfns.c (get_system_name): Remove. diff --git a/src/alloc.c b/src/alloc.c index 95be8db1614..0afe446d269 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -3100,7 +3100,7 @@ usage: (make-byte-code ARGLIST BYTE-CODE CONSTANTS DEPTH &optional DOCSTRING INT ptrdiff_t i; register struct Lisp_Vector *p; - /* We used to purecopy everything here, if purify-flga was set. This worked + /* We used to purecopy everything here, if purify-flag was set. This worked OK for Emacs-23, but with Emacs-24's lexical binding code, it can be dangerous, since make-byte-code is used during execution to build closures, so any closure built during the preload phase would end up diff --git a/src/indent.c b/src/indent.c index 81a63455ecb..bbc944d2518 100644 --- a/src/indent.c +++ b/src/indent.c @@ -119,8 +119,7 @@ disptab_matches_widthtab (struct Lisp_Char_Table *disptab, struct Lisp_Vector *w { int i; - if (widthtab->header.size != 256) - emacs_abort (); + eassert (widthtab->header.size == 256); for (i = 0; i < 256; i++) if (character_width (i, disptab) @@ -141,8 +140,7 @@ recompute_width_table (struct buffer *buf, struct Lisp_Char_Table *disptab) if (!VECTORP (BVAR (buf, width_table))) bset_width_table (buf, Fmake_vector (make_number (256), make_number (0))); widthtab = XVECTOR (BVAR (buf, width_table)); - if (widthtab->header.size != 256) - emacs_abort (); + eassert (widthtab->header.size == 256); for (i = 0; i < 256; i++) XSETFASTINT (widthtab->contents[i], character_width (i, disptab)); diff --git a/src/print.c b/src/print.c index 49b491faec8..ccf0e8ed7cc 100644 --- a/src/print.c +++ b/src/print.c @@ -2075,7 +2075,7 @@ print_object (Lisp_Object obj, register Lisp_Object printcharfun, int escapeflag /* Print a description of INTERVAL using PRINTCHARFUN. This is part of printing a string that has text properties. */ -void +static void print_interval (INTERVAL interval, Lisp_Object printcharfun) { if (NILP (interval->plist)) From 0b4eec47f29aee572f9306b22e18c8dd4a8f1f62 Mon Sep 17 00:00:00 2001 From: David Engster Date: Tue, 16 Oct 2012 17:17:21 +0200 Subject: [PATCH 226/272] ChangeLog fix. --- lisp/cedet/ChangeLog | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog index 96402a55691..e89e8ed258b 100644 --- a/lisp/cedet/ChangeLog +++ b/lisp/cedet/ChangeLog @@ -11,13 +11,11 @@ `python-shell-internal-send-string' if available to query Python for system paths. - * semantic/senator.el (senator-next-tag): - (senator-previous-tag): + * semantic/senator.el (senator-next-tag, senator-previous-tag) (senator-go-to-up-reference): Use `semantic-error-if-unparsed'. - * semantic/complete.el (semantic-complete-jump-local): - (semantic-complete-jump): - (semantic-complete-jump-local-members): + * semantic/complete.el (semantic-complete-jump-local) + (semantic-complete-jump, semantic-complete-jump-local-members) (semantic-complete-self-insert): Use `semantic-error-if-unparsed'. (semantic-complete-inline-project): Fix autoload cookie. @@ -28,7 +26,7 @@ * cedet.el (cedet-menu-map): Fix copy&paste typo in menu creation. -2012-10-08 David Engster > +2012-10-08 David Engster * semantic/bovine/el.el: Add `semantic-default-elisp-setup' to `emacs-lisp-mode-hook'. This was accidentally removed during the From e5a94ec494881d7a963fef9ceb3beba653575b55 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Wed, 17 Oct 2012 02:27:40 +0300 Subject: [PATCH 227/272] * doc/emacs/search.texi (Query Replace): Document multi-buffer replacement keys. * doc/emacs/maintaining.texi (Tags Search): Change link "Replace" to "Query Replace". * lisp/replace.el (query-replace-help): Mention multi-buffer replacement keys in the Help message. Fixes: debbugs:12655 --- doc/emacs/ChangeLog | 8 ++++++++ doc/emacs/maintaining.texi | 2 +- doc/emacs/search.texi | 13 +++++++++++++ lisp/ChangeLog | 5 +++++ lisp/replace.el | 8 ++++++-- 5 files changed, 33 insertions(+), 3 deletions(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 47a4c8da522..5ab3c1ab5b8 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,11 @@ +2012-10-16 Juri Linkov + + * search.texi (Query Replace): Document multi-buffer replacement + keys. (Bug#12655) + + * maintaining.texi (Tags Search): Change link "Replace" to + "Query Replace". + 2012-10-13 Chong Yidong * files.texi (File Conveniences): ImageMagick enabled by default. diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index d21e3af83dd..67214bde22c 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -2221,7 +2221,7 @@ the current buffer, followed by the remaining files of the tags table. reads a regexp to search for and a string to replace with, just like ordinary @kbd{M-x query-replace-regexp}. It searches much like @kbd{M-x tags-search}, but repeatedly, processing matches according to your -input. @xref{Replace}, for more information on query replace. +input. @xref{Query Replace}, for more information on query replace. @vindex tags-case-fold-search @cindex case-sensitivity and tags search diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi index 21db02c8ab8..7e46e416219 100644 --- a/doc/emacs/search.texi +++ b/doc/emacs/search.texi @@ -1239,6 +1239,19 @@ occurrences. @item ! to replace all remaining occurrences without asking again. +@item Y @r{(Upper-case)} +to replace all remaining occurrences in all remaining buffers in +multi-buffer replacements (like the Dired `Q' command which performs +query replace on selected files). It answers this question and all +subsequent questions in the series with "yes", without further +user interaction. + +@item N @r{(Upper-case)} +to skip to the next buffer in multi-buffer replacements without +replacing remaining occurrences in the current buffer. It answers +this question "no", gives up on the questions for the current buffer, +and continues to the next buffer in the sequence. + @item ^ to go back to the position of the previous occurrence (or what used to be an occurrence), in case you changed it by mistake or want to diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 96f859ec603..437f8d57c9a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-16 Juri Linkov + + * replace.el (query-replace-help): Mention multi-buffer replacement + keys in the Help message. (Bug#12655) + 2012-10-15 Chong Yidong * emacs-lisp/byte-run.el (defsubst): Doc fix. diff --git a/lisp/replace.el b/lisp/replace.el index e714015fccf..4013e4e5df5 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -1603,9 +1603,13 @@ Comma to replace but not move point immediately, C-r to enter recursive edit (\\[exit-recursive-edit] to get out again), C-w to delete match and recursive edit, C-l to clear the screen, redisplay, and offer same replacement again, -! to replace all remaining matches with no more questions, +! to replace all remaining matches in this buffer with no more questions, ^ to move point back to previous match, -E to edit the replacement string" +E to edit the replacement string. +In multi-buffer replacements type `Y' to replace all remaining +matches in all remaining buffers with no more questions, +`N' to skip to the next buffer without replacing remaining matches +in the current buffer." "Help message while in `query-replace'.") (defvar query-replace-map From f0863a54681cfe7d40a0844bd2ce812eed408002 Mon Sep 17 00:00:00 2001 From: Dmitry Antipov Date: Wed, 17 Oct 2012 08:58:15 +0400 Subject: [PATCH 228/272] Do not verify indirection counters of killed buffers (Bug#12579). * buffer.h (BUFFER_CHECK_INDIRECTION): New macro. * buffer.c (compact_buffer, set_buffer_internal_1): Use it. --- src/ChangeLog | 6 ++++++ src/buffer.c | 13 ++++--------- src/buffer.h | 16 ++++++++++++++++ 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 3c62dffc3e0..bea7c9331db 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2012-10-17 Dmitry Antipov + + Do not verify indirection counters of killed buffers (Bug#12579). + * buffer.h (BUFFER_CHECK_INDIRECTION): New macro. + * buffer.c (compact_buffer, set_buffer_internal_1): Use it. + 2012-10-16 Dmitry Antipov * alloc.c (Fmake_byte_code): Fix typo in comment. diff --git a/src/buffer.c b/src/buffer.c index 861a89b5a0f..8e77db66d43 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1663,18 +1663,11 @@ No argument or nil as argument means do this for the current buffer. */) void compact_buffer (struct buffer *buffer) { - /* Verify indirection counters. */ - if (buffer->base_buffer) - { - eassert (buffer->indirections == -1); - eassert (buffer->base_buffer->indirections > 0); - } - else - eassert (buffer->indirections >= 0); + BUFFER_CHECK_INDIRECTION (buffer); /* Skip dead buffers, indirect buffers and buffers which aren't changed since last compaction. */ - if (!NILP (buffer->INTERNAL_FIELD (name)) + if (BUFFER_LIVE_P (buffer) && (buffer->base_buffer == NULL) && (buffer->text->compact != buffer->text->modiff)) { @@ -2114,6 +2107,8 @@ set_buffer_internal_1 (register struct buffer *b) if (current_buffer == b) return; + BUFFER_CHECK_INDIRECTION (b); + old_buf = current_buffer; current_buffer = b; last_known_column_point = -1; /* invalidate indentation cache */ diff --git a/src/buffer.h b/src/buffer.h index d18ef30ea38..9e0e9eef0b1 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -963,6 +963,22 @@ bset_width_table (struct buffer *b, Lisp_Object val) #define BUFFER_LIVE_P(b) (!NILP (BVAR (b, name))) +/* Verify indirection counters. */ + +#define BUFFER_CHECK_INDIRECTION(b) \ + do { \ + if (BUFFER_LIVE_P (b)) \ + { \ + if (b->base_buffer) \ + { \ + eassert (b->indirections == -1); \ + eassert (b->base_buffer->indirections > 0); \ + } \ + else \ + eassert (b->indirections >= 0); \ + } \ + } while (0) + /* Chain of all buffers, including killed ones. */ extern struct buffer *all_buffers; From d556ebf9b8a36596d752e284d227173c852d4eb8 Mon Sep 17 00:00:00 2001 From: Dmitry Antipov Date: Wed, 17 Oct 2012 09:22:23 +0400 Subject: [PATCH 229/272] * buffer.c (Fkill_buffer): When unchaining the marker, reset it's buffer pointer to NULL (Bug#12652). --- src/ChangeLog | 5 +++++ src/buffer.c | 25 +++++++++++++------------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index bea7c9331db..2f2fa27c3b7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-10-17 Dmitry Antipov + + * buffer.c (Fkill_buffer): When unchaining the marker, + reset it's buffer pointer to NULL (Bug#12652). + 2012-10-17 Dmitry Antipov Do not verify indirection counters of killed buffers (Bug#12579). diff --git a/src/buffer.c b/src/buffer.c index 8e77db66d43..0b3dde27968 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1881,19 +1881,20 @@ cleaning up all windows currently displaying the buffer to be killed. */) if (b->base_buffer) { - { /* Unchain all markers that belong to this indirect buffer. - Don't unchain the markers that belong to the base buffer - or its other indirect buffers. */ - struct Lisp_Marker **mp; - for (mp = &BUF_MARKERS (b); *mp; ) - { - struct Lisp_Marker *m = *mp; - if (m->buffer == b) + /* Unchain all markers that belong to this indirect buffer. + Don't unchain the markers that belong to the base buffer + or its other indirect buffers. */ + struct Lisp_Marker **mp = &BUF_MARKERS (b); + while ((m = *mp)) + { + if (m->buffer == b) + { + m->buffer = NULL; *mp = m->next; - else - mp = &m->next; - } - } + } + else + mp = &m->next; + } } else { From 7ebc5f5a07b71eada164b9e115eb40a2c03b0f95 Mon Sep 17 00:00:00 2001 From: Michael Heerdegen Date: Wed, 17 Oct 2012 11:11:49 +0200 Subject: [PATCH 230/272] When renaming a file with wdired move point with file and don't lose mark status (Bug#11795). * wdired.el (wdired-old-marks): New variable. (wdired-change-to-wdired-mode): Locally set wdired-old-marks. (wdired-do-renames): Move point with renamed file and don't lose mark status (Bug#11795). --- lisp/ChangeLog | 7 +++++++ lisp/wdired.el | 16 ++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 437f8d57c9a..5a5549332ac 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2012-10-17 Michael Heerdegen (tiny change) + + * wdired.el (wdired-old-marks): New variable. + (wdired-change-to-wdired-mode): Locally set wdired-old-marks. + (wdired-do-renames): Move point with renamed file and don't lose + mark status (Bug#11795). + 2012-10-16 Juri Linkov * replace.el (query-replace-help): Mention multi-buffer replacement diff --git a/lisp/wdired.el b/lisp/wdired.el index b893e8f6f2b..266d1993389 100644 --- a/lisp/wdired.el +++ b/lisp/wdired.el @@ -180,7 +180,7 @@ program `dired-chmod-program', which must exist." (defvar wdired-col-perm) ;; Column where the permission bits start (defvar wdired-old-content) (defvar wdired-old-point) - +(defvar wdired-old-marks) (defun wdired-mode () "Writable Dired (WDired) mode. @@ -221,6 +221,8 @@ See `wdired-mode'." (error "Not a Dired buffer")) (set (make-local-variable 'wdired-old-content) (buffer-substring (point-min) (point-max))) + (set (make-local-variable 'wdired-old-marks) + (dired-remember-marks (point-min) (point-max))) (set (make-local-variable 'wdired-old-point) (point)) (set (make-local-variable 'query-replace-skip-read-only) t) (set (make-local-variable 'isearch-filter-predicate) @@ -455,7 +457,8 @@ non-nil means return old filename." (push (cons tmp file-new) residue)))) (t (setq progress t) - (let ((file-ori (car rename))) + (let* ((file-ori (car rename)) + (old-mark (cdr (assoc file-ori wdired-old-marks)))) (if wdired-use-interactive-rename (wdired-search-and-rename file-ori file-new) ;; If dired-rename-file autoloads dired-aux while @@ -466,12 +469,17 @@ non-nil means return old filename." (condition-case err (let ((dired-backup-overwrite nil)) (dired-rename-file file-ori file-new - overwrite)) + overwrite) + (dired-remove-file file-ori) + (dired-add-file file-new (if (integerp dired-keep-marker-rename) + dired-keep-marker-rename + old-mark))) (error (setq errors (1+ errors)) (dired-log (concat "Rename `" file-ori "' to `" file-new "' failed:\n%s\n") - err))))))))) + err) + (dired-add-entry file-ori old-mark))))))))) errors)) From 1f9f395d8063fd633ba73f6cc025ded953bab502 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Wed, 17 Oct 2012 13:24:34 +0200 Subject: [PATCH 231/272] Fix ChangeLog typos. --- ChangeLog | 8 ++++---- lisp/ChangeLog | 12 ++++++------ nt/ChangeLog | 10 +++++----- src/ChangeLog | 26 +++++++++++++------------- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0d45d3440c6..b8c7adb8708 100644 --- a/ChangeLog +++ b/ChangeLog @@ -764,7 +764,7 @@ 2012-06-28 Dmitry Antipov - * configure.in: Fix previous change. Remove --enable-asserts. + * configure.in: Fix previous change. Remove --enable-asserts. (CPPFLAGS): Remove conditional -DXASSERTS=1. Add --enable-link-time-optimization. * INSTALL: Mention this. @@ -942,7 +942,7 @@ 2012-06-03 Ulrich Müller - * configure.in (PAXCTL): Check for paxctl. (Bug#11398) + * configure.in (PAXCTL): Check for paxctl. (Bug#11398) 2012-06-01 Paul Eggert @@ -1394,7 +1394,7 @@ 2012-04-17 Dmitry Antipov * configure.in (AC_CHECK_FUNCS): - Add getpwent, endpwent, getgrent, endgrent. (Bug#7900) + Add getpwent, endpwent, getgrent, endgrent. (Bug#7900) 2012-04-16 Glenn Morris @@ -1571,7 +1571,7 @@ 2011-11-04 Glenn Morris - * configure.in: Increase minimum GnuTLS version to 2.6.6. (Bug#9929) + * configure.in: Increase minimum GnuTLS version to 2.6.6. (Bug#9929) Do not include GnuTLS version info in final summary message. 2011-10-31 Eli Zaretskii diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5a5549332ac..9b1929eae6b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -611,9 +611,9 @@ * emacs-lisp/eieio-base.el (eieio-persistent-read): New input args specifying the expected class, and whether subclassing is allowed. (eieio-persistent-convert-list-to-object): - (eieio-persistent-validate/fix-slot-value) - (eieio-persistent-slot-type-is-class-p): New functions. - (eieio-named::slot-missing): Doc fix. + (eieio-persistent-validate/fix-slot-value) + (eieio-persistent-slot-type-is-class-p): New functions. + (eieio-named::slot-missing): Doc fix. * emacs-lisp/eieio-datadebug.el (data-debug/eieio-insert-slots): Stop using unused publd variable. @@ -2056,7 +2056,7 @@ * ses.el (ses-widen): * simple.el (count-words--buffer-message): - * net/browse-url.el (browse-url-of-buffer): Use it + * net/browse-url.el (browse-url-of-buffer): Use it. * simple.el (count-words-region): Don't signal an error if there is a non-nil prefix arg and the mark is not set. @@ -16338,7 +16338,7 @@ 2011-06-22 Leo Liu * minibuffer.el (completing-read-function) - (completing-read-default): Move from minibuf.c + (completing-read-default): Move from minibuf.c. 2011-06-22 Richard Stallman @@ -18195,7 +18195,7 @@ Remove unnecessary and incorrect declarations. * emacs-lisp/check-declare.el (check-declare-scan): - Handle byte-compile-initial-macro-environment in bytecomp.el + Handle byte-compile-initial-macro-environment in bytecomp.el. 2011-05-05 Stefan Monnier diff --git a/nt/ChangeLog b/nt/ChangeLog index e659b87eb76..4b0a65a59da 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -32,13 +32,13 @@ (offset_to_section, relocate_offset, OFFSET_TO_RVA) (RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET, PTR_TO_RVA) (OFFSET_TO_PTR, ROUND_UP, ROUND_DOWN) - (copy_executable_and_move_sections, ADJUST_IMPORT_RVA, main): Use - DWORD_PTR instead of DWORD for compatibility with x64. + (copy_executable_and_move_sections, ADJUST_IMPORT_RVA, main): + Use DWORD_PTR instead of DWORD for compatibility with x64. * nmake.defs: Support AMD64. (EMACS_HEAPSIZE, EMACS_PURESIZE, EMACS_MANIFEST): New macros. - * gmake.defs: (EMACS_HEAPSIZE, EMACS_PURESIZE, EMACS_MANIFEST): + * gmake.defs (EMACS_HEAPSIZE, EMACS_PURESIZE, EMACS_MANIFEST): New macros. * addsection.c (pfnCheckSumMappedFile, rva_to_section) @@ -478,7 +478,7 @@ 2012-02-05 Christoph Scholtes - * README.W32: Clarification for inclusion in source tarball. (Bug#9750) + * README.W32: Clarification for inclusion in source tarball (bug#9750). * gmake.defs (PRAGMA_SYSTEM_HEADER): Add for GCC. @@ -487,7 +487,7 @@ * makefile.w32-in (maybe-copy-distfiles) (maybe-copy-distfiles-CMD, maybe-copy-distfiles-SH) (create-tmp-dist-dir): Add to make --distfiles optional. - (dist): Use create-tmp-dist-dir and maybe-copy-distfiles. (Bug#10261) + (dist): Use create-tmp-dist-dir and maybe-copy-distfiles (bug#10261). 2012-02-04 Eli Zaretskii diff --git a/src/ChangeLog b/src/ChangeLog index 2f2fa27c3b7..9061b08220b 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,7 +1,7 @@ 2012-10-17 Dmitry Antipov * buffer.c (Fkill_buffer): When unchaining the marker, - reset it's buffer pointer to NULL (Bug#12652). + reset its buffer pointer to NULL (Bug#12652). 2012-10-17 Dmitry Antipov @@ -245,7 +245,7 @@ * nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles caching. (nsfont_open): Remove setting of Vfonts_in_cache. - (syms_of_nsfont): Remove initialization of Vfonts_in_cache + (syms_of_nsfont): Remove initialization of Vfonts_in_cache. 2012-10-09 Eli Zaretskii @@ -312,7 +312,7 @@ * w32select.h (HAVE_W32SELECT): Remove. * w32select.c, w32proc.c, w32menu.c, w32console.c, w32.c: Include - w32common.h instead of w32heap.h + w32common.h instead of w32heap.h. * w32heap.h (ROUND_UP, ROUND_DOWN, get_page_size) (get_allocation_unit, get_processor_type, get_w32_major_version) @@ -435,7 +435,7 @@ Cygwin builds. Remove w32select declarations. * w32console.c (w32_sys_ring_bell, Fset_message_beep): Move to - w32fns.c. w32console.c is WINDOWSNT-only. + w32fns.c. w32console.c is WINDOWSNT-only. * w32fns.c: Include cygw32.h or w32.h depending on CYGWIN; more NTGUI_UNICODE tweaks. (See above.) Change _snprintf to the more @@ -541,7 +541,7 @@ (ns_clear_frame_area): Remove resize handle code. * nsfns.m (ns_in_resize): Remove. - (x_set_icon_name, ns_set_name, ns_set_name_as_filename): Remove + (x_set_icon_name, ns_set_name, ns_set_name_as_filename): Remove ns_in_resize check. 2012-10-07 Paul Eggert @@ -570,7 +570,7 @@ (initFrameFromEmacs:): tbar_height renamed tibar_height. (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix error in drawing background. - (toggleFullScreen:): Remove comment. Rearrange calls. + (toggleFullScreen:): Remove comment. Rearrange calls. Set toolbar values to zero, save old height in tobar_height. Restore tool bar height when leaving fullscreen. (canBecomeMainWindow): New function. @@ -993,7 +993,7 @@ Call setCollectionBehavior if NEW_STYLE_FS. Initialize bwidth and tbar_height. (windowWillUseStandardFrame:defaultFrame:): Update frame parameter - fullscreen. Set maximized_width/height. Act on next_maximized. + fullscreen. Set maximized_width/height. Act on next_maximized. * nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New. (EmacsView): Add variables for fullscreen. @@ -1649,7 +1649,7 @@ 2012-09-19 Paul Eggert * w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0. - Ignore 'expected'. See Eli Zaretskii in + Ignore 'expected'. See Eli Zaretskii in (last line). * frame.c (read_integer): Remove. All uses replaced by strtol/strtoul. @@ -1716,7 +1716,7 @@ (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc) (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc): [!SYSTEM_MALLOC && !SYNC_INPUT]: - Remove. All uses removed. + Remove. All uses removed. (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different implementation, one that depends on whether the new macro XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT @@ -2006,7 +2006,7 @@ * alloc.c (discard_killed_buffers): New function. (mark_object): Use it for deleted windows and frames. (mark_object): If symbol's value is set up for a killed buffer - or deleted frame, restore it's global binding. + or deleted frame, restore its global binding. * data.c (swap_in_global_binding): Add GC notice. (swap_in_symval_forwarding): Use convenient set_blv_where. * window.c (wset_next_buffers, wset_prev_buffers): Move ... @@ -4313,7 +4313,7 @@ * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar) (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:) - (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114) + (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114) * nsfns.m (ns_set_name_as_filename): Likewise. * nsmenu.m (ns_update_menubar): Likewise. * nsselect.m (symbol_to_nsstring): Adjust to use SVAR. @@ -6409,7 +6409,7 @@ Fix block vector allocation code to allow VECTOR_BLOCK_SIZE values which aren't power of 2. * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro. - Verify it's value and the value of VECTOR_BLOCK_SIZE. Adjust users + Verify its value and the value of VECTOR_BLOCK_SIZE. Adjust users accordingly. 2012-07-03 Stefan Monnier @@ -7578,7 +7578,7 @@ bitfields where appropriate, remove unused fields. * window.h (struct window): Remove unused 'last_mark_x' and 'last_mark_y' fields. Rename 'mini_p' field to 'mini', - change it's type from Lisp_Object to bitfield. + change its type from Lisp_Object to bitfield. Change type of 'force_start', 'optional_new_start', 'last_had_star', 'update_mode_line' and 'start_at_line_beg' fields from Lisp_Object to bitfield. Adjust users accordingly. From fe0b1ec40988638025db569a936b09f0295749a1 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Wed, 17 Oct 2012 22:30:56 +0900 Subject: [PATCH 232/272] xdisp.c (reseat_1): Make the information stored in it->cmp_it invalidate. --- src/ChangeLog | 5 +++++ src/xdisp.c | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index 346fe0e86b3..21d13a04e77 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-10-17 Kenichi Handa + + * xdisp.c (reseat_1): Make the information stored in it->cmp_it + invalidate. + 2012-10-13 Jan Djärv * gtkutil.c (xg_set_widget_bg): Divide by 65535 (Bug#12612). diff --git a/src/xdisp.c b/src/xdisp.c index 1e61a74068b..6964719f958 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -6302,6 +6302,8 @@ reseat_1 (struct it *it, struct text_pos pos, int set_stop_p) it->stop_charpos = CHARPOS (pos); it->base_level_stop = CHARPOS (pos); } + /* This make the information stored in it->cmp_it invalidate. */ + it->cmp_it.id = -1; } From fcf148759e42645a28fb17584a653ef99d22bb35 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Wed, 17 Oct 2012 17:37:55 +0200 Subject: [PATCH 233/272] Fix bug #12661 with w32 and cygw32 builds under --enable-check-lisp-object-type. src/cygw32.c (Fcygwin_convert_path_to_windows) (Fcygwin_convert_path_from_windows): Use EQ to compare 2 Lisp_Object values. src/w32fns.c (w32_msg_pump): Use XIL instead of casting an integer to Lisp_Object. --- src/ChangeLog | 9 +++++++++ src/cygw32.c | 4 ++-- src/w32fns.c | 4 ++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index b845eeb3ceb..3a6fb718e41 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,12 @@ +2012-10-17 Eli Zaretskii + + * cygw32.c (Fcygwin_convert_path_to_windows) + (Fcygwin_convert_path_from_windows): Use EQ to compare 2 + Lisp_Object values. (Bug#12661) + + * w32fns.c (w32_msg_pump): Use XIL instead of casting an integer + to Lisp_Object. (Bug#12661) + 2012-10-17 Kenichi Handa * xdisp.c (reseat_1): Make the information stored in it->cmp_it diff --git a/src/cygw32.c b/src/cygw32.c index c45a45648e9..8f63461da2a 100644 --- a/src/cygw32.c +++ b/src/cygw32.c @@ -145,7 +145,7 @@ DEFUN ("cygwin-convert-path-to-windows", (Lisp_Object path, Lisp_Object absolute_p) { return from_unicode ( - conv_filename_to_w32_unicode (path, absolute_p == Qnil ? 0 : 1)); + conv_filename_to_w32_unicode (path, EQ (absolute_p, Qnil) ? 0 : 1)); } DEFUN ("cygwin-convert-path-from-windows", @@ -156,7 +156,7 @@ DEFUN ("cygwin-convert-path-from-windows", (Lisp_Object path, Lisp_Object absolute_p) { return conv_filename_from_w32_unicode (to_unicode (path, &path), - absolute_p == Qnil ? 0 : 1); + EQ (absolute_p, Qnil) ? 0 : 1); } void diff --git a/src/w32fns.c b/src/w32fns.c index c5e4be4ffc9..8dd3eb83c60 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -2424,7 +2424,7 @@ w32_msg_pump (deferred_msg * msg_buf) thread-safe. The next line is okay because the cons cell is never made into garbage and is not relocated by GC. */ - XSETCAR ((Lisp_Object) ((EMACS_INT) msg.lParam), Qnil); + XSETCAR (XIL ((EMACS_INT) msg.lParam), Qnil); if (!PostThreadMessage (dwMainThreadId, WM_EMACS_DONE, 0, 0)) emacs_abort (); break; @@ -2432,7 +2432,7 @@ w32_msg_pump (deferred_msg * msg_buf) { int vk_code = (int) msg.wParam; int cur_state = (GetKeyState (vk_code) & 1); - Lisp_Object new_state = (Lisp_Object) ((EMACS_INT) msg.lParam); + Lisp_Object new_state = XIL ((EMACS_INT) msg.lParam); /* NB: This code must be thread-safe. It is safe to call NILP because symbols are not relocated by GC, From 429cdb05307de9cdd69469d51bdabf357e548b7b Mon Sep 17 00:00:00 2001 From: Dani Moncayo Date: Wed, 17 Oct 2012 12:55:10 -0400 Subject: [PATCH 234/272] * doc/emacs/mini.texi (Repetition): Copyedit. --- doc/emacs/ChangeLog | 4 ++++ doc/emacs/mini.texi | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 5ab3c1ab5b8..82cf6ee45bc 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,7 @@ +2012-10-17 Dani Moncayo + + * mini.texi (Repetition): Copyedit. + 2012-10-16 Juri Linkov * search.texi (Query Replace): Document multi-buffer replacement diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi index cb47a966f64..9cc61208a9e 100644 --- a/doc/emacs/mini.texi +++ b/doc/emacs/mini.texi @@ -689,7 +689,7 @@ unless it is identical to the most recent item. Once inside the minibuffer for @kbd{C-x @key{ESC} @key{ESC}}, you can use the usual minibuffer history commands (@pxref{Minibuffer History}) to move through the history list. After finding the desired -previous command, you can edit its expression as usual and then repeat +previous command, you can edit its expression as usual and then execute it by typing @key{RET}. @vindex isearch-resume-in-command-history From 6c24e35f04e102ce8ddc4e6f9a1bc5e117a91b45 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Wed, 17 Oct 2012 12:56:12 -0400 Subject: [PATCH 235/272] * doc/emacs/mini.texi (Repetition): Further copyedit. --- doc/emacs/ChangeLog | 4 ++++ doc/emacs/mini.texi | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 82cf6ee45bc..873681ad0d4 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,7 @@ +2012-10-17 Glenn Morris + + * mini.texi (Repetition): Further copyedit. + 2012-10-17 Dani Moncayo * mini.texi (Repetition): Copyedit. diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi index 9cc61208a9e..0036b67f174 100644 --- a/doc/emacs/mini.texi +++ b/doc/emacs/mini.texi @@ -683,7 +683,7 @@ the text for that expression. Even if you don't know Lisp, it will probably be obvious which command is displayed for repetition. If you type just @key{RET}, that repeats the command unchanged. You can also change the command by editing the Lisp expression before you execute -it. The repeated command is added to the front of the command history +it. The executed command is added to the front of the command history unless it is identical to the most recent item. Once inside the minibuffer for @kbd{C-x @key{ESC} @key{ESC}}, you From a68089e4a4dd41c9b838d82d1d96d971b01398c8 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Wed, 17 Oct 2012 21:02:44 +0200 Subject: [PATCH 236/272] Fix warnings when compiling on MS-Windows with -std=gnu99. src/makefile.w32-in ($(BLD)/w32.$(O)): ($(BLD)/vm-limit.$(O)): ($(BLD)/term.$(O)): ($(BLD)/unexw32.$(O)): ($(BLD)/fileio.$(O)): ($(BLD)/dispnew.$(O)): Update dependencies. src/w32term.h (w32_initialize_display_info, initialize_w32_display): Add prototypes. src/w32proc.c: Include ctype.h. src/w32.h (init_environment, check_windows_init_file) (syms_of_ntproc, syms_of_ntterm, dostounix_filename) (unixtodos_filename, init_winsock, srandom, random, sys_pipe) (set_process_dir, sys_spawnve, register_child, sys_sleep, getwd) (sys_link): Add prototypes. src/w32.c: Include w32select.h. (sys_access, e_malloc, sys_select): Add prototypes. (emacs_gnutls_pull): 'timeout' is now EMACS_TIME, not struct timeval. src/vm-limit.c [WINDOWSNT]: Include w32heap.h. src/unexw32.c: Include lisp.h and w32.h. src/term.c [WINDOWSNT]: Include w32term.h. src/process.c [WINDOWSNT]: Add prototype of sys_select. src/fileio.c [WINDOWSNT]: Include w32.h. src/dispnew.c [WINDOWSNT]: Include w32.h. nt/inc/pwd.h (getuid, geteuid): Add prototypes. nt/inc/ms-w32.h (sys_wait, _getpid, gmtgime_r, localtime_r) (signal_handler, sys_signal, sigemptyset, sigfillset, sigprocmask) (pthread_sigmask, sigismember, setpgrp, sigaction, alarm) (sys_kill, getpagesize): Add prototypes for emulated functions. nt/inc/grp.h (getgid, getegid): Add prototypes. nt/gmake.defs (DEBUG_CFLAGS) [NOOPT]: Add -std=gnu99. nt/configure.bat (chkapiN): Avoid compiler warning in junk.c when compiling with -std=gnu99. nt/config.nt (CHECK_LISP_OBJECT_TYPE): Don't undef, so that it could be used via --cflags switch to configure.bat. --- nt/ChangeLog | 19 +++++++++++++++ nt/config.nt | 2 +- nt/configure.bat | 2 +- nt/gmake.defs | 2 +- nt/inc/grp.h | 5 +++- nt/inc/ms-w32.h | 56 +++++++++++++++++++++++++++++++++------------ nt/inc/pwd.h | 7 ++++-- src/ChangeLog | 34 +++++++++++++++++++++++++++ src/dispnew.c | 4 ++++ src/fileio.c | 1 + src/makefile.w32-in | 7 ++++++ src/process.c | 5 ++++ src/term.c | 1 + src/unexw32.c | 2 ++ src/vm-limit.c | 2 ++ src/w32.c | 12 +++++++--- src/w32.h | 22 ++++++++++++++++++ src/w32proc.c | 3 +-- src/w32term.h | 3 +++ 19 files changed, 163 insertions(+), 26 deletions(-) diff --git a/nt/ChangeLog b/nt/ChangeLog index 4b0a65a59da..94d2ce18551 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,22 @@ +2012-10-17 Eli Zaretskii + + * inc/pwd.h (getuid, geteuid): Add prototypes. + + * inc/ms-w32.h (sys_wait, _getpid, gmtgime_r, localtime_r) + (signal_handler, sys_signal, sigemptyset, sigfillset, sigprocmask) + (pthread_sigmask, sigismember, setpgrp, sigaction, alarm) + (sys_kill, getpagesize): Add prototypes for emulated functions. + + * inc/grp.h (getgid, getegid): Add prototypes. + + * gmake.defs (DEBUG_CFLAGS) [NOOPT]: Add -std=gnu99. + + * configure.bat (chkapiN): Avoid compiler warning in junk.c when + compiling with -std=gnu99. + + * config.nt (CHECK_LISP_OBJECT_TYPE): Don't undef, so that it + could be used via --cflags switch to configure.bat. + 2012-10-08 Juanma Barranquero * config.nt: Sync with autogen/config.in. diff --git a/nt/config.nt b/nt/config.nt index cd695bc4e34..4582928cb5a 100644 --- a/nt/config.nt +++ b/nt/config.nt @@ -76,7 +76,7 @@ along with GNU Emacs. If not, see . */ #undef CANNOT_DUMP /* Define this to enable compile time checks for the Lisp_Object data type. */ -#undef CHECK_LISP_OBJECT_TYPE +/* #undef CHECK_LISP_OBJECT_TYPE */ /* Define if you want lock files to be written, so that Emacs can tell instantly when you try to modify a file that someone else has modified in diff --git a/nt/configure.bat b/nt/configure.bat index 7fedff411bc..3118bb11e5d 100755 --- a/nt/configure.bat +++ b/nt/configure.bat @@ -429,7 +429,7 @@ rem echo Checking whether Windows API headers are too old... echo #include "windows.h" >junk.c echo #include "usp10.h" >>junk.c -echo test(PIMAGE_NT_HEADERS pHeader) >>junk.c +echo void test(PIMAGE_NT_HEADERS pHeader) >>junk.c echo {PIMAGE_SECTION_HEADER pSection = IMAGE_FIRST_SECTION(pHeader);} >>junk.c if (%nocygwin%) == (Y) goto chkapi1 set cf=%usercflags% diff --git a/nt/gmake.defs b/nt/gmake.defs index 7206237c47a..358c262db28 100644 --- a/nt/gmake.defs +++ b/nt/gmake.defs @@ -211,7 +211,7 @@ OBJ1_c = $(patsubst $(BLD)%.$(O),$(CURDIR)%.c,$(OBJ1)) OBJ2_c = $(patsubst $(BLD)%.$(O),$(CURDIR)%.c,$(OBJ2)) ifdef NOOPT -DEBUG_CFLAGS = -DEMACSDEBUG -fno-crossjumping +DEBUG_CFLAGS = -DEMACSDEBUG -fno-crossjumping -std=gnu99 else DEBUG_CFLAGS = endif diff --git a/nt/inc/grp.h b/nt/inc/grp.h index 8c3131ac893..3d369044974 100644 --- a/nt/inc/grp.h +++ b/nt/inc/grp.h @@ -28,7 +28,10 @@ struct group { gid_t gr_gid; /* group numerical ID */ }; -struct group *getgrgid(gid_t); +extern unsigned getgid (void); +extern unsigned getegid (void); + +extern struct group *getgrgid(gid_t); #endif /* _GRP_H */ diff --git a/nt/inc/ms-w32.h b/nt/inc/ms-w32.h index 06a3af937df..dd2ae781cb8 100644 --- a/nt/inc/ms-w32.h +++ b/nt/inc/ms-w32.h @@ -120,21 +120,6 @@ extern char *getenv (); #endif #include -#ifdef _MSC_VER -typedef int sigset_t; -typedef int ssize_t; -#endif - -struct sigaction { - int sa_flags; - void (_CALLBACK_ *sa_handler)(int); - sigset_t sa_mask; -}; -#define SA_RESTART 0 -#define SIG_BLOCK 1 -#define SIG_SETMASK 2 -#define SIG_UNBLOCK 3 - #ifndef MAXPATHLEN #define MAXPATHLEN _MAX_PATH #endif @@ -207,6 +192,8 @@ struct sigaction { /* Internal signals. */ #define emacs_raise(sig) emacs_abort() +extern int sys_wait (int *); + /* termcap.c calls that are emulated. */ #define tputs sys_tputs #define tgetstr sys_tgetstr @@ -251,6 +238,9 @@ typedef int pid_t; #define stricmp _stricmp #define tzset _tzset +/* We cannot include system header process.h, since there's src/process.h. */ +int _getpid (void); + /* Include time.h before redirecting tzname, since MSVC's time.h defines _tzname to call a function, but also declares tzname a 2-element array. Having the redirection before including the @@ -272,6 +262,10 @@ struct timespec long int tv_nsec; /* nanoseconds */ }; +/* Required for functions in lib/time_r.c, since we don't use lib/time.h. */ +extern struct tm *gmtime_r (time_t const * restrict, struct tm * restrict); +extern struct tm *localtime_r (time_t const * restrict, struct tm * restrict); + /* This is hacky, but is necessary to avoid warnings about macro redefinitions using the SDK compilers. */ #ifndef __STDC__ @@ -300,6 +294,37 @@ struct timespec #define NSIG 23 #endif +#ifdef _MSC_VER +typedef int sigset_t; +typedef int ssize_t; +#endif + +typedef void (_CALLBACK_ *signal_handler) (int); +extern signal_handler sys_signal (int, signal_handler); + +struct sigaction { + int sa_flags; + void (_CALLBACK_ *sa_handler)(int); + sigset_t sa_mask; +}; +#define SA_RESTART 0 +#define SIG_BLOCK 1 +#define SIG_SETMASK 2 +#define SIG_UNBLOCK 3 + +extern int sigemptyset (sigset_t *); +extern int sigaddset (sigset_t *, int); +extern int sigfillset (sigset_t *); +extern int sigprocmask (int, const sigset_t *, sigset_t *); +extern int pthread_sigmask (int, const sigset_t *, sigset_t *); +extern int sigismember (const sigset_t *, int); +extern int setpgrp (int, int); +extern int sigaction (int, const struct sigaction *, struct sigaction *); +extern int alarm (int); + +extern int sys_kill (int, int); + + /* For integration with MSDOS support. */ #define getdisk() (_getdrive () - 1) #ifdef emacs @@ -357,6 +382,7 @@ extern char *get_emacs_configuration_options (void); #endif extern int getloadavg (double *, int); +extern int getpagesize (void); #if defined (__MINGW32__) diff --git a/nt/inc/pwd.h b/nt/inc/pwd.h index b39309d08fa..54e477e9665 100644 --- a/nt/inc/pwd.h +++ b/nt/inc/pwd.h @@ -18,8 +18,11 @@ struct passwd { typedef unsigned uid_t; typedef uid_t gid_t; -struct passwd * getpwnam (char *); -struct passwd * getpwuid (unsigned); +extern unsigned getuid (void); +extern unsigned geteuid (void); + +extern struct passwd * getpwnam (char *); +extern struct passwd * getpwuid (unsigned); #endif /* _PWD_H_ */ diff --git a/src/ChangeLog b/src/ChangeLog index 3a6fb718e41..827850e332d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,39 @@ 2012-10-17 Eli Zaretskii + * makefile.w32-in ($(BLD)/w32.$(O)): + ($(BLD)/vm-limit.$(O)): + ($(BLD)/term.$(O)): + ($(BLD)/unexw32.$(O)): + ($(BLD)/fileio.$(O)): + ($(BLD)/dispnew.$(O)): Update dependencies. + + * w32term.h (w32_initialize_display_info, initialize_w32_display): + Add prototypes. + + * w32proc.c: Include ctype.h. + + * w32.h (init_environment, check_windows_init_file) + (syms_of_ntproc, syms_of_ntterm, dostounix_filename) + (unixtodos_filename, init_winsock, srandom, random, sys_pipe) + (set_process_dir, sys_spawnve, register_child, sys_sleep, getwd) + (sys_link): Add prototypes. + + * w32.c: Include w32select.h. + (sys_access, e_malloc, sys_select): Add prototypes. + (emacs_gnutls_pull): 'timeout' is now EMACS_TIME, not struct timeval. + + * vm-limit.c [WINDOWSNT]: Include w32heap.h. + + * unexw32.c: Include lisp.h and w32.h. + + * term.c [WINDOWSNT]: Include w32term.h. + + * process.c [WINDOWSNT]: Add prototype of sys_select. + + * fileio.c [WINDOWSNT]: Include w32.h. + + * dispnew.c [WINDOWSNT]: Include w32.h. + * cygw32.c (Fcygwin_convert_path_to_windows) (Fcygwin_convert_path_from_windows): Use EQ to compare 2 Lisp_Object values. (Bug#12661) diff --git a/src/dispnew.c b/src/dispnew.c index 0956e3f2905..fa24408aa43 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -60,6 +60,10 @@ along with GNU Emacs. If not, see . */ #if defined (HAVE_TERM_H) && defined (GNU_LINUX) #include /* for tgetent */ #endif + +#ifdef WINDOWSNT +#include "w32.h" +#endif /* Structure to pass dimensions around. Used for character bounding boxes, glyph matrix dimensions and alike. */ diff --git a/src/fileio.c b/src/fileio.c index e3a91c2c9da..d47d7dd9e0b 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -53,6 +53,7 @@ along with GNU Emacs. If not, see . */ #include #include #include +#include "w32.h" #endif /* not WINDOWSNT */ #ifdef MSDOS diff --git a/src/makefile.w32-in b/src/makefile.w32-in index 2acce9c123f..5be1ccb70df 100644 --- a/src/makefile.w32-in +++ b/src/makefile.w32-in @@ -735,6 +735,7 @@ $(BLD)/dispnew.$(O) : \ $(SRC)/disptab.h \ $(SRC)/indent.h \ $(SRC)/termchar.h \ + $(SRC)/w32.h \ $(NT_INC)/unistd.h \ $(BUFFER_H) \ $(CHARACTER_H) \ @@ -832,6 +833,7 @@ $(BLD)/fileio.$(O) : \ $(SRC)/fileio.c \ $(SRC)/blockinput.h \ $(SRC)/commands.h \ + $(SRC)/w32.h \ $(NT_INC)/pwd.h \ $(NT_INC)/sys/file.h \ $(NT_INC)/sys/stat.h \ @@ -1173,6 +1175,7 @@ $(BLD)/w32.$(O) : \ $(SRC)/w32.h \ $(SRC)/w32common.h \ $(SRC)/w32heap.h \ + $(SRC)/w32select.h \ $(NT_INC)/pwd.h \ $(NT_INC)/sys/file.h \ $(NT_INC)/sys/time.h \ @@ -1428,6 +1431,7 @@ $(BLD)/term.$(O) : \ $(SYSSIGNAL_H) \ $(SYSTTY_H) \ $(TERMHOOKS_H) \ + $(W32TERM_H) \ $(WINDOW_H) $(BLD)/terminal.$(O) : \ @@ -1468,13 +1472,16 @@ $(BLD)/undo.$(O) : \ $(BLD)/unexw32.$(O) : \ $(SRC)/unexw32.c \ $(SRC)/unexec.h \ + $(SRC)/w32.h \ $(SRC)/w32common.h \ $(SRC)/w32heap.h \ + $(LISP_H) \ $(CONFIG_H) $(BLD)/vm-limit.$(O) : \ $(SRC)/vm-limit.c \ $(SRC)/mem-limits.h \ + $(SRC)/w32heap.h \ $(NT_INC)/unistd.h \ $(CONFIG_H) \ $(LISP_H) diff --git a/src/process.c b/src/process.c index d45a2c6e8e0..307e82819d6 100644 --- a/src/process.c +++ b/src/process.c @@ -125,6 +125,11 @@ along with GNU Emacs. If not, see . */ #include "xgselect.h" #endif +#ifdef WINDOWSNT +extern int sys_select (int, SELECT_TYPE *, SELECT_TYPE *, SELECT_TYPE *, + EMACS_TIME *, void *); +#endif + #ifndef WNOHANG # undef waitpid # define waitpid(pid, status, options) wait (status) diff --git a/src/term.c b/src/term.c index acce9c0548c..f7c87b7608d 100644 --- a/src/term.c +++ b/src/term.c @@ -66,6 +66,7 @@ static int been_here = -1; /* The name of the default console device. */ #ifdef WINDOWSNT #define DEV_TTY "CONOUT$" +#include "w32term.h" #else #define DEV_TTY "/dev/tty" #endif diff --git a/src/unexw32.c b/src/unexw32.c index 82671d0f120..1e591a78b73 100644 --- a/src/unexw32.c +++ b/src/unexw32.c @@ -22,7 +22,9 @@ along with GNU Emacs. If not, see . */ #include #include "unexec.h" +#include "lisp.h" #include "w32common.h" +#include "w32.h" #include #include diff --git a/src/vm-limit.c b/src/vm-limit.c index 3020b84858a..2a71e88695a 100644 --- a/src/vm-limit.c +++ b/src/vm-limit.c @@ -85,6 +85,8 @@ get_lim_data (void) #else /* not USG */ #ifdef WINDOWSNT +#include "w32heap.h" + static void get_lim_data (void) { diff --git a/src/w32.c b/src/w32.c index babbcc6df9f..5ac1bc3eb7c 100644 --- a/src/w32.c +++ b/src/w32.c @@ -175,6 +175,7 @@ typedef struct _REPARSE_DATA_BUFFER { #include "ndir.h" #include "w32common.h" #include "w32heap.h" +#include "w32select.h" #include "systime.h" #include "dispextern.h" /* for xstrcasecmp */ #include "coding.h" /* for Vlocale_coding_system */ @@ -198,6 +199,12 @@ static int enable_privilege (LPCTSTR, BOOL, TOKEN_PRIVILEGES *); static int restore_privilege (TOKEN_PRIVILEGES *); static BOOL WINAPI revert_to_self (void); +extern int sys_access (const char *, int); +extern void *e_malloc (size_t); +extern int sys_select (int, SELECT_TYPE *, SELECT_TYPE *, SELECT_TYPE *, + EMACS_TIME *, void *); + + /* Initialization states. @@ -6961,7 +6968,7 @@ emacs_gnutls_pull (gnutls_transport_ptr_t p, void* buf, size_t sz) { int n, sc, err; SELECT_TYPE fdset; - struct timeval timeout; + EMACS_TIME timeout; struct Lisp_Process *process = (struct Lisp_Process *)p; int fd = process->infd; @@ -6977,8 +6984,7 @@ emacs_gnutls_pull (gnutls_transport_ptr_t p, void* buf, size_t sz) if (err == EWOULDBLOCK) { /* Set a small timeout. */ - timeout.tv_sec = 1; - timeout.tv_usec = 0; + timeout = make_emacs_time (1, 0); FD_ZERO (&fdset); FD_SET ((int)fd, &fdset); diff --git a/src/w32.h b/src/w32.h index c4cfdf5fedd..8309a3cc23d 100644 --- a/src/w32.h +++ b/src/w32.h @@ -146,6 +146,28 @@ extern int _sys_wait_accept (int fd); extern Lisp_Object QCloaded_from; extern HMODULE w32_delayed_load (Lisp_Object); +extern void init_environment (char **); +extern void check_windows_init_file (void); +extern void syms_of_ntproc (void); +extern void syms_of_ntterm (void); +extern void dostounix_filename (register char *); +extern void unixtodos_filename (register char *); +extern BOOL init_winsock (int load_now); +extern void srandom (int); +extern int random (void); + +extern int sys_pipe (int *); + +extern void set_process_dir (char *); +extern int sys_spawnve (int, char *, char **, char **); +extern void register_child (int, int); + +extern void sys_sleep (int); +extern char *getwd (char *); +extern int sys_link (const char *, const char *); + + + #ifdef HAVE_GNUTLS #include diff --git a/src/w32proc.c b/src/w32proc.c index 7e8183b0e82..57b3860cb76 100644 --- a/src/w32proc.c +++ b/src/w32proc.c @@ -24,6 +24,7 @@ along with GNU Emacs. If not, see . */ #include #include #include +#include #include #include #include @@ -68,8 +69,6 @@ extern BOOL WINAPI IsValidLocale (LCID, DWORD); Lisp_Object Qhigh, Qlow; -typedef void (_CALLBACK_ *signal_handler) (int); - /* Signal handlers...SIG_DFL == 0 so this is initialized correctly. */ static signal_handler sig_handlers[NSIG]; diff --git a/src/w32term.h b/src/w32term.h index 83f9e7b98dc..af5b37a1171 100644 --- a/src/w32term.h +++ b/src/w32term.h @@ -681,6 +681,9 @@ extern BOOL parse_button (int, int, int *, int *); extern void w32_sys_ring_bell (struct frame *f); extern void x_delete_display (struct w32_display_info *dpyinfo); +extern void w32_initialize_display_info (Lisp_Object); +extern void initialize_w32_display (struct terminal *); + /* Keypad command key support. W32 doesn't have virtual keys defined for the function keys on the keypad (they are mapped to the standard From 27067208fd133e8b9530aafe43b0eed13ec08c21 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Wed, 17 Oct 2012 23:13:20 +0200 Subject: [PATCH 237/272] Avoid compiler warnings in lib-src/ntlib.c src/ntlib.c: Include , to avoid compiler warning about _mbspbrk. --- lib-src/ChangeLog | 5 +++++ lib-src/ntlib.c | 1 + 2 files changed, 6 insertions(+) diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 85351d7f08d..1f28000e110 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,8 @@ +2012-10-17 Eli Zaretskii + + * ntlib.c: Include , to avoid compiler warning about + _mbspbrk. + 2012-10-08 Eli Zaretskii * makefile.w32-in (obj): Add cygw32.o. diff --git a/lib-src/ntlib.c b/lib-src/ntlib.c index feaad1c1bb7..4e125eb6d73 100644 --- a/lib-src/ntlib.c +++ b/lib-src/ntlib.c @@ -30,6 +30,7 @@ along with GNU Emacs. If not, see . */ #include #include #include +#include #include "ntlib.h" From b278604edf862feced13457cfed15bcf7ac63f76 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Thu, 18 Oct 2012 08:59:24 +0900 Subject: [PATCH 238/272] international/mule.el (set-keyboard-coding-system): Recover input meta mode when the new coding system doesn not use 8-bit. Supply TERMINAL arg to set-input-meta-mode. --- lisp/ChangeLog | 6 ++++++ lisp/international/mule.el | 22 ++++++++++++++-------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9b1929eae6b..602569156f7 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2012-10-17 Kenichi Handa + + * international/mule.el (set-keyboard-coding-system): Recover + input meta mode when the new coding system doesn not use 8-bit. + Supply TERMINAL arg to set-input-meta-mode. + 2012-10-17 Michael Heerdegen (tiny change) * wdired.el (wdired-old-marks): New variable. diff --git a/lisp/international/mule.el b/lisp/international/mule.el index e6e3f045a9e..922bec64c86 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el @@ -1355,19 +1355,25 @@ graphical terminals." (t (error "Unsupported coding system for keyboard: %s" coding-system))) - (when accept-8-bit - (or saved-meta-mode - (set-terminal-parameter terminal - 'keyboard-coding-saved-meta-mode - (cons (nth 2 (current-input-mode)) - nil))) - (set-input-meta-mode 8)) + (if accept-8-bit + (progn + (or saved-meta-mode + (set-terminal-parameter terminal + 'keyboard-coding-saved-meta-mode + (cons (nth 2 (current-input-mode)) + nil))) + (set-input-meta-mode 8 terminal)) + (when saved-meta-mode + (set-input-meta-mode (car saved-meta-mode) terminal) + (set-terminal-parameter terminal + 'keyboard-coding-saved-meta-mode + nil))) ;; Avoid end-of-line conversion. (setq coding-system (coding-system-change-eol-conversion coding-system 'unix))) (when saved-meta-mode - (set-input-meta-mode (car saved-meta-mode)) + (set-input-meta-mode (car saved-meta-mode) terminal) (set-terminal-parameter terminal 'keyboard-coding-saved-meta-mode nil)))) From f42f10940b288c90f91171fca8d24a3c5f43933c Mon Sep 17 00:00:00 2001 From: Dani Moncayo Date: Wed, 17 Oct 2012 20:27:17 -0700 Subject: [PATCH 239/272] * doc/emacs/mini.texi (Completion Options): Fix off-by-one error Fixes: debbugs:12644 --- doc/emacs/ChangeLog | 4 ++++ doc/emacs/mini.texi | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 873681ad0d4..66bb2de921b 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,7 @@ +2012-10-18 Dani Moncayo + + * mini.texi (Completion Options): Fix off-by-one error. (Bug#12644) + 2012-10-17 Glenn Morris * mini.texi (Repetition): Further copyedit. diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi index 0036b67f174..e5a84bda56d 100644 --- a/doc/emacs/mini.texi +++ b/doc/emacs/mini.texi @@ -550,7 +550,7 @@ those completion alternatives; each subsequent invocation of the completion command replaces that with the next completion alternative, in a cyclic manner. If you give @code{completion-cycle-threshold} a numeric value @var{n}, completion commands switch to this cycling -behavior only when there are fewer than @var{n} alternatives. +behavior only when there are @var{n} or fewer alternatives. @cindex Icomplete mode @findex icomplete-mode From 281c9d2b20ae897e72b1638ac3e241454d63f8d4 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Wed, 17 Oct 2012 20:30:04 -0700 Subject: [PATCH 240/272] * lisp/minibuffer.el (completion-cycle-threshold): Doc fix --- lisp/ChangeLog | 4 ++++ lisp/minibuffer.el | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 602569156f7..398b058a874 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-10-18 Glenn Morris + + * minibuffer.el (completion-cycle-threshold): Doc fix. + 2012-10-17 Kenichi Handa * international/mule.el (set-keyboard-coding-system): Recover diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index a9be1749423..f464b42182d 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -859,8 +859,8 @@ Depending on this setting `minibuffer-complete' may use cycling, like `minibuffer-force-complete'. If nil, cycling is never used. If t, cycling is always used. -If an integer, cycling is used as soon as there are fewer completion -candidates than this number." +If an integer, cycling is used so long as there are not more +completion candidates than this number." :version "24.1" :type completion--cycling-threshold-type) @@ -977,7 +977,7 @@ when the buffer's text is already an exact match." ;; This signal an (intended) error if comps is too ;; short or if completion-cycle-threshold is t. (consp (nthcdr threshold comps))))) - ;; Fewer than completion-cycle-threshold remaining + ;; Not more than completion-cycle-threshold remaining ;; completions: let's cycle. (setq completed t exact t) (completion--cache-all-sorted-completions comps) From 40714e3da88198ea96c4756a8607c758527b8e99 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Wed, 17 Oct 2012 20:50:15 -0700 Subject: [PATCH 241/272] * dired.el (dired-sort-toggle): Some ls implementations only allow a single option string. Fixes: debbugs:12666 --- lisp/ChangeLog | 3 +++ lisp/dired.el | 9 ++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 398b058a874..e799ead207b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2012-10-18 Glenn Morris + * dired.el (dired-sort-toggle): Some ls implementations only allow + a single option string. (Bug#12666) + * minibuffer.el (completion-cycle-threshold): Doc fix. 2012-10-17 Kenichi Handa diff --git a/lisp/dired.el b/lisp/dired.el index a17e1805339..a4bc16caebf 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -3546,8 +3546,15 @@ With a prefix argument, edit the current listing switches instead." (setq dired-actual-switches (replace-match "" t t dired-actual-switches 3)))) ;; Now, if we weren't sorting by date before, add the -t switch. + ;; Some simple-minded ls implementations (eg ftp servers) only + ;; allow a single option string, so try not to add " -t" if possible. (unless sorting-by-date - (setq dired-actual-switches (concat dired-actual-switches " -t")))) + (setq dired-actual-switches + (concat dired-actual-switches + (if (string-match-p "\\`-[[:alnum:]]+\\'" + dired-actual-switches) + "t" + " -t"))))) (dired-sort-set-mode-line) (revert-buffer)) From 1f76f6f5798b2f9ce8c9bdfbe85b198b8d02d924 Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Thu, 18 Oct 2012 10:27:49 +0200 Subject: [PATCH 242/272] In window.c fix two flaws reported by Dmitry Antipov. * window.c (Ftemp_output_buffer_show): Remove. (Fwindow_vscroll, Fset_window_vscroll): Use decode_live_window. (syms_of_window): Remove defsubr for Stemp_output_buffer_show. --- src/ChangeLog | 17 ++++++++++++----- src/window.c | 35 +++++------------------------------ 2 files changed, 17 insertions(+), 35 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 827850e332d..817274b5691 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,10 +1,17 @@ +2012-10-18 Martin Rudalics + + Fix two flaws reported by Dmitry Antipov. + * window.c (Ftemp_output_buffer_show): Remove. + (Fwindow_vscroll, Fset_window_vscroll): Use decode_live_window. + (syms_of_window): Remove defsubr for Stemp_output_buffer_show. + 2012-10-17 Eli Zaretskii - * makefile.w32-in ($(BLD)/w32.$(O)): - ($(BLD)/vm-limit.$(O)): - ($(BLD)/term.$(O)): - ($(BLD)/unexw32.$(O)): - ($(BLD)/fileio.$(O)): + * makefile.w32-in ($(BLD)/w32.$(O)): + ($(BLD)/vm-limit.$(O)): + ($(BLD)/term.$(O)): + ($(BLD)/unexw32.$(O)): + ($(BLD)/fileio.$(O)): ($(BLD)/dispnew.$(O)): Update dependencies. * w32term.h (w32_initialize_display_info, initialize_w32_display): diff --git a/src/window.c b/src/window.c index b4fee61cac8..dfcabda59b9 100644 --- a/src/window.c +++ b/src/window.c @@ -3339,7 +3339,7 @@ displaying that buffer. */) return Qnil; } - +/* Obsolete since 24.3. */ void temp_output_buffer_show (register Lisp_Object buf) { @@ -3392,16 +3392,6 @@ temp_output_buffer_show (register Lisp_Object buf) } } } - -DEFUN ("internal-temp-output-buffer-show", - Ftemp_output_buffer_show, Stemp_output_buffer_show, - 1, 1, 0, - doc: /* Internal function for `with-output-to-temp-buffer'. */) - (Lisp_Object buf) -{ - temp_output_buffer_show (buf); - return Qnil; -} /* Make new window, have it replace WINDOW in window-tree, and make WINDOW its only vertical child (HORFLAG 1 means make WINDOW its only @@ -6423,15 +6413,8 @@ optional second arg PIXELS-P means value is measured in pixels. */) (Lisp_Object window, Lisp_Object pixels_p) { Lisp_Object result; - struct frame *f; - struct window *w; - - if (NILP (window)) - window = selected_window; - else - CHECK_WINDOW (window); - w = XWINDOW (window); - f = XFRAME (w->frame); + struct window *w = decode_live_window (window); + struct frame *f = XFRAME (w->frame); if (FRAME_WINDOW_P (f)) result = (NILP (pixels_p) @@ -6455,18 +6438,11 @@ result of this rounding. If PIXELS-P is non-nil, the return value is VSCROLL. */) (Lisp_Object window, Lisp_Object vscroll, Lisp_Object pixels_p) { - struct window *w; - struct frame *f; + struct window *w = decode_live_window (window); + struct frame *f = XFRAME (w->frame); - if (NILP (window)) - window = selected_window; - else - CHECK_WINDOW (window); CHECK_NUMBER_OR_FLOAT (vscroll); - w = XWINDOW (window); - f = XFRAME (w->frame); - if (FRAME_WINDOW_P (f)) { int old_dy = w->vscroll; @@ -6923,7 +6899,6 @@ respectively are not installed by `window-state-put'. */); defsubr (&Srun_window_configuration_change_hook); defsubr (&Sselect_window); defsubr (&Sforce_window_update); - defsubr (&Stemp_output_buffer_show); defsubr (&Ssplit_window_internal); defsubr (&Sscroll_up); defsubr (&Sscroll_down); From b2f0135a62c6242ad8b865d37d65bb817f8d1262 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 18 Oct 2012 08:49:18 -0400 Subject: [PATCH 243/272] * lisp/erc/erc-backend.el (erc-with-server-buffer): Autoload as well. Fixes: debbugs:12669 --- lisp/erc/ChangeLog | 4 ++++ lisp/erc/erc-backend.el | 1 + 2 files changed, 5 insertions(+) diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 343a6655701..df1e74ac39f 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -1,3 +1,7 @@ +2012-10-18 Stefan Monnier + + * erc-backend.el (erc-with-server-buffer): Autoload as well (bug#12669). + 2012-10-15 Stefan Monnier * erc.el (erc-log): Make it into a defsubst. diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el index b8b5c90b596..507cff87b6b 100644 --- a/lisp/erc/erc-backend.el +++ b/lisp/erc/erc-backend.el @@ -100,6 +100,7 @@ (require 'erc-compat) (eval-when-compile (require 'cl)) (autoload 'erc-with-buffer "erc" nil nil 'macro) +(autoload 'erc-with-server-buffer "erc" nil nil 'macro) (autoload 'erc-log "erc") ;;;; Variables and options From 90eacf9920c2d9dc4edffdefe7e7a2a781493cc2 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 18 Oct 2012 08:56:10 -0400 Subject: [PATCH 244/272] * lisp/emacs-lisp/gv.el (cond): Same fix as before for `if'. * Makefile.in ($(MAKEFILE_NAME)): Depend on src/lisp.mk as well. --- ChangeLog | 176 +++++++++++++++++++++--------------------- Makefile.in | 2 +- lisp/ChangeLog | 8 +- lisp/emacs-lisp/gv.el | 3 +- 4 files changed, 99 insertions(+), 90 deletions(-) diff --git a/ChangeLog b/ChangeLog index b8c7adb8708..81eddade0a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2012-10-18 Stefan Monnier + + * Makefile.in ($(MAKEFILE_NAME)): Depend on src/lisp.mk as well. + 2012-10-15 Glenn Morris * Makefile.in (install-man, install-etc): @@ -10,8 +14,8 @@ 2012-10-08 Daniel Colascione - * configure.ac: Add --with-w32 as a window system option. Limit - it to Cygwin for now. Integrate w32 into the refactored window + * configure.ac: Add --with-w32 as a window system option. + Limit it to Cygwin for now. Integrate w32 into the refactored window system configuration and set TERM_HEADER to w32term.h when w32 is configured. @@ -796,8 +800,8 @@ 2012-06-26 Eli Zaretskii - * lib/makefile.w32-in ($(GNULIBOBJS)): Depend on stamp_BLD. This - replaces separate dependency for each object file, which required + * lib/makefile.w32-in ($(GNULIBOBJS)): Depend on stamp_BLD. + This replaces separate dependency for each object file, which required the same object file to be mentioned twice, causing failures in parallel builds. @@ -995,8 +999,8 @@ The build procedure now creates and for older hosts that lack a working or whose - does not define pid_t, size_t, ssize_t, mode_t. New - symbols such as WINDOWS_64_BIT_OFF_T may require attention in the + does not define pid_t, size_t, ssize_t, mode_t. + New symbols such as WINDOWS_64_BIT_OFF_T may require attention in the msdos and nt builds. Here is a precis of gnulib changes that seem relevant; please see @@ -2291,8 +2295,8 @@ * .bzrignore: Ignore new lib/*.in-h files. - * config.bat: Rename stdint.in.h and sys_stat.in.h. Call - depfiles.bat even if lib/deps already exist. + * config.bat: Rename stdint.in.h and sys_stat.in.h. + Call depfiles.bat even if lib/deps already exist. 2011-02-25 Paul Eggert @@ -2319,7 +2323,7 @@ 2011-02-21 Christoph Scholtes - * lib/makefile.w32-in ($(BLD)/md5.$(O)): Added dependency on + * lib/makefile.w32-in ($(BLD)/md5.$(O)): Add dependency on $(EMACS_ROOT)/nt/inc/stdint.h. 2011-02-21 Eli Zaretskii @@ -2420,7 +2424,7 @@ 2011-02-13 Bruno Haible Consistent macro naming for macros that use GCC __attribute__. - * lib/ignore-value.h (_GL_ATTRIBUTE_DEPRECATED): Renamed from + * lib/ignore-value.h (_GL_ATTRIBUTE_DEPRECATED): Rename from ATTRIBUTE_DEPRECATED. 2011-02-12 Bruno Haible @@ -2481,7 +2485,7 @@ 2011-02-05 Paul Eggert sync from gnulib to remove HAVE_STDBOOL_H - * m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Renamed from + * m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Rename from AC_HEADER_STDBOOL. All uses changed. Do not define HAVE_STDBOOL_H, as gnulib does not need this. This change is imported from the latest Autoconf git. It was motivated by Emacs, @@ -2566,8 +2570,8 @@ * lib/mktime.c (isdst_differ): New function. (__mktime_internal): Use it systematically for all isdst comparisons. This completes the fix for libc BZ #6723, and removes the need for - normalizing tm_isdst. See - + normalizing tm_isdst. + See (not_equal_tm) [DEBUG]: Use isdst_differ here, too. mktime: fix some integer overflow issues and sidestep the rest @@ -2641,7 +2645,7 @@ 2011-01-28 Paul Eggert improve fix for MS-DOS file name clash - * Makefile.in (DOS_gnulib_comp.m4): Renamed from DOS-gnulib-comp.m4, + * Makefile.in (DOS_gnulib_comp.m4): Rename from DOS-gnulib-comp.m4, for portability to POSIX make. Reported by Bruno Haible. (sync-from-gnulib): Copy gl-comp.m4 (if present) back to gnulib-comp.m4 before running gnulib-tool, to prevent old gnulib @@ -2932,8 +2936,8 @@ 2010-12-04 Andreas Schwab * configure.in: Remove reference to removed machine description - files and allow $machine and $machfile to be empty. Substitute - M_FILE/S_FILE instead of machfile/opsysfile. + files and allow $machine and $machfile to be empty. + Substitute M_FILE/S_FILE instead of machfile/opsysfile. 2010-12-03 Glenn Morris @@ -2966,8 +2970,8 @@ 2010-10-31 Ken Brown - * configure.in (checking whether localtime caches TZ): Use - unsetenv instead of modifying environment directly. + * configure.in (checking whether localtime caches TZ): + Use unsetenv instead of modifying environment directly. 2010-10-25 Andreas Schwab @@ -3000,8 +3004,8 @@ 2010-10-12 Dan Nicolaescu - * configure (ns_appdir, OLDXMENU, TOOLTIP_SUPPORT): Remove - trailing / from directory names. + * configure (ns_appdir, OLDXMENU, TOOLTIP_SUPPORT): + Remove trailing / from directory names. 2010-10-12 Glenn Morris @@ -4212,8 +4216,8 @@ 2008-08-21 Christian Faulhammer (tiny change) - * configure.in (GNUSTEP_SYSTEM_HEADERS): Define - GNUSTEP_SYSTEM_HEADERS and GNUSTEP_SYSTEM_LIBRARIES. + * configure.in (GNUSTEP_SYSTEM_HEADERS): + Define GNUSTEP_SYSTEM_HEADERS and GNUSTEP_SYSTEM_LIBRARIES. * configure: Regenerate. @@ -4254,8 +4258,8 @@ 2008-08-06 Adrian Robert * configure.in (NS_HAVE_INTEGER): Rename to NS_HAVE_NSINTEGER. - (C_SWITCH_X_SYSTEM): Drop -MMD -MP under NS_IMPL_GNUstep. Don't - bother undef'ing since won't have desired effect. + (C_SWITCH_X_SYSTEM): Drop -MMD -MP under NS_IMPL_GNUstep. + Don't bother undef'ing since won't have desired effect. 2008-08-06 Andreas Schwab @@ -5152,8 +5156,8 @@ 2007-03-19 Deanna Phillips (tiny change) * configure.in (arm-*-openbsd*, hppa-*-openbsd*) - (m88k-*-openbsd*, mips64-*-openbsd*, sh-*-openbsd*): Added. - (ns32k-*-openbsd*, ns32k-*-openbsd*): Deleted. + (m88k-*-openbsd*, mips64-*-openbsd*, sh-*-openbsd*): Add. + (ns32k-*-openbsd*, ns32k-*-openbsd*): Delete. 2007-03-19 Chong Yidong @@ -5483,7 +5487,7 @@ * configure.in: Use GZIP_PROG instead of GZIP. - * Makefile.in (GZIP_PROG): Renamed from GZIP. + * Makefile.in (GZIP_PROG): Rename from GZIP. (install-arch-indep): Adjust. 2005-11-01 Andreas Schwab @@ -5596,8 +5600,8 @@ 2005-05-13 YAMAMOTO Mitsuharu * configure.in: Don't check HAVE_CARBON if HAVE_X11 is set to yes. - Check HAVE_CARBON before USE_TOOLKIT_SCROLL_BARS. Define - USE_TOOLKIT_SCROLL_BARS by default if HAVE_CARBON is set to yes. + Check HAVE_CARBON before USE_TOOLKIT_SCROLL_BARS. + Define USE_TOOLKIT_SCROLL_BARS by default if HAVE_CARBON is set to yes. 2005-05-07 Jérôme Marant @@ -6691,8 +6695,8 @@ * Makefile.in (uninstall): Ignore exit code of `rm'. - * Makefile.in (uninstall): Remove more info files. Remove - ${libexecdir}/emacs/${version}. Remove ${archlibdir}/fns-*. + * Makefile.in (uninstall): Remove more info files. + Remove ${libexecdir}/emacs/${version}. Remove ${archlibdir}/fns-*. 2001-01-31 Gerd Moellmann @@ -6700,7 +6704,7 @@ 2001-01-28 Gerd Moellmann - * Makefile.in (extraclean): Added -f to -rm config-tmp-* to keep + * Makefile.in (extraclean): Add -f to -rm config-tmp-* to keep it quiet. 2001-01-24 Colin Walters @@ -6895,7 +6899,7 @@ (NON-TIT-CNS, JAPANESE, KOREAN, THAI, VIETNAMESE, LAO, INDIAN) (TIBETAN, LATIN, SLAVIC, GREEK, RUSSIAN, MISC): Rename all .el files to .elc. - (${TIT}): Adjusted for the above change. + (${TIT}): Adjust for the above change. (clean mostlyclean): Likewise. (.el.elc): New target. @@ -6982,7 +6986,7 @@ 2000-07-26 Dave Love - * configure.in (AC_SYS_LARGEFILE): Moved earlier. + * configure.in (AC_SYS_LARGEFILE): Move earlier. 2000-07-24 Dave Love @@ -7154,8 +7158,8 @@ * Makefile.in (bootstrap-lisp-1, bootstrap-lisp, bootstrap-src): New targets. - (bootstrap): Rewritten in terms of the new targets above. Make - info files, too. + (bootstrap): Rewritten in terms of the new targets above. + Make info files, too. 2000-03-12 Gerd Moellmann @@ -7234,8 +7238,8 @@ 2000-01-03 Andreas Schwab - * Makefile.in (install-arch-indep): Install autotype*. Run - install-info on autotype and emacs-faq.info. + * Makefile.in (install-arch-indep): Install autotype*. + Run install-info on autotype and emacs-faq.info. 1999-12-04 Dave Love @@ -7311,7 +7315,7 @@ 1999-09-07 Gerd Moellmann - * configure.in (--with-sound): Removed. + * configure.in (--with-sound): Remove. 1999-08-30 Gerd Moellmann @@ -7408,7 +7412,7 @@ * configure.in: Use epaths.h and epaths-force instead of paths... - * Makefile.in (epaths-force): Renamed from paths-force; + * Makefile.in (epaths-force): Rename from paths-force; operate on epaths.in and produce epaths.h. 1999-02-24 Richard Stallman @@ -7753,8 +7757,8 @@ 1997-08-24 NIIBE Yutaka - * configure.in (x_default_search_path): Corrected - '${x_library}' to '${x_library}/X11'. + * configure.in (x_default_search_path): + Corrected '${x_library}' to '${x_library}/X11'. 1997-08-22 Richard Stallman @@ -8454,7 +8458,7 @@ 1995-12-24 Richard Stallman * configure.in: Determine HAVE_X11R6. - (HAVE_MENUS): Renamed from HAVE_X_MENU. + (HAVE_MENUS): Rename from HAVE_X_MENU. 1995-12-21 Richard Stallman @@ -8647,8 +8651,8 @@ 1995-07-06 David J. MacKenzie - * configure.in: Put back archlibdir initialization. Require - autoconf 2.4.1 or later. + * configure.in: Put back archlibdir initialization. + Require autoconf 2.4.1 or later. 1995-07-01 Richard Stallman @@ -8776,7 +8780,7 @@ * make-dist: Put src/makefile.nt in dist. * configure.in (i[345]86-*-bsdi2*): New configuration. - (vax-dec-bsd386*): Deleted. + (vax-dec-bsd386*): Delete. 1995-05-06 David J. MacKenzie @@ -8786,7 +8790,7 @@ 1995-05-03 Richard Stallman - * configure.in (m68*-apollo-*): Renamed from m68*-apollo*. + * configure.in (m68*-apollo-*): Rename from m68*-apollo*. Use bsd4-3. Don't set NON_GNU_CPP. * make-dist: Don't copy in src/s/*.inp. Don't copy nt/src. @@ -8863,7 +8867,7 @@ 1995-02-07 Richard Stallman - * Makefile.in (maintainer-clean): Renamed from realclean. + * Makefile.in (maintainer-clean): Rename from realclean. 1995-02-02 David J. MacKenzie @@ -9032,8 +9036,8 @@ * Makefile.in: Use libexecdir and sharedstatedir as appropriate. - * configure.in (libexecdir): Renamed from libdir. New default. - (sharedstatedir): Renamed from statedir. New default. + * configure.in (libexecdir): Rename from libdir. New default. + (sharedstatedir): Rename from statedir. New default. (datadir): New default. * make-dist: Don't distribute subdirs.el. @@ -9583,7 +9587,7 @@ 1994-02-14 Frederic Pierresteguy (fp@mole.gnu.ai.mit.edu) - * configure.in (rs6000-bull-bosx*): Added support for BULL dpx20. + * configure.in (rs6000-bull-bosx*): Add support for BULL dpx20. 1994-02-11 Karl Heuer (kwzh@mole.gnu.ai.mit.edu) @@ -9736,7 +9740,7 @@ * Makefile.in (mkdir): Make only the lockdir writable. - * configure.in (i860-*-sysv4): Renamed from i860-*-sysvr4. + * configure.in (i860-*-sysv4): Rename from i860-*-sysvr4. 1993-12-11 Richard Stallman (rms@srarc2) @@ -9850,8 +9854,8 @@ 1993-09-28 Brian J. Fox (bfox@cubit) * configure.in: Don't copy ${srcdir}/src/Makefile.in; that file - doesn't exist. Just copy src/Makefile.in instead. Touch - all of the Makefiles after editing config.status. + doesn't exist. Just copy src/Makefile.in instead. + Touch all of the Makefiles after editing config.status. * INSTALL: Update documentation to match new configuration mechanism. @@ -9932,8 +9936,8 @@ 1993-09-10 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - * configure.in: Remove check for $srcdir being configured. This - pretty much works now. + * configure.in: Remove check for $srcdir being configured. + This pretty much works now. Grok {m68*-hp,i[34]86-*}-netbsd* and set opsys=netbsd. Check for XFree86 (/usr/X386/include) independent of whether -lXbsd exists. @@ -9974,7 +9978,7 @@ 1993-08-10 Richard Stallman (rms@mole.gnu.ai.mit.edu) - * configure.in (m88k-tektronix-sysv3*): Added the missing *. + * configure.in (m88k-tektronix-sysv3*): Add the missing *. Use tekxd88, not tekXD88. 1993-08-10 Roland McGrath (roland@churchy.gnu.ai.mit.edu) @@ -10349,8 +10353,8 @@ * INSTALL: Mention its usage. * configure.in (hppa-hp-hpux): Use uname -r instead of uname -m; - the former gives you the operating system rev directly. Use - s/hpux.h if we don't recognize what we got. + the former gives you the operating system rev directly. + Use s/hpux.h if we don't recognize what we got. * Makefile.in (do-install): Don't remove a destination directory if it's the same as the source. If ${srcdir}/info == ${infodir}, @@ -10397,8 +10401,8 @@ * Makefile.in (install): Split this into `install' and `do-install', to give people more control over exactly what gets done. - (do-install): New target, containing the guts of `install'. Don't - remove and recreate the directories inside the copying loop - do + (do-install): New target, containing the guts of `install'. + Don't remove and recreate the directories inside the copying loop - do it all before the copying loop. Pass more flags to the lib-src make. (mkdir): Create ${infodir}, ${mandir}, and ${sitelispdir} here, to @@ -10455,7 +10459,7 @@ * configure.in: Make the first line of the configure script be "#!/bin/sh". Leaving the first line blank didn't work. - * configure.in (long_usage): Removed; made short_usage describe + * configure.in (long_usage): Remove; made short_usage describe the options briefly. * configure.in: Implement the --prefix option. @@ -10527,11 +10531,11 @@ * PROBLEMS: Some updates from David J. Mackenzie. More changes from David J. Mackenzie. - * Makefile.in (install.sysv, install.xenix, install.aix): Targets - removed; autoconf and config.h should specify all these + * Makefile.in (install.sysv, install.xenix, install.aix): + Targets removed; autoconf and config.h should specify all these differences. (buildlisppath): Make this path depend on ${srcdir}. - (INSTALLFLAGS): Removed. + (INSTALLFLAGS): Remove. (INSTALL): Include the -c flag. (install): Change the way we invoke install accordingly. @@ -10574,14 +10578,14 @@ 1993-05-09 Jim Blandy (jimb@totoro.cs.oberlin.edu) - * Makefile.in (DEFS): Deleted; since we're using AC_CONFIG_HEADER, + * Makefile.in (DEFS): Delete; since we're using AC_CONFIG_HEADER, this is always just -DHAVE_CONFIG_H. The GNU coding standards specify that CFLAGS should be left for users to set. * Makefile.in (CFLAGS): Let configure determine the default value - for this. Don't - have it default to DEFS. + for this. + Don't have it default to DEFS. (${SUBDIR}): Pass CFLAGS down to submakes, not DEFS. (lib-src/Makefile, src/Makefile): Edit the default value for CFLAGS into these files, not DEFS. @@ -10707,17 +10711,17 @@ Use autoconf to produce Makefile and src/config.h. Remove the Makefile-style comment that autoconf places at the top of src/config.h. - (config_h_opts): Removed - no longer necessary. - * Makefile.in (configname): Renamed to configuration. - (CONFIG_CFLAGS): Renamed to DEFS. - (CC, DEFS, C_SWITCH_SYSTEM, version, configuration): Adjusted to + (config_h_opts): Remove - no longer necessary. + * Makefile.in (configname): Rename to configuration. + (CONFIG_CFLAGS): Rename to DEFS. + (CC, DEFS, C_SWITCH_SYSTEM, version, configuration): Adjust to get values via autoload @cookies@. (libsrc_libs): Get this from autoconf. We used to do nothing about this. (${SUBDIR}): Pass DEFS to submakes instead of CONFIG_CFLAGS. - * Makefile.in (src/paths.h, lib-src/Makefile, src/Makefile): Don't - echo the move-if-change command. + * Makefile.in (src/paths.h, lib-src/Makefile, src/Makefile): + Don't echo the move-if-change command. 1993-04-08 Jim Blandy (jimb@churchy.gnu.ai.mit.edu) @@ -10772,8 +10776,8 @@ * configure: Properly handle extracting values of LIBS_MACHINE and LIBS_SYSTEM that contain spaces. - * configure: Add `--x-includes' and `--x-libraries' options. I - think these are dopey, but no less than three alpha testers, at + * configure: Add `--x-includes' and `--x-libraries' options. + I think these are dopey, but no less than three alpha testers, at large sites, have said they have their X files installed in odd places. Implement them by setting C_SWITCH_X_SITE and LD_SWITCH_X_SITE in src/config.h. @@ -10978,8 +10982,8 @@ * Makefile.in (datadir, statedir, libdir): Make these all default to ${prefix}/lib. - (lispdir, locallisppath, etcdir, lockdir, archlibdir): Adjusted - to compensate. + (lispdir, locallisppath, etcdir, lockdir, archlibdir): + Adjust to compensate. * Makefile.in (install, install.sysv, install.xenix, install.aix): Install the etags and ctags man pages too. @@ -10994,7 +10998,7 @@ * configure (long_usage): Remove all traces of old arguments from usage messages, and document the options we do accept in more detail: -with-x... and --srcdir. - (options, boolean_opts): Deleted; we don't have enough options to + (options, boolean_opts): Delete; we don't have enough options to make this worthwhile. (prefix, bindir, lisppath, datadir, libdir, lockdir): Deleted, along with the code which supported them; these should be set as @@ -11019,8 +11023,8 @@ compile in don't exist yet, create them under the current directory. Note that the rest of the build process doesn't really support this. - Edit only the top Makefile. That should edit the others. Edit - into the makefile: `version', from lisp/version.el, `configname' + Edit only the top Makefile. That should edit the others. + Edit into the makefile: `version', from lisp/version.el, `configname' and `srcdir' from the configuration arguments, `CC' and `CONFIG_CFLAGS' as guessed from the presence or absence of GCC in the user's path, and LOADLIBES as gleaned from the system @@ -11263,8 +11267,8 @@ * make-dist: When setting up etc/COPYING, always nuke whatever is there, and then copy it in, to make sure we get a real file. - * make-dist: Don't try to distribute *.defns files any more. The - only such file was for simula.el, which has been superseded by a + * make-dist: Don't try to distribute *.defns files any more. + The only such file was for simula.el, which has been superseded by a version which doesn't have a separate .defns file. 1992-05-28 Ken Raeburn (Raeburn@Cygnus.COM) @@ -11435,10 +11439,10 @@ (mostlyclean): New target, synonymous with clean. (realclean): New target. Currently, this just calls the subdirectories's makefiles and then deletes config.status. - (INSTALL, INSTALLFLAGS, INSTALL_PROGRAM, INSTALL_DATA): New - variables. + (INSTALL, INSTALLFLAGS, INSTALL_PROGRAM, INSTALL_DATA): + New variables. Installation directory variables changed to conform. - (install, install.sysv, install.xenix, install.aix): Changed the + (install, install.sysv, install.xenix, install.aix): Change the code which copies the directories into their installed location to allow the installed locations to be in several different directories; the old version assumed that they would all be in diff --git a/Makefile.in b/Makefile.in index d929160c597..c27b6777162 100644 --- a/Makefile.in +++ b/Makefile.in @@ -361,7 +361,7 @@ blessmail: Makefile src FRC # etc. to be built without running into similar recursion problems. MAKEFILE_NAME = Makefile $(MAKEFILE_NAME): config.status $(srcdir)/src/config.in \ - $(srcdir)/Makefile.in $(SUBDIR_MAKEFILES_IN) + $(srcdir)/Makefile.in $(SUBDIR_MAKEFILES_IN) $(srcdir)/src/lisp.mk MAKE='$(MAKE)' ./config.status # Don't erase these files if make is interrupted while refreshing them. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e799ead207b..8c8f88dc89b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-10-18 Stefan Monnier + + * emacs-lisp/gv.el (cond): Same fix as before for `if'. + 2012-10-18 Glenn Morris * dired.el (dired-sort-toggle): Some ls implementations only allow @@ -7,8 +11,8 @@ 2012-10-17 Kenichi Handa - * international/mule.el (set-keyboard-coding-system): Recover - input meta mode when the new coding system doesn not use 8-bit. + * international/mule.el (set-keyboard-coding-system): + Recover input meta mode when the new coding system doesn not use 8-bit. Supply TERMINAL arg to set-input-meta-mode. 2012-10-17 Michael Heerdegen (tiny change) diff --git a/lisp/emacs-lisp/gv.el b/lisp/emacs-lisp/gv.el index 1a30d67fbbc..d6c91539a90 100644 --- a/lisp/emacs-lisp/gv.el +++ b/lisp/emacs-lisp/gv.el @@ -377,7 +377,8 @@ The return value is the last VAL in the list. (put 'cond 'gv-expander (lambda (do &rest branches) - (if (macroexp-small-p (funcall do 'dummy (lambda (_) 'dummy))) + (if (or (not lexical-binding) ;The other code requires lexical-binding. + (macroexp-small-p (funcall do 'dummy (lambda (_) 'dummy)))) ;; This duplicates the `do' code, which is a problem if that ;; code is large, but otherwise results in more efficient code. `(cond From aaf0c30025d24dba6d50fda6e61510020c2d611e Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 18 Oct 2012 11:37:57 -0400 Subject: [PATCH 245/272] * lisp/emacs-lisp/advice.el: Clean up commentary a bit. (ad-do-advised-functions, ad-with-originals): Use `declare'. (byte-code-function-p): Never redefine. --- lisp/ChangeLog | 4 ++ lisp/emacs-lisp/advice.el | 85 ++++++++------------------------------- 2 files changed, 20 insertions(+), 69 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8c8f88dc89b..51e6b67b86c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,9 @@ 2012-10-18 Stefan Monnier + * emacs-lisp/advice.el: Clean up commentary a bit. + (ad-do-advised-functions, ad-with-originals): Use `declare'. + (byte-code-function-p): Never redefine. + * emacs-lisp/gv.el (cond): Same fix as before for `if'. 2012-10-18 Glenn Morris diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el index d96076d17a6..007871aa3a6 100644 --- a/lisp/emacs-lisp/advice.el +++ b/lisp/emacs-lisp/advice.el @@ -31,10 +31,6 @@ ;;; Commentary: -;; NOTE: This documentation is slightly out of date. In particular, all the -;; references to Emacs-18 are obsolete now, because it is not any longer -;; supported by this version of Advice. - ;; Advice is documented in the Emacs Lisp Manual. ;; @ Introduction: @@ -83,21 +79,10 @@ ;; - Provides manipulation mechanisms for sets of advised functions via ;; regular expressions that match advice names -;; @ How to get Advice for Emacs-18: -;; ================================= -;; `advice18.el', a version of Advice that also works in Emacs-18 is available -;; either via anonymous ftp from `ftp.cs.buffalo.edu (128.205.32.9)' with -;; pathname `/pub/Emacs/advice18.el', or from one of the Emacs Lisp archive -;; sites, or send email to and I'll mail it to you. - ;; @ Overview, or how to read this file: ;; ===================================== -;; NOTE: This documentation is slightly out of date. In particular, all the -;; references to Emacs-18 are obsolete now, because it is not any longer -;; supported by this version of Advice. An up-to-date version will soon be -;; available as an info file (thanks to the kind help of Jack Vinson and -;; David M. Smith). Until then you can use `outline-mode' to help you read -;; this documentation (set `outline-regexp' to `";; @+"'). +;; You can use `outline-mode' to help you read this documentation (set +;; `outline-regexp' to `";; @+"'). ;; ;; The four major sections of this file are: ;; @@ -111,9 +96,6 @@ ;; @ Restrictions: ;; =============== -;; - This version of Advice only works for Emacs 19.26 and later. It uses -;; new versions of the built-in functions `fset/defalias' which are not -;; yet available in Lucid Emacs, hence, it won't work there. ;; - Advised functions/macros/subrs will only exhibit their advised behavior ;; when they are invoked via their function cell. This means that advice will ;; not work for the following: @@ -229,13 +211,8 @@ ;; @@ Terminology: ;; =============== -;; - Emacs, Emacs-19: Emacs as released by the GNU Project -;; - Lemacs: Lucid's version of Emacs with major version 19 -;; - v18: Any Emacs with major version 18 or built as an extension to that -;; (such as Epoch) -;; - v19: Any Emacs with major version 19 -;; - jwz: Jamie Zawinski - former keeper of Lemacs and creator of the optimizing -;; byte-compiler used in v19s. +;; - Emacs: Emacs as released by the GNU Project +;; - jwz: Jamie Zawinski - creator of the byte-compiler used in v19s. ;; - Advice: The name of this package. ;; - advices: Short for "pieces of advice". @@ -294,8 +271,7 @@ ;; generates a compiled advised definition according to the ;; current advice state which will be used during activation ;; if appropriate. Only use this if the `defadvice' gets -;; actually compiled (with a v18 byte-compiler put the `defadvice' -;; into the body of a `defun' to accomplish proper compilation). +;; actually compiled. ;; An optional can be supplied to document the advice. ;; On call of the `documentation' function it will be combined with the @@ -399,10 +375,7 @@ ;; gets redefined in a non-advice style into a function by the edebug ;; package. If the advice assumes `eval-region' to be a subr it might break ;; once edebug is loaded. Similar situations arise when one wants to use the -;; same piece of advice across different versions of Emacs. Some subrs in a -;; v18 Emacs are functions in v19 and vice versa, but for the most part the -;; semantics remain the same, hence, the same piece of advice might be usable -;; in both Emacs versions. +;; same piece of advice across different versions of Emacs. ;; As a solution to that advice provides argument list access macros that get ;; translated into the proper access forms at activation time, i.e., when the @@ -556,12 +529,7 @@ ;; defined. The special forms `defun' and `defmacro' have been advised to ;; check whether the function/macro they defined had advice information ;; associated with it. If so and forward advice is enabled, the original -;; definition will be saved, and then the advice will be activated. When a -;; file is loaded in a v18 Emacs the functions/macros it defines are also -;; defined with calls to `defun/defmacro'. Hence, we can forward advise -;; functions/macros which will be defined later during a load/autoload of some -;; file (for compiled files generated by jwz's byte-compiler in a v19 Emacs -;; this is slightly more complicated but the basic idea is the same). +;; definition will be saved, and then the advice will be activated. ;; @@ Enabling/disabling pieces or sets of advice: ;; =============================================== @@ -694,10 +662,8 @@ ;; specified as disabled) and all other currently enabled pieces of advice to ;; construct an advised definition and an identifying cache-id and makes them ;; part of the `defadvice' expansion which will then be compiled by the -;; byte-compiler (to ensure that in a v18 emacs you have to put the -;; `defadvice' inside a `defun' to get it compiled and then you have to call -;; that compiled `defun' in order to actually execute the `defadvice'). When -;; the file with the compiled, preactivating `defadvice' gets loaded the +;; byte-compiler. +;; When the file with the compiled, preactivating `defadvice' gets loaded the ;; precompiled advised definition will be cached on the advised function's ;; advice-info. When it gets activated (can be immediately on execution of the ;; `defadvice' or any time later) the cache-id gets checked against the @@ -792,8 +758,7 @@ ;; advised definition of a function, rather they are assembled into a hook ;; form which will be evaluated whenever the advice-info of the advised ;; function gets activated or deactivated. One application of this mechanism -;; is to define file load hooks for files that do not provide such hooks -;; (v19s already come with a general file-load-hook mechanism, v18s don't). +;; is to define file load hooks for files that do not provide such hooks. ;; For example, suppose you want to print a message whenever `file-x' gets ;; loaded, and suppose the last function defined in `file-x' is ;; `file-x-last-fn'. Then we can define the following advice: @@ -1400,8 +1365,8 @@ ;; ;; If you put a preactivating `defadvice' into a Lisp file that gets byte- ;; compiled then the constructed advised definition will get compiled by -;; the byte-compiler. For that to occur in a v18 emacs you have to put the -;; `defadvice' inside a `defun' because the v18 compiler does not compile +;; the byte-compiler. For that to occur in a v18 Emacs you had to put the +;; `defadvice' inside a `defun' because the v18 compiler did not compile ;; top-level forms other than `defun' or `defmacro', for example, ;; ;; (defun fg-defadvice-fum () @@ -1496,10 +1461,7 @@ ;; if one advises a subr such as `eval-region' which then gets redefined by ;; some package (e.g., edebug) into a function with different argument names, ;; then a piece of advice written for `eval-region' that was written with -;; the subr arguments in mind will break. Similar situations arise when one -;; switches between major Emacs versions, e.g., certain subrs in v18 are -;; functions in v19 and vice versa. Also, in v19s subr argument lists -;; are available and will be used, while they are not available in v18. +;; the subr arguments in mind will break. ;; ;; Argument access text macros allow one to access arguments of an advised ;; function in a portable way without having to worry about all these @@ -1882,15 +1844,13 @@ generates a copy of TREE." BODY-FORM...) On each iteration VAR will be bound to the name of an advised function \(a symbol)." + (declare (indent 1)) `(cl-dolist (,(car varform) ad-advised-functions ,(car (cdr varform))) (setq ,(car varform) (intern (car ,(car varform)))) ,@body)) -(if (not (get 'ad-do-advised-functions 'lisp-indent-hook)) - (put 'ad-do-advised-functions 'lisp-indent-hook 1)) - (defun ad-get-advice-info (function) (get function 'ad-advice-info)) @@ -2117,7 +2077,7 @@ function at point for which PREDICATE returns non-nil)." (lambda (function) ;; Oops, no closures - the joys of dynamic scoping: ;; `predicate' clashed with the `predicate' argument - ;; of Lemacs' `completing-read'..... + ;; of `completing-read'..... (funcall ad-pReDiCaTe (intern (car function)))))) t))) (if (equal function "") @@ -2394,12 +2354,6 @@ See Info node `(elisp)Computed Advice' for detailed documentation." ;;"non-nil if DEFINITION is a piece of advice." `(eq (car-safe ,definition) 'advice)) -;; Emacs/Lemacs cross-compatibility -;; (compiled-function-p is an obsolete function in Emacs): -(if (and (not (fboundp 'byte-code-function-p)) - (fboundp 'compiled-function-p)) - (ad-safe-fset 'byte-code-function-p 'compiled-function-p)) - (defmacro ad-compiled-p (definition) "Return non-nil if DEFINITION is a compiled byte-code object." `(or (byte-code-function-p ,definition) @@ -3696,6 +3650,7 @@ usage: (defadvice FUNCTION (CLASS NAME [POSITION] [ARGLIST] FLAG...) For any members of FUNCTIONS that are not currently advised the rebinding will be a noop. Any modifications done to the definitions of FUNCTIONS will be undone on exit of this macro." + (declare (indent 1)) (let* ((index -1) ;; Make let-variables to store current definitions: (current-bindings @@ -3735,14 +3690,6 @@ undone on exit of this macro." ,(car (nth index current-bindings))))) functions)))))) -(if (not (get 'ad-with-originals 'lisp-indent-hook)) - (put 'ad-with-originals 'lisp-indent-hook 1)) - - -;; @@ Advising `documentation': -;; ============================ -;; Use the advice mechanism to advise `documentation' to make it -;; generate proper documentation strings for advised definitions: ;; @@ Starting, stopping and recovering from the advice package magic: ;; =================================================================== From 393e94faab632affef628462753d2e5587a274b1 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 18 Oct 2012 11:51:28 -0400 Subject: [PATCH 246/272] * lisp/erc/erc-backend.el: Require `erc' instead of autoloading its macros. Fixes: debbugs:12669 --- lisp/erc/ChangeLog | 3 ++- lisp/erc/erc-backend.el | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index df1e74ac39f..bb8dadbbfcd 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -1,6 +1,7 @@ 2012-10-18 Stefan Monnier - * erc-backend.el (erc-with-server-buffer): Autoload as well (bug#12669). + * erc-backend.el: Require `erc' instead of autoloading its macros + (bug#12669). 2012-10-15 Stefan Monnier diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el index 507cff87b6b..858a6bd8e82 100644 --- a/lisp/erc/erc-backend.el +++ b/lisp/erc/erc-backend.el @@ -99,9 +99,11 @@ (require 'erc-compat) (eval-when-compile (require 'cl)) -(autoload 'erc-with-buffer "erc" nil nil 'macro) -(autoload 'erc-with-server-buffer "erc" nil nil 'macro) -(autoload 'erc-log "erc") +;; There's a fairly strong mutual dependency between erc.el and erc-backend.el. +;; Luckily, erc.el does not need erc-backend.el for macroexpansion whereas the +;; reverse is true: +(provide 'erc-backend) +(require 'erc) ;;;; Variables and options From 14145a1e84e9c84af22d66ed272bf1b28f597e24 Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Thu, 18 Oct 2012 09:00:08 -0800 Subject: [PATCH 247/272] Increase NSTATICS; tell the user when we run out of static slots. --- src/ChangeLog | 6 ++++++ src/alloc.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 817274b5691..6fece1e72c5 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2012-10-18 Daniel Colascione + + * alloc.c (NSTATICS): Increase from 0x650 to 0x1000 + (staticpro): If we run out of staticpro slots, die with an + informative error instead of just calling emacs_abort. + 2012-10-18 Martin Rudalics Fix two flaws reported by Dmitry Antipov. diff --git a/src/alloc.c b/src/alloc.c index 0afe446d269..08dc26784cc 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -376,7 +376,7 @@ struct gcpro *gcprolist; /* Addresses of staticpro'd variables. Initialize it to a nonzero value; otherwise some compilers put it into BSS. */ -#define NSTATICS 0x650 +#define NSTATICS 0x1000 static Lisp_Object *staticvec[NSTATICS] = {&Vpurify_flag}; /* Index of next unused slot in staticvec. */ @@ -5030,7 +5030,7 @@ staticpro (Lisp_Object *varaddress) { staticvec[staticidx++] = varaddress; if (staticidx >= NSTATICS) - emacs_abort (); + fatal ("NSTATICS too small. Try increasing and recompiling Emacs."); } From afb8aa2482db730a8ebdabe314c320c01dda383c Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 18 Oct 2012 20:21:55 +0200 Subject: [PATCH 248/272] Fix wording of error message in staticpro. --- src/alloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/alloc.c b/src/alloc.c index 08dc26784cc..257e4fdd5e3 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -5030,7 +5030,7 @@ staticpro (Lisp_Object *varaddress) { staticvec[staticidx++] = varaddress; if (staticidx >= NSTATICS) - fatal ("NSTATICS too small. Try increasing and recompiling Emacs."); + fatal ("NSTATICS too small; try increasing and recompiling Emacs."); } From 1a9327d5cd660040a282ab595509c16fe90f63a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Thu, 18 Oct 2012 20:54:37 +0200 Subject: [PATCH 249/272] * nsterm.m (ns_select): Check writefds before call to FD_ISSET. Fixes: debbugs:12668 --- src/ChangeLog | 5 +++++ src/nsterm.m | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 6fece1e72c5..f1e3a99dbc6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-10-18 Jan Djärv + + * nsterm.m (ns_select): Check writefds before call to + FD_ISSET (Bug#12668). + 2012-10-18 Daniel Colascione * alloc.c (NSTATICS): Increase from 0x650 to 0x1000 diff --git a/src/nsterm.m b/src/nsterm.m index dfc84db50f7..a4eaad47ac1 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -3443,10 +3443,10 @@ overwriting cursor (usually when cursor on a tab) */ /* NSTRACE (ns_select); */ - for (k = 0; readfds && k < nfds+1; k++) + for (k = 0; k < nfds+1; k++) { - if (FD_ISSET(k, readfds)) ++nr; - if (FD_ISSET(k, writefds)) ++nr; + if (readfds && FD_ISSET(k, readfds)) ++nr; + if (writefds && FD_ISSET(k, writefds)) ++nr; } if (NSApp == nil From 8c27235eadcdde07da4d037aa523fd9af065f865 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Fri, 19 Oct 2012 03:46:18 +0800 Subject: [PATCH 250/272] Fix how gdb-mi calls display-buffer to avoid switching frames. * lisp/progmodes/gdb-mi.el (gdb-display-buffer-other-frame-action): Convert to defcustom. (gdb-get-source-file): Don't bind pop-up-windows. * lisp/progmodes/gud.el (gud-display-line): Don't specially re-use other frames for the gdb-mi case. Fixes: debbugs:12648 --- lisp/ChangeLog | 9 ++++++ lisp/progmodes/gdb-mi.el | 19 +++++++----- lisp/progmodes/gud.el | 65 +++++++++++++++++++--------------------- 3 files changed, 51 insertions(+), 42 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 51e6b67b86c..46336af6e71 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,12 @@ +2012-10-18 Chong Yidong + + * progmodes/gdb-mi.el (gdb-display-buffer-other-frame-action): + Convert to defcustom. + (gdb-get-source-file): Don't bind pop-up-windows. + + * progmodes/gud.el (gud-display-line): Don't specially re-use + other frames for the gdb-mi case (Bug#12648). + 2012-10-18 Stefan Monnier * emacs-lisp/advice.el: Clean up commentary a bit. diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index 59c419abfc3..805ffa36e4e 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el @@ -1516,9 +1516,9 @@ this trigger is subscribed to `gdb-buf-publisher' and called with (comint-exec io-buffer "gdb-inferior" nil nil nil) (gdb-inferior-io--init-proc (get-buffer-process io-buffer)))))) -(defvar gdb-display-buffer-other-frame-action - `((display-buffer-reuse-window display-buffer-pop-up-frame) - (reusable-frames . 0) +(defcustom gdb-display-buffer-other-frame-action + '((display-buffer-reuse-window display-buffer-pop-up-frame) + (reusable-frames . visible) (inhibit-same-window . t) (pop-up-frame-parameters (height . 14) (width . 80) @@ -1526,8 +1526,11 @@ this trigger is subscribed to `gdb-buf-publisher' and called with (tool-bar-lines . nil) (menu-bar-lines . nil) (minibuffer . nil))) - "A `display-buffer' action for displaying GDB utility frames.") -(put 'gdb-display-buffer-other-frame-action 'risky-local-variable t) + "`display-buffer' action for displaying GDB utility frames." + :group 'gdb + :type display-buffer--action-custom-type + :risky t + :version "24.3") (defun gdb-frame-io-buffer () "Display IO of debugged program in another frame." @@ -4175,9 +4178,9 @@ buffers, if required." (if gdb-many-windows (gdb-setup-windows) (gdb-get-buffer-create 'gdb-breakpoints-buffer) - (if (and gdb-show-main gdb-main-file) - (let ((pop-up-windows t)) - (display-buffer (gud-find-file gdb-main-file))))) + (and gdb-show-main + gdb-main-file + (display-buffer (gud-find-file gdb-main-file)))) (gdb-force-mode-line-update (propertize "ready" 'face font-lock-variable-name-face))) diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 2e3858b2cc5..719471278a8 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el @@ -2700,42 +2700,39 @@ Obeying it means displaying in another window the specified file and line." (gud-find-file true-file))) (window (and buffer (or (get-buffer-window buffer) - (if (eq gud-minor-mode 'gdbmi) - (display-buffer buffer nil 'visible)) (display-buffer buffer)))) (pos)) - (if buffer - (progn - (with-current-buffer buffer - (unless (or (verify-visited-file-modtime buffer) gud-keep-buffer) - (if (yes-or-no-p - (format "File %s changed on disk. Reread from disk? " - (buffer-name))) - (revert-buffer t t) - (setq gud-keep-buffer t))) - (save-restriction - (widen) - (goto-char (point-min)) - (forward-line (1- line)) - (setq pos (point)) - (or gud-overlay-arrow-position - (setq gud-overlay-arrow-position (make-marker))) - (set-marker gud-overlay-arrow-position (point) (current-buffer)) - ;; If they turned on hl-line, move the hl-line highlight to - ;; the arrow's line. - (when (featurep 'hl-line) - (cond - (global-hl-line-mode - (global-hl-line-highlight)) - ((and hl-line-mode hl-line-sticky-flag) - (hl-line-highlight))))) - (cond ((or (< pos (point-min)) (> pos (point-max))) - (widen) - (goto-char pos)))) - (when window - (set-window-point window gud-overlay-arrow-position) - (if (eq gud-minor-mode 'gdbmi) - (setq gdb-source-window window))))))) + (when buffer + (with-current-buffer buffer + (unless (or (verify-visited-file-modtime buffer) gud-keep-buffer) + (if (yes-or-no-p + (format "File %s changed on disk. Reread from disk? " + (buffer-name))) + (revert-buffer t t) + (setq gud-keep-buffer t))) + (save-restriction + (widen) + (goto-char (point-min)) + (forward-line (1- line)) + (setq pos (point)) + (or gud-overlay-arrow-position + (setq gud-overlay-arrow-position (make-marker))) + (set-marker gud-overlay-arrow-position (point) (current-buffer)) + ;; If they turned on hl-line, move the hl-line highlight to + ;; the arrow's line. + (when (featurep 'hl-line) + (cond + (global-hl-line-mode + (global-hl-line-highlight)) + ((and hl-line-mode hl-line-sticky-flag) + (hl-line-highlight))))) + (cond ((or (< pos (point-min)) (> pos (point-max))) + (widen) + (goto-char pos)))) + (when window + (set-window-point window gud-overlay-arrow-position) + (if (eq gud-minor-mode 'gdbmi) + (setq gdb-source-window window)))))) ;; The gud-call function must do the right thing whether its invoking ;; keystroke is from the GUD buffer itself (via major-mode binding) From f60d391f5f8b3fbaa8ebe253afcf47b5ed9144f1 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 18 Oct 2012 20:54:35 -0400 Subject: [PATCH 251/272] * src/fns.c (Fnreverse): Include the problem element when signalling an error. Fixes: debbugs:12677 --- src/ChangeLog | 5 +++++ src/fns.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index f1e3a99dbc6..4a4887579a7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-10-19 Stefan Monnier + + * fns.c (Fnreverse): Include the problem element when signalling an + error (bug#12677). + 2012-10-18 Jan Djärv * nsterm.m (ns_select): Check writefds before call to diff --git a/src/fns.c b/src/fns.c index c999b5b08b9..b1ba5ce9509 100644 --- a/src/fns.c +++ b/src/fns.c @@ -1689,7 +1689,7 @@ changing the value of a sequence `foo'. */) DEFUN ("nreverse", Fnreverse, Snreverse, 1, 1, 0, doc: /* Reverse LIST by modifying cdr pointers. -Return the reversed list. */) +Return the reversed list. Expects a properly nil-terminated list. */) (Lisp_Object list) { register Lisp_Object prev, tail, next; @@ -1700,7 +1700,7 @@ Return the reversed list. */) while (!NILP (tail)) { QUIT; - CHECK_LIST_CONS (tail, list); + CHECK_LIST_CONS (tail, tail); next = XCDR (tail); Fsetcdr (tail, prev); prev = tail; From d282492862879e50bcbb8d10510da4a7a7f6eb4c Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 19 Oct 2012 08:43:12 +0200 Subject: [PATCH 252/272] Decrease NSTATICS to 0x800. --- src/ChangeLog | 4 ++++ src/alloc.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 4a4887579a7..cf7302914ab 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-19 Eli Zaretskii + + * alloc.c (NSTATICS): Decrease to 0x800. + 2012-10-19 Stefan Monnier * fns.c (Fnreverse): Include the problem element when signalling an diff --git a/src/alloc.c b/src/alloc.c index 257e4fdd5e3..5bb528c64ab 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -376,7 +376,7 @@ struct gcpro *gcprolist; /* Addresses of staticpro'd variables. Initialize it to a nonzero value; otherwise some compilers put it into BSS. */ -#define NSTATICS 0x1000 +#define NSTATICS 0x800 static Lisp_Object *staticvec[NSTATICS] = {&Vpurify_flag}; /* Index of next unused slot in staticvec. */ From fb0104dabe260892805790f36df7d5968ee1f53d Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Fri, 19 Oct 2012 11:28:50 +0200 Subject: [PATCH 253/272] In debug record height of debugger window also when debugger will be back (Bug#8789). * emacs-lisp/debug.el (debug): Record height of debugger window also when debugger will be back (Bug#8789). --- lisp/ChangeLog | 5 +++++ lisp/emacs-lisp/debug.el | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 46336af6e71..f9d9ad4b03d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-19 Martin Rudalics + + * emacs-lisp/debug.el (debug): Record height of debugger window + also when debugger will be back (Bug#8789). + 2012-10-18 Chong Yidong * progmodes/gdb-mi.el (gdb-display-buffer-other-frame-action): diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el index c30ccf3315e..c04e68c0cfa 100644 --- a/lisp/emacs-lisp/debug.el +++ b/lisp/emacs-lisp/debug.el @@ -267,15 +267,17 @@ first will be printed into the backtrace buffer." ;; Make sure we unbind buffer-read-only in the right buffer. (save-excursion (recursive-edit)))) + (when (and (window-live-p debugger-window) + (eq (window-buffer debugger-window) debugger-buffer)) + ;; Record height of debugger window. + (setq debugger-previous-window-height + (window-total-size debugger-window))) (if debugger-will-be-back ;; Restore previous window configuration (Bug#12623). (set-window-configuration window-configuration) (when (and (window-live-p debugger-window) (eq (window-buffer debugger-window) debugger-buffer)) (progn - ;; Record height of debugger window. - (setq debugger-previous-window-height - (window-total-size debugger-window)) ;; Unshow debugger-buffer. (quit-restore-window debugger-window debugger-bury-or-kill) ;; Restore current buffer (Bug#12502). From c052c554b44b809e672370e498dd3957494126d8 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 19 Oct 2012 12:05:09 +0200 Subject: [PATCH 254/272] Increase the value of BASE_PURESIZE to avoid pure space overflow. src/puresize.h (BASE_PURESIZE): Bump the base value to 1700000. See http://lists.gnu.org/archive/html/emacs-devel/2012-10/msg00593.html for the reasons. --- src/ChangeLog | 4 ++++ src/puresize.h | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index cf7302914ab..cef1edff87d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,9 @@ 2012-10-19 Eli Zaretskii + * puresize.h (BASE_PURESIZE): Bump the base value to 1700000. See + http://lists.gnu.org/archive/html/emacs-devel/2012-10/msg00593.html + for the reasons. + * alloc.c (NSTATICS): Decrease to 0x800. 2012-10-19 Stefan Monnier diff --git a/src/puresize.h b/src/puresize.h index 2f024345d61..26395a5729d 100644 --- a/src/puresize.h +++ b/src/puresize.h @@ -40,7 +40,7 @@ along with GNU Emacs. If not, see . */ #endif #ifndef BASE_PURESIZE -#define BASE_PURESIZE (1620000 + SYSTEM_PURESIZE_EXTRA + SITELOAD_PURESIZE_EXTRA) +#define BASE_PURESIZE (1700000 + SYSTEM_PURESIZE_EXTRA + SITELOAD_PURESIZE_EXTRA) #endif /* Increase BASE_PURESIZE by a ratio depending on the machine's word size. */ From a0d7415fb62cf17e1465ee19cffb3ae6e20390b3 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Fri, 19 Oct 2012 21:59:42 +0900 Subject: [PATCH 255/272] font.c (Ffont_at): Fix previous change. --- src/ChangeLog | 4 ++++ src/coding.c | 2 +- src/font.c | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index cef1edff87d..a7f12bc37ad 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-19 Kenichi Handa + + * font.c (Ffont_at): Fix previous change. + 2012-10-19 Eli Zaretskii * puresize.h (BASE_PURESIZE): Bump the base value to 1700000. See diff --git a/src/coding.c b/src/coding.c index 412d7245223..7628a9fbf2e 100644 --- a/src/coding.c +++ b/src/coding.c @@ -415,7 +415,7 @@ enum iso_code_class_type ISO_shift_out, /* ISO_CODE_SO (0x0E) */ ISO_shift_in, /* ISO_CODE_SI (0x0F) */ ISO_single_shift_2_7, /* ISO_CODE_SS2_7 (0x19) */ - ISO_escape, /* ISO_CODE_SO (0x1B) */ + ISO_escape, /* ISO_CODE_ESC (0x1B) */ ISO_control_1, /* Control codes in the range 0x80..0x9F, except for the following 3 codes. */ diff --git a/src/font.c b/src/font.c index 629e8bb977a..7cb4149ac4e 100644 --- a/src/font.c +++ b/src/font.c @@ -4775,7 +4775,7 @@ the current buffer. It defaults to the currently selected window. */) { CHECK_NUMBER (position); CHECK_STRING (string); - if (! (0 < XINT (position) && XINT (position) < SCHARS (string))) + if (! (0 <= XINT (position) && XINT (position) < SCHARS (string))) args_out_of_range (string, position); pos = XINT (position); } From 6ec83f926d5ff699901fb530162d7f1bdfa85808 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Fri, 19 Oct 2012 22:02:52 +0900 Subject: [PATCH 256/272] src/ChangeLog: Fix changers name. --- src/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index a7f12bc37ad..5a1b4a5d8ee 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,4 +1,4 @@ -2012-10-19 Kenichi Handa +2012-10-19 Kazuhiro Ito (tiny change) * font.c (Ffont_at): Fix previous change. From e752e0b0a2622d8d0ba518bf81f6fa652d926e67 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 19 Oct 2012 09:52:02 -0700 Subject: [PATCH 257/272] Use faccessat, not access, when checking file permissions. * .bzrignore: Add lib/fcntl.h. * configure.ac (euidaccess): Remove check; gnulib does this for us now. (gl_FCNTL_O_FLAGS): Define a dummy version. * lib/at-func.c, lib/euidaccess.c, lib/faccessat.c, lib/fcntl.in.h: * lib/getgroups.c, lib/group-member.c, lib/root-uid.h: * lib/xalloc-oversized.h, m4/euidaccess.m4, m4/faccessat.m4: * m4/fcntl_h.m4, m4/getgroups.m4, m4/group-member.m4: New files, from gnulib. * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. * admin/merge-gnulib (GNULIB_MODULES): Add faccessat. (GNULIB_TOOL_FLAGS): Avoid at-internal, fchdir, malloc-posix, openat-die, openat-h, save-cwd. Do not avoid fcntl-h. Omit gnulib's m4/fcntl-o.m4. * nt/inc/ms-w32.h (AT_FDCWD, AT_EACCESS): New symbols. (access): Remove. (faccessat): New macro. * src/Makefile.in (LIB_EACCESS): New macro. (LIBES): Use it. * src/callproc.c (init_callproc): * src/charset.c (init_charset): * src/fileio.c (check_existing, check_executable): * src/lread.c (openp, load_path_check): * src/process.c (allocate_pty): * src/xrdb.c (file_p): Use faccessat, not access or euidaccess. Use symbolic names instead of integers for the flags, as they're portable now. * src/charset.c, src/xrdb.c: Include , for the new flags used. * src/fileio.c (Ffile_readable_p): Use faccessat, not stat + open + close. (file_directory_p): New function, which uses 'stat' on most places but 'access' (for efficiency) if WINDOWSNT. * src/fileio.c (Ffile_directory_p, Fset_file_times): * src/xrdb.c (file_p): Use file_directory_p. * src/lisp.h (file_directory_p): New decl. * src/lread.c (openp): When opening a file, use fstat rather than stat, as that avoids a permissions race. When not opening a file, use file_directory_p rather than stat. * src/process.c, src/sysdep.c, src/term.c: All uses of '#ifdef O_NONBLOCK' changed to '#if O_NONBLOCK', to accommodate gnulib O_* tyle. * src/w32.c (sys_faccessat): Rename from sys_access and switch to faccessat's API. All uses changed. Fixes: debbugs:12632 --- ChangeLog | 13 ++++++ admin/ChangeLog | 8 ++++ admin/merge-gnulib | 13 +++--- configure.ac | 4 +- lib/gnulib.mk | 97 ++++++++++++++++++++++++++++++++++++++++- m4/gnulib-comp.m4 | 105 +++++++++++++++++++++++++++++++++++++++++++++ nt/ChangeLog | 7 +++ nt/inc/ms-w32.h | 7 ++- src/ChangeLog | 29 +++++++++++++ src/Makefile.in | 3 +- src/callproc.c | 4 +- src/charset.c | 3 +- src/conf_post.h | 4 ++ src/fileio.c | 97 +++++++++++------------------------------ src/lisp.h | 1 + src/lread.c | 56 ++++++++++++------------ src/process.c | 36 ++++++++-------- src/sysdep.c | 6 +-- src/term.c | 4 +- src/w32.c | 18 +++++--- src/xrdb.c | 8 ++-- 21 files changed, 377 insertions(+), 146 deletions(-) diff --git a/ChangeLog b/ChangeLog index 81eddade0a0..c7fcd319af2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2012-10-19 Paul Eggert + + Use faccessat, not access, when checking file permissions (Bug#12632). + * .bzrignore: Add lib/fcntl.h. + * configure.ac (euidaccess): Remove check; gnulib does this for us now. + (gl_FCNTL_O_FLAGS): Define a dummy version. + * lib/at-func.c, lib/euidaccess.c, lib/faccessat.c, lib/fcntl.in.h: + * lib/getgroups.c, lib/group-member.c, lib/root-uid.h: + * lib/xalloc-oversized.h, m4/euidaccess.m4, m4/faccessat.m4: + * m4/fcntl_h.m4, m4/getgroups.m4, m4/group-member.m4: + New files, from gnulib. + * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. + 2012-10-18 Stefan Monnier * Makefile.in ($(MAKEFILE_NAME)): Depend on src/lisp.mk as well. diff --git a/admin/ChangeLog b/admin/ChangeLog index e21293d618d..6d08bf7c37e 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,11 @@ +2012-10-19 Paul Eggert + + Use faccessat, not access, when checking file permissions (Bug#12632). + * merge-gnulib (GNULIB_MODULES): Add faccessat. + (GNULIB_TOOL_FLAGS): Avoid at-internal, fchdir, malloc-posix, + openat-die, openat-h, save-cwd. Do not avoid fcntl-h. + Omit gnulib's m4/fcntl-o.m4. + 2012-10-12 Kenichi Handa * charsets/Makefile (JISC6226.map): Add missing mappings. diff --git a/admin/merge-gnulib b/admin/merge-gnulib index 7fc0b5f4844..3c4d8e8058d 100755 --- a/admin/merge-gnulib +++ b/admin/merge-gnulib @@ -28,7 +28,7 @@ GNULIB_URL=git://git.savannah.gnu.org/gnulib.git GNULIB_MODULES=' alloca-opt c-ctype c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 - dtoastr dtotimespec dup2 environ execinfo + dtoastr dtotimespec dup2 environ execinfo faccessat filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink @@ -39,9 +39,12 @@ GNULIB_MODULES=' ' GNULIB_TOOL_FLAGS=' - --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat - --avoid=msvc-inval --avoid=msvc-nothrow - --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types + --avoid=at-internal + --avoid=errno --avoid=fchdir --avoid=fcntl --avoid=fstat + --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow + --avoid=openat-die --avoid=openat-h + --avoid=raise + --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --conditional-dependencies --import --no-changelog --no-vc-files --makefile-name=gnulib.mk @@ -85,7 +88,7 @@ test -x "$gnulib_srcdir"/gnulib-tool || { } "$gnulib_srcdir"/gnulib-tool --dir="$src" $GNULIB_TOOL_FLAGS $GNULIB_MODULES && -rm -- "$src"m4/gnulib-cache.m4 "$src"m4/warn-on-use.m4 && +rm -- "$src"m4/fcntl-o.m4 "$src"m4/gnulib-cache.m4 "$src"m4/warn-on-use.m4 && cp -- "$gnulib_srcdir"/build-aux/texinfo.tex "$src"doc/misc && cp -- "$gnulib_srcdir"/build-aux/move-if-change "$src"build-aux && autoreconf -i -I m4 -- ${src:+"$src"} diff --git a/configure.ac b/configure.ac index 5520dd6a903..6b4c757ced5 100644 --- a/configure.ac +++ b/configure.ac @@ -572,6 +572,8 @@ else test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS" fi +# Avoid gnulib's tests for O_NOATIME and O_NOFOLLOW, as we don't use them. +AC_DEFUN([gl_FCNTL_O_FLAGS]) # Avoid gnulib's threadlib module, as we do threads our own way. AC_DEFUN([gl_THREADLIB]) @@ -2872,7 +2874,7 @@ AC_SUBST(BLESSMAIL_TARGET) AC_CHECK_FUNCS(gethostname \ closedir getrusage get_current_dir_name \ lrand48 setsid \ -fpathconf select euidaccess getpagesize setlocale \ +fpathconf select getpagesize setlocale \ utimes getrlimit setrlimit setpgid getcwd shutdown getaddrinfo \ __fpending strsignal setitimer \ sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \ diff --git a/lib/gnulib.mk b/lib/gnulib.mk index 23749331a83..d2562a4dae1 100644 --- a/lib/gnulib.mk +++ b/lib/gnulib.mk @@ -21,7 +21,7 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat --avoid=msvc-inval --avoid=msvc-nothrow --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-ctype c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub utimens warnings +# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=at-internal --avoid=errno --avoid=fchdir --avoid=fcntl --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=openat-die --avoid=openat-h --avoid=raise --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-ctype c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub utimens warnings MOSTLYCLEANFILES += core *.stackdump @@ -150,6 +150,17 @@ EXTRA_libgnu_a_SOURCES += dup2.c ## end gnulib module dup2 +## begin gnulib module euidaccess + +if gl_GNULIB_ENABLED_euidaccess + +endif +EXTRA_DIST += euidaccess.c + +EXTRA_libgnu_a_SOURCES += euidaccess.c + +## end gnulib module euidaccess + ## begin gnulib module execinfo BUILT_SOURCES += $(EXECINFO_H) @@ -175,6 +186,50 @@ EXTRA_libgnu_a_SOURCES += execinfo.c ## end gnulib module execinfo +## begin gnulib module faccessat + + +EXTRA_DIST += at-func.c faccessat.c + +EXTRA_libgnu_a_SOURCES += at-func.c faccessat.c + +## end gnulib module faccessat + +## begin gnulib module fcntl-h + +BUILT_SOURCES += fcntl.h + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ + -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \ + -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/g' \ + -e 's/@''GNULIB_OPEN''@/$(GNULIB_OPEN)/g' \ + -e 's/@''GNULIB_OPENAT''@/$(GNULIB_OPENAT)/g' \ + -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ + -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ + -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ + -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ + -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + < $(srcdir)/fcntl.in.h; \ + } > $@-t && \ + mv $@-t $@ +MOSTLYCLEANFILES += fcntl.h fcntl.h-t + +EXTRA_DIST += fcntl.in.h + +## end gnulib module fcntl-h + ## begin gnulib module filemode libgnu_a_SOURCES += filemode.c @@ -183,6 +238,17 @@ EXTRA_DIST += filemode.h ## end gnulib module filemode +## begin gnulib module getgroups + +if gl_GNULIB_ENABLED_getgroups + +endif +EXTRA_DIST += getgroups.c + +EXTRA_libgnu_a_SOURCES += getgroups.c + +## end gnulib module getgroups + ## begin gnulib module getloadavg @@ -242,6 +308,17 @@ EXTRA_libgnu_a_SOURCES += gettimeofday.c ## end gnulib module gettimeofday +## begin gnulib module group-member + +if gl_GNULIB_ENABLED_a9786850e999ae65a836a6041e8e5ed1 + +endif +EXTRA_DIST += group-member.c + +EXTRA_libgnu_a_SOURCES += group-member.c + +## end gnulib module group-member + ## begin gnulib module ignore-value @@ -354,6 +431,15 @@ EXTRA_libgnu_a_SOURCES += readlink.c ## end gnulib module readlink +## begin gnulib module root-uid + +if gl_GNULIB_ENABLED_6099e9737f757db36c47fa9d9f02e88c + +endif +EXTRA_DIST += root-uid.h + +## end gnulib module root-uid + ## begin gnulib module signal-h BUILT_SOURCES += signal.h @@ -1312,6 +1398,15 @@ EXTRA_DIST += verify.h ## end gnulib module verify +## begin gnulib module xalloc-oversized + +if gl_GNULIB_ENABLED_682e609604ccaac6be382e4ee3a4eaec + +endif +EXTRA_DIST += xalloc-oversized.h + +## end gnulib module xalloc-oversized + mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4 index de2355d87c3..9b2dcee1cfa 100644 --- a/m4/gnulib-comp.m4 +++ b/m4/gnulib-comp.m4 @@ -53,17 +53,22 @@ AC_DEFUN([gl_EARLY], # Code from module dtotimespec: # Code from module dup2: # Code from module environ: + # Code from module euidaccess: # Code from module execinfo: # Code from module extensions: AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) # Code from module extern-inline: + # Code from module faccessat: + # Code from module fcntl-h: # Code from module filemode: + # Code from module getgroups: # Code from module getloadavg: # Code from module getopt-gnu: # Code from module getopt-posix: # Code from module gettext-h: # Code from module gettime: # Code from module gettimeofday: + # Code from module group-member: # Code from module ignore-value: # Code from module include_next: # Code from module intprops: @@ -79,6 +84,7 @@ AC_DEFUN([gl_EARLY], # Code from module pselect: # Code from module pthread_sigmask: # Code from module readlink: + # Code from module root-uid: # Code from module signal-h: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: @@ -120,6 +126,7 @@ AC_DEFUN([gl_EARLY], # Code from module utimens: # Code from module verify: # Code from module warnings: + # Code from module xalloc-oversized: ]) # This macro should be invoked from ./configure.ac, in the section @@ -156,6 +163,14 @@ AC_DEFUN([gl_INIT], gl_UNISTD_MODULE_INDICATOR([environ]) gl_EXECINFO_H AC_REQUIRE([gl_EXTERN_INLINE]) + gl_FUNC_FACCESSAT + if test $HAVE_FACCESSAT = 0; then + AC_LIBOBJ([faccessat]) + gl_PREREQ_FACCESSAT + fi + gl_MODULE_INDICATOR([faccessat]) + gl_UNISTD_MODULE_INDICATOR([faccessat]) + gl_FCNTL_H gl_FILEMODE gl_GETLOADAVG if test $HAVE_GETLOADAVG = 0; then @@ -269,18 +284,53 @@ AC_DEFUN([gl_INIT], gl_UNISTD_H gl_UTIMENS gl_gnulib_enabled_dosname=false + gl_gnulib_enabled_euidaccess=false + gl_gnulib_enabled_getgroups=false gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36=false + gl_gnulib_enabled_a9786850e999ae65a836a6041e8e5ed1=false gl_gnulib_enabled_pathmax=false + gl_gnulib_enabled_6099e9737f757db36c47fa9d9f02e88c=false gl_gnulib_enabled_stat=false gl_gnulib_enabled_strtoll=false gl_gnulib_enabled_strtoull=false gl_gnulib_enabled_verify=false + gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec=false func_gl_gnulib_m4code_dosname () { if ! $gl_gnulib_enabled_dosname; then gl_gnulib_enabled_dosname=true fi } + func_gl_gnulib_m4code_euidaccess () + { + if ! $gl_gnulib_enabled_euidaccess; then + gl_FUNC_EUIDACCESS + if test $HAVE_EUIDACCESS = 0; then + AC_LIBOBJ([euidaccess]) + gl_PREREQ_EUIDACCESS + fi + gl_UNISTD_MODULE_INDICATOR([euidaccess]) + gl_gnulib_enabled_euidaccess=true + if test $HAVE_EUIDACCESS = 0; then + func_gl_gnulib_m4code_a9786850e999ae65a836a6041e8e5ed1 + fi + func_gl_gnulib_m4code_6099e9737f757db36c47fa9d9f02e88c + if test $HAVE_EUIDACCESS = 0; then + func_gl_gnulib_m4code_stat + fi + fi + } + func_gl_gnulib_m4code_getgroups () + { + if ! $gl_gnulib_enabled_getgroups; then + gl_FUNC_GETGROUPS + if test $HAVE_GETGROUPS = 0 || test $REPLACE_GETGROUPS = 1; then + AC_LIBOBJ([getgroups]) + fi + gl_UNISTD_MODULE_INDICATOR([getgroups]) + gl_gnulib_enabled_getgroups=true + fi + } func_gl_gnulib_m4code_be453cec5eecf5731a274f2de7f2db36 () { if ! $gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36; then @@ -289,6 +339,24 @@ AC_DEFUN([gl_INIT], gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36=true fi } + func_gl_gnulib_m4code_a9786850e999ae65a836a6041e8e5ed1 () + { + if ! $gl_gnulib_enabled_a9786850e999ae65a836a6041e8e5ed1; then + gl_FUNC_GROUP_MEMBER + if test $HAVE_GROUP_MEMBER = 0; then + AC_LIBOBJ([group-member]) + gl_PREREQ_GROUP_MEMBER + fi + gl_UNISTD_MODULE_INDICATOR([group-member]) + gl_gnulib_enabled_a9786850e999ae65a836a6041e8e5ed1=true + if test $HAVE_GROUP_MEMBER = 0; then + func_gl_gnulib_m4code_getgroups + fi + if test $HAVE_GROUP_MEMBER = 0; then + func_gl_gnulib_m4code_682e609604ccaac6be382e4ee3a4eaec + fi + fi + } func_gl_gnulib_m4code_pathmax () { if ! $gl_gnulib_enabled_pathmax; then @@ -296,6 +364,12 @@ AC_DEFUN([gl_INIT], gl_gnulib_enabled_pathmax=true fi } + func_gl_gnulib_m4code_6099e9737f757db36c47fa9d9f02e88c () + { + if ! $gl_gnulib_enabled_6099e9737f757db36c47fa9d9f02e88c; then + gl_gnulib_enabled_6099e9737f757db36c47fa9d9f02e88c=true + fi + } func_gl_gnulib_m4code_stat () { if ! $gl_gnulib_enabled_stat; then @@ -347,6 +421,18 @@ AC_DEFUN([gl_INIT], gl_gnulib_enabled_verify=true fi } + func_gl_gnulib_m4code_682e609604ccaac6be382e4ee3a4eaec () + { + if ! $gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec; then + gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec=true + fi + } + if test $HAVE_FACCESSAT = 0; then + func_gl_gnulib_m4code_dosname + fi + if test $HAVE_FACCESSAT = 0; then + func_gl_gnulib_m4code_euidaccess + fi if test $REPLACE_GETOPT = 1; then func_gl_gnulib_m4code_be453cec5eecf5731a274f2de7f2db36 fi @@ -373,12 +459,17 @@ AC_DEFUN([gl_INIT], fi m4_pattern_allow([^gl_GNULIB_ENABLED_]) AM_CONDITIONAL([gl_GNULIB_ENABLED_dosname], [$gl_gnulib_enabled_dosname]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_euidaccess], [$gl_gnulib_enabled_euidaccess]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_getgroups], [$gl_gnulib_enabled_getgroups]) AM_CONDITIONAL([gl_GNULIB_ENABLED_be453cec5eecf5731a274f2de7f2db36], [$gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_a9786850e999ae65a836a6041e8e5ed1], [$gl_gnulib_enabled_a9786850e999ae65a836a6041e8e5ed1]) AM_CONDITIONAL([gl_GNULIB_ENABLED_pathmax], [$gl_gnulib_enabled_pathmax]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_6099e9737f757db36c47fa9d9f02e88c], [$gl_gnulib_enabled_6099e9737f757db36c47fa9d9f02e88c]) AM_CONDITIONAL([gl_GNULIB_ENABLED_stat], [$gl_gnulib_enabled_stat]) AM_CONDITIONAL([gl_GNULIB_ENABLED_strtoll], [$gl_gnulib_enabled_strtoll]) AM_CONDITIONAL([gl_GNULIB_ENABLED_strtoull], [$gl_gnulib_enabled_strtoull]) AM_CONDITIONAL([gl_GNULIB_ENABLED_verify], [$gl_gnulib_enabled_verify]) + AM_CONDITIONAL([gl_GNULIB_ENABLED_682e609604ccaac6be382e4ee3a4eaec], [$gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec]) # End of code from modules m4_ifval(gl_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ || @@ -527,6 +618,7 @@ AC_DEFUN([gl_FILE_LIST], [ lib/alloca.in.h lib/allocator.c lib/allocator.h + lib/at-func.c lib/c-ctype.c lib/c-ctype.h lib/c-strcase.h @@ -538,12 +630,16 @@ AC_DEFUN([gl_FILE_LIST], [ lib/dtoastr.c lib/dtotimespec.c lib/dup2.c + lib/euidaccess.c lib/execinfo.c lib/execinfo.in.h + lib/faccessat.c + lib/fcntl.in.h lib/filemode.c lib/filemode.h lib/ftoastr.c lib/ftoastr.h + lib/getgroups.c lib/getloadavg.c lib/getopt.c lib/getopt.in.h @@ -552,6 +648,7 @@ AC_DEFUN([gl_FILE_LIST], [ lib/gettext.h lib/gettime.c lib/gettimeofday.c + lib/group-member.c lib/ignore-value.h lib/intprops.h lib/inttypes.in.h @@ -564,6 +661,7 @@ AC_DEFUN([gl_FILE_LIST], [ lib/pselect.c lib/pthread_sigmask.c lib/readlink.c + lib/root-uid.h lib/sha1.c lib/sha1.h lib/sha256.c @@ -605,21 +703,28 @@ AC_DEFUN([gl_FILE_LIST], [ lib/utimens.c lib/utimens.h lib/verify.h + lib/xalloc-oversized.h m4/00gnulib.m4 m4/alloca.m4 m4/c-strtod.m4 m4/clock_time.m4 m4/dup2.m4 m4/environ.m4 + m4/euidaccess.m4 m4/execinfo.m4 m4/extensions.m4 m4/extern-inline.m4 + m4/faccessat.m4 + m4/fcntl-o.m4 + m4/fcntl_h.m4 m4/filemode.m4 + m4/getgroups.m4 m4/getloadavg.m4 m4/getopt.m4 m4/gettime.m4 m4/gettimeofday.m4 m4/gnulib-common.m4 + m4/group-member.m4 m4/include_next.m4 m4/inttypes.m4 m4/largefile.m4 diff --git a/nt/ChangeLog b/nt/ChangeLog index 94d2ce18551..f64cafe2e16 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,10 @@ +2012-10-19 Paul Eggert + + Use faccessat, not access, when checking file permissions (Bug#12632). + * inc/ms-w32.h (AT_FDCWD, AT_EACCESS): New symbols. + (access): Remove. + (faccessat): New macro. + 2012-10-17 Eli Zaretskii * inc/pwd.h (getuid, geteuid): Add prototypes. diff --git a/nt/inc/ms-w32.h b/nt/inc/ms-w32.h index dd2ae781cb8..0f6b51d3915 100644 --- a/nt/inc/ms-w32.h +++ b/nt/inc/ms-w32.h @@ -124,6 +124,10 @@ extern char *getenv (); #define MAXPATHLEN _MAX_PATH #endif +/* Use values compatible with gnulib, as there's no reason to differ. */ +#define AT_FDCWD (-3041965) +#define AT_EACCESS 4 + #ifdef HAVE_NTGUI #define HAVE_WINDOW_SYSTEM 1 #define HAVE_MENUS 1 @@ -145,8 +149,6 @@ extern char *getenv (); #endif /* Calls that are emulated or shadowed. */ -#undef access -#define access sys_access #undef chdir #define chdir sys_chdir #undef chmod @@ -161,6 +163,7 @@ extern char *getenv (); #define dup sys_dup #undef dup2 #define dup2 sys_dup2 +#define faccessat sys_faccessat #define fopen sys_fopen #define link sys_link #define localtime sys_localtime diff --git a/src/ChangeLog b/src/ChangeLog index 5a1b4a5d8ee..ee18650e992 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,32 @@ +2012-10-19 Paul Eggert + + Use faccessat, not access, when checking file permissions (Bug#12632). + * Makefile.in (LIB_EACCESS): New macro. + (LIBES): Use it. + * callproc.c (init_callproc): + * charset.c (init_charset): + * fileio.c (check_existing, check_executable): + * lread.c (openp, load_path_check): + * process.c (allocate_pty): + * xrdb.c (file_p): + Use faccessat, not access or euidaccess. Use symbolic names + instead of integers for the flags, as they're portable now. + * charset.c, xrdb.c: Include , for the new flags used. + * fileio.c (Ffile_readable_p): + Use faccessat, not stat + open + close. + (file_directory_p): New function, which uses 'stat' on most places + but 'access' (for efficiency) if WINDOWSNT. + * fileio.c (Ffile_directory_p, Fset_file_times): + * xrdb.c (file_p): Use file_directory_p. + * lisp.h (file_directory_p): New decl. + * lread.c (openp): When opening a file, use fstat rather than + stat, as that avoids a permissions race. When not opening a file, + use file_directory_p rather than stat. + * process.c, sysdep.c, term.c: All uses of '#ifdef O_NONBLOCK' + changed to '#if O_NONBLOCK', to accommodate gnulib O_* style. + * w32.c (sys_faccessat): Rename from sys_access and switch to + faccessat's API. All uses changed. + 2012-10-19 Kazuhiro Ito (tiny change) * font.c (Ffont_at): Fix previous change. diff --git a/src/Makefile.in b/src/Makefile.in index c24e421bbbc..d034ad04796 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -150,6 +150,7 @@ M17N_FLT_CFLAGS = @M17N_FLT_CFLAGS@ M17N_FLT_LIBS = @M17N_FLT_LIBS@ LIB_CLOCK_GETTIME=@LIB_CLOCK_GETTIME@ +LIB_EACCESS=@LIB_EACCESS@ LIB_TIMER_TIME=@LIB_TIMER_TIME@ DBUS_CFLAGS = @DBUS_CFLAGS@ @@ -392,7 +393,7 @@ otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) $(RALLOC_OBJ) \ LIBES = $(LIBS) $(W32_LIBS) $(LIBX_BASE) $(LIBIMAGE) \ $(LIBX_OTHER) $(LIBSOUND) \ $(RSVG_LIBS) $(IMAGEMAGICK_LIBS) $(LIB_CLOCK_GETTIME) \ - $(LIB_TIMER_TIME) $(DBUS_LIBS) \ + $(LIB_EACCESS) $(LIB_TIMER_TIME) $(DBUS_LIBS) \ $(LIB_EXECINFO) \ $(LIBXML2_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \ $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) $(SETTINGS_LIBS) $(LIBSELINUX_LIBS) \ diff --git a/src/callproc.c b/src/callproc.c index b33882e54c2..5a9b32f08c3 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -1597,13 +1597,13 @@ init_callproc (void) #endif { tempdir = Fdirectory_file_name (Vexec_directory); - if (access (SSDATA (tempdir), 0) < 0) + if (faccessat (AT_FDCWD, SSDATA (tempdir), F_OK, AT_EACCESS) != 0) dir_warning ("Warning: arch-dependent data dir (%s) does not exist.\n", Vexec_directory); } tempdir = Fdirectory_file_name (Vdata_directory); - if (access (SSDATA (tempdir), 0) < 0) + if (faccessat (AT_FDCWD, SSDATA (tempdir), F_OK, AT_EACCESS) != 0) dir_warning ("Warning: arch-independent data dir (%s) does not exist.\n", Vdata_directory); diff --git a/src/charset.c b/src/charset.c index 6b999824dab..fe068e1d3bc 100644 --- a/src/charset.c +++ b/src/charset.c @@ -28,6 +28,7 @@ along with GNU Emacs. If not, see . */ #define CHARSET_INLINE EXTERN_INLINE +#include #include #include #include @@ -2293,7 +2294,7 @@ init_charset (void) { Lisp_Object tempdir; tempdir = Fexpand_file_name (build_string ("charsets"), Vdata_directory); - if (access (SSDATA (tempdir), 0) < 0) + if (faccessat (AT_FDCWD, SSDATA (tempdir), F_OK, AT_EACCESS) != 0) { /* This used to be non-fatal (dir_warning), but it should not happen, and if it does sooner or later it will cause some diff --git a/src/conf_post.h b/src/conf_post.h index aa008107ba6..eade536e6e1 100644 --- a/src/conf_post.h +++ b/src/conf_post.h @@ -169,6 +169,10 @@ extern void _DebPrint (const char *fmt, ...); #endif #endif +/* Tell gnulib to omit support for openat-related functions having a + first argument other than AT_FDCWD. */ +#define GNULIB_SUPPORT_ONLY_AT_FDCWD + #include #include diff --git a/src/fileio.c b/src/fileio.c index d47d7dd9e0b..3accb58a3eb 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -2425,15 +2425,7 @@ On Unix, this is a name starting with a `/' or a `~'. */) bool check_existing (const char *filename) { -#ifdef DOS_NT - /* The full emulation of Posix 'stat' is too expensive on - DOS/Windows, when all we want to know is whether the file exists. - So we use 'access' instead, which is much more lightweight. */ - return (access (filename, F_OK) >= 0); -#else - struct stat st; - return (stat (filename, &st) >= 0); -#endif + return faccessat (AT_FDCWD, filename, F_OK, AT_EACCESS) == 0; } /* Return true if file FILENAME exists and can be executed. */ @@ -2441,21 +2433,7 @@ check_existing (const char *filename) static bool check_executable (char *filename) { -#ifdef DOS_NT - struct stat st; - if (stat (filename, &st) < 0) - return 0; - return ((st.st_mode & S_IEXEC) != 0); -#else /* not DOS_NT */ -#ifdef HAVE_EUIDACCESS - return (euidaccess (filename, 1) >= 0); -#else - /* Access isn't quite right because it uses the real uid - and we really want to test with the effective uid. - But Unix doesn't give us a right way to do it. */ - return (access (filename, 1) >= 0); -#endif -#endif /* not DOS_NT */ + return faccessat (AT_FDCWD, filename, X_OK, AT_EACCESS) == 0; } /* Return true if file FILENAME exists and can be written. */ @@ -2464,15 +2442,16 @@ static bool check_writable (const char *filename) { #ifdef MSDOS + /* FIXME: an faccessat implementation should be added to the + DOS/Windows ports and this #ifdef branch should be removed. */ struct stat st; if (stat (filename, &st) < 0) return 0; return (st.st_mode & S_IWRITE || S_ISDIR (st.st_mode)); #else /* not MSDOS */ -#ifdef HAVE_EUIDACCESS - bool res = (euidaccess (filename, 2) >= 0); + bool res = faccessat (AT_FDCWD, filename, W_OK, AT_EACCESS) == 0; #ifdef CYGWIN - /* euidaccess may have returned failure because Cygwin couldn't + /* faccessat may have returned failure because Cygwin couldn't determine the file's UID or GID; if so, we return success. */ if (!res) { @@ -2483,14 +2462,6 @@ check_writable (const char *filename) } #endif /* CYGWIN */ return res; -#else /* not HAVE_EUIDACCESS */ - /* Access isn't quite right because it uses the real uid - and we really want to test with the effective uid. - But Unix doesn't give us a right way to do it. - Opening with O_WRONLY could work for an ordinary file, - but would lose for directories. */ - return (access (filename, 2) >= 0); -#endif /* not HAVE_EUIDACCESS */ #endif /* not MSDOS */ } @@ -2547,9 +2518,6 @@ See also `file-exists-p' and `file-attributes'. */) { Lisp_Object absname; Lisp_Object handler; - int desc; - int flags; - struct stat statbuf; CHECK_STRING (filename); absname = Fexpand_file_name (filename, Qnil); @@ -2561,31 +2529,8 @@ See also `file-exists-p' and `file-attributes'. */) return call2 (handler, Qfile_readable_p, absname); absname = ENCODE_FILE (absname); - -#if defined (DOS_NT) || defined (macintosh) - /* Under MS-DOS, Windows, and Macintosh, open does not work for - directories. */ - if (access (SDATA (absname), 0) == 0) - return Qt; - return Qnil; -#else /* not DOS_NT and not macintosh */ - flags = O_RDONLY; -#ifdef O_NONBLOCK - /* Opening a fifo without O_NONBLOCK can wait. - We don't want to wait. But we don't want to mess wth O_NONBLOCK - except in the case of a fifo, on a system which handles it. */ - desc = stat (SSDATA (absname), &statbuf); - if (desc < 0) - return Qnil; - if (S_ISFIFO (statbuf.st_mode)) - flags |= O_NONBLOCK; -#endif - desc = emacs_open (SSDATA (absname), flags, 0); - if (desc < 0) - return Qnil; - emacs_close (desc); - return Qt; -#endif /* not DOS_NT and not macintosh */ + return (faccessat (AT_FDCWD, SSDATA (absname), R_OK, AT_EACCESS) == 0 + ? Qt : Qnil); } /* Having this before file-symlink-p mysteriously caused it to be forgotten @@ -2622,7 +2567,7 @@ DEFUN ("file-writable-p", Ffile_writable_p, Sfile_writable_p, 1, 1, 0, /* The read-only attribute of the parent directory doesn't affect whether a file or directory can be created within it. Some day we should check ACLs though, which do affect this. */ - return (access (SDATA (dir), D_OK) < 0) ? Qnil : Qt; + return file_directory_p (SDATA (dir)) ? Qt : Qnil; #else return (check_writable (!NILP (dir) ? SSDATA (dir) : "") ? Qt : Qnil); @@ -2703,8 +2648,7 @@ Symbolic links to directories count as directories. See `file-symlink-p' to distinguish symlinks. */) (Lisp_Object filename) { - register Lisp_Object absname; - struct stat st; + Lisp_Object absname; Lisp_Object handler; absname = expand_and_dir_to_file (filename, BVAR (current_buffer, directory)); @@ -2717,9 +2661,20 @@ See `file-symlink-p' to distinguish symlinks. */) absname = ENCODE_FILE (absname); - if (stat (SSDATA (absname), &st) < 0) - return Qnil; - return S_ISDIR (st.st_mode) ? Qt : Qnil; + return file_directory_p (SSDATA (absname)) ? Qt : Qnil; +} + +/* Return true if FILE is a directory or a symlink to a directory. */ +bool +file_directory_p (char const *file) +{ +#ifdef WINDOWSNT + /* This is cheaper than 'stat'. */ + return faccessat (AT_FDCWD, file, D_OK, AT_EACCESS) == 0; +#else + struct stat st; + return stat (file, &st) == 0 && S_ISDIR (st.st_mode); +#endif } DEFUN ("file-accessible-directory-p", Ffile_accessible_directory_p, @@ -3044,10 +2999,8 @@ Use the current time if TIMESTAMP is nil. TIMESTAMP is in the format of if (set_file_times (-1, SSDATA (encoded_absname), t, t)) { #ifdef MSDOS - struct stat st; - /* Setting times on a directory always fails. */ - if (stat (SSDATA (encoded_absname), &st) == 0 && S_ISDIR (st.st_mode)) + if (file_directory_p (SSDATA (encoded_absname))) return Qnil; #endif report_file_error ("Setting file times", Fcons (absname, Qnil)); diff --git a/src/lisp.h b/src/lisp.h index 01f6ca5e57c..897757cf462 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3178,6 +3178,7 @@ extern Lisp_Object close_file_unwind (Lisp_Object); extern Lisp_Object restore_point_unwind (Lisp_Object); extern _Noreturn void report_file_error (const char *, Lisp_Object); extern void internal_delete_file (Lisp_Object); +extern bool file_directory_p (const char *); extern void syms_of_fileio (void); extern Lisp_Object make_temp_name (Lisp_Object, bool); extern Lisp_Object Qdelete_file; diff --git a/src/lread.c b/src/lread.c index 6d4c0d990af..dedce50de2a 100644 --- a/src/lread.c +++ b/src/lread.c @@ -1404,7 +1404,7 @@ Returns the file's name in absolute form, or nil if not found. If SUFFIXES is non-nil, it should be a list of suffixes to append to file name when searching. If non-nil, PREDICATE is used instead of `file-readable-p'. -PREDICATE can also be an integer to pass to the access(2) function, +PREDICATE can also be an integer to pass to the faccessat(2) function, in which case file-name-handlers are ignored. This function will normally skip directories, so if you want it to find directories, make sure the PREDICATE function returns `dir-ok' for them. */) @@ -1442,7 +1442,6 @@ static Lisp_Object Qdir_ok; int openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, Lisp_Object *storeptr, Lisp_Object predicate) { - int fd; ptrdiff_t fn_size = 100; char buf[100]; char *fn = buf; @@ -1497,7 +1496,6 @@ openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, Lisp_Object *sto { ptrdiff_t fnlen, lsuffix = SBYTES (XCAR (tail)); Lisp_Object handler; - bool exists; /* Concatenate path element/specified name with the suffix. If the directory starts with /:, remove that. */ @@ -1521,6 +1519,7 @@ openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, Lisp_Object *sto handler = Ffind_file_name_handler (string, Qfile_exists_p); if ((!NILP (handler) || !NILP (predicate)) && !NATNUMP (predicate)) { + bool exists; if (NILP (predicate)) exists = !NILP (Ffile_readable_p (string)); else @@ -1542,37 +1541,40 @@ openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, Lisp_Object *sto } else { -#ifndef WINDOWSNT - struct stat st; -#endif + int fd; const char *pfn; encoded_fn = ENCODE_FILE (string); pfn = SSDATA (encoded_fn); -#ifdef WINDOWSNT - exists = access (pfn, F_OK) == 0 && access (pfn, D_OK) < 0; -#else - exists = (stat (pfn, &st) == 0 && ! S_ISDIR (st.st_mode)); -#endif - if (exists) - { - /* Check that we can access or open it. */ - if (NATNUMP (predicate)) - fd = (((XFASTINT (predicate) & ~INT_MAX) == 0 - && access (pfn, XFASTINT (predicate)) == 0) - ? 1 : -1); - else - fd = emacs_open (pfn, O_RDONLY, 0); - if (fd >= 0) + /* Check that we can access or open it. */ + if (NATNUMP (predicate)) + fd = (((XFASTINT (predicate) & ~INT_MAX) == 0 + && (faccessat (AT_FDCWD, pfn, XFASTINT (predicate), + AT_EACCESS) + == 0) + && ! file_directory_p (pfn)) + ? 1 : -1); + else + { + struct stat st; + fd = emacs_open (pfn, O_RDONLY, 0); + if (0 <= fd + && (fstat (fd, &st) != 0 || S_ISDIR (st.st_mode))) { - /* We succeeded; return this descriptor and filename. */ - if (storeptr) - *storeptr = string; - UNGCPRO; - return fd; + emacs_close (fd); + fd = -1; } } + + if (fd >= 0) + { + /* We succeeded; return this descriptor and filename. */ + if (storeptr) + *storeptr = string; + UNGCPRO; + return fd; + } } } if (absolute) @@ -4088,7 +4090,7 @@ load_path_check (void) if (STRINGP (dirfile)) { dirfile = Fdirectory_file_name (dirfile); - if (access (SSDATA (dirfile), 0) < 0) + if (faccessat (AT_FDCWD, SSDATA (dirfile), F_OK, AT_EACCESS) != 0) dir_warning ("Warning: Lisp directory `%s' does not exist.\n", XCAR (path_tail)); } diff --git a/src/process.c b/src/process.c index 307e82819d6..572ab83de09 100644 --- a/src/process.c +++ b/src/process.c @@ -204,7 +204,7 @@ static EMACS_INT update_tick; #ifndef NON_BLOCKING_CONNECT #ifdef HAVE_SELECT #if defined (HAVE_GETPEERNAME) || defined (GNU_LINUX) -#if defined (O_NONBLOCK) || defined (O_NDELAY) +#if O_NONBLOCK || O_NDELAY #if defined (EWOULDBLOCK) || defined (EINPROGRESS) #define NON_BLOCKING_CONNECT #endif /* EWOULDBLOCK || EINPROGRESS */ @@ -651,7 +651,7 @@ allocate_pty (void) PTY_OPEN; #else /* no PTY_OPEN */ { -# ifdef O_NONBLOCK +# if O_NONBLOCK fd = emacs_open (pty_name, O_RDWR | O_NONBLOCK, 0); # else fd = emacs_open (pty_name, O_RDWR | O_NDELAY, 0); @@ -668,7 +668,7 @@ allocate_pty (void) #else sprintf (pty_name, "/dev/tty%c%x", c, i); #endif /* no PTY_TTY_NAME_SPRINTF */ - if (access (pty_name, 6) != 0) + if (faccessat (AT_FDCWD, pty_name, R_OK | W_OK, AT_EACCESS) != 0) { emacs_close (fd); # ifndef __sgi @@ -1621,7 +1621,7 @@ create_process (Lisp_Object process, char **new_argv, Lisp_Object current_dir) #if ! defined (USG) || defined (USG_SUBTTY_WORKS) /* On most USG systems it does not work to open the pty's tty here, then close it and reopen it in the child. */ -#ifdef O_NOCTTY +#if O_NOCTTY /* Don't let this terminal become our controlling terminal (in case we don't have one). */ forkout = forkin = emacs_open (pty_name, O_RDWR | O_NOCTTY, 0); @@ -1675,11 +1675,11 @@ create_process (Lisp_Object process, char **new_argv, Lisp_Object current_dir) } #endif -#ifdef O_NONBLOCK +#if O_NONBLOCK fcntl (inchannel, F_SETFL, O_NONBLOCK); fcntl (outchannel, F_SETFL, O_NONBLOCK); #else -#ifdef O_NDELAY +#if O_NDELAY fcntl (inchannel, F_SETFL, O_NDELAY); fcntl (outchannel, F_SETFL, O_NDELAY); #endif @@ -1967,7 +1967,7 @@ create_pty (Lisp_Object process) #if ! defined (USG) || defined (USG_SUBTTY_WORKS) /* On most USG systems it does not work to open the pty's tty here, then close it and reopen it in the child. */ -#ifdef O_NOCTTY +#if O_NOCTTY /* Don't let this terminal become our controlling terminal (in case we don't have one). */ int forkout = emacs_open (pty_name, O_RDWR | O_NOCTTY, 0); @@ -1987,11 +1987,11 @@ create_pty (Lisp_Object process) } #endif /* HAVE_PTYS */ -#ifdef O_NONBLOCK +#if O_NONBLOCK fcntl (inchannel, F_SETFL, O_NONBLOCK); fcntl (outchannel, F_SETFL, O_NONBLOCK); #else -#ifdef O_NDELAY +#if O_NDELAY fcntl (inchannel, F_SETFL, O_NDELAY); fcntl (outchannel, F_SETFL, O_NDELAY); #endif @@ -2951,7 +2951,7 @@ usage: (make-network-process &rest ARGS) */) { /* Don't support network sockets when non-blocking mode is not available, since a blocked Emacs is not useful. */ -#if !defined (O_NONBLOCK) && !defined (O_NDELAY) +#if !O_NONBLOCK && !O_NDELAY error ("Network servers not supported"); #else is_server = 1; @@ -3217,7 +3217,7 @@ usage: (make-network-process &rest ARGS) */) #ifdef NON_BLOCKING_CONNECT if (is_non_blocking_client) { -#ifdef O_NONBLOCK +#if O_NONBLOCK ret = fcntl (s, F_SETFL, O_NONBLOCK); #else ret = fcntl (s, F_SETFL, O_NDELAY); @@ -3434,10 +3434,10 @@ usage: (make-network-process &rest ARGS) */) chan_process[inch] = proc; -#ifdef O_NONBLOCK +#if O_NONBLOCK fcntl (inch, F_SETFL, O_NONBLOCK); #else -#ifdef O_NDELAY +#if O_NDELAY fcntl (inch, F_SETFL, O_NDELAY); #endif #endif @@ -4169,10 +4169,10 @@ server_accept_connection (Lisp_Object server, int channel) chan_process[s] = proc; -#ifdef O_NONBLOCK +#if O_NONBLOCK fcntl (s, F_SETFL, O_NONBLOCK); #else -#ifdef O_NDELAY +#if O_NDELAY fcntl (s, F_SETFL, O_NDELAY); #endif #endif @@ -4873,11 +4873,11 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, #endif /* ISC 4.1 defines both EWOULDBLOCK and O_NONBLOCK, and Emacs uses O_NONBLOCK, so what we get is EAGAIN. */ -#ifdef O_NONBLOCK +#if O_NONBLOCK else if (nread == -1 && errno == EAGAIN) ; #else -#ifdef O_NDELAY +#if O_NDELAY else if (nread == -1 && errno == EAGAIN) ; /* Note that we cannot distinguish between no input @@ -7363,7 +7363,7 @@ init_process_emacs (void) #ifdef HAVE_GETSOCKNAME ADD_SUBFEATURE (QCservice, Qt); #endif -#if defined (O_NONBLOCK) || defined (O_NDELAY) +#if O_NONBLOCK || O_NDELAY ADD_SUBFEATURE (QCserver, Qt); #endif diff --git a/src/sysdep.c b/src/sysdep.c index 35beeaa7202..8a31957d182 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -1216,7 +1216,7 @@ reset_sys_modes (struct tty_display_info *tty_out) old_fcntl_owner[fileno (tty_out->input)]); } #endif /* F_SETOWN */ -#ifdef O_NDELAY +#if O_NDELAY fcntl (fileno (tty_out->input), F_SETFL, fcntl (fileno (tty_out->input), F_GETFL, 0) & ~O_NDELAY); #endif @@ -2312,12 +2312,12 @@ serial_open (char *port) fd = emacs_open ((char*) port, O_RDWR -#ifdef O_NONBLOCK +#if O_NONBLOCK | O_NONBLOCK #else | O_NDELAY #endif -#ifdef O_NOCTTY +#if O_NOCTTY | O_NOCTTY #endif , 0); diff --git a/src/term.c b/src/term.c index f7c87b7608d..87ce5447b76 100644 --- a/src/term.c +++ b/src/term.c @@ -3023,7 +3023,7 @@ init_tty (const char *name, const char *terminal_type, int must_succeed) int fd; FILE *file; -#ifdef O_IGNORE_CTTY +#if O_IGNORE_CTTY if (!ctty) /* Open the terminal device. Don't recognize it as our controlling terminal, and don't make it the controlling tty @@ -3054,7 +3054,7 @@ init_tty (const char *name, const char *terminal_type, int must_succeed) name); } -#ifndef O_IGNORE_CTTY +#if !O_IGNORE_CTTY if (!ctty) dissociate_if_controlling_tty (fd); #endif diff --git a/src/w32.c b/src/w32.c index 5ac1bc3eb7c..341f4d3fef3 100644 --- a/src/w32.c +++ b/src/w32.c @@ -1597,7 +1597,7 @@ init_environment (char ** argv) see if it succeeds. But I think that's too much to ask. */ /* MSVCRT's _access crashes with D_OK. */ - if (tmp && sys_access (tmp, D_OK) == 0) + if (tmp && sys_faccessat (AT_FDCWD, tmp, D_OK, AT_EACCESS) == 0) { char * var = alloca (strlen (tmp) + 8); sprintf (var, "TMPDIR=%s", tmp); @@ -2714,10 +2714,16 @@ logon_network_drive (const char *path) long file names. */ int -sys_access (const char * path, int mode) +sys_faccessat (int dirfd, const char * path, int mode, int flags) { DWORD attributes; + if (dirfd != AT_FDCWD) + { + errno = EINVAL; + return -1; + } + /* MSVCRT implementation of 'access' doesn't recognize D_OK, and its newer versions blow up when passed D_OK. */ path = map_w32_filename (path, NULL); @@ -2960,7 +2966,7 @@ sys_mktemp (char * template) { int save_errno = errno; p[0] = first_char[i]; - if (sys_access (template, 0) < 0) + if (sys_faccessat (AT_FDCWD, template, F_OK, AT_EACCESS) < 0) { errno = save_errno; return template; @@ -4011,7 +4017,7 @@ symlink (char const *filename, char const *linkname) { /* Non-absolute FILENAME is understood as being relative to LINKNAME's directory. We need to prepend that directory to - FILENAME to get correct results from sys_access below, since + FILENAME to get correct results from sys_faccessat below, since otherwise it will interpret FILENAME relative to the directory where the Emacs process runs. Note that make-symbolic-link always makes sure LINKNAME is a fully @@ -4025,10 +4031,10 @@ symlink (char const *filename, char const *linkname) strncpy (tem, linkfn, p - linkfn); tem[p - linkfn] = '\0'; strcat (tem, filename); - dir_access = sys_access (tem, D_OK); + dir_access = sys_faccessat (AT_FDCWD, tem, D_OK, AT_EACCESS); } else - dir_access = sys_access (filename, D_OK); + dir_access = sys_faccessat (AT_FDCWD, filename, D_OK, AT_EACCESS); /* Since Windows distinguishes between symlinks to directories and to files, we provide a kludgy feature: if FILENAME doesn't diff --git a/src/xrdb.c b/src/xrdb.c index 9d056a607e4..982a6e46a13 100644 --- a/src/xrdb.c +++ b/src/xrdb.c @@ -21,6 +21,7 @@ along with GNU Emacs. If not, see . */ #include +#include #include #include #include @@ -261,11 +262,8 @@ gethomedir (void) static int file_p (const char *filename) { - struct stat status; - - return (access (filename, 4) == 0 /* exists and is readable */ - && stat (filename, &status) == 0 /* get the status */ - && (S_ISDIR (status.st_mode)) == 0); /* not a directory */ + return (faccessat (AT_FDCWD, filename, R_OK, AT_EACCESS) == 0 + && ! file_directory_p (filename)); } From 2c43889e841d1c4e19d876ec2c7d078b940d10d0 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 19 Oct 2012 10:14:00 -0700 Subject: [PATCH 258/272] New files from gnulib. Fixes: debbugs:12632 --- lib/at-func.c | 146 +++++++++++++++++ lib/euidaccess.c | 221 ++++++++++++++++++++++++++ lib/faccessat.c | 45 ++++++ lib/fcntl.in.h | 347 +++++++++++++++++++++++++++++++++++++++++ lib/getgroups.c | 116 ++++++++++++++ lib/group-member.c | 119 ++++++++++++++ lib/root-uid.h | 30 ++++ lib/xalloc-oversized.h | 38 +++++ m4/euidaccess.m4 | 52 ++++++ m4/faccessat.m4 | 28 ++++ m4/fcntl_h.m4 | 50 ++++++ m4/getgroups.m4 | 107 +++++++++++++ m4/group-member.m4 | 29 ++++ 13 files changed, 1328 insertions(+) create mode 100644 lib/at-func.c create mode 100644 lib/euidaccess.c create mode 100644 lib/faccessat.c create mode 100644 lib/fcntl.in.h create mode 100644 lib/getgroups.c create mode 100644 lib/group-member.c create mode 100644 lib/root-uid.h create mode 100644 lib/xalloc-oversized.h create mode 100644 m4/euidaccess.m4 create mode 100644 m4/faccessat.m4 create mode 100644 m4/fcntl_h.m4 create mode 100644 m4/getgroups.m4 create mode 100644 m4/group-member.m4 diff --git a/lib/at-func.c b/lib/at-func.c new file mode 100644 index 00000000000..481eea475a1 --- /dev/null +++ b/lib/at-func.c @@ -0,0 +1,146 @@ +/* Define at-style functions like fstatat, unlinkat, fchownat, etc. + Copyright (C) 2006, 2009-2012 Free Software Foundation, Inc. + + This program 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. + + This program 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 this program. If not, see . */ + +/* written by Jim Meyering */ + +#include "dosname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */ + +#ifdef GNULIB_SUPPORT_ONLY_AT_FDCWD +# include +# ifndef ENOTSUP +# define ENOTSUP EINVAL +# endif +#else +# include "openat.h" +# include "openat-priv.h" +# include "save-cwd.h" +#endif + +#ifdef AT_FUNC_USE_F1_COND +# define CALL_FUNC(F) \ + (flag == AT_FUNC_USE_F1_COND \ + ? AT_FUNC_F1 (F AT_FUNC_POST_FILE_ARGS) \ + : AT_FUNC_F2 (F AT_FUNC_POST_FILE_ARGS)) +# define VALIDATE_FLAG(F) \ + if (flag & ~AT_FUNC_USE_F1_COND) \ + { \ + errno = EINVAL; \ + return FUNC_FAIL; \ + } +#else +# define CALL_FUNC(F) (AT_FUNC_F1 (F AT_FUNC_POST_FILE_ARGS)) +# define VALIDATE_FLAG(F) /* empty */ +#endif + +#ifdef AT_FUNC_RESULT +# define FUNC_RESULT AT_FUNC_RESULT +#else +# define FUNC_RESULT int +#endif + +#ifdef AT_FUNC_FAIL +# define FUNC_FAIL AT_FUNC_FAIL +#else +# define FUNC_FAIL -1 +#endif + +/* Call AT_FUNC_F1 to operate on FILE, which is in the directory + open on descriptor FD. If AT_FUNC_USE_F1_COND is defined to a value, + AT_FUNC_POST_FILE_PARAM_DECLS must include a parameter named flag; + call AT_FUNC_F2 if FLAG is 0 or fail if FLAG contains more bits than + AT_FUNC_USE_F1_COND. Return int and fail with -1 unless AT_FUNC_RESULT + or AT_FUNC_FAIL are defined. If possible, do it without changing the + working directory. Otherwise, resort to using save_cwd/fchdir, + then AT_FUNC_F?/restore_cwd. If either the save_cwd or the restore_cwd + fails, then give a diagnostic and exit nonzero. */ +FUNC_RESULT +AT_FUNC_NAME (int fd, char const *file AT_FUNC_POST_FILE_PARAM_DECLS) +{ + VALIDATE_FLAG (flag); + + if (fd == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file)) + return CALL_FUNC (file); + +#ifdef GNULIB_SUPPORT_ONLY_AT_FDCWD + errno = ENOTSUP; + return FUNC_FAIL; +#else + { + /* Be careful to choose names unlikely to conflict with + AT_FUNC_POST_FILE_PARAM_DECLS. */ + struct saved_cwd saved_cwd; + int saved_errno; + FUNC_RESULT err; + + { + char proc_buf[OPENAT_BUFFER_SIZE]; + char *proc_file = openat_proc_name (proc_buf, fd, file); + if (proc_file) + { + FUNC_RESULT proc_result = CALL_FUNC (proc_file); + int proc_errno = errno; + if (proc_file != proc_buf) + free (proc_file); + /* If the syscall succeeds, or if it fails with an unexpected + errno value, then return right away. Otherwise, fall through + and resort to using save_cwd/restore_cwd. */ + if (FUNC_FAIL != proc_result) + return proc_result; + if (! EXPECTED_ERRNO (proc_errno)) + { + errno = proc_errno; + return proc_result; + } + } + } + + if (save_cwd (&saved_cwd) != 0) + openat_save_fail (errno); + if (0 <= fd && fd == saved_cwd.desc) + { + /* If saving the working directory collides with the user's + requested fd, then the user's fd must have been closed to + begin with. */ + free_cwd (&saved_cwd); + errno = EBADF; + return FUNC_FAIL; + } + + if (fchdir (fd) != 0) + { + saved_errno = errno; + free_cwd (&saved_cwd); + errno = saved_errno; + return FUNC_FAIL; + } + + err = CALL_FUNC (file); + saved_errno = (err == FUNC_FAIL ? errno : 0); + + if (restore_cwd (&saved_cwd) != 0) + openat_restore_fail (errno); + + free_cwd (&saved_cwd); + + if (saved_errno) + errno = saved_errno; + return err; + } +#endif +} +#undef CALL_FUNC +#undef FUNC_RESULT +#undef FUNC_FAIL diff --git a/lib/euidaccess.c b/lib/euidaccess.c new file mode 100644 index 00000000000..ca2ceca5d22 --- /dev/null +++ b/lib/euidaccess.c @@ -0,0 +1,221 @@ +/* euidaccess -- check if effective user id can access file + + Copyright (C) 1990-1991, 1995, 1998, 2000, 2003-2006, 2008-2012 Free + Software Foundation, Inc. + + This file is part of the GNU C Library. + + This program 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. + + This program 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 this program. If not, see . */ + +/* Written by David MacKenzie and Torbjorn Granlund. + Adapted for GNU C library by Roland McGrath. */ + +#ifndef _LIBC +# include +#endif + +#include +#include +#include +#include + +#include "root-uid.h" + +#if HAVE_LIBGEN_H +# include +#endif + +#include +#ifndef __set_errno +# define __set_errno(val) errno = (val) +#endif + +#if defined EACCES && !defined EACCESS +# define EACCESS EACCES +#endif + +#ifndef F_OK +# define F_OK 0 +# define X_OK 1 +# define W_OK 2 +# define R_OK 4 +#endif + + +#ifdef _LIBC + +# define access __access +# define getuid __getuid +# define getgid __getgid +# define geteuid __geteuid +# define getegid __getegid +# define group_member __group_member +# define euidaccess __euidaccess +# undef stat +# define stat stat64 + +#endif + +/* Return 0 if the user has permission of type MODE on FILE; + otherwise, return -1 and set 'errno'. + Like access, except that it uses the effective user and group + id's instead of the real ones, and it does not always check for read-only + file system, text busy, etc. */ + +int +euidaccess (const char *file, int mode) +{ +#if HAVE_FACCESSAT /* glibc, AIX 7, Solaris 11, Cygwin 1.7 */ + return faccessat (AT_FDCWD, file, mode, AT_EACCESS); +#elif defined EFF_ONLY_OK /* IRIX, OSF/1, Interix */ + return access (file, mode | EFF_ONLY_OK); +#elif defined ACC_SELF /* AIX */ + return accessx (file, mode, ACC_SELF); +#elif HAVE_EACCESS /* FreeBSD */ + return eaccess (file, mode); +#else /* Mac OS X, NetBSD, OpenBSD, HP-UX, Solaris, Cygwin, mingw, BeOS */ + + uid_t uid = getuid (); + gid_t gid = getgid (); + uid_t euid = geteuid (); + gid_t egid = getegid (); + struct stat stats; + +# if HAVE_DECL_SETREGID && PREFER_NONREENTRANT_EUIDACCESS + + /* Define PREFER_NONREENTRANT_EUIDACCESS if you prefer euidaccess to + return the correct result even if this would make it + nonreentrant. Define this only if your entire application is + safe even if the uid or gid might temporarily change. If your + application uses signal handlers or threads it is probably not + safe. */ + + if (mode == F_OK) + return stat (file, &stats); + else + { + int result; + int saved_errno; + + if (uid != euid) + setreuid (euid, uid); + if (gid != egid) + setregid (egid, gid); + + result = access (file, mode); + saved_errno = errno; + + /* Restore them. */ + if (uid != euid) + setreuid (uid, euid); + if (gid != egid) + setregid (gid, egid); + + errno = saved_errno; + return result; + } + +# else + + /* The following code assumes the traditional Unix model, and is not + correct on systems that have ACLs or the like. However, it's + better than nothing, and it is reentrant. */ + + unsigned int granted; + if (uid == euid && gid == egid) + /* If we are not set-uid or set-gid, access does the same. */ + return access (file, mode); + + if (stat (file, &stats) != 0) + return -1; + + /* The super-user can read and write any file, and execute any file + that anyone can execute. */ + if (euid == ROOT_UID + && ((mode & X_OK) == 0 + || (stats.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))) + return 0; + + /* Convert the mode to traditional form, clearing any bogus bits. */ + if (R_OK == 4 && W_OK == 2 && X_OK == 1 && F_OK == 0) + mode &= 7; + else + mode = ((mode & R_OK ? 4 : 0) + + (mode & W_OK ? 2 : 0) + + (mode & X_OK ? 1 : 0)); + + if (mode == 0) + return 0; /* The file exists. */ + + /* Convert the file's permission bits to traditional form. */ + if (S_IRUSR == (4 << 6) && S_IWUSR == (2 << 6) && S_IXUSR == (1 << 6) + && S_IRGRP == (4 << 3) && S_IWGRP == (2 << 3) && S_IXGRP == (1 << 3) + && S_IROTH == (4 << 0) && S_IWOTH == (2 << 0) && S_IXOTH == (1 << 0)) + granted = stats.st_mode; + else + granted = ((stats.st_mode & S_IRUSR ? 4 << 6 : 0) + + (stats.st_mode & S_IWUSR ? 2 << 6 : 0) + + (stats.st_mode & S_IXUSR ? 1 << 6 : 0) + + (stats.st_mode & S_IRGRP ? 4 << 3 : 0) + + (stats.st_mode & S_IWGRP ? 2 << 3 : 0) + + (stats.st_mode & S_IXGRP ? 1 << 3 : 0) + + (stats.st_mode & S_IROTH ? 4 << 0 : 0) + + (stats.st_mode & S_IWOTH ? 2 << 0 : 0) + + (stats.st_mode & S_IXOTH ? 1 << 0 : 0)); + + if (euid == stats.st_uid) + granted >>= 6; + else if (egid == stats.st_gid || group_member (stats.st_gid)) + granted >>= 3; + + if ((mode & ~granted) == 0) + return 0; + __set_errno (EACCESS); + return -1; + +# endif +#endif +} +#undef euidaccess +#ifdef weak_alias +weak_alias (__euidaccess, euidaccess) +#endif + +#ifdef TEST +# include +# include +# include + +char *program_name; + +int +main (int argc, char **argv) +{ + char *file; + int mode; + int err; + + program_name = argv[0]; + if (argc < 3) + abort (); + file = argv[1]; + mode = atoi (argv[2]); + + err = euidaccess (file, mode); + printf ("%d\n", err); + if (err != 0) + error (0, errno, "%s", file); + exit (0); +} +#endif diff --git a/lib/faccessat.c b/lib/faccessat.c new file mode 100644 index 00000000000..d11a3efaad6 --- /dev/null +++ b/lib/faccessat.c @@ -0,0 +1,45 @@ +/* Check the access rights of a file relative to an open directory. + Copyright (C) 2009-2012 Free Software Foundation, Inc. + + This program 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. + + This program 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 this program. If not, see . */ + +/* written by Eric Blake */ + +#include + +#include +#include + +#ifndef HAVE_ACCESS +/* Mingw lacks access, but it also lacks real vs. effective ids, so + the gnulib euidaccess module is good enough. */ +# undef access +# define access euidaccess +#endif + +/* Invoke access or euidaccess on file, FILE, using mode MODE, in the directory + open on descriptor FD. If possible, do it without changing the + working directory. Otherwise, resort to using save_cwd/fchdir, then + (access|euidaccess)/restore_cwd. If either the save_cwd or the + restore_cwd fails, then give a diagnostic and exit nonzero. + Note that this implementation only supports AT_EACCESS, although some + native versions also support AT_SYMLINK_NOFOLLOW. */ + +#define AT_FUNC_NAME faccessat +#define AT_FUNC_F1 euidaccess +#define AT_FUNC_F2 access +#define AT_FUNC_USE_F1_COND AT_EACCESS +#define AT_FUNC_POST_FILE_PARAM_DECLS , int mode, int flag +#define AT_FUNC_POST_FILE_ARGS , mode +#include "at-func.c" diff --git a/lib/fcntl.in.h b/lib/fcntl.in.h new file mode 100644 index 00000000000..5fdac2313d0 --- /dev/null +++ b/lib/fcntl.in.h @@ -0,0 +1,347 @@ +/* Like , but with non-working flags defined to 0. + + Copyright (C) 2006-2012 Free Software Foundation, Inc. + + This program 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. + + This program 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 this program. If not, see . */ + +/* written by Paul Eggert */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +#if defined __need_system_fcntl_h +/* Special invocation convention. */ + +/* Needed before . + May also define off_t to a 64-bit type on native Windows. */ +#include +/* On some systems other than glibc, is a prerequisite of + . On glibc systems, we would like to avoid namespace pollution. + But on glibc systems, includes inside an + extern "C" { ... } block, which leads to errors in C++ mode with the + overridden from gnulib. These errors are known to be gone + with g++ version >= 4.3. */ +#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) +# include +#endif +#@INCLUDE_NEXT@ @NEXT_FCNTL_H@ + +#else +/* Normal invocation convention. */ + +#ifndef _@GUARD_PREFIX@_FCNTL_H + +/* Needed before . + May also define off_t to a 64-bit type on native Windows. */ +#include +/* On some systems other than glibc, is a prerequisite of + . On glibc systems, we would like to avoid namespace pollution. + But on glibc systems, includes inside an + extern "C" { ... } block, which leads to errors in C++ mode with the + overridden from gnulib. These errors are known to be gone + with g++ version >= 4.3. */ +#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) +# include +#endif +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_FCNTL_H@ + +#ifndef _@GUARD_PREFIX@_FCNTL_H +#define _@GUARD_PREFIX@_FCNTL_H + +#ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ +# include +#endif + +/* Native Windows platforms declare open(), creat() in . */ +#if (@GNULIB_OPEN@ || defined GNULIB_POSIXCHECK) \ + && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) +# include +#endif + + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + + +/* Declare overridden functions. */ + +#if @GNULIB_FCNTL@ +# if @REPLACE_FCNTL@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fcntl +# define fcntl rpl_fcntl +# endif +_GL_FUNCDECL_RPL (fcntl, int, (int fd, int action, ...)); +_GL_CXXALIAS_RPL (fcntl, int, (int fd, int action, ...)); +# else +# if !@HAVE_FCNTL@ +_GL_FUNCDECL_SYS (fcntl, int, (int fd, int action, ...)); +# endif +_GL_CXXALIAS_SYS (fcntl, int, (int fd, int action, ...)); +# endif +_GL_CXXALIASWARN (fcntl); +#elif defined GNULIB_POSIXCHECK +# undef fcntl +# if HAVE_RAW_DECL_FCNTL +_GL_WARN_ON_USE (fcntl, "fcntl is not always POSIX compliant - " + "use gnulib module fcntl for portability"); +# endif +#endif + +#if @GNULIB_OPEN@ +# if @REPLACE_OPEN@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef open +# define open rpl_open +# endif +_GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); +# else +_GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); +# endif +/* On HP-UX 11, in C++ mode, open() is defined as an inline function with a + default argument. _GL_CXXALIASWARN does not work in this case. */ +# if !defined __hpux +_GL_CXXALIASWARN (open); +# endif +#elif defined GNULIB_POSIXCHECK +# undef open +/* Assume open is always declared. */ +_GL_WARN_ON_USE (open, "open is not always POSIX compliant - " + "use gnulib module open for portability"); +#endif + +#if @GNULIB_OPENAT@ +# if @REPLACE_OPENAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef openat +# define openat rpl_openat +# endif +_GL_FUNCDECL_RPL (openat, int, + (int fd, char const *file, int flags, /* mode_t mode */ ...) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (openat, int, + (int fd, char const *file, int flags, /* mode_t mode */ ...)); +# else +# if !@HAVE_OPENAT@ +_GL_FUNCDECL_SYS (openat, int, + (int fd, char const *file, int flags, /* mode_t mode */ ...) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (openat, int, + (int fd, char const *file, int flags, /* mode_t mode */ ...)); +# endif +_GL_CXXALIASWARN (openat); +#elif defined GNULIB_POSIXCHECK +# undef openat +# if HAVE_RAW_DECL_OPENAT +_GL_WARN_ON_USE (openat, "openat is not portable - " + "use gnulib module openat for portability"); +# endif +#endif + + +/* Fix up the FD_* macros, only known to be missing on mingw. */ + +#ifndef FD_CLOEXEC +# define FD_CLOEXEC 1 +#endif + +/* Fix up the supported F_* macros. Intentionally leave other F_* + macros undefined. Only known to be missing on mingw. */ + +#ifndef F_DUPFD_CLOEXEC +# define F_DUPFD_CLOEXEC 0x40000000 +/* Witness variable: 1 if gnulib defined F_DUPFD_CLOEXEC, 0 otherwise. */ +# define GNULIB_defined_F_DUPFD_CLOEXEC 1 +#else +# define GNULIB_defined_F_DUPFD_CLOEXEC 0 +#endif + +#ifndef F_DUPFD +# define F_DUPFD 1 +#endif + +#ifndef F_GETFD +# define F_GETFD 2 +#endif + +/* Fix up the O_* macros. */ + +#if !defined O_DIRECT && defined O_DIRECTIO +/* Tru64 spells it 'O_DIRECTIO'. */ +# define O_DIRECT O_DIRECTIO +#endif + +#if !defined O_CLOEXEC && defined O_NOINHERIT +/* Mingw spells it 'O_NOINHERIT'. */ +# define O_CLOEXEC O_NOINHERIT +#endif + +#ifndef O_CLOEXEC +# define O_CLOEXEC 0 +#endif + +#ifndef O_DIRECT +# define O_DIRECT 0 +#endif + +#ifndef O_DIRECTORY +# define O_DIRECTORY 0 +#endif + +#ifndef O_DSYNC +# define O_DSYNC 0 +#endif + +#ifndef O_EXEC +# define O_EXEC O_RDONLY /* This is often close enough in older systems. */ +#endif + +#ifndef O_IGNORE_CTTY +# define O_IGNORE_CTTY 0 +#endif + +#ifndef O_NDELAY +# define O_NDELAY 0 +#endif + +#ifndef O_NOATIME +# define O_NOATIME 0 +#endif + +#ifndef O_NONBLOCK +# define O_NONBLOCK O_NDELAY +#endif + +/* If the gnulib module 'nonblocking' is in use, guarantee a working non-zero + value of O_NONBLOCK. Otherwise, O_NONBLOCK is defined (above) to O_NDELAY + or to 0 as fallback. */ +#if @GNULIB_NONBLOCKING@ +# if O_NONBLOCK +# define GNULIB_defined_O_NONBLOCK 0 +# else +# define GNULIB_defined_O_NONBLOCK 1 +# undef O_NONBLOCK +# define O_NONBLOCK 0x40000000 +# endif +#endif + +#ifndef O_NOCTTY +# define O_NOCTTY 0 +#endif + +#ifndef O_NOFOLLOW +# define O_NOFOLLOW 0 +#endif + +#ifndef O_NOLINK +# define O_NOLINK 0 +#endif + +#ifndef O_NOLINKS +# define O_NOLINKS 0 +#endif + +#ifndef O_NOTRANS +# define O_NOTRANS 0 +#endif + +#ifndef O_RSYNC +# define O_RSYNC 0 +#endif + +#ifndef O_SEARCH +# define O_SEARCH O_RDONLY /* This is often close enough in older systems. */ +#endif + +#ifndef O_SYNC +# define O_SYNC 0 +#endif + +#ifndef O_TTY_INIT +# define O_TTY_INIT 0 +#endif + +#if O_ACCMODE != (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) +# undef O_ACCMODE +# define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) +#endif + +/* For systems that distinguish between text and binary I/O. + O_BINARY is usually declared in fcntl.h */ +#if !defined O_BINARY && defined _O_BINARY + /* For MSC-compatible compilers. */ +# define O_BINARY _O_BINARY +# define O_TEXT _O_TEXT +#endif + +#if defined __BEOS__ || defined __HAIKU__ + /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect. */ +# undef O_BINARY +# undef O_TEXT +#endif + +#ifndef O_BINARY +# define O_BINARY 0 +# define O_TEXT 0 +#endif + +/* Fix up the AT_* macros. */ + +/* Work around a bug in Solaris 9 and 10: AT_FDCWD is positive. Its + value exceeds INT_MAX, so its use as an int doesn't conform to the + C standard, and GCC and Sun C complain in some cases. If the bug + is present, undef AT_FDCWD here, so it can be redefined below. */ +#if 0 < AT_FDCWD && AT_FDCWD == 0xffd19553 +# undef AT_FDCWD +#endif + +/* Use the same bit pattern as Solaris 9, but with the proper + signedness. The bit pattern is important, in case this actually is + Solaris with the above workaround. */ +#ifndef AT_FDCWD +# define AT_FDCWD (-3041965) +#endif + +/* Use the same values as Solaris 9. This shouldn't matter, but + there's no real reason to differ. */ +#ifndef AT_SYMLINK_NOFOLLOW +# define AT_SYMLINK_NOFOLLOW 4096 +#endif + +#ifndef AT_REMOVEDIR +# define AT_REMOVEDIR 1 +#endif + +/* Solaris 9 lacks these two, so just pick unique values. */ +#ifndef AT_SYMLINK_FOLLOW +# define AT_SYMLINK_FOLLOW 2 +#endif + +#ifndef AT_EACCESS +# define AT_EACCESS 4 +#endif + + +#endif /* _@GUARD_PREFIX@_FCNTL_H */ +#endif /* _@GUARD_PREFIX@_FCNTL_H */ +#endif diff --git a/lib/getgroups.c b/lib/getgroups.c new file mode 100644 index 00000000000..f9d36236afe --- /dev/null +++ b/lib/getgroups.c @@ -0,0 +1,116 @@ +/* provide consistent interface to getgroups for systems that don't allow N==0 + + Copyright (C) 1996, 1999, 2003, 2006-2012 Free Software Foundation, Inc. + + This program 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. + + This program 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 this program. If not, see . */ + +/* written by Jim Meyering */ + +#include + +#include + +#include +#include +#include + +#if !HAVE_GETGROUPS + +/* Provide a stub that fails with ENOSYS, since there is no group + information available on mingw. */ +int +getgroups (int n _GL_UNUSED, GETGROUPS_T *groups _GL_UNUSED) +{ + errno = ENOSYS; + return -1; +} + +#else /* HAVE_GETGROUPS */ + +# undef getgroups +# ifndef GETGROUPS_ZERO_BUG +# define GETGROUPS_ZERO_BUG 0 +# endif + +/* On at least Ultrix 4.3 and NextStep 3.2, getgroups (0, NULL) always + fails. On other systems, it returns the number of supplemental + groups for the process. This function handles that special case + and lets the system-provided function handle all others. However, + it can fail with ENOMEM if memory is tight. It is unspecified + whether the effective group id is included in the list. */ + +int +rpl_getgroups (int n, gid_t *group) +{ + int n_groups; + GETGROUPS_T *gbuf; + int saved_errno; + + if (n < 0) + { + errno = EINVAL; + return -1; + } + + if (n != 0 || !GETGROUPS_ZERO_BUG) + { + int result; + if (sizeof *group == sizeof *gbuf) + return getgroups (n, (GETGROUPS_T *) group); + + if (SIZE_MAX / sizeof *gbuf <= n) + { + errno = ENOMEM; + return -1; + } + gbuf = malloc (n * sizeof *gbuf); + if (!gbuf) + return -1; + result = getgroups (n, gbuf); + if (0 <= result) + { + n = result; + while (n--) + group[n] = gbuf[n]; + } + saved_errno = errno; + free (gbuf); + errno == saved_errno; + return result; + } + + n = 20; + while (1) + { + /* No need to worry about address arithmetic overflow here, + since the ancient systems that we're running on have low + limits on the number of secondary groups. */ + gbuf = malloc (n * sizeof *gbuf); + if (!gbuf) + return -1; + n_groups = getgroups (n, gbuf); + if (n_groups == -1 ? errno != EINVAL : n_groups < n) + break; + free (gbuf); + n *= 2; + } + + saved_errno = errno; + free (gbuf); + errno = saved_errno; + + return n_groups; +} + +#endif /* HAVE_GETGROUPS */ diff --git a/lib/group-member.c b/lib/group-member.c new file mode 100644 index 00000000000..5fcc7e01d0c --- /dev/null +++ b/lib/group-member.c @@ -0,0 +1,119 @@ +/* group-member.c -- determine whether group id is in calling user's group list + + Copyright (C) 1994, 1997-1998, 2003, 2005-2006, 2009-2012 Free Software + Foundation, Inc. + + This program 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. + + This program 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 this program. If not, see . */ + +#include + +/* Specification. */ +#include + +#include +#include +#include + +#include "xalloc-oversized.h" + +/* Most processes have no more than this many groups, and for these + processes we can avoid using malloc. */ +enum { GROUPBUF_SIZE = 100 }; + +struct group_info + { + gid_t *group; + gid_t groupbuf[GROUPBUF_SIZE]; + }; + +static void +free_group_info (struct group_info const *g) +{ + if (g->group != g->groupbuf) + free (g->group); +} + +static int +get_group_info (struct group_info *gi) +{ + int n_groups = getgroups (GROUPBUF_SIZE, gi->groupbuf); + gi->group = gi->groupbuf; + + if (n_groups < 0) + { + int n_group_slots = getgroups (0, NULL); + if (0 <= n_group_slots + && ! xalloc_oversized (n_group_slots, sizeof *gi->group)) + { + gi->group = malloc (n_group_slots * sizeof *gi->group); + if (gi->group) + n_groups = getgroups (n_group_slots, gi->group); + } + } + + /* In case of error, the user loses. */ + return n_groups; +} + +/* Return non-zero if GID is one that we have in our groups list. + Note that the groups list is not guaranteed to contain the current + or effective group ID, so they should generally be checked + separately. */ + +int +group_member (gid_t gid) +{ + int i; + int found; + struct group_info gi; + int n_groups = get_group_info (&gi); + + /* Search through the list looking for GID. */ + found = 0; + for (i = 0; i < n_groups; i++) + { + if (gid == gi.group[i]) + { + found = 1; + break; + } + } + + free_group_info (&gi); + + return found; +} + +#ifdef TEST + +char *program_name; + +int +main (int argc, char **argv) +{ + int i; + + program_name = argv[0]; + + for (i = 1; i < argc; i++) + { + gid_t gid; + + gid = atoi (argv[i]); + printf ("%d: %s\n", gid, group_member (gid) ? "yes" : "no"); + } + exit (0); +} + +#endif /* TEST */ diff --git a/lib/root-uid.h b/lib/root-uid.h new file mode 100644 index 00000000000..2379773c291 --- /dev/null +++ b/lib/root-uid.h @@ -0,0 +1,30 @@ +/* The user ID that always has appropriate privileges in the POSIX sense. + + Copyright 2012 Free Software Foundation, Inc. + + This program 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. + + This program 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 this program. If not, see . + + Written by Paul Eggert. */ + +#ifndef ROOT_UID_H_ +#define ROOT_UID_H_ + +/* The user ID that always has appropriate privileges in the POSIX sense. */ +#ifdef __TANDEM +# define ROOT_UID 65535 +#else +# define ROOT_UID 0 +#endif + +#endif diff --git a/lib/xalloc-oversized.h b/lib/xalloc-oversized.h new file mode 100644 index 00000000000..ad777d8dd79 --- /dev/null +++ b/lib/xalloc-oversized.h @@ -0,0 +1,38 @@ +/* xalloc-oversized.h -- memory allocation size checking + + Copyright (C) 1990-2000, 2003-2004, 2006-2012 Free Software Foundation, Inc. + + This program 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. + + This program 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 this program. If not, see . */ + +#ifndef XALLOC_OVERSIZED_H_ +# define XALLOC_OVERSIZED_H_ + +# include + +/* Return 1 if an array of N objects, each of size S, cannot exist due + to size arithmetic overflow. S must be positive and N must be + nonnegative. This is a macro, not a function, so that it + works correctly even when SIZE_MAX < N. + + By gnulib convention, SIZE_MAX represents overflow in size + calculations, so the conservative dividend to use here is + SIZE_MAX - 1, since SIZE_MAX might represent an overflowed value. + However, malloc (SIZE_MAX) fails on all known hosts where + sizeof (ptrdiff_t) <= sizeof (size_t), so do not bother to test for + exactly-SIZE_MAX allocations on such hosts; this avoids a test and + branch when S is known to be 1. */ +# define xalloc_oversized(n, s) \ + ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n)) + +#endif /* !XALLOC_OVERSIZED_H_ */ diff --git a/m4/euidaccess.m4 b/m4/euidaccess.m4 new file mode 100644 index 00000000000..2de95b88ba8 --- /dev/null +++ b/m4/euidaccess.m4 @@ -0,0 +1,52 @@ +# euidaccess.m4 serial 15 +dnl Copyright (C) 2002-2012 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_NONREENTRANT_EUIDACCESS], +[ + AC_REQUIRE([gl_FUNC_EUIDACCESS]) + AC_CHECK_DECLS([setregid]) + AC_DEFINE([PREFER_NONREENTRANT_EUIDACCESS], [1], + [Define this if you prefer euidaccess to return the correct result + even if this would make it nonreentrant. Define this only if your + entire application is safe even if the uid or gid might temporarily + change. If your application uses signal handlers or threads it + is probably not safe.]) +]) + +AC_DEFUN([gl_FUNC_EUIDACCESS], +[ + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + + dnl Persuade glibc to declare euidaccess(). + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + AC_CHECK_FUNCS([euidaccess]) + if test $ac_cv_func_euidaccess = no; then + HAVE_EUIDACCESS=0 + fi +]) + +# Prerequisites of lib/euidaccess.c. +AC_DEFUN([gl_PREREQ_EUIDACCESS], [ + dnl Prefer POSIX faccessat over non-standard euidaccess. + AC_CHECK_FUNCS_ONCE([faccessat]) + dnl Try various other non-standard fallbacks. + AC_CHECK_HEADERS([libgen.h]) + AC_FUNC_GETGROUPS + + # Solaris 9 and 10 need -lgen to get the eaccess function. + # Save and restore LIBS so -lgen isn't added to it. Otherwise, *all* + # programs in the package would end up linked with that potentially-shared + # library, inducing unnecessary run-time overhead. + LIB_EACCESS= + AC_SUBST([LIB_EACCESS]) + gl_saved_libs=$LIBS + AC_SEARCH_LIBS([eaccess], [gen], + [test "$ac_cv_search_eaccess" = "none required" || + LIB_EACCESS=$ac_cv_search_eaccess]) + AC_CHECK_FUNCS([eaccess]) + LIBS=$gl_saved_libs +]) diff --git a/m4/faccessat.m4 b/m4/faccessat.m4 new file mode 100644 index 00000000000..82f3b1f8dde --- /dev/null +++ b/m4/faccessat.m4 @@ -0,0 +1,28 @@ +# serial 6 +# See if we need to provide faccessat replacement. + +dnl Copyright (C) 2009-2012 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Written by Eric Blake. + +AC_DEFUN([gl_FUNC_FACCESSAT], +[ + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + + dnl Persuade glibc to declare faccessat(). + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + + AC_CHECK_FUNCS_ONCE([faccessat]) + if test $ac_cv_func_faccessat = no; then + HAVE_FACCESSAT=0 + fi +]) + +# Prerequisites of lib/faccessat.m4. +AC_DEFUN([gl_PREREQ_FACCESSAT], +[ + AC_CHECK_FUNCS([access]) +]) diff --git a/m4/fcntl_h.m4 b/m4/fcntl_h.m4 new file mode 100644 index 00000000000..cac28aeb283 --- /dev/null +++ b/m4/fcntl_h.m4 @@ -0,0 +1,50 @@ +# serial 15 +# Configure fcntl.h. +dnl Copyright (C) 2006-2007, 2009-2012 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Written by Paul Eggert. + +AC_DEFUN([gl_FCNTL_H], +[ + AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) + AC_REQUIRE([gl_FCNTL_O_FLAGS]) + gl_NEXT_HEADERS([fcntl.h]) + + dnl Ensure the type pid_t gets defined. + AC_REQUIRE([AC_TYPE_PID_T]) + + dnl Ensure the type mode_t gets defined. + AC_REQUIRE([AC_TYPE_MODE_T]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use, if it is not common + dnl enough to be declared everywhere. + gl_WARN_ON_USE_PREPARE([[#include + ]], [fcntl openat]) +]) + +AC_DEFUN([gl_FCNTL_MODULE_INDICATOR], +[ + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) +]) + +AC_DEFUN([gl_FCNTL_H_DEFAULTS], +[ + GNULIB_FCNTL=0; AC_SUBST([GNULIB_FCNTL]) + GNULIB_NONBLOCKING=0; AC_SUBST([GNULIB_NONBLOCKING]) + GNULIB_OPEN=0; AC_SUBST([GNULIB_OPEN]) + GNULIB_OPENAT=0; AC_SUBST([GNULIB_OPENAT]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_FCNTL=1; AC_SUBST([HAVE_FCNTL]) + HAVE_OPENAT=1; AC_SUBST([HAVE_OPENAT]) + REPLACE_FCNTL=0; AC_SUBST([REPLACE_FCNTL]) + REPLACE_OPEN=0; AC_SUBST([REPLACE_OPEN]) + REPLACE_OPENAT=0; AC_SUBST([REPLACE_OPENAT]) +]) diff --git a/m4/getgroups.m4 b/m4/getgroups.m4 new file mode 100644 index 00000000000..17473af486b --- /dev/null +++ b/m4/getgroups.m4 @@ -0,0 +1,107 @@ +# serial 18 + +dnl From Jim Meyering. +dnl A wrapper around AC_FUNC_GETGROUPS. + +# Copyright (C) 1996-1997, 1999-2004, 2008-2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +m4_version_prereq([2.70], [] ,[ + +# This is taken from the following Autoconf patch: +# http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=7fbb553727ed7e0e689a17594b58559ecf3ea6e9 +AC_DEFUN([AC_FUNC_GETGROUPS], +[ + AC_REQUIRE([AC_TYPE_GETGROUPS])dnl + AC_REQUIRE([AC_TYPE_SIZE_T])dnl + AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles + AC_CHECK_FUNC([getgroups]) + + # If we don't yet have getgroups, see if it's in -lbsd. + # This is reported to be necessary on an ITOS 3000WS running SEIUX 3.1. + ac_save_LIBS=$LIBS + if test $ac_cv_func_getgroups = no; then + AC_CHECK_LIB(bsd, getgroups, [GETGROUPS_LIB=-lbsd]) + fi + + # Run the program to test the functionality of the system-supplied + # getgroups function only if there is such a function. + if test $ac_cv_func_getgroups = yes; then + AC_CACHE_CHECK([for working getgroups], [ac_cv_func_getgroups_works], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [AC_INCLUDES_DEFAULT], + [[/* On Ultrix 4.3, getgroups (0, 0) always fails. */ + return getgroups (0, 0) == -1;]]) + ], + [ac_cv_func_getgroups_works=yes], + [ac_cv_func_getgroups_works=no], + [case "$host_os" in # (( + # Guess yes on glibc systems. + *-gnu*) ac_cv_func_getgroups_works="guessing yes" ;; + # If we don't know, assume the worst. + *) ac_cv_func_getgroups_works="guessing no" ;; + esac + ]) + ]) + else + ac_cv_func_getgroups_works=no + fi + case "$ac_cv_func_getgroups_works" in + *yes) + AC_DEFINE([HAVE_GETGROUPS], [1], + [Define to 1 if your system has a working `getgroups' function.]) + ;; + esac + LIBS=$ac_save_LIBS +])# AC_FUNC_GETGROUPS + +]) + +AC_DEFUN([gl_FUNC_GETGROUPS], +[ + AC_REQUIRE([AC_TYPE_GETGROUPS]) + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + + AC_FUNC_GETGROUPS + if test $ac_cv_func_getgroups != yes; then + HAVE_GETGROUPS=0 + else + if test "$ac_cv_type_getgroups" != gid_t \ + || { case "$ac_cv_func_getgroups_works" in + *yes) false;; + *) true;; + esac + }; then + REPLACE_GETGROUPS=1 + AC_DEFINE([GETGROUPS_ZERO_BUG], [1], [Define this to 1 if + getgroups(0,NULL) does not return the number of groups.]) + else + dnl Detect FreeBSD bug; POSIX requires getgroups(-1,ptr) to fail. + AC_CACHE_CHECK([whether getgroups handles negative values], + [gl_cv_func_getgroups_works], + [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], + [[int size = getgroups (0, 0); + gid_t *list = malloc (size * sizeof *list); + return getgroups (-1, list) != -1;]])], + [gl_cv_func_getgroups_works=yes], + [gl_cv_func_getgroups_works=no], + [case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_getgroups_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_getgroups_works="guessing no" ;; + esac + ])]) + case "$gl_cv_func_getgroups_works" in + *yes) ;; + *) REPLACE_GETGROUPS=1 ;; + esac + fi + fi + test -n "$GETGROUPS_LIB" && LIBS="$GETGROUPS_LIB $LIBS" +]) diff --git a/m4/group-member.m4 b/m4/group-member.m4 new file mode 100644 index 00000000000..c393b5b1303 --- /dev/null +++ b/m4/group-member.m4 @@ -0,0 +1,29 @@ +# serial 14 + +# Copyright (C) 1999-2001, 2003-2007, 2009-2012 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +dnl Written by Jim Meyering + +AC_DEFUN([gl_FUNC_GROUP_MEMBER], +[ + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + + dnl Persuade glibc to declare group_member(). + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + dnl Do this replacement check manually because I want the hyphen + dnl (not the underscore) in the filename. + AC_CHECK_FUNC([group_member], , [ + HAVE_GROUP_MEMBER=0 + ]) +]) + +# Prerequisites of lib/group-member.c. +AC_DEFUN([gl_PREREQ_GROUP_MEMBER], +[ + AC_REQUIRE([AC_FUNC_GETGROUPS]) +]) From 8e8083185c417eedbaadf0b33c7089da72fe2250 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Fri, 19 Oct 2012 14:59:36 -0400 Subject: [PATCH 259/272] * lisp/minibuffer.el (minibuffer-force-complete): Make the next completion use the same completion-field (bug@12221). --- lisp/ChangeLog | 5 +++++ lisp/minibuffer.el | 19 +++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f9d9ad4b03d..096e9a52916 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-19 Stefan Monnier + + * minibuffer.el (minibuffer-force-complete): Make the next completion use + the same completion-field (bug@12221). + 2012-10-19 Martin Rudalics * emacs-lisp/debug.el (debug): Record height of debugger window diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index f464b42182d..f865a0269d4 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -1134,7 +1134,23 @@ Repeated uses step through the possible completions." ;; through the previous possible completions. (let ((last (last all))) (setcdr last (cons (car all) (cdr last))) - (completion--cache-all-sorted-completions (cdr all))))))) + (completion--cache-all-sorted-completions (cdr all))) + ;; Make sure repeated uses cycle, even though completion--done might + ;; have added a space or something that moved us outside of the field. + ;; (bug#12221). + (let* ((table minibuffer-completion-table) + (pred minibuffer-completion-predicate) + (extra-prop completion-extra-properties) + (cmd + (lambda () "Cycle through the possible completions." + (interactive) + (let ((completion-extra-properties extra-prop)) + (completion-in-region start (point) table pred))))) + (set-temporary-overlay-map + (let ((map (make-sparse-keymap))) + (define-key map [remap completion-at-point] cmd) + (define-key map (vector last-command-event) cmd) + map))))))) (defvar minibuffer-confirm-exit-commands '(completion-at-point minibuffer-complete @@ -1557,7 +1573,6 @@ variables.") (let* ((exit-fun (plist-get completion-extra-properties :exit-function)) (pre-msg (and exit-fun (current-message)))) (cl-assert (memq finished '(exact sole finished unknown))) - ;; FIXME: exit-fun should receive `finished' as a parameter. (when exit-fun (when (eq finished 'unknown) (setq finished From f0a801750151bee7fdcf96dff272986e627fb3e3 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 19 Oct 2012 12:25:18 -0700 Subject: [PATCH 260/272] Undo faccessat change. --- ChangeLog | 13 -- admin/ChangeLog | 8 - admin/merge-gnulib | 13 +- configure.ac | 4 +- lib/at-func.c | 146 ----------------- lib/euidaccess.c | 221 -------------------------- lib/faccessat.c | 45 ------ lib/fcntl.in.h | 347 ----------------------------------------- lib/getgroups.c | 116 -------------- lib/gnulib.mk | 97 +----------- lib/group-member.c | 119 -------------- lib/root-uid.h | 30 ---- lib/xalloc-oversized.h | 38 ----- m4/euidaccess.m4 | 52 ------ m4/faccessat.m4 | 28 ---- m4/fcntl_h.m4 | 50 ------ m4/getgroups.m4 | 107 ------------- m4/gnulib-comp.m4 | 105 ------------- m4/group-member.m4 | 29 ---- nt/ChangeLog | 7 - nt/inc/ms-w32.h | 7 +- src/ChangeLog | 29 ---- src/Makefile.in | 3 +- src/callproc.c | 4 +- src/charset.c | 3 +- src/conf_post.h | 4 - src/fileio.c | 97 +++++++++--- src/lisp.h | 1 - src/lread.c | 56 ++++--- src/process.c | 36 ++--- src/sysdep.c | 6 +- src/term.c | 4 +- src/w32.c | 18 +-- src/xrdb.c | 8 +- 34 files changed, 146 insertions(+), 1705 deletions(-) delete mode 100644 lib/at-func.c delete mode 100644 lib/euidaccess.c delete mode 100644 lib/faccessat.c delete mode 100644 lib/fcntl.in.h delete mode 100644 lib/getgroups.c delete mode 100644 lib/group-member.c delete mode 100644 lib/root-uid.h delete mode 100644 lib/xalloc-oversized.h delete mode 100644 m4/euidaccess.m4 delete mode 100644 m4/faccessat.m4 delete mode 100644 m4/fcntl_h.m4 delete mode 100644 m4/getgroups.m4 delete mode 100644 m4/group-member.m4 diff --git a/ChangeLog b/ChangeLog index c7fcd319af2..81eddade0a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,16 +1,3 @@ -2012-10-19 Paul Eggert - - Use faccessat, not access, when checking file permissions (Bug#12632). - * .bzrignore: Add lib/fcntl.h. - * configure.ac (euidaccess): Remove check; gnulib does this for us now. - (gl_FCNTL_O_FLAGS): Define a dummy version. - * lib/at-func.c, lib/euidaccess.c, lib/faccessat.c, lib/fcntl.in.h: - * lib/getgroups.c, lib/group-member.c, lib/root-uid.h: - * lib/xalloc-oversized.h, m4/euidaccess.m4, m4/faccessat.m4: - * m4/fcntl_h.m4, m4/getgroups.m4, m4/group-member.m4: - New files, from gnulib. - * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. - 2012-10-18 Stefan Monnier * Makefile.in ($(MAKEFILE_NAME)): Depend on src/lisp.mk as well. diff --git a/admin/ChangeLog b/admin/ChangeLog index 6d08bf7c37e..e21293d618d 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,11 +1,3 @@ -2012-10-19 Paul Eggert - - Use faccessat, not access, when checking file permissions (Bug#12632). - * merge-gnulib (GNULIB_MODULES): Add faccessat. - (GNULIB_TOOL_FLAGS): Avoid at-internal, fchdir, malloc-posix, - openat-die, openat-h, save-cwd. Do not avoid fcntl-h. - Omit gnulib's m4/fcntl-o.m4. - 2012-10-12 Kenichi Handa * charsets/Makefile (JISC6226.map): Add missing mappings. diff --git a/admin/merge-gnulib b/admin/merge-gnulib index 3c4d8e8058d..7fc0b5f4844 100755 --- a/admin/merge-gnulib +++ b/admin/merge-gnulib @@ -28,7 +28,7 @@ GNULIB_URL=git://git.savannah.gnu.org/gnulib.git GNULIB_MODULES=' alloca-opt c-ctype c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 - dtoastr dtotimespec dup2 environ execinfo faccessat + dtoastr dtotimespec dup2 environ execinfo filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink @@ -39,12 +39,9 @@ GNULIB_MODULES=' ' GNULIB_TOOL_FLAGS=' - --avoid=at-internal - --avoid=errno --avoid=fchdir --avoid=fcntl --avoid=fstat - --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow - --avoid=openat-die --avoid=openat-h - --avoid=raise - --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=sys_types + --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat + --avoid=msvc-inval --avoid=msvc-nothrow + --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --conditional-dependencies --import --no-changelog --no-vc-files --makefile-name=gnulib.mk @@ -88,7 +85,7 @@ test -x "$gnulib_srcdir"/gnulib-tool || { } "$gnulib_srcdir"/gnulib-tool --dir="$src" $GNULIB_TOOL_FLAGS $GNULIB_MODULES && -rm -- "$src"m4/fcntl-o.m4 "$src"m4/gnulib-cache.m4 "$src"m4/warn-on-use.m4 && +rm -- "$src"m4/gnulib-cache.m4 "$src"m4/warn-on-use.m4 && cp -- "$gnulib_srcdir"/build-aux/texinfo.tex "$src"doc/misc && cp -- "$gnulib_srcdir"/build-aux/move-if-change "$src"build-aux && autoreconf -i -I m4 -- ${src:+"$src"} diff --git a/configure.ac b/configure.ac index 6b4c757ced5..5520dd6a903 100644 --- a/configure.ac +++ b/configure.ac @@ -572,8 +572,6 @@ else test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS" fi -# Avoid gnulib's tests for O_NOATIME and O_NOFOLLOW, as we don't use them. -AC_DEFUN([gl_FCNTL_O_FLAGS]) # Avoid gnulib's threadlib module, as we do threads our own way. AC_DEFUN([gl_THREADLIB]) @@ -2874,7 +2872,7 @@ AC_SUBST(BLESSMAIL_TARGET) AC_CHECK_FUNCS(gethostname \ closedir getrusage get_current_dir_name \ lrand48 setsid \ -fpathconf select getpagesize setlocale \ +fpathconf select euidaccess getpagesize setlocale \ utimes getrlimit setrlimit setpgid getcwd shutdown getaddrinfo \ __fpending strsignal setitimer \ sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \ diff --git a/lib/at-func.c b/lib/at-func.c deleted file mode 100644 index 481eea475a1..00000000000 --- a/lib/at-func.c +++ /dev/null @@ -1,146 +0,0 @@ -/* Define at-style functions like fstatat, unlinkat, fchownat, etc. - Copyright (C) 2006, 2009-2012 Free Software Foundation, Inc. - - This program 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. - - This program 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 this program. If not, see . */ - -/* written by Jim Meyering */ - -#include "dosname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */ - -#ifdef GNULIB_SUPPORT_ONLY_AT_FDCWD -# include -# ifndef ENOTSUP -# define ENOTSUP EINVAL -# endif -#else -# include "openat.h" -# include "openat-priv.h" -# include "save-cwd.h" -#endif - -#ifdef AT_FUNC_USE_F1_COND -# define CALL_FUNC(F) \ - (flag == AT_FUNC_USE_F1_COND \ - ? AT_FUNC_F1 (F AT_FUNC_POST_FILE_ARGS) \ - : AT_FUNC_F2 (F AT_FUNC_POST_FILE_ARGS)) -# define VALIDATE_FLAG(F) \ - if (flag & ~AT_FUNC_USE_F1_COND) \ - { \ - errno = EINVAL; \ - return FUNC_FAIL; \ - } -#else -# define CALL_FUNC(F) (AT_FUNC_F1 (F AT_FUNC_POST_FILE_ARGS)) -# define VALIDATE_FLAG(F) /* empty */ -#endif - -#ifdef AT_FUNC_RESULT -# define FUNC_RESULT AT_FUNC_RESULT -#else -# define FUNC_RESULT int -#endif - -#ifdef AT_FUNC_FAIL -# define FUNC_FAIL AT_FUNC_FAIL -#else -# define FUNC_FAIL -1 -#endif - -/* Call AT_FUNC_F1 to operate on FILE, which is in the directory - open on descriptor FD. If AT_FUNC_USE_F1_COND is defined to a value, - AT_FUNC_POST_FILE_PARAM_DECLS must include a parameter named flag; - call AT_FUNC_F2 if FLAG is 0 or fail if FLAG contains more bits than - AT_FUNC_USE_F1_COND. Return int and fail with -1 unless AT_FUNC_RESULT - or AT_FUNC_FAIL are defined. If possible, do it without changing the - working directory. Otherwise, resort to using save_cwd/fchdir, - then AT_FUNC_F?/restore_cwd. If either the save_cwd or the restore_cwd - fails, then give a diagnostic and exit nonzero. */ -FUNC_RESULT -AT_FUNC_NAME (int fd, char const *file AT_FUNC_POST_FILE_PARAM_DECLS) -{ - VALIDATE_FLAG (flag); - - if (fd == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file)) - return CALL_FUNC (file); - -#ifdef GNULIB_SUPPORT_ONLY_AT_FDCWD - errno = ENOTSUP; - return FUNC_FAIL; -#else - { - /* Be careful to choose names unlikely to conflict with - AT_FUNC_POST_FILE_PARAM_DECLS. */ - struct saved_cwd saved_cwd; - int saved_errno; - FUNC_RESULT err; - - { - char proc_buf[OPENAT_BUFFER_SIZE]; - char *proc_file = openat_proc_name (proc_buf, fd, file); - if (proc_file) - { - FUNC_RESULT proc_result = CALL_FUNC (proc_file); - int proc_errno = errno; - if (proc_file != proc_buf) - free (proc_file); - /* If the syscall succeeds, or if it fails with an unexpected - errno value, then return right away. Otherwise, fall through - and resort to using save_cwd/restore_cwd. */ - if (FUNC_FAIL != proc_result) - return proc_result; - if (! EXPECTED_ERRNO (proc_errno)) - { - errno = proc_errno; - return proc_result; - } - } - } - - if (save_cwd (&saved_cwd) != 0) - openat_save_fail (errno); - if (0 <= fd && fd == saved_cwd.desc) - { - /* If saving the working directory collides with the user's - requested fd, then the user's fd must have been closed to - begin with. */ - free_cwd (&saved_cwd); - errno = EBADF; - return FUNC_FAIL; - } - - if (fchdir (fd) != 0) - { - saved_errno = errno; - free_cwd (&saved_cwd); - errno = saved_errno; - return FUNC_FAIL; - } - - err = CALL_FUNC (file); - saved_errno = (err == FUNC_FAIL ? errno : 0); - - if (restore_cwd (&saved_cwd) != 0) - openat_restore_fail (errno); - - free_cwd (&saved_cwd); - - if (saved_errno) - errno = saved_errno; - return err; - } -#endif -} -#undef CALL_FUNC -#undef FUNC_RESULT -#undef FUNC_FAIL diff --git a/lib/euidaccess.c b/lib/euidaccess.c deleted file mode 100644 index ca2ceca5d22..00000000000 --- a/lib/euidaccess.c +++ /dev/null @@ -1,221 +0,0 @@ -/* euidaccess -- check if effective user id can access file - - Copyright (C) 1990-1991, 1995, 1998, 2000, 2003-2006, 2008-2012 Free - Software Foundation, Inc. - - This file is part of the GNU C Library. - - This program 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. - - This program 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 this program. If not, see . */ - -/* Written by David MacKenzie and Torbjorn Granlund. - Adapted for GNU C library by Roland McGrath. */ - -#ifndef _LIBC -# include -#endif - -#include -#include -#include -#include - -#include "root-uid.h" - -#if HAVE_LIBGEN_H -# include -#endif - -#include -#ifndef __set_errno -# define __set_errno(val) errno = (val) -#endif - -#if defined EACCES && !defined EACCESS -# define EACCESS EACCES -#endif - -#ifndef F_OK -# define F_OK 0 -# define X_OK 1 -# define W_OK 2 -# define R_OK 4 -#endif - - -#ifdef _LIBC - -# define access __access -# define getuid __getuid -# define getgid __getgid -# define geteuid __geteuid -# define getegid __getegid -# define group_member __group_member -# define euidaccess __euidaccess -# undef stat -# define stat stat64 - -#endif - -/* Return 0 if the user has permission of type MODE on FILE; - otherwise, return -1 and set 'errno'. - Like access, except that it uses the effective user and group - id's instead of the real ones, and it does not always check for read-only - file system, text busy, etc. */ - -int -euidaccess (const char *file, int mode) -{ -#if HAVE_FACCESSAT /* glibc, AIX 7, Solaris 11, Cygwin 1.7 */ - return faccessat (AT_FDCWD, file, mode, AT_EACCESS); -#elif defined EFF_ONLY_OK /* IRIX, OSF/1, Interix */ - return access (file, mode | EFF_ONLY_OK); -#elif defined ACC_SELF /* AIX */ - return accessx (file, mode, ACC_SELF); -#elif HAVE_EACCESS /* FreeBSD */ - return eaccess (file, mode); -#else /* Mac OS X, NetBSD, OpenBSD, HP-UX, Solaris, Cygwin, mingw, BeOS */ - - uid_t uid = getuid (); - gid_t gid = getgid (); - uid_t euid = geteuid (); - gid_t egid = getegid (); - struct stat stats; - -# if HAVE_DECL_SETREGID && PREFER_NONREENTRANT_EUIDACCESS - - /* Define PREFER_NONREENTRANT_EUIDACCESS if you prefer euidaccess to - return the correct result even if this would make it - nonreentrant. Define this only if your entire application is - safe even if the uid or gid might temporarily change. If your - application uses signal handlers or threads it is probably not - safe. */ - - if (mode == F_OK) - return stat (file, &stats); - else - { - int result; - int saved_errno; - - if (uid != euid) - setreuid (euid, uid); - if (gid != egid) - setregid (egid, gid); - - result = access (file, mode); - saved_errno = errno; - - /* Restore them. */ - if (uid != euid) - setreuid (uid, euid); - if (gid != egid) - setregid (gid, egid); - - errno = saved_errno; - return result; - } - -# else - - /* The following code assumes the traditional Unix model, and is not - correct on systems that have ACLs or the like. However, it's - better than nothing, and it is reentrant. */ - - unsigned int granted; - if (uid == euid && gid == egid) - /* If we are not set-uid or set-gid, access does the same. */ - return access (file, mode); - - if (stat (file, &stats) != 0) - return -1; - - /* The super-user can read and write any file, and execute any file - that anyone can execute. */ - if (euid == ROOT_UID - && ((mode & X_OK) == 0 - || (stats.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))) - return 0; - - /* Convert the mode to traditional form, clearing any bogus bits. */ - if (R_OK == 4 && W_OK == 2 && X_OK == 1 && F_OK == 0) - mode &= 7; - else - mode = ((mode & R_OK ? 4 : 0) - + (mode & W_OK ? 2 : 0) - + (mode & X_OK ? 1 : 0)); - - if (mode == 0) - return 0; /* The file exists. */ - - /* Convert the file's permission bits to traditional form. */ - if (S_IRUSR == (4 << 6) && S_IWUSR == (2 << 6) && S_IXUSR == (1 << 6) - && S_IRGRP == (4 << 3) && S_IWGRP == (2 << 3) && S_IXGRP == (1 << 3) - && S_IROTH == (4 << 0) && S_IWOTH == (2 << 0) && S_IXOTH == (1 << 0)) - granted = stats.st_mode; - else - granted = ((stats.st_mode & S_IRUSR ? 4 << 6 : 0) - + (stats.st_mode & S_IWUSR ? 2 << 6 : 0) - + (stats.st_mode & S_IXUSR ? 1 << 6 : 0) - + (stats.st_mode & S_IRGRP ? 4 << 3 : 0) - + (stats.st_mode & S_IWGRP ? 2 << 3 : 0) - + (stats.st_mode & S_IXGRP ? 1 << 3 : 0) - + (stats.st_mode & S_IROTH ? 4 << 0 : 0) - + (stats.st_mode & S_IWOTH ? 2 << 0 : 0) - + (stats.st_mode & S_IXOTH ? 1 << 0 : 0)); - - if (euid == stats.st_uid) - granted >>= 6; - else if (egid == stats.st_gid || group_member (stats.st_gid)) - granted >>= 3; - - if ((mode & ~granted) == 0) - return 0; - __set_errno (EACCESS); - return -1; - -# endif -#endif -} -#undef euidaccess -#ifdef weak_alias -weak_alias (__euidaccess, euidaccess) -#endif - -#ifdef TEST -# include -# include -# include - -char *program_name; - -int -main (int argc, char **argv) -{ - char *file; - int mode; - int err; - - program_name = argv[0]; - if (argc < 3) - abort (); - file = argv[1]; - mode = atoi (argv[2]); - - err = euidaccess (file, mode); - printf ("%d\n", err); - if (err != 0) - error (0, errno, "%s", file); - exit (0); -} -#endif diff --git a/lib/faccessat.c b/lib/faccessat.c deleted file mode 100644 index d11a3efaad6..00000000000 --- a/lib/faccessat.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Check the access rights of a file relative to an open directory. - Copyright (C) 2009-2012 Free Software Foundation, Inc. - - This program 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. - - This program 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 this program. If not, see . */ - -/* written by Eric Blake */ - -#include - -#include -#include - -#ifndef HAVE_ACCESS -/* Mingw lacks access, but it also lacks real vs. effective ids, so - the gnulib euidaccess module is good enough. */ -# undef access -# define access euidaccess -#endif - -/* Invoke access or euidaccess on file, FILE, using mode MODE, in the directory - open on descriptor FD. If possible, do it without changing the - working directory. Otherwise, resort to using save_cwd/fchdir, then - (access|euidaccess)/restore_cwd. If either the save_cwd or the - restore_cwd fails, then give a diagnostic and exit nonzero. - Note that this implementation only supports AT_EACCESS, although some - native versions also support AT_SYMLINK_NOFOLLOW. */ - -#define AT_FUNC_NAME faccessat -#define AT_FUNC_F1 euidaccess -#define AT_FUNC_F2 access -#define AT_FUNC_USE_F1_COND AT_EACCESS -#define AT_FUNC_POST_FILE_PARAM_DECLS , int mode, int flag -#define AT_FUNC_POST_FILE_ARGS , mode -#include "at-func.c" diff --git a/lib/fcntl.in.h b/lib/fcntl.in.h deleted file mode 100644 index 5fdac2313d0..00000000000 --- a/lib/fcntl.in.h +++ /dev/null @@ -1,347 +0,0 @@ -/* Like , but with non-working flags defined to 0. - - Copyright (C) 2006-2012 Free Software Foundation, Inc. - - This program 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. - - This program 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 this program. If not, see . */ - -/* written by Paul Eggert */ - -#if __GNUC__ >= 3 -@PRAGMA_SYSTEM_HEADER@ -#endif -@PRAGMA_COLUMNS@ - -#if defined __need_system_fcntl_h -/* Special invocation convention. */ - -/* Needed before . - May also define off_t to a 64-bit type on native Windows. */ -#include -/* On some systems other than glibc, is a prerequisite of - . On glibc systems, we would like to avoid namespace pollution. - But on glibc systems, includes inside an - extern "C" { ... } block, which leads to errors in C++ mode with the - overridden from gnulib. These errors are known to be gone - with g++ version >= 4.3. */ -#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) -# include -#endif -#@INCLUDE_NEXT@ @NEXT_FCNTL_H@ - -#else -/* Normal invocation convention. */ - -#ifndef _@GUARD_PREFIX@_FCNTL_H - -/* Needed before . - May also define off_t to a 64-bit type on native Windows. */ -#include -/* On some systems other than glibc, is a prerequisite of - . On glibc systems, we would like to avoid namespace pollution. - But on glibc systems, includes inside an - extern "C" { ... } block, which leads to errors in C++ mode with the - overridden from gnulib. These errors are known to be gone - with g++ version >= 4.3. */ -#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) -# include -#endif -/* The include_next requires a split double-inclusion guard. */ -#@INCLUDE_NEXT@ @NEXT_FCNTL_H@ - -#ifndef _@GUARD_PREFIX@_FCNTL_H -#define _@GUARD_PREFIX@_FCNTL_H - -#ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ -# include -#endif - -/* Native Windows platforms declare open(), creat() in . */ -#if (@GNULIB_OPEN@ || defined GNULIB_POSIXCHECK) \ - && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) -# include -#endif - - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ - -/* The definition of _GL_WARN_ON_USE is copied here. */ - - -/* Declare overridden functions. */ - -#if @GNULIB_FCNTL@ -# if @REPLACE_FCNTL@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fcntl -# define fcntl rpl_fcntl -# endif -_GL_FUNCDECL_RPL (fcntl, int, (int fd, int action, ...)); -_GL_CXXALIAS_RPL (fcntl, int, (int fd, int action, ...)); -# else -# if !@HAVE_FCNTL@ -_GL_FUNCDECL_SYS (fcntl, int, (int fd, int action, ...)); -# endif -_GL_CXXALIAS_SYS (fcntl, int, (int fd, int action, ...)); -# endif -_GL_CXXALIASWARN (fcntl); -#elif defined GNULIB_POSIXCHECK -# undef fcntl -# if HAVE_RAW_DECL_FCNTL -_GL_WARN_ON_USE (fcntl, "fcntl is not always POSIX compliant - " - "use gnulib module fcntl for portability"); -# endif -#endif - -#if @GNULIB_OPEN@ -# if @REPLACE_OPEN@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef open -# define open rpl_open -# endif -_GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); -# else -_GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); -# endif -/* On HP-UX 11, in C++ mode, open() is defined as an inline function with a - default argument. _GL_CXXALIASWARN does not work in this case. */ -# if !defined __hpux -_GL_CXXALIASWARN (open); -# endif -#elif defined GNULIB_POSIXCHECK -# undef open -/* Assume open is always declared. */ -_GL_WARN_ON_USE (open, "open is not always POSIX compliant - " - "use gnulib module open for portability"); -#endif - -#if @GNULIB_OPENAT@ -# if @REPLACE_OPENAT@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef openat -# define openat rpl_openat -# endif -_GL_FUNCDECL_RPL (openat, int, - (int fd, char const *file, int flags, /* mode_t mode */ ...) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (openat, int, - (int fd, char const *file, int flags, /* mode_t mode */ ...)); -# else -# if !@HAVE_OPENAT@ -_GL_FUNCDECL_SYS (openat, int, - (int fd, char const *file, int flags, /* mode_t mode */ ...) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (openat, int, - (int fd, char const *file, int flags, /* mode_t mode */ ...)); -# endif -_GL_CXXALIASWARN (openat); -#elif defined GNULIB_POSIXCHECK -# undef openat -# if HAVE_RAW_DECL_OPENAT -_GL_WARN_ON_USE (openat, "openat is not portable - " - "use gnulib module openat for portability"); -# endif -#endif - - -/* Fix up the FD_* macros, only known to be missing on mingw. */ - -#ifndef FD_CLOEXEC -# define FD_CLOEXEC 1 -#endif - -/* Fix up the supported F_* macros. Intentionally leave other F_* - macros undefined. Only known to be missing on mingw. */ - -#ifndef F_DUPFD_CLOEXEC -# define F_DUPFD_CLOEXEC 0x40000000 -/* Witness variable: 1 if gnulib defined F_DUPFD_CLOEXEC, 0 otherwise. */ -# define GNULIB_defined_F_DUPFD_CLOEXEC 1 -#else -# define GNULIB_defined_F_DUPFD_CLOEXEC 0 -#endif - -#ifndef F_DUPFD -# define F_DUPFD 1 -#endif - -#ifndef F_GETFD -# define F_GETFD 2 -#endif - -/* Fix up the O_* macros. */ - -#if !defined O_DIRECT && defined O_DIRECTIO -/* Tru64 spells it 'O_DIRECTIO'. */ -# define O_DIRECT O_DIRECTIO -#endif - -#if !defined O_CLOEXEC && defined O_NOINHERIT -/* Mingw spells it 'O_NOINHERIT'. */ -# define O_CLOEXEC O_NOINHERIT -#endif - -#ifndef O_CLOEXEC -# define O_CLOEXEC 0 -#endif - -#ifndef O_DIRECT -# define O_DIRECT 0 -#endif - -#ifndef O_DIRECTORY -# define O_DIRECTORY 0 -#endif - -#ifndef O_DSYNC -# define O_DSYNC 0 -#endif - -#ifndef O_EXEC -# define O_EXEC O_RDONLY /* This is often close enough in older systems. */ -#endif - -#ifndef O_IGNORE_CTTY -# define O_IGNORE_CTTY 0 -#endif - -#ifndef O_NDELAY -# define O_NDELAY 0 -#endif - -#ifndef O_NOATIME -# define O_NOATIME 0 -#endif - -#ifndef O_NONBLOCK -# define O_NONBLOCK O_NDELAY -#endif - -/* If the gnulib module 'nonblocking' is in use, guarantee a working non-zero - value of O_NONBLOCK. Otherwise, O_NONBLOCK is defined (above) to O_NDELAY - or to 0 as fallback. */ -#if @GNULIB_NONBLOCKING@ -# if O_NONBLOCK -# define GNULIB_defined_O_NONBLOCK 0 -# else -# define GNULIB_defined_O_NONBLOCK 1 -# undef O_NONBLOCK -# define O_NONBLOCK 0x40000000 -# endif -#endif - -#ifndef O_NOCTTY -# define O_NOCTTY 0 -#endif - -#ifndef O_NOFOLLOW -# define O_NOFOLLOW 0 -#endif - -#ifndef O_NOLINK -# define O_NOLINK 0 -#endif - -#ifndef O_NOLINKS -# define O_NOLINKS 0 -#endif - -#ifndef O_NOTRANS -# define O_NOTRANS 0 -#endif - -#ifndef O_RSYNC -# define O_RSYNC 0 -#endif - -#ifndef O_SEARCH -# define O_SEARCH O_RDONLY /* This is often close enough in older systems. */ -#endif - -#ifndef O_SYNC -# define O_SYNC 0 -#endif - -#ifndef O_TTY_INIT -# define O_TTY_INIT 0 -#endif - -#if O_ACCMODE != (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) -# undef O_ACCMODE -# define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) -#endif - -/* For systems that distinguish between text and binary I/O. - O_BINARY is usually declared in fcntl.h */ -#if !defined O_BINARY && defined _O_BINARY - /* For MSC-compatible compilers. */ -# define O_BINARY _O_BINARY -# define O_TEXT _O_TEXT -#endif - -#if defined __BEOS__ || defined __HAIKU__ - /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect. */ -# undef O_BINARY -# undef O_TEXT -#endif - -#ifndef O_BINARY -# define O_BINARY 0 -# define O_TEXT 0 -#endif - -/* Fix up the AT_* macros. */ - -/* Work around a bug in Solaris 9 and 10: AT_FDCWD is positive. Its - value exceeds INT_MAX, so its use as an int doesn't conform to the - C standard, and GCC and Sun C complain in some cases. If the bug - is present, undef AT_FDCWD here, so it can be redefined below. */ -#if 0 < AT_FDCWD && AT_FDCWD == 0xffd19553 -# undef AT_FDCWD -#endif - -/* Use the same bit pattern as Solaris 9, but with the proper - signedness. The bit pattern is important, in case this actually is - Solaris with the above workaround. */ -#ifndef AT_FDCWD -# define AT_FDCWD (-3041965) -#endif - -/* Use the same values as Solaris 9. This shouldn't matter, but - there's no real reason to differ. */ -#ifndef AT_SYMLINK_NOFOLLOW -# define AT_SYMLINK_NOFOLLOW 4096 -#endif - -#ifndef AT_REMOVEDIR -# define AT_REMOVEDIR 1 -#endif - -/* Solaris 9 lacks these two, so just pick unique values. */ -#ifndef AT_SYMLINK_FOLLOW -# define AT_SYMLINK_FOLLOW 2 -#endif - -#ifndef AT_EACCESS -# define AT_EACCESS 4 -#endif - - -#endif /* _@GUARD_PREFIX@_FCNTL_H */ -#endif /* _@GUARD_PREFIX@_FCNTL_H */ -#endif diff --git a/lib/getgroups.c b/lib/getgroups.c deleted file mode 100644 index f9d36236afe..00000000000 --- a/lib/getgroups.c +++ /dev/null @@ -1,116 +0,0 @@ -/* provide consistent interface to getgroups for systems that don't allow N==0 - - Copyright (C) 1996, 1999, 2003, 2006-2012 Free Software Foundation, Inc. - - This program 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. - - This program 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 this program. If not, see . */ - -/* written by Jim Meyering */ - -#include - -#include - -#include -#include -#include - -#if !HAVE_GETGROUPS - -/* Provide a stub that fails with ENOSYS, since there is no group - information available on mingw. */ -int -getgroups (int n _GL_UNUSED, GETGROUPS_T *groups _GL_UNUSED) -{ - errno = ENOSYS; - return -1; -} - -#else /* HAVE_GETGROUPS */ - -# undef getgroups -# ifndef GETGROUPS_ZERO_BUG -# define GETGROUPS_ZERO_BUG 0 -# endif - -/* On at least Ultrix 4.3 and NextStep 3.2, getgroups (0, NULL) always - fails. On other systems, it returns the number of supplemental - groups for the process. This function handles that special case - and lets the system-provided function handle all others. However, - it can fail with ENOMEM if memory is tight. It is unspecified - whether the effective group id is included in the list. */ - -int -rpl_getgroups (int n, gid_t *group) -{ - int n_groups; - GETGROUPS_T *gbuf; - int saved_errno; - - if (n < 0) - { - errno = EINVAL; - return -1; - } - - if (n != 0 || !GETGROUPS_ZERO_BUG) - { - int result; - if (sizeof *group == sizeof *gbuf) - return getgroups (n, (GETGROUPS_T *) group); - - if (SIZE_MAX / sizeof *gbuf <= n) - { - errno = ENOMEM; - return -1; - } - gbuf = malloc (n * sizeof *gbuf); - if (!gbuf) - return -1; - result = getgroups (n, gbuf); - if (0 <= result) - { - n = result; - while (n--) - group[n] = gbuf[n]; - } - saved_errno = errno; - free (gbuf); - errno == saved_errno; - return result; - } - - n = 20; - while (1) - { - /* No need to worry about address arithmetic overflow here, - since the ancient systems that we're running on have low - limits on the number of secondary groups. */ - gbuf = malloc (n * sizeof *gbuf); - if (!gbuf) - return -1; - n_groups = getgroups (n, gbuf); - if (n_groups == -1 ? errno != EINVAL : n_groups < n) - break; - free (gbuf); - n *= 2; - } - - saved_errno = errno; - free (gbuf); - errno = saved_errno; - - return n_groups; -} - -#endif /* HAVE_GETGROUPS */ diff --git a/lib/gnulib.mk b/lib/gnulib.mk index d2562a4dae1..23749331a83 100644 --- a/lib/gnulib.mk +++ b/lib/gnulib.mk @@ -21,7 +21,7 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=at-internal --avoid=errno --avoid=fchdir --avoid=fcntl --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=openat-die --avoid=openat-h --avoid=raise --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-ctype c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub utimens warnings +# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat --avoid=msvc-inval --avoid=msvc-nothrow --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-ctype c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub utimens warnings MOSTLYCLEANFILES += core *.stackdump @@ -150,17 +150,6 @@ EXTRA_libgnu_a_SOURCES += dup2.c ## end gnulib module dup2 -## begin gnulib module euidaccess - -if gl_GNULIB_ENABLED_euidaccess - -endif -EXTRA_DIST += euidaccess.c - -EXTRA_libgnu_a_SOURCES += euidaccess.c - -## end gnulib module euidaccess - ## begin gnulib module execinfo BUILT_SOURCES += $(EXECINFO_H) @@ -186,50 +175,6 @@ EXTRA_libgnu_a_SOURCES += execinfo.c ## end gnulib module execinfo -## begin gnulib module faccessat - - -EXTRA_DIST += at-func.c faccessat.c - -EXTRA_libgnu_a_SOURCES += at-func.c faccessat.c - -## end gnulib module faccessat - -## begin gnulib module fcntl-h - -BUILT_SOURCES += fcntl.h - -# We need the following in order to create when the system -# doesn't have one that works with the given compiler. -fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) - $(AM_V_GEN)rm -f $@-t $@ && \ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e 's|@''GUARD_PREFIX''@|GL|g' \ - -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ - -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ - -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \ - -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/g' \ - -e 's/@''GNULIB_OPEN''@/$(GNULIB_OPEN)/g' \ - -e 's/@''GNULIB_OPENAT''@/$(GNULIB_OPENAT)/g' \ - -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ - -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ - -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ - -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ - -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \ - -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ - -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ - -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ - < $(srcdir)/fcntl.in.h; \ - } > $@-t && \ - mv $@-t $@ -MOSTLYCLEANFILES += fcntl.h fcntl.h-t - -EXTRA_DIST += fcntl.in.h - -## end gnulib module fcntl-h - ## begin gnulib module filemode libgnu_a_SOURCES += filemode.c @@ -238,17 +183,6 @@ EXTRA_DIST += filemode.h ## end gnulib module filemode -## begin gnulib module getgroups - -if gl_GNULIB_ENABLED_getgroups - -endif -EXTRA_DIST += getgroups.c - -EXTRA_libgnu_a_SOURCES += getgroups.c - -## end gnulib module getgroups - ## begin gnulib module getloadavg @@ -308,17 +242,6 @@ EXTRA_libgnu_a_SOURCES += gettimeofday.c ## end gnulib module gettimeofday -## begin gnulib module group-member - -if gl_GNULIB_ENABLED_a9786850e999ae65a836a6041e8e5ed1 - -endif -EXTRA_DIST += group-member.c - -EXTRA_libgnu_a_SOURCES += group-member.c - -## end gnulib module group-member - ## begin gnulib module ignore-value @@ -431,15 +354,6 @@ EXTRA_libgnu_a_SOURCES += readlink.c ## end gnulib module readlink -## begin gnulib module root-uid - -if gl_GNULIB_ENABLED_6099e9737f757db36c47fa9d9f02e88c - -endif -EXTRA_DIST += root-uid.h - -## end gnulib module root-uid - ## begin gnulib module signal-h BUILT_SOURCES += signal.h @@ -1398,15 +1312,6 @@ EXTRA_DIST += verify.h ## end gnulib module verify -## begin gnulib module xalloc-oversized - -if gl_GNULIB_ENABLED_682e609604ccaac6be382e4ee3a4eaec - -endif -EXTRA_DIST += xalloc-oversized.h - -## end gnulib module xalloc-oversized - mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ diff --git a/lib/group-member.c b/lib/group-member.c deleted file mode 100644 index 5fcc7e01d0c..00000000000 --- a/lib/group-member.c +++ /dev/null @@ -1,119 +0,0 @@ -/* group-member.c -- determine whether group id is in calling user's group list - - Copyright (C) 1994, 1997-1998, 2003, 2005-2006, 2009-2012 Free Software - Foundation, Inc. - - This program 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. - - This program 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 this program. If not, see . */ - -#include - -/* Specification. */ -#include - -#include -#include -#include - -#include "xalloc-oversized.h" - -/* Most processes have no more than this many groups, and for these - processes we can avoid using malloc. */ -enum { GROUPBUF_SIZE = 100 }; - -struct group_info - { - gid_t *group; - gid_t groupbuf[GROUPBUF_SIZE]; - }; - -static void -free_group_info (struct group_info const *g) -{ - if (g->group != g->groupbuf) - free (g->group); -} - -static int -get_group_info (struct group_info *gi) -{ - int n_groups = getgroups (GROUPBUF_SIZE, gi->groupbuf); - gi->group = gi->groupbuf; - - if (n_groups < 0) - { - int n_group_slots = getgroups (0, NULL); - if (0 <= n_group_slots - && ! xalloc_oversized (n_group_slots, sizeof *gi->group)) - { - gi->group = malloc (n_group_slots * sizeof *gi->group); - if (gi->group) - n_groups = getgroups (n_group_slots, gi->group); - } - } - - /* In case of error, the user loses. */ - return n_groups; -} - -/* Return non-zero if GID is one that we have in our groups list. - Note that the groups list is not guaranteed to contain the current - or effective group ID, so they should generally be checked - separately. */ - -int -group_member (gid_t gid) -{ - int i; - int found; - struct group_info gi; - int n_groups = get_group_info (&gi); - - /* Search through the list looking for GID. */ - found = 0; - for (i = 0; i < n_groups; i++) - { - if (gid == gi.group[i]) - { - found = 1; - break; - } - } - - free_group_info (&gi); - - return found; -} - -#ifdef TEST - -char *program_name; - -int -main (int argc, char **argv) -{ - int i; - - program_name = argv[0]; - - for (i = 1; i < argc; i++) - { - gid_t gid; - - gid = atoi (argv[i]); - printf ("%d: %s\n", gid, group_member (gid) ? "yes" : "no"); - } - exit (0); -} - -#endif /* TEST */ diff --git a/lib/root-uid.h b/lib/root-uid.h deleted file mode 100644 index 2379773c291..00000000000 --- a/lib/root-uid.h +++ /dev/null @@ -1,30 +0,0 @@ -/* The user ID that always has appropriate privileges in the POSIX sense. - - Copyright 2012 Free Software Foundation, Inc. - - This program 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. - - This program 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 this program. If not, see . - - Written by Paul Eggert. */ - -#ifndef ROOT_UID_H_ -#define ROOT_UID_H_ - -/* The user ID that always has appropriate privileges in the POSIX sense. */ -#ifdef __TANDEM -# define ROOT_UID 65535 -#else -# define ROOT_UID 0 -#endif - -#endif diff --git a/lib/xalloc-oversized.h b/lib/xalloc-oversized.h deleted file mode 100644 index ad777d8dd79..00000000000 --- a/lib/xalloc-oversized.h +++ /dev/null @@ -1,38 +0,0 @@ -/* xalloc-oversized.h -- memory allocation size checking - - Copyright (C) 1990-2000, 2003-2004, 2006-2012 Free Software Foundation, Inc. - - This program 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. - - This program 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 this program. If not, see . */ - -#ifndef XALLOC_OVERSIZED_H_ -# define XALLOC_OVERSIZED_H_ - -# include - -/* Return 1 if an array of N objects, each of size S, cannot exist due - to size arithmetic overflow. S must be positive and N must be - nonnegative. This is a macro, not a function, so that it - works correctly even when SIZE_MAX < N. - - By gnulib convention, SIZE_MAX represents overflow in size - calculations, so the conservative dividend to use here is - SIZE_MAX - 1, since SIZE_MAX might represent an overflowed value. - However, malloc (SIZE_MAX) fails on all known hosts where - sizeof (ptrdiff_t) <= sizeof (size_t), so do not bother to test for - exactly-SIZE_MAX allocations on such hosts; this avoids a test and - branch when S is known to be 1. */ -# define xalloc_oversized(n, s) \ - ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n)) - -#endif /* !XALLOC_OVERSIZED_H_ */ diff --git a/m4/euidaccess.m4 b/m4/euidaccess.m4 deleted file mode 100644 index 2de95b88ba8..00000000000 --- a/m4/euidaccess.m4 +++ /dev/null @@ -1,52 +0,0 @@ -# euidaccess.m4 serial 15 -dnl Copyright (C) 2002-2012 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -AC_DEFUN([gl_FUNC_NONREENTRANT_EUIDACCESS], -[ - AC_REQUIRE([gl_FUNC_EUIDACCESS]) - AC_CHECK_DECLS([setregid]) - AC_DEFINE([PREFER_NONREENTRANT_EUIDACCESS], [1], - [Define this if you prefer euidaccess to return the correct result - even if this would make it nonreentrant. Define this only if your - entire application is safe even if the uid or gid might temporarily - change. If your application uses signal handlers or threads it - is probably not safe.]) -]) - -AC_DEFUN([gl_FUNC_EUIDACCESS], -[ - AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) - - dnl Persuade glibc to declare euidaccess(). - AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) - - AC_CHECK_FUNCS([euidaccess]) - if test $ac_cv_func_euidaccess = no; then - HAVE_EUIDACCESS=0 - fi -]) - -# Prerequisites of lib/euidaccess.c. -AC_DEFUN([gl_PREREQ_EUIDACCESS], [ - dnl Prefer POSIX faccessat over non-standard euidaccess. - AC_CHECK_FUNCS_ONCE([faccessat]) - dnl Try various other non-standard fallbacks. - AC_CHECK_HEADERS([libgen.h]) - AC_FUNC_GETGROUPS - - # Solaris 9 and 10 need -lgen to get the eaccess function. - # Save and restore LIBS so -lgen isn't added to it. Otherwise, *all* - # programs in the package would end up linked with that potentially-shared - # library, inducing unnecessary run-time overhead. - LIB_EACCESS= - AC_SUBST([LIB_EACCESS]) - gl_saved_libs=$LIBS - AC_SEARCH_LIBS([eaccess], [gen], - [test "$ac_cv_search_eaccess" = "none required" || - LIB_EACCESS=$ac_cv_search_eaccess]) - AC_CHECK_FUNCS([eaccess]) - LIBS=$gl_saved_libs -]) diff --git a/m4/faccessat.m4 b/m4/faccessat.m4 deleted file mode 100644 index 82f3b1f8dde..00000000000 --- a/m4/faccessat.m4 +++ /dev/null @@ -1,28 +0,0 @@ -# serial 6 -# See if we need to provide faccessat replacement. - -dnl Copyright (C) 2009-2012 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -# Written by Eric Blake. - -AC_DEFUN([gl_FUNC_FACCESSAT], -[ - AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) - - dnl Persuade glibc to declare faccessat(). - AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) - - AC_CHECK_FUNCS_ONCE([faccessat]) - if test $ac_cv_func_faccessat = no; then - HAVE_FACCESSAT=0 - fi -]) - -# Prerequisites of lib/faccessat.m4. -AC_DEFUN([gl_PREREQ_FACCESSAT], -[ - AC_CHECK_FUNCS([access]) -]) diff --git a/m4/fcntl_h.m4 b/m4/fcntl_h.m4 deleted file mode 100644 index cac28aeb283..00000000000 --- a/m4/fcntl_h.m4 +++ /dev/null @@ -1,50 +0,0 @@ -# serial 15 -# Configure fcntl.h. -dnl Copyright (C) 2006-2007, 2009-2012 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl Written by Paul Eggert. - -AC_DEFUN([gl_FCNTL_H], -[ - AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) - AC_REQUIRE([gl_FCNTL_O_FLAGS]) - gl_NEXT_HEADERS([fcntl.h]) - - dnl Ensure the type pid_t gets defined. - AC_REQUIRE([AC_TYPE_PID_T]) - - dnl Ensure the type mode_t gets defined. - AC_REQUIRE([AC_TYPE_MODE_T]) - - dnl Check for declarations of anything we want to poison if the - dnl corresponding gnulib module is not in use, if it is not common - dnl enough to be declared everywhere. - gl_WARN_ON_USE_PREPARE([[#include - ]], [fcntl openat]) -]) - -AC_DEFUN([gl_FCNTL_MODULE_INDICATOR], -[ - dnl Use AC_REQUIRE here, so that the default settings are expanded once only. - AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) - gl_MODULE_INDICATOR_SET_VARIABLE([$1]) - dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR_FOR_TESTS([$1]) -]) - -AC_DEFUN([gl_FCNTL_H_DEFAULTS], -[ - GNULIB_FCNTL=0; AC_SUBST([GNULIB_FCNTL]) - GNULIB_NONBLOCKING=0; AC_SUBST([GNULIB_NONBLOCKING]) - GNULIB_OPEN=0; AC_SUBST([GNULIB_OPEN]) - GNULIB_OPENAT=0; AC_SUBST([GNULIB_OPENAT]) - dnl Assume proper GNU behavior unless another module says otherwise. - HAVE_FCNTL=1; AC_SUBST([HAVE_FCNTL]) - HAVE_OPENAT=1; AC_SUBST([HAVE_OPENAT]) - REPLACE_FCNTL=0; AC_SUBST([REPLACE_FCNTL]) - REPLACE_OPEN=0; AC_SUBST([REPLACE_OPEN]) - REPLACE_OPENAT=0; AC_SUBST([REPLACE_OPENAT]) -]) diff --git a/m4/getgroups.m4 b/m4/getgroups.m4 deleted file mode 100644 index 17473af486b..00000000000 --- a/m4/getgroups.m4 +++ /dev/null @@ -1,107 +0,0 @@ -# serial 18 - -dnl From Jim Meyering. -dnl A wrapper around AC_FUNC_GETGROUPS. - -# Copyright (C) 1996-1997, 1999-2004, 2008-2012 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -m4_version_prereq([2.70], [] ,[ - -# This is taken from the following Autoconf patch: -# http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=7fbb553727ed7e0e689a17594b58559ecf3ea6e9 -AC_DEFUN([AC_FUNC_GETGROUPS], -[ - AC_REQUIRE([AC_TYPE_GETGROUPS])dnl - AC_REQUIRE([AC_TYPE_SIZE_T])dnl - AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles - AC_CHECK_FUNC([getgroups]) - - # If we don't yet have getgroups, see if it's in -lbsd. - # This is reported to be necessary on an ITOS 3000WS running SEIUX 3.1. - ac_save_LIBS=$LIBS - if test $ac_cv_func_getgroups = no; then - AC_CHECK_LIB(bsd, getgroups, [GETGROUPS_LIB=-lbsd]) - fi - - # Run the program to test the functionality of the system-supplied - # getgroups function only if there is such a function. - if test $ac_cv_func_getgroups = yes; then - AC_CACHE_CHECK([for working getgroups], [ac_cv_func_getgroups_works], - [AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [AC_INCLUDES_DEFAULT], - [[/* On Ultrix 4.3, getgroups (0, 0) always fails. */ - return getgroups (0, 0) == -1;]]) - ], - [ac_cv_func_getgroups_works=yes], - [ac_cv_func_getgroups_works=no], - [case "$host_os" in # (( - # Guess yes on glibc systems. - *-gnu*) ac_cv_func_getgroups_works="guessing yes" ;; - # If we don't know, assume the worst. - *) ac_cv_func_getgroups_works="guessing no" ;; - esac - ]) - ]) - else - ac_cv_func_getgroups_works=no - fi - case "$ac_cv_func_getgroups_works" in - *yes) - AC_DEFINE([HAVE_GETGROUPS], [1], - [Define to 1 if your system has a working `getgroups' function.]) - ;; - esac - LIBS=$ac_save_LIBS -])# AC_FUNC_GETGROUPS - -]) - -AC_DEFUN([gl_FUNC_GETGROUPS], -[ - AC_REQUIRE([AC_TYPE_GETGROUPS]) - AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - - AC_FUNC_GETGROUPS - if test $ac_cv_func_getgroups != yes; then - HAVE_GETGROUPS=0 - else - if test "$ac_cv_type_getgroups" != gid_t \ - || { case "$ac_cv_func_getgroups_works" in - *yes) false;; - *) true;; - esac - }; then - REPLACE_GETGROUPS=1 - AC_DEFINE([GETGROUPS_ZERO_BUG], [1], [Define this to 1 if - getgroups(0,NULL) does not return the number of groups.]) - else - dnl Detect FreeBSD bug; POSIX requires getgroups(-1,ptr) to fail. - AC_CACHE_CHECK([whether getgroups handles negative values], - [gl_cv_func_getgroups_works], - [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], - [[int size = getgroups (0, 0); - gid_t *list = malloc (size * sizeof *list); - return getgroups (-1, list) != -1;]])], - [gl_cv_func_getgroups_works=yes], - [gl_cv_func_getgroups_works=no], - [case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_getgroups_works="guessing yes" ;; - # If we don't know, assume the worst. - *) gl_cv_func_getgroups_works="guessing no" ;; - esac - ])]) - case "$gl_cv_func_getgroups_works" in - *yes) ;; - *) REPLACE_GETGROUPS=1 ;; - esac - fi - fi - test -n "$GETGROUPS_LIB" && LIBS="$GETGROUPS_LIB $LIBS" -]) diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4 index 9b2dcee1cfa..de2355d87c3 100644 --- a/m4/gnulib-comp.m4 +++ b/m4/gnulib-comp.m4 @@ -53,22 +53,17 @@ AC_DEFUN([gl_EARLY], # Code from module dtotimespec: # Code from module dup2: # Code from module environ: - # Code from module euidaccess: # Code from module execinfo: # Code from module extensions: AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) # Code from module extern-inline: - # Code from module faccessat: - # Code from module fcntl-h: # Code from module filemode: - # Code from module getgroups: # Code from module getloadavg: # Code from module getopt-gnu: # Code from module getopt-posix: # Code from module gettext-h: # Code from module gettime: # Code from module gettimeofday: - # Code from module group-member: # Code from module ignore-value: # Code from module include_next: # Code from module intprops: @@ -84,7 +79,6 @@ AC_DEFUN([gl_EARLY], # Code from module pselect: # Code from module pthread_sigmask: # Code from module readlink: - # Code from module root-uid: # Code from module signal-h: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: @@ -126,7 +120,6 @@ AC_DEFUN([gl_EARLY], # Code from module utimens: # Code from module verify: # Code from module warnings: - # Code from module xalloc-oversized: ]) # This macro should be invoked from ./configure.ac, in the section @@ -163,14 +156,6 @@ AC_DEFUN([gl_INIT], gl_UNISTD_MODULE_INDICATOR([environ]) gl_EXECINFO_H AC_REQUIRE([gl_EXTERN_INLINE]) - gl_FUNC_FACCESSAT - if test $HAVE_FACCESSAT = 0; then - AC_LIBOBJ([faccessat]) - gl_PREREQ_FACCESSAT - fi - gl_MODULE_INDICATOR([faccessat]) - gl_UNISTD_MODULE_INDICATOR([faccessat]) - gl_FCNTL_H gl_FILEMODE gl_GETLOADAVG if test $HAVE_GETLOADAVG = 0; then @@ -284,53 +269,18 @@ AC_DEFUN([gl_INIT], gl_UNISTD_H gl_UTIMENS gl_gnulib_enabled_dosname=false - gl_gnulib_enabled_euidaccess=false - gl_gnulib_enabled_getgroups=false gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36=false - gl_gnulib_enabled_a9786850e999ae65a836a6041e8e5ed1=false gl_gnulib_enabled_pathmax=false - gl_gnulib_enabled_6099e9737f757db36c47fa9d9f02e88c=false gl_gnulib_enabled_stat=false gl_gnulib_enabled_strtoll=false gl_gnulib_enabled_strtoull=false gl_gnulib_enabled_verify=false - gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec=false func_gl_gnulib_m4code_dosname () { if ! $gl_gnulib_enabled_dosname; then gl_gnulib_enabled_dosname=true fi } - func_gl_gnulib_m4code_euidaccess () - { - if ! $gl_gnulib_enabled_euidaccess; then - gl_FUNC_EUIDACCESS - if test $HAVE_EUIDACCESS = 0; then - AC_LIBOBJ([euidaccess]) - gl_PREREQ_EUIDACCESS - fi - gl_UNISTD_MODULE_INDICATOR([euidaccess]) - gl_gnulib_enabled_euidaccess=true - if test $HAVE_EUIDACCESS = 0; then - func_gl_gnulib_m4code_a9786850e999ae65a836a6041e8e5ed1 - fi - func_gl_gnulib_m4code_6099e9737f757db36c47fa9d9f02e88c - if test $HAVE_EUIDACCESS = 0; then - func_gl_gnulib_m4code_stat - fi - fi - } - func_gl_gnulib_m4code_getgroups () - { - if ! $gl_gnulib_enabled_getgroups; then - gl_FUNC_GETGROUPS - if test $HAVE_GETGROUPS = 0 || test $REPLACE_GETGROUPS = 1; then - AC_LIBOBJ([getgroups]) - fi - gl_UNISTD_MODULE_INDICATOR([getgroups]) - gl_gnulib_enabled_getgroups=true - fi - } func_gl_gnulib_m4code_be453cec5eecf5731a274f2de7f2db36 () { if ! $gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36; then @@ -339,24 +289,6 @@ AC_DEFUN([gl_INIT], gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36=true fi } - func_gl_gnulib_m4code_a9786850e999ae65a836a6041e8e5ed1 () - { - if ! $gl_gnulib_enabled_a9786850e999ae65a836a6041e8e5ed1; then - gl_FUNC_GROUP_MEMBER - if test $HAVE_GROUP_MEMBER = 0; then - AC_LIBOBJ([group-member]) - gl_PREREQ_GROUP_MEMBER - fi - gl_UNISTD_MODULE_INDICATOR([group-member]) - gl_gnulib_enabled_a9786850e999ae65a836a6041e8e5ed1=true - if test $HAVE_GROUP_MEMBER = 0; then - func_gl_gnulib_m4code_getgroups - fi - if test $HAVE_GROUP_MEMBER = 0; then - func_gl_gnulib_m4code_682e609604ccaac6be382e4ee3a4eaec - fi - fi - } func_gl_gnulib_m4code_pathmax () { if ! $gl_gnulib_enabled_pathmax; then @@ -364,12 +296,6 @@ AC_DEFUN([gl_INIT], gl_gnulib_enabled_pathmax=true fi } - func_gl_gnulib_m4code_6099e9737f757db36c47fa9d9f02e88c () - { - if ! $gl_gnulib_enabled_6099e9737f757db36c47fa9d9f02e88c; then - gl_gnulib_enabled_6099e9737f757db36c47fa9d9f02e88c=true - fi - } func_gl_gnulib_m4code_stat () { if ! $gl_gnulib_enabled_stat; then @@ -421,18 +347,6 @@ AC_DEFUN([gl_INIT], gl_gnulib_enabled_verify=true fi } - func_gl_gnulib_m4code_682e609604ccaac6be382e4ee3a4eaec () - { - if ! $gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec; then - gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec=true - fi - } - if test $HAVE_FACCESSAT = 0; then - func_gl_gnulib_m4code_dosname - fi - if test $HAVE_FACCESSAT = 0; then - func_gl_gnulib_m4code_euidaccess - fi if test $REPLACE_GETOPT = 1; then func_gl_gnulib_m4code_be453cec5eecf5731a274f2de7f2db36 fi @@ -459,17 +373,12 @@ AC_DEFUN([gl_INIT], fi m4_pattern_allow([^gl_GNULIB_ENABLED_]) AM_CONDITIONAL([gl_GNULIB_ENABLED_dosname], [$gl_gnulib_enabled_dosname]) - AM_CONDITIONAL([gl_GNULIB_ENABLED_euidaccess], [$gl_gnulib_enabled_euidaccess]) - AM_CONDITIONAL([gl_GNULIB_ENABLED_getgroups], [$gl_gnulib_enabled_getgroups]) AM_CONDITIONAL([gl_GNULIB_ENABLED_be453cec5eecf5731a274f2de7f2db36], [$gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36]) - AM_CONDITIONAL([gl_GNULIB_ENABLED_a9786850e999ae65a836a6041e8e5ed1], [$gl_gnulib_enabled_a9786850e999ae65a836a6041e8e5ed1]) AM_CONDITIONAL([gl_GNULIB_ENABLED_pathmax], [$gl_gnulib_enabled_pathmax]) - AM_CONDITIONAL([gl_GNULIB_ENABLED_6099e9737f757db36c47fa9d9f02e88c], [$gl_gnulib_enabled_6099e9737f757db36c47fa9d9f02e88c]) AM_CONDITIONAL([gl_GNULIB_ENABLED_stat], [$gl_gnulib_enabled_stat]) AM_CONDITIONAL([gl_GNULIB_ENABLED_strtoll], [$gl_gnulib_enabled_strtoll]) AM_CONDITIONAL([gl_GNULIB_ENABLED_strtoull], [$gl_gnulib_enabled_strtoull]) AM_CONDITIONAL([gl_GNULIB_ENABLED_verify], [$gl_gnulib_enabled_verify]) - AM_CONDITIONAL([gl_GNULIB_ENABLED_682e609604ccaac6be382e4ee3a4eaec], [$gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec]) # End of code from modules m4_ifval(gl_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ || @@ -618,7 +527,6 @@ AC_DEFUN([gl_FILE_LIST], [ lib/alloca.in.h lib/allocator.c lib/allocator.h - lib/at-func.c lib/c-ctype.c lib/c-ctype.h lib/c-strcase.h @@ -630,16 +538,12 @@ AC_DEFUN([gl_FILE_LIST], [ lib/dtoastr.c lib/dtotimespec.c lib/dup2.c - lib/euidaccess.c lib/execinfo.c lib/execinfo.in.h - lib/faccessat.c - lib/fcntl.in.h lib/filemode.c lib/filemode.h lib/ftoastr.c lib/ftoastr.h - lib/getgroups.c lib/getloadavg.c lib/getopt.c lib/getopt.in.h @@ -648,7 +552,6 @@ AC_DEFUN([gl_FILE_LIST], [ lib/gettext.h lib/gettime.c lib/gettimeofday.c - lib/group-member.c lib/ignore-value.h lib/intprops.h lib/inttypes.in.h @@ -661,7 +564,6 @@ AC_DEFUN([gl_FILE_LIST], [ lib/pselect.c lib/pthread_sigmask.c lib/readlink.c - lib/root-uid.h lib/sha1.c lib/sha1.h lib/sha256.c @@ -703,28 +605,21 @@ AC_DEFUN([gl_FILE_LIST], [ lib/utimens.c lib/utimens.h lib/verify.h - lib/xalloc-oversized.h m4/00gnulib.m4 m4/alloca.m4 m4/c-strtod.m4 m4/clock_time.m4 m4/dup2.m4 m4/environ.m4 - m4/euidaccess.m4 m4/execinfo.m4 m4/extensions.m4 m4/extern-inline.m4 - m4/faccessat.m4 - m4/fcntl-o.m4 - m4/fcntl_h.m4 m4/filemode.m4 - m4/getgroups.m4 m4/getloadavg.m4 m4/getopt.m4 m4/gettime.m4 m4/gettimeofday.m4 m4/gnulib-common.m4 - m4/group-member.m4 m4/include_next.m4 m4/inttypes.m4 m4/largefile.m4 diff --git a/m4/group-member.m4 b/m4/group-member.m4 deleted file mode 100644 index c393b5b1303..00000000000 --- a/m4/group-member.m4 +++ /dev/null @@ -1,29 +0,0 @@ -# serial 14 - -# Copyright (C) 1999-2001, 2003-2007, 2009-2012 Free Software Foundation, Inc. - -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -dnl Written by Jim Meyering - -AC_DEFUN([gl_FUNC_GROUP_MEMBER], -[ - AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) - - dnl Persuade glibc to declare group_member(). - AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) - - dnl Do this replacement check manually because I want the hyphen - dnl (not the underscore) in the filename. - AC_CHECK_FUNC([group_member], , [ - HAVE_GROUP_MEMBER=0 - ]) -]) - -# Prerequisites of lib/group-member.c. -AC_DEFUN([gl_PREREQ_GROUP_MEMBER], -[ - AC_REQUIRE([AC_FUNC_GETGROUPS]) -]) diff --git a/nt/ChangeLog b/nt/ChangeLog index f64cafe2e16..94d2ce18551 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,10 +1,3 @@ -2012-10-19 Paul Eggert - - Use faccessat, not access, when checking file permissions (Bug#12632). - * inc/ms-w32.h (AT_FDCWD, AT_EACCESS): New symbols. - (access): Remove. - (faccessat): New macro. - 2012-10-17 Eli Zaretskii * inc/pwd.h (getuid, geteuid): Add prototypes. diff --git a/nt/inc/ms-w32.h b/nt/inc/ms-w32.h index 0f6b51d3915..dd2ae781cb8 100644 --- a/nt/inc/ms-w32.h +++ b/nt/inc/ms-w32.h @@ -124,10 +124,6 @@ extern char *getenv (); #define MAXPATHLEN _MAX_PATH #endif -/* Use values compatible with gnulib, as there's no reason to differ. */ -#define AT_FDCWD (-3041965) -#define AT_EACCESS 4 - #ifdef HAVE_NTGUI #define HAVE_WINDOW_SYSTEM 1 #define HAVE_MENUS 1 @@ -149,6 +145,8 @@ extern char *getenv (); #endif /* Calls that are emulated or shadowed. */ +#undef access +#define access sys_access #undef chdir #define chdir sys_chdir #undef chmod @@ -163,7 +161,6 @@ extern char *getenv (); #define dup sys_dup #undef dup2 #define dup2 sys_dup2 -#define faccessat sys_faccessat #define fopen sys_fopen #define link sys_link #define localtime sys_localtime diff --git a/src/ChangeLog b/src/ChangeLog index ee18650e992..5a1b4a5d8ee 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,32 +1,3 @@ -2012-10-19 Paul Eggert - - Use faccessat, not access, when checking file permissions (Bug#12632). - * Makefile.in (LIB_EACCESS): New macro. - (LIBES): Use it. - * callproc.c (init_callproc): - * charset.c (init_charset): - * fileio.c (check_existing, check_executable): - * lread.c (openp, load_path_check): - * process.c (allocate_pty): - * xrdb.c (file_p): - Use faccessat, not access or euidaccess. Use symbolic names - instead of integers for the flags, as they're portable now. - * charset.c, xrdb.c: Include , for the new flags used. - * fileio.c (Ffile_readable_p): - Use faccessat, not stat + open + close. - (file_directory_p): New function, which uses 'stat' on most places - but 'access' (for efficiency) if WINDOWSNT. - * fileio.c (Ffile_directory_p, Fset_file_times): - * xrdb.c (file_p): Use file_directory_p. - * lisp.h (file_directory_p): New decl. - * lread.c (openp): When opening a file, use fstat rather than - stat, as that avoids a permissions race. When not opening a file, - use file_directory_p rather than stat. - * process.c, sysdep.c, term.c: All uses of '#ifdef O_NONBLOCK' - changed to '#if O_NONBLOCK', to accommodate gnulib O_* style. - * w32.c (sys_faccessat): Rename from sys_access and switch to - faccessat's API. All uses changed. - 2012-10-19 Kazuhiro Ito (tiny change) * font.c (Ffont_at): Fix previous change. diff --git a/src/Makefile.in b/src/Makefile.in index d034ad04796..c24e421bbbc 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -150,7 +150,6 @@ M17N_FLT_CFLAGS = @M17N_FLT_CFLAGS@ M17N_FLT_LIBS = @M17N_FLT_LIBS@ LIB_CLOCK_GETTIME=@LIB_CLOCK_GETTIME@ -LIB_EACCESS=@LIB_EACCESS@ LIB_TIMER_TIME=@LIB_TIMER_TIME@ DBUS_CFLAGS = @DBUS_CFLAGS@ @@ -393,7 +392,7 @@ otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) $(RALLOC_OBJ) \ LIBES = $(LIBS) $(W32_LIBS) $(LIBX_BASE) $(LIBIMAGE) \ $(LIBX_OTHER) $(LIBSOUND) \ $(RSVG_LIBS) $(IMAGEMAGICK_LIBS) $(LIB_CLOCK_GETTIME) \ - $(LIB_EACCESS) $(LIB_TIMER_TIME) $(DBUS_LIBS) \ + $(LIB_TIMER_TIME) $(DBUS_LIBS) \ $(LIB_EXECINFO) \ $(LIBXML2_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \ $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) $(SETTINGS_LIBS) $(LIBSELINUX_LIBS) \ diff --git a/src/callproc.c b/src/callproc.c index 5a9b32f08c3..b33882e54c2 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -1597,13 +1597,13 @@ init_callproc (void) #endif { tempdir = Fdirectory_file_name (Vexec_directory); - if (faccessat (AT_FDCWD, SSDATA (tempdir), F_OK, AT_EACCESS) != 0) + if (access (SSDATA (tempdir), 0) < 0) dir_warning ("Warning: arch-dependent data dir (%s) does not exist.\n", Vexec_directory); } tempdir = Fdirectory_file_name (Vdata_directory); - if (faccessat (AT_FDCWD, SSDATA (tempdir), F_OK, AT_EACCESS) != 0) + if (access (SSDATA (tempdir), 0) < 0) dir_warning ("Warning: arch-independent data dir (%s) does not exist.\n", Vdata_directory); diff --git a/src/charset.c b/src/charset.c index fe068e1d3bc..6b999824dab 100644 --- a/src/charset.c +++ b/src/charset.c @@ -28,7 +28,6 @@ along with GNU Emacs. If not, see . */ #define CHARSET_INLINE EXTERN_INLINE -#include #include #include #include @@ -2294,7 +2293,7 @@ init_charset (void) { Lisp_Object tempdir; tempdir = Fexpand_file_name (build_string ("charsets"), Vdata_directory); - if (faccessat (AT_FDCWD, SSDATA (tempdir), F_OK, AT_EACCESS) != 0) + if (access (SSDATA (tempdir), 0) < 0) { /* This used to be non-fatal (dir_warning), but it should not happen, and if it does sooner or later it will cause some diff --git a/src/conf_post.h b/src/conf_post.h index eade536e6e1..aa008107ba6 100644 --- a/src/conf_post.h +++ b/src/conf_post.h @@ -169,10 +169,6 @@ extern void _DebPrint (const char *fmt, ...); #endif #endif -/* Tell gnulib to omit support for openat-related functions having a - first argument other than AT_FDCWD. */ -#define GNULIB_SUPPORT_ONLY_AT_FDCWD - #include #include diff --git a/src/fileio.c b/src/fileio.c index 3accb58a3eb..d47d7dd9e0b 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -2425,7 +2425,15 @@ On Unix, this is a name starting with a `/' or a `~'. */) bool check_existing (const char *filename) { - return faccessat (AT_FDCWD, filename, F_OK, AT_EACCESS) == 0; +#ifdef DOS_NT + /* The full emulation of Posix 'stat' is too expensive on + DOS/Windows, when all we want to know is whether the file exists. + So we use 'access' instead, which is much more lightweight. */ + return (access (filename, F_OK) >= 0); +#else + struct stat st; + return (stat (filename, &st) >= 0); +#endif } /* Return true if file FILENAME exists and can be executed. */ @@ -2433,7 +2441,21 @@ check_existing (const char *filename) static bool check_executable (char *filename) { - return faccessat (AT_FDCWD, filename, X_OK, AT_EACCESS) == 0; +#ifdef DOS_NT + struct stat st; + if (stat (filename, &st) < 0) + return 0; + return ((st.st_mode & S_IEXEC) != 0); +#else /* not DOS_NT */ +#ifdef HAVE_EUIDACCESS + return (euidaccess (filename, 1) >= 0); +#else + /* Access isn't quite right because it uses the real uid + and we really want to test with the effective uid. + But Unix doesn't give us a right way to do it. */ + return (access (filename, 1) >= 0); +#endif +#endif /* not DOS_NT */ } /* Return true if file FILENAME exists and can be written. */ @@ -2442,16 +2464,15 @@ static bool check_writable (const char *filename) { #ifdef MSDOS - /* FIXME: an faccessat implementation should be added to the - DOS/Windows ports and this #ifdef branch should be removed. */ struct stat st; if (stat (filename, &st) < 0) return 0; return (st.st_mode & S_IWRITE || S_ISDIR (st.st_mode)); #else /* not MSDOS */ - bool res = faccessat (AT_FDCWD, filename, W_OK, AT_EACCESS) == 0; +#ifdef HAVE_EUIDACCESS + bool res = (euidaccess (filename, 2) >= 0); #ifdef CYGWIN - /* faccessat may have returned failure because Cygwin couldn't + /* euidaccess may have returned failure because Cygwin couldn't determine the file's UID or GID; if so, we return success. */ if (!res) { @@ -2462,6 +2483,14 @@ check_writable (const char *filename) } #endif /* CYGWIN */ return res; +#else /* not HAVE_EUIDACCESS */ + /* Access isn't quite right because it uses the real uid + and we really want to test with the effective uid. + But Unix doesn't give us a right way to do it. + Opening with O_WRONLY could work for an ordinary file, + but would lose for directories. */ + return (access (filename, 2) >= 0); +#endif /* not HAVE_EUIDACCESS */ #endif /* not MSDOS */ } @@ -2518,6 +2547,9 @@ See also `file-exists-p' and `file-attributes'. */) { Lisp_Object absname; Lisp_Object handler; + int desc; + int flags; + struct stat statbuf; CHECK_STRING (filename); absname = Fexpand_file_name (filename, Qnil); @@ -2529,8 +2561,31 @@ See also `file-exists-p' and `file-attributes'. */) return call2 (handler, Qfile_readable_p, absname); absname = ENCODE_FILE (absname); - return (faccessat (AT_FDCWD, SSDATA (absname), R_OK, AT_EACCESS) == 0 - ? Qt : Qnil); + +#if defined (DOS_NT) || defined (macintosh) + /* Under MS-DOS, Windows, and Macintosh, open does not work for + directories. */ + if (access (SDATA (absname), 0) == 0) + return Qt; + return Qnil; +#else /* not DOS_NT and not macintosh */ + flags = O_RDONLY; +#ifdef O_NONBLOCK + /* Opening a fifo without O_NONBLOCK can wait. + We don't want to wait. But we don't want to mess wth O_NONBLOCK + except in the case of a fifo, on a system which handles it. */ + desc = stat (SSDATA (absname), &statbuf); + if (desc < 0) + return Qnil; + if (S_ISFIFO (statbuf.st_mode)) + flags |= O_NONBLOCK; +#endif + desc = emacs_open (SSDATA (absname), flags, 0); + if (desc < 0) + return Qnil; + emacs_close (desc); + return Qt; +#endif /* not DOS_NT and not macintosh */ } /* Having this before file-symlink-p mysteriously caused it to be forgotten @@ -2567,7 +2622,7 @@ DEFUN ("file-writable-p", Ffile_writable_p, Sfile_writable_p, 1, 1, 0, /* The read-only attribute of the parent directory doesn't affect whether a file or directory can be created within it. Some day we should check ACLs though, which do affect this. */ - return file_directory_p (SDATA (dir)) ? Qt : Qnil; + return (access (SDATA (dir), D_OK) < 0) ? Qnil : Qt; #else return (check_writable (!NILP (dir) ? SSDATA (dir) : "") ? Qt : Qnil); @@ -2648,7 +2703,8 @@ Symbolic links to directories count as directories. See `file-symlink-p' to distinguish symlinks. */) (Lisp_Object filename) { - Lisp_Object absname; + register Lisp_Object absname; + struct stat st; Lisp_Object handler; absname = expand_and_dir_to_file (filename, BVAR (current_buffer, directory)); @@ -2661,20 +2717,9 @@ See `file-symlink-p' to distinguish symlinks. */) absname = ENCODE_FILE (absname); - return file_directory_p (SSDATA (absname)) ? Qt : Qnil; -} - -/* Return true if FILE is a directory or a symlink to a directory. */ -bool -file_directory_p (char const *file) -{ -#ifdef WINDOWSNT - /* This is cheaper than 'stat'. */ - return faccessat (AT_FDCWD, file, D_OK, AT_EACCESS) == 0; -#else - struct stat st; - return stat (file, &st) == 0 && S_ISDIR (st.st_mode); -#endif + if (stat (SSDATA (absname), &st) < 0) + return Qnil; + return S_ISDIR (st.st_mode) ? Qt : Qnil; } DEFUN ("file-accessible-directory-p", Ffile_accessible_directory_p, @@ -2999,8 +3044,10 @@ Use the current time if TIMESTAMP is nil. TIMESTAMP is in the format of if (set_file_times (-1, SSDATA (encoded_absname), t, t)) { #ifdef MSDOS + struct stat st; + /* Setting times on a directory always fails. */ - if (file_directory_p (SSDATA (encoded_absname))) + if (stat (SSDATA (encoded_absname), &st) == 0 && S_ISDIR (st.st_mode)) return Qnil; #endif report_file_error ("Setting file times", Fcons (absname, Qnil)); diff --git a/src/lisp.h b/src/lisp.h index 897757cf462..01f6ca5e57c 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3178,7 +3178,6 @@ extern Lisp_Object close_file_unwind (Lisp_Object); extern Lisp_Object restore_point_unwind (Lisp_Object); extern _Noreturn void report_file_error (const char *, Lisp_Object); extern void internal_delete_file (Lisp_Object); -extern bool file_directory_p (const char *); extern void syms_of_fileio (void); extern Lisp_Object make_temp_name (Lisp_Object, bool); extern Lisp_Object Qdelete_file; diff --git a/src/lread.c b/src/lread.c index dedce50de2a..6d4c0d990af 100644 --- a/src/lread.c +++ b/src/lread.c @@ -1404,7 +1404,7 @@ Returns the file's name in absolute form, or nil if not found. If SUFFIXES is non-nil, it should be a list of suffixes to append to file name when searching. If non-nil, PREDICATE is used instead of `file-readable-p'. -PREDICATE can also be an integer to pass to the faccessat(2) function, +PREDICATE can also be an integer to pass to the access(2) function, in which case file-name-handlers are ignored. This function will normally skip directories, so if you want it to find directories, make sure the PREDICATE function returns `dir-ok' for them. */) @@ -1442,6 +1442,7 @@ static Lisp_Object Qdir_ok; int openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, Lisp_Object *storeptr, Lisp_Object predicate) { + int fd; ptrdiff_t fn_size = 100; char buf[100]; char *fn = buf; @@ -1496,6 +1497,7 @@ openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, Lisp_Object *sto { ptrdiff_t fnlen, lsuffix = SBYTES (XCAR (tail)); Lisp_Object handler; + bool exists; /* Concatenate path element/specified name with the suffix. If the directory starts with /:, remove that. */ @@ -1519,7 +1521,6 @@ openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, Lisp_Object *sto handler = Ffind_file_name_handler (string, Qfile_exists_p); if ((!NILP (handler) || !NILP (predicate)) && !NATNUMP (predicate)) { - bool exists; if (NILP (predicate)) exists = !NILP (Ffile_readable_p (string)); else @@ -1541,40 +1542,37 @@ openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, Lisp_Object *sto } else { - int fd; +#ifndef WINDOWSNT + struct stat st; +#endif const char *pfn; encoded_fn = ENCODE_FILE (string); pfn = SSDATA (encoded_fn); - - /* Check that we can access or open it. */ - if (NATNUMP (predicate)) - fd = (((XFASTINT (predicate) & ~INT_MAX) == 0 - && (faccessat (AT_FDCWD, pfn, XFASTINT (predicate), - AT_EACCESS) - == 0) - && ! file_directory_p (pfn)) - ? 1 : -1); - else +#ifdef WINDOWSNT + exists = access (pfn, F_OK) == 0 && access (pfn, D_OK) < 0; +#else + exists = (stat (pfn, &st) == 0 && ! S_ISDIR (st.st_mode)); +#endif + if (exists) { - struct stat st; - fd = emacs_open (pfn, O_RDONLY, 0); - if (0 <= fd - && (fstat (fd, &st) != 0 || S_ISDIR (st.st_mode))) + /* Check that we can access or open it. */ + if (NATNUMP (predicate)) + fd = (((XFASTINT (predicate) & ~INT_MAX) == 0 + && access (pfn, XFASTINT (predicate)) == 0) + ? 1 : -1); + else + fd = emacs_open (pfn, O_RDONLY, 0); + + if (fd >= 0) { - emacs_close (fd); - fd = -1; + /* We succeeded; return this descriptor and filename. */ + if (storeptr) + *storeptr = string; + UNGCPRO; + return fd; } } - - if (fd >= 0) - { - /* We succeeded; return this descriptor and filename. */ - if (storeptr) - *storeptr = string; - UNGCPRO; - return fd; - } } } if (absolute) @@ -4090,7 +4088,7 @@ load_path_check (void) if (STRINGP (dirfile)) { dirfile = Fdirectory_file_name (dirfile); - if (faccessat (AT_FDCWD, SSDATA (dirfile), F_OK, AT_EACCESS) != 0) + if (access (SSDATA (dirfile), 0) < 0) dir_warning ("Warning: Lisp directory `%s' does not exist.\n", XCAR (path_tail)); } diff --git a/src/process.c b/src/process.c index 572ab83de09..307e82819d6 100644 --- a/src/process.c +++ b/src/process.c @@ -204,7 +204,7 @@ static EMACS_INT update_tick; #ifndef NON_BLOCKING_CONNECT #ifdef HAVE_SELECT #if defined (HAVE_GETPEERNAME) || defined (GNU_LINUX) -#if O_NONBLOCK || O_NDELAY +#if defined (O_NONBLOCK) || defined (O_NDELAY) #if defined (EWOULDBLOCK) || defined (EINPROGRESS) #define NON_BLOCKING_CONNECT #endif /* EWOULDBLOCK || EINPROGRESS */ @@ -651,7 +651,7 @@ allocate_pty (void) PTY_OPEN; #else /* no PTY_OPEN */ { -# if O_NONBLOCK +# ifdef O_NONBLOCK fd = emacs_open (pty_name, O_RDWR | O_NONBLOCK, 0); # else fd = emacs_open (pty_name, O_RDWR | O_NDELAY, 0); @@ -668,7 +668,7 @@ allocate_pty (void) #else sprintf (pty_name, "/dev/tty%c%x", c, i); #endif /* no PTY_TTY_NAME_SPRINTF */ - if (faccessat (AT_FDCWD, pty_name, R_OK | W_OK, AT_EACCESS) != 0) + if (access (pty_name, 6) != 0) { emacs_close (fd); # ifndef __sgi @@ -1621,7 +1621,7 @@ create_process (Lisp_Object process, char **new_argv, Lisp_Object current_dir) #if ! defined (USG) || defined (USG_SUBTTY_WORKS) /* On most USG systems it does not work to open the pty's tty here, then close it and reopen it in the child. */ -#if O_NOCTTY +#ifdef O_NOCTTY /* Don't let this terminal become our controlling terminal (in case we don't have one). */ forkout = forkin = emacs_open (pty_name, O_RDWR | O_NOCTTY, 0); @@ -1675,11 +1675,11 @@ create_process (Lisp_Object process, char **new_argv, Lisp_Object current_dir) } #endif -#if O_NONBLOCK +#ifdef O_NONBLOCK fcntl (inchannel, F_SETFL, O_NONBLOCK); fcntl (outchannel, F_SETFL, O_NONBLOCK); #else -#if O_NDELAY +#ifdef O_NDELAY fcntl (inchannel, F_SETFL, O_NDELAY); fcntl (outchannel, F_SETFL, O_NDELAY); #endif @@ -1967,7 +1967,7 @@ create_pty (Lisp_Object process) #if ! defined (USG) || defined (USG_SUBTTY_WORKS) /* On most USG systems it does not work to open the pty's tty here, then close it and reopen it in the child. */ -#if O_NOCTTY +#ifdef O_NOCTTY /* Don't let this terminal become our controlling terminal (in case we don't have one). */ int forkout = emacs_open (pty_name, O_RDWR | O_NOCTTY, 0); @@ -1987,11 +1987,11 @@ create_pty (Lisp_Object process) } #endif /* HAVE_PTYS */ -#if O_NONBLOCK +#ifdef O_NONBLOCK fcntl (inchannel, F_SETFL, O_NONBLOCK); fcntl (outchannel, F_SETFL, O_NONBLOCK); #else -#if O_NDELAY +#ifdef O_NDELAY fcntl (inchannel, F_SETFL, O_NDELAY); fcntl (outchannel, F_SETFL, O_NDELAY); #endif @@ -2951,7 +2951,7 @@ usage: (make-network-process &rest ARGS) */) { /* Don't support network sockets when non-blocking mode is not available, since a blocked Emacs is not useful. */ -#if !O_NONBLOCK && !O_NDELAY +#if !defined (O_NONBLOCK) && !defined (O_NDELAY) error ("Network servers not supported"); #else is_server = 1; @@ -3217,7 +3217,7 @@ usage: (make-network-process &rest ARGS) */) #ifdef NON_BLOCKING_CONNECT if (is_non_blocking_client) { -#if O_NONBLOCK +#ifdef O_NONBLOCK ret = fcntl (s, F_SETFL, O_NONBLOCK); #else ret = fcntl (s, F_SETFL, O_NDELAY); @@ -3434,10 +3434,10 @@ usage: (make-network-process &rest ARGS) */) chan_process[inch] = proc; -#if O_NONBLOCK +#ifdef O_NONBLOCK fcntl (inch, F_SETFL, O_NONBLOCK); #else -#if O_NDELAY +#ifdef O_NDELAY fcntl (inch, F_SETFL, O_NDELAY); #endif #endif @@ -4169,10 +4169,10 @@ server_accept_connection (Lisp_Object server, int channel) chan_process[s] = proc; -#if O_NONBLOCK +#ifdef O_NONBLOCK fcntl (s, F_SETFL, O_NONBLOCK); #else -#if O_NDELAY +#ifdef O_NDELAY fcntl (s, F_SETFL, O_NDELAY); #endif #endif @@ -4873,11 +4873,11 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, #endif /* ISC 4.1 defines both EWOULDBLOCK and O_NONBLOCK, and Emacs uses O_NONBLOCK, so what we get is EAGAIN. */ -#if O_NONBLOCK +#ifdef O_NONBLOCK else if (nread == -1 && errno == EAGAIN) ; #else -#if O_NDELAY +#ifdef O_NDELAY else if (nread == -1 && errno == EAGAIN) ; /* Note that we cannot distinguish between no input @@ -7363,7 +7363,7 @@ init_process_emacs (void) #ifdef HAVE_GETSOCKNAME ADD_SUBFEATURE (QCservice, Qt); #endif -#if O_NONBLOCK || O_NDELAY +#if defined (O_NONBLOCK) || defined (O_NDELAY) ADD_SUBFEATURE (QCserver, Qt); #endif diff --git a/src/sysdep.c b/src/sysdep.c index 8a31957d182..35beeaa7202 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -1216,7 +1216,7 @@ reset_sys_modes (struct tty_display_info *tty_out) old_fcntl_owner[fileno (tty_out->input)]); } #endif /* F_SETOWN */ -#if O_NDELAY +#ifdef O_NDELAY fcntl (fileno (tty_out->input), F_SETFL, fcntl (fileno (tty_out->input), F_GETFL, 0) & ~O_NDELAY); #endif @@ -2312,12 +2312,12 @@ serial_open (char *port) fd = emacs_open ((char*) port, O_RDWR -#if O_NONBLOCK +#ifdef O_NONBLOCK | O_NONBLOCK #else | O_NDELAY #endif -#if O_NOCTTY +#ifdef O_NOCTTY | O_NOCTTY #endif , 0); diff --git a/src/term.c b/src/term.c index 87ce5447b76..f7c87b7608d 100644 --- a/src/term.c +++ b/src/term.c @@ -3023,7 +3023,7 @@ init_tty (const char *name, const char *terminal_type, int must_succeed) int fd; FILE *file; -#if O_IGNORE_CTTY +#ifdef O_IGNORE_CTTY if (!ctty) /* Open the terminal device. Don't recognize it as our controlling terminal, and don't make it the controlling tty @@ -3054,7 +3054,7 @@ init_tty (const char *name, const char *terminal_type, int must_succeed) name); } -#if !O_IGNORE_CTTY +#ifndef O_IGNORE_CTTY if (!ctty) dissociate_if_controlling_tty (fd); #endif diff --git a/src/w32.c b/src/w32.c index 341f4d3fef3..5ac1bc3eb7c 100644 --- a/src/w32.c +++ b/src/w32.c @@ -1597,7 +1597,7 @@ init_environment (char ** argv) see if it succeeds. But I think that's too much to ask. */ /* MSVCRT's _access crashes with D_OK. */ - if (tmp && sys_faccessat (AT_FDCWD, tmp, D_OK, AT_EACCESS) == 0) + if (tmp && sys_access (tmp, D_OK) == 0) { char * var = alloca (strlen (tmp) + 8); sprintf (var, "TMPDIR=%s", tmp); @@ -2714,16 +2714,10 @@ logon_network_drive (const char *path) long file names. */ int -sys_faccessat (int dirfd, const char * path, int mode, int flags) +sys_access (const char * path, int mode) { DWORD attributes; - if (dirfd != AT_FDCWD) - { - errno = EINVAL; - return -1; - } - /* MSVCRT implementation of 'access' doesn't recognize D_OK, and its newer versions blow up when passed D_OK. */ path = map_w32_filename (path, NULL); @@ -2966,7 +2960,7 @@ sys_mktemp (char * template) { int save_errno = errno; p[0] = first_char[i]; - if (sys_faccessat (AT_FDCWD, template, F_OK, AT_EACCESS) < 0) + if (sys_access (template, 0) < 0) { errno = save_errno; return template; @@ -4017,7 +4011,7 @@ symlink (char const *filename, char const *linkname) { /* Non-absolute FILENAME is understood as being relative to LINKNAME's directory. We need to prepend that directory to - FILENAME to get correct results from sys_faccessat below, since + FILENAME to get correct results from sys_access below, since otherwise it will interpret FILENAME relative to the directory where the Emacs process runs. Note that make-symbolic-link always makes sure LINKNAME is a fully @@ -4031,10 +4025,10 @@ symlink (char const *filename, char const *linkname) strncpy (tem, linkfn, p - linkfn); tem[p - linkfn] = '\0'; strcat (tem, filename); - dir_access = sys_faccessat (AT_FDCWD, tem, D_OK, AT_EACCESS); + dir_access = sys_access (tem, D_OK); } else - dir_access = sys_faccessat (AT_FDCWD, filename, D_OK, AT_EACCESS); + dir_access = sys_access (filename, D_OK); /* Since Windows distinguishes between symlinks to directories and to files, we provide a kludgy feature: if FILENAME doesn't diff --git a/src/xrdb.c b/src/xrdb.c index 982a6e46a13..9d056a607e4 100644 --- a/src/xrdb.c +++ b/src/xrdb.c @@ -21,7 +21,6 @@ along with GNU Emacs. If not, see . */ #include -#include #include #include #include @@ -262,8 +261,11 @@ gethomedir (void) static int file_p (const char *filename) { - return (faccessat (AT_FDCWD, filename, R_OK, AT_EACCESS) == 0 - && ! file_directory_p (filename)); + struct stat status; + + return (access (filename, 4) == 0 /* exists and is readable */ + && stat (filename, &status) == 0 /* get the status */ + && (S_ISDIR (status.st_mode)) == 0); /* not a directory */ } From 1a6e7e3807367b94c144d06fc2bdd1eb195731f7 Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Fri, 19 Oct 2012 19:42:02 -0800 Subject: [PATCH 261/272] Unbreak starting an X11 frame from a non-X11 Emacs daemon --- lisp/ChangeLog | 6 ++++++ lisp/frame.el | 2 ++ 2 files changed, 8 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 096e9a52916..690aaa70eac 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2012-10-20 Daniel Colascione + + * frame.el (make-frame): Set x-display-name as we used to in order + to unbreak creating an X11 frame from an Emacs daemon started + without a display. + 2012-10-19 Stefan Monnier * minibuffer.el (minibuffer-force-complete): Make the next completion use diff --git a/lisp/frame.el b/lisp/frame.el index b7b61bcc576..7a54efc23e7 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -655,6 +655,8 @@ the new frame according to its own rules." (error "Don't know how to create a frame on window system %s" w)) (unless (get w 'window-system-initialized) + (unless x-display-name + (setq x-display-name display)) (funcall (cdr (assq w window-system-initialization-alist))) (put w 'window-system-initialized t)) From 4c9e95500fc913ad934e65c6625114e3f5532078 Mon Sep 17 00:00:00 2001 From: Jay Belanger Date: Fri, 19 Oct 2012 23:14:32 -0500 Subject: [PATCH 262/272] calc/calc-units.el (math-extract-units): Properly extract powers of units. --- lisp/ChangeLog | 5 +++++ lisp/calc/calc-units.el | 14 ++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 690aaa70eac..7830f8312da 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-20 Jay Belanger + + * calc/calc-units.el (math-extract-units): Properly extract powers + of units. + 2012-10-20 Daniel Colascione * frame.el (make-frame): Set x-display-name as we used to in order diff --git a/lisp/calc/calc-units.el b/lisp/calc/calc-units.el index 39f710f8322..58646ea114c 100644 --- a/lisp/calc/calc-units.el +++ b/lisp/calc/calc-units.el @@ -1481,10 +1481,16 @@ If COMP or STD is non-nil, put that in the units table instead." (mapcar 'math-remove-units (cdr expr)))))) (defun math-extract-units (expr) - (if (memq (car-safe expr) '(* /)) - (cons (car expr) - (mapcar 'math-extract-units (cdr expr))) - (if (math-check-unit-name expr) expr 1))) + (cond + ((memq (car-safe expr) '(* /)) + (cons (car expr) + (mapcar 'math-extract-units (cdr expr)))) + ((and + (eq (car-safe expr) '^) + (math-check-unit-name (nth 1 expr))) + expr) + ((math-check-unit-name expr) expr) + (t 1))) (defun math-build-units-table-buffer (enter-buffer) (if (not (and math-units-table math-units-table-buffer-valid From 2068905bb73c32afb4bb5e908b438fbd8b80bb64 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 20 Oct 2012 12:01:19 +0200 Subject: [PATCH 263/272] Fix bug #12395 with doc strings silently omitted from DOC on MS-Windows. lib-src/make-docfile.c (scan_lisp_file): Barf if called with a .el file other than one of a small list of supported un-compiled files. lib-src/makefile.w32-in (lisp1, lisp2): Name .elc files wherever they exist. lisp/loadup.el: Update comment about uncompiled Lisp files. --- lib-src/ChangeLog | 9 ++++++++ lib-src/make-docfile.c | 33 ++++++++++++++++++++++++++--- lib-src/makefile.w32-in | 46 ++++++++++++++++++++--------------------- lisp/ChangeLog | 4 ++++ lisp/loadup.el | 3 ++- 5 files changed, 68 insertions(+), 27 deletions(-) diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 1f28000e110..07fd4658172 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,12 @@ +2012-10-20 Eli Zaretskii + + Prevent silent omission of doc strings from uncompile Lisp files. + * make-docfile.c (scan_lisp_file): Barf if called with a .el file + other than one of a small list of supported un-compiled files. + + * makefile.w32-in (lisp1, lisp2): Name .elc files wherever they + exist. (Bug#12395) + 2012-10-17 Eli Zaretskii * ntlib.c: Include , to avoid compiler warning about diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index 411b7057861..555a563d748 100644 --- a/lib-src/make-docfile.c +++ b/lib-src/make-docfile.c @@ -1025,9 +1025,9 @@ scan_c_file (char *filename, const char *mode) arglist, but the doc string must still have a backslash and newline immediately after the double quote. The only source files that must follow this convention are preloaded - uncompiled ones like loaddefs.el and bindings.el; aside - from that, it is always the .elc file that we look at, and they are no - problem because byte-compiler output follows this convention. + uncompiled ones like loaddefs.el; aside from that, it is always the .elc + file that we should look at, and they are no problem because byte-compiler + output follows this convention. The NAME and DOCSTRING are output. NAME is preceded by `F' for a function or `V' for a variable. An entry is output only if DOCSTRING has \ newline just after the opening ". @@ -1104,9 +1104,36 @@ scan_lisp_file (const char *filename, const char *mode) FILE *infile; register int c; char *saved_string = 0; + /* These are the only files that are loaded uncompiled, and must + follow the conventions of the doc strings expected by this + function. These conventions are automatically followed by the + byte compiler when it produces the .elc files. */ + static struct { + const char *fn; + size_t fl; + } uncompiled[] = { + { "loaddefs.el", sizeof("loaddefs.el") - 1 }, + { "loadup.el", sizeof("loadup.el") - 1 }, + { "charprop.el", sizeof("charprop.el") - 1 } + }; + int i, match; + size_t flen = strlen (filename); if (generate_globals) fatal ("scanning lisp file when -g specified", 0); + if (!strcmp (filename + flen - 3, ".el")) + { + for (i = 0, match = 0; i < sizeof(uncompiled)/sizeof(uncompiled[0]); i++) + { + if (!strcmp (filename + flen - uncompiled[i].fl, uncompiled[i].fn)) + { + match = 1; + break; + } + } + if (!match) + fatal ("uncompiled lisp file %s is not supported", filename); + } infile = fopen (filename, mode); if (infile == NULL) diff --git a/lib-src/makefile.w32-in b/lib-src/makefile.w32-in index ecc5fb866b3..640e8a7c468 100644 --- a/lib-src/makefile.w32-in +++ b/lib-src/makefile.w32-in @@ -209,38 +209,38 @@ lisp1= \ $(lispsource)emacs-lisp/map-ynp.elc \ $(lispsource)menu-bar.elc \ $(lispsource)international/mule.elc \ - $(lispsource)international/mule-conf.el \ + $(lispsource)international/mule-conf.elc \ $(lispsource)international/mule-cmds.elc \ $(lispsource)international/characters.elc \ $(lispsource)international/charprop.el \ $(lispsource)case-table.elc lisp2 = \ - $(lispsource)language/chinese.el \ - $(lispsource)language/cyrillic.el \ - $(lispsource)language/indian.el \ - $(lispsource)language/sinhala.el \ - $(lispsource)language/english.el \ + $(lispsource)language/chinese.elc \ + $(lispsource)language/cyrillic.elc \ + $(lispsource)language/indian.elc \ + $(lispsource)language/sinhala.elc \ + $(lispsource)language/english.elc \ $(lispsource)language/ethiopic.elc \ $(lispsource)language/european.elc \ - $(lispsource)language/czech.el \ - $(lispsource)language/slovak.el \ - $(lispsource)language/romanian.el \ - $(lispsource)language/greek.el \ + $(lispsource)language/czech.elc \ + $(lispsource)language/slovak.elc \ + $(lispsource)language/romanian.elc \ + $(lispsource)language/greek.elc \ $(lispsource)language/hebrew.elc \ - $(lispsource)language/japanese.el \ - $(lispsource)language/korean.el \ - $(lispsource)language/lao.el \ - $(lispsource)language/cham.el \ - $(lispsource)language/tai-viet.el \ - $(lispsource)language/thai.el \ + $(lispsource)language/japanese.elc \ + $(lispsource)language/korean.elc \ + $(lispsource)language/lao.elc \ + $(lispsource)language/cham.elc \ + $(lispsource)language/tai-viet.elc \ + $(lispsource)language/thai.elc \ $(lispsource)language/tibetan.elc \ - $(lispsource)language/vietnamese.el \ - $(lispsource)language/misc-lang.el \ - $(lispsource)language/utf-8-lang.el \ - $(lispsource)language/georgian.el \ - $(lispsource)language/khmer.el \ - $(lispsource)language/burmese.el \ + $(lispsource)language/vietnamese.elc \ + $(lispsource)language/misc-lang.elc \ + $(lispsource)language/utf-8-lang.elc \ + $(lispsource)language/georgian.elc \ + $(lispsource)language/khmer.elc \ + $(lispsource)language/burmese.elc \ $(lispsource)register.elc \ $(lispsource)replace.elc \ $(lispsource)simple.elc \ @@ -266,7 +266,7 @@ lisp2 = \ $(WINDOW_SUPPORT) \ $(lispsource)widget.elc \ $(lispsource)window.elc \ - $(lispsource)version.el + $(lispsource)version.elc # This is needed the first time we build the tree, since temacs.exe # does not exist yet, and the DOC rule needs it to rebuild DOC whenever diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7830f8312da..323ba976c80 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-10-20 Eli Zaretskii + + * loadup.el: Update comment about uncompiled Lisp files. (Bug#12395) + 2012-10-20 Jay Belanger * calc/calc-units.el (math-extract-units): Properly extract powers diff --git a/lisp/loadup.el b/lisp/loadup.el index e0f5c6265b9..e5f2cb014d3 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -38,7 +38,8 @@ ;; doc strings in the dumped Emacs.) Because of this: ;; ii) If the file is loaded uncompiled, it should (where possible) -;; obey the doc-string conventions expected by make-docfile. +;; obey the doc-string conventions expected by make-docfile. It +;; should also be added to the uncompiled[] list in make-docfile.c. ;;; Code: From 79e1997aa81717a59d134c677b1fdcf7eb12d257 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arne=20J=C3=B8rgensen?= Date: Sat, 20 Oct 2012 19:34:06 +0800 Subject: [PATCH 264/272] * progmodes/flymake.el (flymake-create-temp-inplace): Use file-truename. Patch from: http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00444.html --- lisp/ChangeLog | 5 +++++ lisp/progmodes/flymake.el | 9 +++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 323ba976c80..dfd18592d0e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-20 Chong Yidong + + * progmodes/flymake.el (flymake-create-temp-inplace): Use + file-truename. + 2012-10-20 Eli Zaretskii * loadup.el: Update comment about uncompiled Lisp files. (Bug#12395) diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 26d4a399c2d..2614af9ffa4 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el @@ -1535,10 +1535,11 @@ if ARG is omitted or nil." (error "Invalid file-name")) (or prefix (setq prefix "flymake")) - (let* ((temp-name (concat (file-name-sans-extension file-name) - "_" prefix - (and (file-name-extension file-name) - (concat "." (file-name-extension file-name)))))) + (let* ((ext (file-name-extension file-name)) + (temp-name (file-truename + (concat (file-name-sans-extension file-name) + "_" prefix + (and ext (concat "." ext)))))) (flymake-log 3 "create-temp-inplace: file=%s temp=%s" file-name temp-name) temp-name)) From 3503c798921ee6b8f1cc960d9406b69623eb5470 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sat, 20 Oct 2012 19:35:05 +0800 Subject: [PATCH 265/272] Fix last ChangeLog entry. --- lisp/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index dfd18592d0e..96267eacb89 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,4 +1,4 @@ -2012-10-20 Chong Yidong +2012-10-20 Arne Jørgensen * progmodes/flymake.el (flymake-create-temp-inplace): Use file-truename. From 045ef729040afa82576045f51a6738114b8f3064 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sat, 20 Oct 2012 19:54:24 +0800 Subject: [PATCH 266/272] Fix for Eshell's for loop. * eshell/esh-cmd.el (eshell-rewrite-for-command): Copy the body list explicitly. Fixes: debbugs:12571 --- lisp/ChangeLog | 5 +++++ lisp/eshell/esh-cmd.el | 28 +++++++++++++++------------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 96267eacb89..8b17f91877d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-10-20 Chong Yidong + + * eshell/esh-cmd.el (eshell-rewrite-for-command): Copy the body + list explicitly (Bug#12571). + 2012-10-20 Arne Jørgensen * progmodes/flymake.el (flymake-create-temp-inplace): Use diff --git a/lisp/eshell/esh-cmd.el b/lisp/eshell/esh-cmd.el index 5a10721387b..e6e89d83b7c 100644 --- a/lisp/eshell/esh-cmd.el +++ b/lisp/eshell/esh-cmd.el @@ -484,20 +484,22 @@ implemented via rewriting, rather than as a function." (let ((body (car (last terms)))) (setcdr (last terms 2) nil) `(let ((for-items - (append - ,@(mapcar - (lambda (elem) - (if (listp elem) - elem - `(list ,elem))) - (cdr (cddr terms))))) - (eshell-command-body '(nil)) + (copy-tree + (append + ,@(mapcar + (lambda (elem) + (if (listp elem) + elem + `(list ,elem))) + (cdr (cddr terms)))))) + (eshell-command-body '(nil)) (eshell-test-body '(nil))) - (while (consp for-items) - (let ((,(intern (cadr terms)) (car for-items))) - (eshell-protect - ,(eshell-invokify-arg body t))) - (setq for-items (cdr for-items))) + (while (car for-items) + (let ((,(intern (cadr terms)) (car for-items))) + (eshell-protect + ,(eshell-invokify-arg body t))) + (setcar for-items (cadr for-items)) + (setcdr for-items (cddr for-items))) (eshell-close-handles eshell-last-command-status (list 'quote eshell-last-command-result)))))) From 4c5d08a8685e51d704f05750cefc718810a289f2 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sat, 20 Oct 2012 20:04:45 +0800 Subject: [PATCH 267/272] Fix *vc-diff* buffer's behavior for empty diffs. * vc/vc.el (vc-diff-internal): Set up Diff mode even if there are no changes to show. Fixes: debbugs:12586 --- lisp/ChangeLog | 3 +++ lisp/vc/vc.el | 18 +++++++++--------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8b17f91877d..7d532ba899f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2012-10-20 Chong Yidong + * vc/vc.el (vc-diff-internal): Set up Diff mode even if there are + no changes to show (Bug#12586). + * eshell/esh-cmd.el (eshell-rewrite-for-command): Copy the body list explicitly (Bug#12571). diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index 2da721b41d8..a909aca5bca 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el @@ -1584,21 +1584,21 @@ Return t if the buffer had changes, nil otherwise." (let ((vc-disable-async-diff (not async))) (vc-call-backend (car vc-fileset) 'diff files rev1 rev2 buffer)) (set-buffer buffer) + (diff-mode) + (set (make-local-variable 'diff-vc-backend) (car vc-fileset)) + (set (make-local-variable 'revert-buffer-function) + `(lambda (ignore-auto noconfirm) + (vc-diff-internal ,async ',vc-fileset ,rev1 ,rev2 ,verbose))) + ;; Make the *vc-diff* buffer read only, the diff-mode key + ;; bindings are nicer for read only buffers. pcl-cvs does the + ;; same thing. + (setq buffer-read-only t) (if (and (zerop (buffer-size)) (not (get-buffer-process (current-buffer)))) ;; Treat this case specially so as not to pop the buffer. (progn (message "%s" (cdr messages)) nil) - (diff-mode) - (set (make-local-variable 'diff-vc-backend) (car vc-fileset)) - (set (make-local-variable 'revert-buffer-function) - `(lambda (ignore-auto noconfirm) - (vc-diff-internal ,async ',vc-fileset ,rev1 ,rev2 ,verbose))) - ;; Make the *vc-diff* buffer read only, the diff-mode key - ;; bindings are nicer for read only buffers. pcl-cvs does the - ;; same thing. - (setq buffer-read-only t) ;; Display the buffer, but at the end because it can change point. (pop-to-buffer (current-buffer)) ;; The diff process may finish early, so call `vc-diff-finish' From c664f46329c8a18e7a1db89942f2e65a9e7892ac Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sat, 20 Oct 2012 20:50:49 +0800 Subject: [PATCH 268/272] * lread.c (Fload): Doc fix. Fixes: debbugs:12592 --- src/ChangeLog | 4 ++++ src/lread.c | 21 ++++++++++----------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 5a1b4a5d8ee..1a309066703 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-20 Chong Yidong + + * lread.c (Fload): Doc fix (Bug#12592). + 2012-10-19 Kazuhiro Ito (tiny change) * font.c (Ffont_at): Fix previous change. diff --git a/src/lread.c b/src/lread.c index 6d4c0d990af..94744620279 100644 --- a/src/lread.c +++ b/src/lread.c @@ -996,18 +996,17 @@ If optional fifth arg MUST-SUFFIX is non-nil, insist on the suffix `.elc' or `.el'; don't accept just FILE unless it ends in one of those suffixes or includes a directory name. -If this function fails to find a file, it may look for different -representations of that file before trying another file. -It does so by adding the non-empty suffixes in `load-file-rep-suffixes' -to the file name. Emacs uses this feature mainly to find compressed -versions of files when Auto Compression mode is enabled. +If NOSUFFIX is nil, then if a file could not be found, try looking for +a different representation of the file by adding non-empty suffixes to +its name, before trying another file. Emacs uses this feature to find +compressed versions of files when Auto Compression mode is enabled. +If NOSUFFIX is non-nil, disable this feature. -The exact suffixes that this function tries out, in the exact order, -are given by the value of the variable `load-file-rep-suffixes' if -NOSUFFIX is non-nil and by the return value of the function -`get-load-suffixes' if MUST-SUFFIX is non-nil. If both NOSUFFIX and -MUST-SUFFIX are nil, this function first tries out the latter suffixes -and then the former. +The suffixes that this function tries out, when NOSUFFIX is nil, are +given by the return value of `get-load-suffixes' and the values listed +in `load-file-rep-suffixes'. If MUST-SUFFIX is non-nil, only the +return value of `get-load-suffixes' is used, i.e. the file name is +required to have a non-empty suffix. Loading a file records its definitions, and its `provide' and `require' calls, in an element of `load-history' whose From c95a42666388351563df91910a4fe791c12c7a1e Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 20 Oct 2012 15:20:44 +0200 Subject: [PATCH 269/272] Add comments with instructions for creating new Lisp data types. --- src/lisp.h | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/src/lisp.h b/src/lisp.h index 01f6ca5e57c..52b5b685b7d 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -222,7 +222,9 @@ enum enum_USE_LSB_TAG { USE_LSB_TAG = 0 }; /* Define the fundamental Lisp data structures. */ -/* This is the set of Lisp data types. */ +/* This is the set of Lisp data types. If you want to define a new + data type, read the comments after Lisp_Fwd_Type definition + below. */ /* Lisp integers use 2 tags, to give them one extra bit, thus extending their range from, e.g., -2^28..2^28-1 to -2^29..2^29-1. */ @@ -298,6 +300,53 @@ enum Lisp_Fwd_Type Lisp_Fwd_Kboard_Obj, /* Fwd to a Lisp_Object field of kboards. */ }; +/* If you want to define a new Lisp data type, here are some + instructions. See the thread at + http://lists.gnu.org/archive/html/emacs-devel/2012-10/msg00561.html + for more info. + + First, there are already a couple of Lisp types that can be used if + your new type does not need to be exposed to Lisp programs nor + displayed to users. These are Lisp_Save_Value, a Lisp_Misc + subtype, and PVEC_OTHER, a kind of vectorlike object. The former + is suitable for temporarily stashing away pointers and integers in + a Lisp object (see the existing uses of make_save_value and + XSAVE_VALUE). The latter is useful for vector-like Lisp objects + that need to be used as part of other objects, but which are never + shown to users or Lisp code (search for PVEC_OTHER in xterm.c for + an example). + + These two types don't look pretty when printed, so they are + unsuitable for Lisp objects that can be exposed to users. + + To define a new data type, add one more Lisp_Misc subtype or one + more pseudovector subtype. Pseudovectors are more suitable for + objects with several slots that need to support fast random access, + whil Lisp_Misc types are foreverything else. A pseudovector object + provides one or more slots for Lisp objects, followed by struct + members that are accessible only from C. A Lisp_Misc object is a + wrapper for a C struct that can contain anything you like. + + To add a new pseudovector type, extend the pvec_type enumeration; + to add a new Lisp_Misc, extend the Lisp_Misc_Type enumeration. + + For a Lisp_Misc, you will also need to add your entry to union + Lisp_Misc (but make sure the first word has the same structure as + the others, starting with a 16-bit member of the Lisp_Misc_Type + enumeration and a 1-bit GC markbit) and make sure the overall size + of the union is not increased by your addition. + + Then you will need to add switch branches in print.c (in + print_object, to print your object, and possibly also in + print_preprocess) and to alloc.c, to mark your object (in + mark_object) and to free it (in gc_sweep). The latter is also the + right place to call any code specific to your data type that needs + to run when the object is recycled -- e.g., free any additional + resources allocated for it that are not Lisp objects. You can even + make a pointer to the function that frees the resources a slot in + your object -- this way, the same object could be used to represent + several disparate C structures. */ + #ifdef CHECK_LISP_OBJECT_TYPE typedef struct { EMACS_INT i; } Lisp_Object; From cab4f71ebd565c2f7dc0f8d4987785926202bcde Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Sat, 20 Oct 2012 15:28:42 +0200 Subject: [PATCH 270/272] * make-docfile.c (scan_lisp_file): Add bounds checking. --- lib-src/ChangeLog | 4 ++++ lib-src/make-docfile.c | 23 ++++++++++++----------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 07fd4658172..02561c4aa3a 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-20 Andreas Schwab + + * make-docfile.c (scan_lisp_file): Add bounds checking. + 2012-10-20 Eli Zaretskii Prevent silent omission of doc strings from uncompile Lisp files. diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index 555a563d748..2f04f1c96f3 100644 --- a/lib-src/make-docfile.c +++ b/lib-src/make-docfile.c @@ -1108,24 +1108,25 @@ scan_lisp_file (const char *filename, const char *mode) follow the conventions of the doc strings expected by this function. These conventions are automatically followed by the byte compiler when it produces the .elc files. */ - static struct { - const char *fn; - size_t fl; - } uncompiled[] = { - { "loaddefs.el", sizeof("loaddefs.el") - 1 }, - { "loadup.el", sizeof("loadup.el") - 1 }, - { "charprop.el", sizeof("charprop.el") - 1 } - }; + static const char *const uncompiled[] = + { + "loaddefs.el", + "loadup.el", + "charprop.el" + }; int i, match; size_t flen = strlen (filename); if (generate_globals) fatal ("scanning lisp file when -g specified", 0); - if (!strcmp (filename + flen - 3, ".el")) + if (flen > 3 && !strcmp (filename + flen - 3, ".el")) { - for (i = 0, match = 0; i < sizeof(uncompiled)/sizeof(uncompiled[0]); i++) + for (i = 0, match = 0; i < sizeof (uncompiled) / sizeof (uncompiled[0]); + i++) { - if (!strcmp (filename + flen - uncompiled[i].fl, uncompiled[i].fn)) + if (strlen (uncompiled[i]) <= flen + && !strcmp (filename + flen - strlen (uncompiled[i]), + uncompiled[i])) { match = 1; break; From 71aa63da789e39ef49a2716fb977d2ea0e2d5f07 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 20 Oct 2012 16:56:09 +0200 Subject: [PATCH 271/272] Fix a typo in lib-src/ChangeLog. --- lib-src/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 02561c4aa3a..40da102620b 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -4,7 +4,7 @@ 2012-10-20 Eli Zaretskii - Prevent silent omission of doc strings from uncompile Lisp files. + Prevent silent omission of doc strings from uncompiled Lisp files. * make-docfile.c (scan_lisp_file): Barf if called with a .el file other than one of a small list of supported un-compiled files. From 83c85d8e2e6c1e1cb309f554555e1aebc1dcb44f Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 20 Oct 2012 17:26:10 +0200 Subject: [PATCH 272/272] Fix last changes in make-docfile.c. lib-src/make-docfile.c (IS_SLASH, DEF_ELISP_FILE): New macros. (scan_lisp_file): Only pass a .el file if its basename matches a known file in its entirety. Use IS_SLASH and DEF_ELISP_FILE. --- lib-src/ChangeLog | 6 ++++++ lib-src/make-docfile.c | 25 ++++++++++++++++--------- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 40da102620b..bcb71daca5d 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,9 @@ +2012-10-20 Eli Zaretskii + + * make-docfile.c (IS_SLASH, DEF_ELISP_FILE): New macros. + (scan_lisp_file): Only pass a .el file if its basename matches a + known file in its entirety. Use IS_SLASH and DEF_ELISP_FILE. + 2012-10-20 Andreas Schwab * make-docfile.c (scan_lisp_file): Add bounds checking. diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index 2f04f1c96f3..b6cd1530a4c 100644 --- a/lib-src/make-docfile.c +++ b/lib-src/make-docfile.c @@ -58,9 +58,11 @@ along with GNU Emacs. If not, see . */ #undef chdir #define READ_TEXT "rt" #define READ_BINARY "rb" +#define IS_SLASH(c) ((c) == '/' || (c) == '\\' || (c) == ':') #else /* not DOS_NT */ #define READ_TEXT "r" #define READ_BINARY "r" +#define IS_SLASH(c) ((c) == '/') #endif /* not DOS_NT */ static int scan_file (char *filename); @@ -1098,6 +1100,8 @@ search_lisp_doc_at_eol (FILE *infile) return 1; } +#define DEF_ELISP_FILE(fn) { #fn, sizeof(#fn) - 1 } + static int scan_lisp_file (const char *filename, const char *mode) { @@ -1108,12 +1112,14 @@ scan_lisp_file (const char *filename, const char *mode) follow the conventions of the doc strings expected by this function. These conventions are automatically followed by the byte compiler when it produces the .elc files. */ - static const char *const uncompiled[] = - { - "loaddefs.el", - "loadup.el", - "charprop.el" - }; + static struct { + const char *fn; + size_t fl; + } const uncompiled[] = { + DEF_ELISP_FILE (loaddefs.el), + DEF_ELISP_FILE (loadup.el), + DEF_ELISP_FILE (charprop.el) + }; int i, match; size_t flen = strlen (filename); @@ -1124,9 +1130,10 @@ scan_lisp_file (const char *filename, const char *mode) for (i = 0, match = 0; i < sizeof (uncompiled) / sizeof (uncompiled[0]); i++) { - if (strlen (uncompiled[i]) <= flen - && !strcmp (filename + flen - strlen (uncompiled[i]), - uncompiled[i])) + if (uncompiled[i].fl <= flen + && !strcmp (filename + flen - uncompiled[i].fl, uncompiled[i].fn) + && (flen == uncompiled[i].fl + || IS_SLASH (filename[flen - uncompiled[i].fl - 1]))) { match = 1; break;