From 44a4772c023de04516ae61f0b9e75bb0c474b3f3 Mon Sep 17 00:00:00 2001 From: Mathias Dahl Date: Sat, 11 Feb 2006 22:28:44 +0000 Subject: *** empty log message *** --- man/dired.texi | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/man/dired.texi b/man/dired.texi index d391e4566f1..46162ea3a16 100644 --- a/man/dired.texi +++ b/man/dired.texi @@ -1146,6 +1146,7 @@ C-c}. @section Thumbnail and image file viewing and manipulation @cindex tumme mode + Tumme provides for simple viewing of thumbnails of image files. It provides viewing of the original file, sized or in full size, inside Emacs or in an external viewer. @@ -1159,14 +1160,14 @@ files. All images in that directory will get thumbnail files created for them, and the thumbnails will be displayed in the ``thumbnail buffer''. - Because thumbnails are created on the fly and before they can be -displayed, the above command might take a long time, especially the -first time, if the directory contains many image files. If the number -of image files is higher than -@code{tumme-show-all-from-dir-max-files}, the command will be aborted. -To work around this you can instead mark the files you want to look -at, using @kbd{m} as usual in Dired, and then type @kbd{C-t d} -(@code{tumme-display-thumbs}). + If the directory contains many image files and becayse thumbnails +are created on the fly before they can be displayed, the above command +might take a long time, especially the first time (consecutive +viewings will use the cached thumbnail files). Also, if the number of +image files is higher than @code{tumme-show-all-from-dir-max-files}, +the command will be aborted. To work around this you can instead mark +the files you want to look at, using @kbd{m} as usual in Dired, and +then type @kbd{C-t d} (@code{tumme-display-thumbs}). Regardless of which command you chose to display the thumbnails, a new buffer will open up, displaying thumbnail images of the files that -- cgit v1.2.1 From 388bf06a6e31d71b27f6d233d73f6cb6388aa7d2 Mon Sep 17 00:00:00 2001 From: Mathias Dahl Date: Sat, 11 Feb 2006 22:39:48 +0000 Subject: *** empty log message *** --- man/ChangeLog | 4 ++++ man/dired.texi | 39 +++++++++++++++++++++++---------------- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/man/ChangeLog b/man/ChangeLog index cd7700333df..fa6e236959f 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,7 @@ +2006-02-11 Mathias Dahl + + * dired.texi (Tumme): More tumme documentation. + 2006-02-11 Alan Mackenzie * programs.texi ("Hungry Delete"): Correct the appellation of the diff --git a/man/dired.texi b/man/dired.texi index 46162ea3a16..a4611fa5df9 100644 --- a/man/dired.texi +++ b/man/dired.texi @@ -1194,26 +1194,33 @@ for deletion in the dired buffer. If you just want visually to delete the thumbnail image from the thumbnail buffer, type @kbd{C-d} (@code{tumme-delete-char}). - More advanced features include commands for using ``tags'' (another -name for ``keyword'' or ``label'') to tag image files and to search -for image files with a certain tag. - - The tags put on image files are stored in a database file and can be -used for marking image files. For example, you can let Tumme mark all -files in the current directory tagged with the tag `flowers'. To tag -image files, mark them in the dired buffer and type @kbd{C-t t} -(@code{tumme-tag-files}). To mark files having a certain tag, type -@kbd{C-t f} (@code{tumme-mark-tagged-files}). - - After marking image files with a certain tag, they can be viewed as -explained earlier, by typing @key{C-t d}. + More advanced features include commands for using ``tags''. ``Tag'' +is just another word for ``keyword'', ``label'' or ``category''. In +short, it is meta data used to categorize an image file. Commands +exist to add tags for one or many image files from dired, to mark +files having a certain tag in Dired and to remove tags from files. +The tags put on image files are stored in a database file (currently a +plain text file). + + To tag image files, mark them in the dired buffer and type @kbd{C-t +t} (@code{tumme-tag-files}). You will be prompted for a tag. To mark +files having a certain tag, type @kbd{C-t f} +(@code{tumme-mark-tagged-files}). After marking image files with a +certain tag, they can be viewed as explained earlier, by typing +@key{C-t d}. + + You can also tag a file from the thumbnail buffer by typing @kbd{t +t} and remove it by typing @kbd{t r}. There is also a special ``tag'' +called ``comment'' for each file. That is used to enter a comment or +description about the image. You comment a file from the thumbnail +buffer by typing @kbd{c}. You will be prompted for a comment. Tumme also provide simple image manipulation commands, like rotating thumbnails and original image files. In the thumbnail buffer, type @kbd{L} to rotate the original image 90 degrees anti clockwise, and -@kbd{R} to rotate it 90 degrees clockwise. - - +@kbd{R} to rotate it 90 degrees clockwise. This rotation will be done +lossless (the image quality will not be reduced) and needs an external +utility called JpegTRAN to work. @node Misc Dired Features @section Other Dired Features -- cgit v1.2.1 From b27d732011eeca24655d0dcb2f39e0c6f3d53fef Mon Sep 17 00:00:00 2001 From: Mathias Dahl Date: Sat, 11 Feb 2006 23:31:23 +0000 Subject: Some small fixes. --- lisp/tumme.el | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lisp/tumme.el b/lisp/tumme.el index 8f75da24ca2..9f29f71d289 100644 --- a/lisp/tumme.el +++ b/lisp/tumme.el @@ -2308,12 +2308,11 @@ function. The result is a couple of new files in (defun tumme-write-comment (file comment) "For FILE, write comment COMMENT in database." (save-excursion - (let (end buf comment-beg - (base-name (file-name-nondirectory file))) + (let (end buf comment-beg) (setq buf (find-file tumme-db-file)) (goto-char (point-min)) (if (search-forward-regexp - (format "^%s" base-name) nil t) + (format "^%s" file) nil t) (progn (end-of-line) (setq end (point)) @@ -2336,7 +2335,7 @@ function. The result is a couple of new files in (insert (format "comment:%s;" comment))) ;; File does not exist in databse - add it. (goto-char (point-max)) - (insert (format "\n%s;comment:%s" base-name comment))) + (insert (format "\n%s;comment:%s" file comment))) (save-buffer) (kill-buffer buf)))) @@ -2417,7 +2416,7 @@ matching tags will be marked in the dired buffer." (goto-char (point-min)) ;; Collect matches (while (search-forward-regexp - (concat "\\(^[^;]+\\);.*" tag ".*$") nil t) + (concat "\\(^[^;\n]+\\);.*" tag ".*$") nil t) (setq files (append (list (match-string 1)) files))) (kill-buffer buf) ;; Mark files -- cgit v1.2.1 From c39343cac8dcc656cacd81f7197a66116b155f9d Mon Sep 17 00:00:00 2001 From: Mathias Dahl Date: Sat, 11 Feb 2006 23:35:12 +0000 Subject: *** empty log message *** --- lisp/ChangeLog | 7 +++++++ man/dired.texi | 10 +++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ddd50210928..1f52acb5b8d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2006-02-12 Mathias Dahl + + * tumme.el (tumme-write-tag): Fixed small bug. File name did not + include path. + (tumme-mark-tagged-files): Fixed bug in regexp used to find rows + matching tag. + 2006-02-12 Miles Bader * net/rcirc.el (rcirc-nick-abbrevs, rcirc-response-formats): diff --git a/man/dired.texi b/man/dired.texi index a4611fa5df9..195a77e0fd3 100644 --- a/man/dired.texi +++ b/man/dired.texi @@ -1211,9 +1211,13 @@ certain tag, they can be viewed as explained earlier, by typing You can also tag a file from the thumbnail buffer by typing @kbd{t t} and remove it by typing @kbd{t r}. There is also a special ``tag'' -called ``comment'' for each file. That is used to enter a comment or -description about the image. You comment a file from the thumbnail -buffer by typing @kbd{c}. You will be prompted for a comment. +called ``comment'' for each file (it is not a tag in the exact same +sense as the other tags, it is handled slightly different). That is +used to enter a comment or description about the image. You comment a +file from the thumbnail buffer by typing @kbd{c}. You will be +prompted for a comment. Comments can also be added from Dired, and +then also to multiple files at once, by typing @kbd{C-t c} +(@code{tumme-dired-comment-files}). Tumme also provide simple image manipulation commands, like rotating thumbnails and original image files. In the thumbnail buffer, type -- cgit v1.2.1 From f828c6fc00bac67e28840637346ddc47b5b6ee2d Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Sun, 12 Feb 2006 00:29:59 +0000 Subject: *** empty log message *** --- lisp/ChangeLog | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1f52acb5b8d..7be9ef7914d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,9 +1,9 @@ 2006-02-12 Mathias Dahl - * tumme.el (tumme-write-tag): Fixed small bug. File name did not - include path. - (tumme-mark-tagged-files): Fixed bug in regexp used to find rows - matching tag. + * tumme.el (tumme-write-tag): Fix small bug (file name did not + include path). + (tumme-mark-tagged-files): Fix bug in regexp used to find rows + matching tag. 2006-02-12 Miles Bader @@ -20,8 +20,8 @@ 2006-02-11 Mathias Dahl - * tumme.el: Enhanced some docstrings. Added todo item about - Thumbnail Managing Standard. + * tumme.el: Enhance some docstrings. Add todo item about Thumbnail + Managing Standard. 2006-02-11 Kim F. Storm @@ -61,9 +61,8 @@ 2006-02-11 Mathias Dahl - * tumme.el (tumme-dir): Changed default value to - "~/.emacs-d/tumme" - (tumme-dir): New function. Copied from thumbs.el. + * tumme.el (tumme-dir): Change default value to "~/.emacs.d/tumme/". + (tumme-dir): New function. Copied from thumbs.el. 2006-02-10 Juanma Barranquero @@ -86,12 +85,12 @@ 2006-02-10 Mathias Dahl - * tumme.el (tumme-copy-with-exif-file-name): Tried to make - docstring less `colloquial'... + * tumme.el (tumme-copy-with-exif-file-name): Try to make docstring + less `colloquial'... 2006-02-09 Mathias Dahl - * tumme.el: Added a couple of todo items. + * tumme.el: Add a couple of todo items. 2006-02-09 Lars Hansen -- cgit v1.2.1 From 9cc8d0b62e2f9cc8aa5754aafaf359fdfc28edef Mon Sep 17 00:00:00 2001 From: Miles Bader Date: Sun, 12 Feb 2006 12:02:53 +0000 Subject: Revision: emacs@sv.gnu.org/emacs--devo--0--patch-73 Creator: Michael Olson Merge from erc--emacs--0 --- lisp/erc/ChangeLog | 57 ++++++++++++++++++++++ lisp/erc/erc-dcc.el | 2 +- lisp/erc/erc-list.el | 21 ++++++++- lisp/erc/erc-match.el | 18 ------- lisp/erc/erc-menu.el | 4 +- lisp/erc/erc-spelling.el | 6 ++- lisp/erc/erc-stamp.el | 53 ++++++++++----------- lisp/erc/erc-xdcc.el | 2 +- lisp/erc/erc.el | 120 ++++++++++++++++++++++++++--------------------- 9 files changed, 177 insertions(+), 106 deletions(-) diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 50b37eb044f..6abf4021a60 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -1,3 +1,60 @@ +2006-02-11 Michael Olson + + * erc.el (erc-update-modules): Make some requirements shorter, so + that it's easier to see why they are needed. + + * erc-stamp.el (erc-timestamp-use-align-to): Renamed from + `erc-timestamp-right-align-by-pixel'. Set the default based on + whether we are in Emacs 22, and using X. Improve documentation. + (erc-insert-aligned): Remove calculation of offset, since + :align-to pos works after all. Unlike the previous solution, this + one works when erc-stamp.el is compiled. + (erc-insert-timestamp-right): Don't add length of string, and then + later remove its displayed width. This puts timestamps after + erc-fill-column when erc-timestamp-right-column is nil, rather + than before it. It also fixes a subtle bug. Remove use of + `current-window', since there is no variable by that name in + Emacs21, Emacs22, or XEmacs21 beta. Check to see whether + `erc-fill-column' is non-nil before using it. + +2006-02-11 Diane Murray + + * erc-list.el: Define `list' module which sets the alias + `erc-cmd-LIST' to `erc-list-channels' when enabled and + `erc-list-channels-simple' when disabled. + (erc-list-channels): Was `erc-cmd-LIST', renamed. + (erc-list-channels-simple): New function. + + * erc.el (erc-modules): Added `list' to enabled modules. Moved + customization options left in source code. + + * erc-menu.el (erc-menu-definition): Use `erc-list-channels'. + + * erc-spelling.el (define-erc-module): Make sure there's a buffer + before calling `with-current-buffer'. + +2006-02-10 Michael Olson + + * Makefile (debbuild): Split from debrelease. + (debrevision-mwolson): New rule that causes a Debian revision to + be built. + + * erc.el (erc-migrate-modules): Use a better algorithm. Thanks to + Johan BockgÃ¥rd. + (erc-modules): Change use of 'pcomplete to 'completion. + +2006-02-09 Diane Murray + + * erc.el (erc-get-parsed-vector, erc-get-parsed-vector-nick) + (erc-get-parsed-vector-type): Moved here from erc-match.el. + + * erc-match.el (erc-get-parsed-vector, erc-get-parsed-vector-nick) + (erc-get-parsed-vector-type): Moved these functions to erc.el + since they can be useful outside of the text matching module. + + * erc-dcc.el, erc-stamp.el, erc-xdcc.el: Changed "Emacs IRC Client" + to "ERC". + 2006-02-07 Michael Olson * ChangeLog.01, ChangeLog.02, ChangeLog.03, ChangeLog.04, diff --git a/lisp/erc/erc-dcc.el b/lisp/erc/erc-dcc.el index d5789a51708..0848b202e1c 100644 --- a/lisp/erc/erc-dcc.el +++ b/lisp/erc/erc-dcc.el @@ -29,7 +29,7 @@ ;;; Commentary: -;; This file provides Direct Client-to-Client support for the Emacs IRC Client. +;; This file provides Direct Client-to-Client support for ERC. ;; ;; The original code was taken from zenirc-dcc.el, heavily mangled and ;; rewritten to support the way how ERC operates. Server socket support diff --git a/lisp/erc/erc-list.el b/lisp/erc/erc-list.el index 9bc561523d9..2243a2f4985 100644 --- a/lisp/erc/erc-list.el +++ b/lisp/erc/erc-list.el @@ -140,12 +140,19 @@ display the channel list." (setq truncate-lines t) (add-hook 'post-command-hook 'erc-chanlist-post-command-hook 'append 'local)) +;; Define module: +;;;###autoload (autoload 'erc-list-mode "erc-list") +(define-erc-module list nil + "List channels nicely in a separate buffer." + ((defalias 'erc-cmd-LIST 'erc-list-channels)) + ((defalias 'erc-cmd-LIST 'erc-list-channels-simple))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Functions. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;###autoload -(defun erc-cmd-LIST (&rest channel) +(defun erc-list-channels (&rest channel) "Display a buffer containing a list of channels on the current server. Optional argument CHANNEL specifies a single channel to list (instead of every available channel)." @@ -163,6 +170,18 @@ available channel)." (erc-chanlist channel)) t) +(defun erc-list-channels-simple (&optional line) + "Send the LIST command to the current server with optional channels LINE." + (when (string-match "^\\s-*\\(.*\\)$" line) + (let ((channels (match-string 1 line))) + (erc-log (format "cmd: LIST: %s" channels)) + (erc-server-send + (if (string= channels "") + "LIST" + (concat "LIST :" channels)))) + t)) +(put 'erc-list-channels-simple 'do-not-parse-args t) + ;;;###autoload (defun erc-chanlist (&optional channels) "Show a channel listing of the current server in a special mode. diff --git a/lisp/erc/erc-match.el b/lisp/erc/erc-match.el index a5e3bf88ccf..ad875ceee99 100644 --- a/lisp/erc/erc-match.el +++ b/lisp/erc/erc-match.el @@ -428,24 +428,6 @@ In any of the following situations, MSG is directed at an entry FOOL: (or (erc-list-match fools-beg msg) (erc-list-match fools-end msg)))) -(defun erc-get-parsed-vector (point) - "Return the whole parsed vector on POINT." - (get-text-property point 'erc-parsed)) - -(defun erc-get-parsed-vector-nick (vect) - "Return nickname in the parsed vector VECT." - (let* ((untreated-nick (and vect (erc-response.sender vect))) - (maybe-nick (when untreated-nick - (car (split-string untreated-nick "!"))))) - (when (and (not (null maybe-nick)) - (erc-is-valid-nick-p maybe-nick)) - untreated-nick))) - -(defun erc-get-parsed-vector-type (vect) - "Return message type in the parsed vector VECT." - (and vect - (erc-response.command vect))) - (defun erc-match-message () "Mark certain keywords in a region. Use this defun with `erc-insert-modify-hook'." diff --git a/lisp/erc/erc-menu.el b/lisp/erc/erc-menu.el index 8e1f81adf75..36c28b740f2 100644 --- a/lisp/erc/erc-menu.el +++ b/lisp/erc/erc-menu.el @@ -36,8 +36,8 @@ ["Connect to server..." erc-select t] ["Disconnect from server..." erc-quit-server erc-server-connected] "-" - ["List channels..." erc-cmd-LIST - (and erc-server-connected (fboundp 'erc-cmd-LIST))] + ["List channels..." erc-list-channels + (and erc-server-connected (fboundp 'erc-list-channels))] ["Join channel..." erc-join-channel erc-server-connected] ["Start a query..." erc-cmd-QUERY erc-server-connected] "-" diff --git a/lisp/erc/erc-spelling.el b/lisp/erc/erc-spelling.el index 41e342c0e50..528668f4829 100644 --- a/lisp/erc/erc-spelling.el +++ b/lisp/erc/erc-spelling.el @@ -41,11 +41,13 @@ ;; called AFTER the server buffer is initialized. ((add-hook 'erc-connect-pre-hook 'erc-spelling-init) (mapc (lambda (buffer) - (with-current-buffer buffer (erc-spelling-init))) + (when buffer + (with-current-buffer buffer (erc-spelling-init)))) (erc-buffer-list))) ((remove-hook 'erc-connect-pre-hook 'erc-spelling-init) (mapc (lambda (buffer) - (with-current-buffer buffer (flyspell-mode 0))) + (when buffer + (with-current-buffer buffer (flyspell-mode 0)))) (erc-buffer-list)))) (defcustom erc-spelling-dictionaries nil diff --git a/lisp/erc/erc-stamp.el b/lisp/erc/erc-stamp.el index ead847ff73f..e5d4250d142 100644 --- a/lisp/erc/erc-stamp.el +++ b/lisp/erc/erc-stamp.el @@ -1,4 +1,4 @@ -;;; erc-stamp.el --- Timestamping for Emacs IRC CLient +;;; erc-stamp.el --- Timestamping for ERC messages ;; Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc. @@ -180,11 +180,17 @@ the correct column." (integer :tag "Column number") (const :tag "Unspecified" nil))) -(defcustom erc-timestamp-right-align-by-pixel nil - "*If non-nil, insert the right timestamp based on a pixel value. -This is needed when variable-width text precedes a timestamp. +(defcustom erc-timestamp-use-align-to (and (not (featurep 'xemacs)) + (>= emacs-major-version 22) + (eq window-system 'x)) + "*If non-nil, use the :align-to display property to align the stamp. +This gives better results when variable-width characters (like +Asian language characters and math symbols) precede a timestamp. Unfortunately, it only works in Emacs 22 and when using the X -Window System." +Window System. + +A side effect of enabling this is that there will only be one +space before a right timestamp in any saved logs." :group 'erc-stamp :type 'boolean) @@ -200,18 +206,15 @@ Window System." (insert s))) (defun erc-insert-aligned (string pos) - "Insert STRING based on a fraction of the width of the buffer. -Fraction is roughly (/ POS (window-width)). + "Insert STRING at the POSth column. -If `erc-timestamp-right-align-by-pixel' is nil, insert STRING at the -POSth column, without using pixel coordinates." - (if (not erc-timestamp-right-align-by-pixel) +If `erc-timestamp-use-align-to' is t, use the :align-to display +property to get to the POSth column." + (if (not erc-timestamp-use-align-to) (indent-to pos) (insert " ") - (let ((offset (floor (* (/ (1- pos) (window-width) 1.0) - (nth 2 (window-inside-pixel-edges)))))) - (put-text-property (1- (point)) (point) 'display - `(space :align-to (,offset))))) + (put-text-property (1- (point)) (point) 'display + (list 'space ':align-to pos))) (insert string)) (defun erc-insert-timestamp-right (string) @@ -238,30 +241,26 @@ be printed just before the window-width." (forward-char -1);; before the last newline (let* ((current-window (get-buffer-window (current-buffer))) (pos (cond - (erc-timestamp-right-column - (+ erc-timestamp-right-column (length string))) + (erc-timestamp-right-column erc-timestamp-right-column) ((and (boundp 'erc-fill-mode) erc-fill-mode - (boundp 'erc-fill-column)) + (boundp 'erc-fill-column) + erc-fill-column) (1+ erc-fill-column)) - (current-window - (- (window-width current-window) - 1)) (fill-column (1+ fill-column)) (t (- (window-width) + (string-width string) 1)))) (from (point)) (col (current-column)) indent) - ;; deal with variable-width characters - (setq pos (- pos (string-width string)) - ;; The following is a kludge that works with most - ;; international input. It is now only used to calculate - ;; whether to move to the next line before inserting a - ;; stamp. - col (+ col (ceiling (/ (- col (- (point) (point-at-bol))) 1.6)))) + ;; The following is a kludge used to calculate whether to move + ;; to the next line before inserting a stamp. It allows for + ;; some margin of error if what is displayed on the line differs + ;; from the number of characters on the line. + (setq col (+ col (ceiling (/ (- col (- (point) (point-at-bol))) 1.6)))) (if (< col pos) (erc-insert-aligned string pos) (newline) diff --git a/lisp/erc/erc-xdcc.el b/lisp/erc/erc-xdcc.el index 7c8ee6fff62..84562e72c2c 100644 --- a/lisp/erc/erc-xdcc.el +++ b/lisp/erc/erc-xdcc.el @@ -24,7 +24,7 @@ ;;; Commentary: -;; This file provides a very simple XDCC file server for the Emacs IRC Client. +;; This file provides a very simple XDCC file server for ERC. ;;; Code: diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index 936fffa252f..d444ab2af0f 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -1719,22 +1719,15 @@ all channel buffers on all servers." (defun erc-migrate-modules (mods) "Migrate old names of ERC modules to new ones." ;; modify `transforms' to specify what needs to be changed - ;; each item is in the format '(new .old) - (let ((transforms '((pcomplete . completion))) - (modules (copy-alist mods))) - (dolist (transform transforms) - (let ((addp nil)) - (setq modules (erc-delete-if `(lambda (val) - (and (eq val ',(car transform)) - (setq addition t))) - modules)) - (when addp - (add-to-list 'modules (cdr transform))))) - (erc-delete-dups modules))) - -(defcustom erc-modules '(netsplit fill button match track pcomplete readonly + ;; each item is in the format '(old . new) + (let ((transforms '((pcomplete . completion)))) + (erc-delete-dups + (mapcar (lambda (m) (or (cdr (assoc m transforms)) m)) + mods)))) + +(defcustom erc-modules '(netsplit fill button match track completion readonly ring autojoin noncommands irccontrols - stamp) + stamp list) "A list of modules which erc should enable. If you set the value of this without using `customize' remember to call \(erc-update-modules) after you change it. When using `customize', modules @@ -1755,40 +1748,42 @@ removed from the list will be disabled." ;; this test is for the case where erc hasn't been loaded yet (when (fboundp 'erc-update-modules) (erc-update-modules))) - :type '(set :greedy t - (const :tag "Set away status automatically" autoaway) - (const :tag "Join channels automatically" autojoin) - (const :tag "Integrate with Big Brother Database" bbdb) - (const :tag "Buttonize URLs, nicknames, and other text" button) - (const :tag "Wrap long lines" fill) - (const :tag "Highlight or remove IRC control characters" - irccontrols) - (const :tag "Save buffers in logs" log) - (const :tag "Highlight pals, fools, and other keywords" match) - (const :tag "Detect netsplits" netsplit) - (const :tag "Don't display non-IRC commands after evaluation" - noncommands) - (const :tag - "Notify when the online status of certain users changes" - notify) - (const :tag "Complete nicknames and commands (programmable)" - completion) - (const :tag "Complete nicknames and commands (old)" hecomplete) - (const :tag "Make displayed lines read-only" readonly) - (const :tag "Replace text in messages" replace) - (const :tag "Enable an input history" ring) - (const :tag "Scroll to the bottom of the buffer" scrolltobottom) - (const :tag "Identify to Nickserv (IRC Services) automatically" - services) - (const :tag "Convert smileys to pretty icons" smiley) - (const :tag "Play sounds when you receive CTCP SOUND requests" - sound) - (const :tag "Add timestamps to messages" stamp) - (const :tag "Check spelling" spelling) - (const :tag "Track channel activity in the mode-line" track) - (const :tag "Truncate buffers to a certain size" truncate) - (const :tag "Translate morse code in messages" unmorse) - (repeat :tag "Others" :inline t symbol)) + :type + '(set + :greedy t + (const :tag "Set away status automatically" autoaway) + (const :tag "Join channels automatically" autojoin) + (const :tag "Integrate with Big Brother Database" bbdb) + (const :tag "Buttonize URLs, nicknames, and other text" button) + (const :tag "Wrap long lines" fill) + (const :tag "Highlight or remove IRC control characters" + irccontrols) + (const :tag "Save buffers in logs" log) + (const :tag "Highlight pals, fools, and other keywords" match) + (const :tag "Detect netsplits" netsplit) + (const :tag "Don't display non-IRC commands after evaluation" + noncommands) + (const :tag + "Notify when the online status of certain users changes" + notify) + (const :tag "Complete nicknames and commands (programmable)" + completion) + (const :tag "Complete nicknames and commands (old)" hecomplete) + (const :tag "Make displayed lines read-only" readonly) + (const :tag "Replace text in messages" replace) + (const :tag "Enable an input history" ring) + (const :tag "Scroll to the bottom of the buffer" scrolltobottom) + (const :tag "Identify to Nickserv (IRC Services) automatically" + services) + (const :tag "Convert smileys to pretty icons" smiley) + (const :tag "Play sounds when you receive CTCP SOUND requests" + sound) + (const :tag "Add timestamps to messages" stamp) + (const :tag "Check spelling" spelling) + (const :tag "Track channel activity in the mode-line" track) + (const :tag "Truncate buffers to a certain size" truncate) + (const :tag "Translate morse code in messages" unmorse) + (repeat :tag "Others" :inline t symbol)) :group 'erc) (defun erc-update-modules () @@ -1799,14 +1794,11 @@ removed from the list will be disabled." (cond ;; yuck. perhaps we should bring the filenames into sync? ((string= req "erc-completion") - (setq req "erc-pcomplete") - (setq mod 'completion)) + (setq req "erc-pcomplete")) ((string= req "erc-pcomplete") - (setq req "erc-pcomplete") (setq mod 'completion)) ((string= req "erc-autojoin") - (setq req "erc-join") - (setq mod 'autojoin))) + (setq req "erc-join"))) (condition-case nil (require (intern req)) (error nil)) @@ -6143,6 +6135,26 @@ This function should be on `erc-kill-channel-hook'." (funcall erc-part-reason nil)) nil tgt)))) +;;; Dealing with `erc-parsed' + +(defun erc-get-parsed-vector (point) + "Return the whole parsed vector on POINT." + (get-text-property point 'erc-parsed)) + +(defun erc-get-parsed-vector-nick (vect) + "Return nickname in the parsed vector VECT." + (let* ((untreated-nick (and vect (erc-response.sender vect))) + (maybe-nick (when untreated-nick + (car (split-string untreated-nick "!"))))) + (when (and (not (null maybe-nick)) + (erc-is-valid-nick-p maybe-nick)) + untreated-nick))) + +(defun erc-get-parsed-vector-type (vect) + "Return message type in the parsed vector VECT." + (and vect + (erc-response.command vect))) + (provide 'erc) ;;; Deprecated. We might eventually stop requiring the goodies automatically. -- cgit v1.2.1 From 4736e9631e198195781a590753fcc77e2ed70e1e Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Sun, 12 Feb 2006 17:44:30 +0000 Subject: Remove todo item about Thumbnail Managing Standard. (tumme) : Change :group to `multimedia'. (tumme-thumbnail-storage): Add choice `standard' for Thumbnail Managing Standard. (tumme-cmd-create-thumbnail-options): Use %w and %h instead of %s. Fix dostring. (tumme-cmd-create-temp-image-options): Use %w and %h instead of %x and %y. Fix docstring. (tumme-cmd-pngnq-program, tumme-cmd-pngcrush-program) (tumme-cmd-create-standard-thumbnail-command): New user options. (tumme-thumb-size): Set default to 128 if tumme-thumbnail-storage is `standard'. Fix docstring. (tumme-thumb-width, tumme-thumb-height): New user options. (tumme-external-viewer): Try to find various viewers. (tumme-get-thumbnail-image): Use `create-image' instead of constructing the `image' structure. (tumme-insert-thumbnail): Use `png' if tumme-thumbnail-storage is `standard'. (tumme-thumb-name): Add file name generation for standard storage. Simplify code for other storages. (tumme-thumb-name): Use width %w and height %h instead of size %s. Add modification time %m and thumbnail-nq8 %q. Use `tumme-cmd-create-standard-thumbnail-command' if tumme-thumbnail-storage is `standard'. (tumme-dired-insert-marked-thumbs): New autoload command. (tumme-dired-after-readin-hook): New function. (tumme-line-up-dynamic): Use `tumme-thumb-width' instead of `tumme-thumb-size'. (tumme-display-image): Replace size-x %x and size-y %y with width %w and height %h. --- lisp/tumme.el | 212 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 163 insertions(+), 49 deletions(-) diff --git a/lisp/tumme.el b/lisp/tumme.el index 9f29f71d289..2e818bd4a58 100644 --- a/lisp/tumme.el +++ b/lisp/tumme.el @@ -516,9 +516,6 @@ ;; TODO ;; ==== ;; -;; * Look into supporting the Thumbnail Managing Standard, maybe as a -;; configurable option. -;; ;; * Support gallery creation when using per-directory thumbnail ;; storage. ;; @@ -579,7 +576,7 @@ (defgroup tumme nil "Use dired to browse your images as thumbnails, and more." :prefix "tumme-" - :group 'files) + :group 'multimedia) (defcustom tumme-dir "~/.emacs.d/tumme/" "*Directory where thumbnail images are stored." @@ -594,6 +591,7 @@ thumbnails are stored in a central directory. \"Per directory\" means that each thumbnail is stored in a subdirectory called \".tumme\" in the same directory where the image file is." :type '(choice :tag "How to store thumbnail files" + (const :tag "Thumbnail Managing Standard" standard) (const :tag "Use tumme-dir" use-tumme-dir) (const :tag "Per-directory" per-directory)) :group 'tumme) @@ -639,13 +637,13 @@ Used together with `tumme-cmd-create-thumbnail-options'." :group 'tumme) (defcustom tumme-cmd-create-thumbnail-options - "%p -size %sx%s \"%f\" -resize %sx%s +profile \"*\" jpeg:\"%t\"" + "%p -size %wx%h \"%f\" -resize %wx%h +profile \"*\" jpeg:\"%t\"" "*Format of command used to create thumbnail image. Available options are %p which is replaced by -`tumme-cmd-create-thumbnail-program', %s which is replaced by -`tumme-thumb-size', %f which is replaced by the file name of the -original image and %t which is replaced by the file name of the -thumbnail file." +`tumme-cmd-create-thumbnail-program', %w which is replaced by +`tumme-thumb-width', %h which is replaced by `tumme-thumb-height', +%f which is replaced by the file name of the original image and %t +which is replaced by the file name of the thumbnail file." :type 'string :group 'tumme) @@ -657,16 +655,64 @@ Used together with `tumme-cmd-create-temp-image-options'." :group 'tumme) (defcustom tumme-cmd-create-temp-image-options - "%p -size %xx%y \"%f\" -resize %xx%y +profile \"*\" jpeg:\"%t\"" + "%p -size %wx%h \"%f\" -resize %wx%h +profile \"*\" jpeg:\"%t\"" "*Format of command used to create temporary image for display window. Available options are %p which is replaced by -`tumme-cmd-create-temp-image-program', %x and %y which is replaced by -the calculated max size for x and y in the image display window, %f -which is replaced by the file name of the original image and %t which +`tumme-cmd-create-temp-image-program', %w and %h which is replaced by +the calculated max size for width and height in the image display window, +%f which is replaced by the file name of the original image and %t which is replaced by the file name of the temporary file." :type 'string :group 'tumme) +(defcustom tumme-cmd-pngnq-program (executable-find "pngnq") + "*The file name of the `pngnq' program. +It quantizes colors of PNG images down to 256 colors." + :type '(choice (const :tag "Not Set" nil) string) + :group 'tumme) + +(defcustom tumme-cmd-pngcrush-program (executable-find "pngcrush") + "*The file name of the `pngcrush' program. +It optimizes the compression of PNG images. Also it adds PNG textual chunks +with the information required by the Thumbnail Managing Standard." + :type '(choice (const :tag "Not Set" nil) string) + :group 'tumme) + +(defcustom tumme-cmd-create-standard-thumbnail-command + (concat + tumme-cmd-create-thumbnail-program " " + "-size %wx%h \"%f\" " + (unless (or tumme-cmd-pngcrush-program tumme-cmd-pngnq-program) + (concat + "-set \"Thumb::MTime\" \"%m\" " + "-set \"Thumb::URI\" \"file://%f\" " + "-set \"Description\" \"Thumbnail of file://%f\" " + "-set \"Software\" \"" (emacs-version) "\" ")) + "-thumbnail %wx%h png:\"%t\"" + (if tumme-cmd-pngnq-program + (concat + " ; " tumme-cmd-pngnq-program " -f \"%t\"" + (unless tumme-cmd-pngcrush-program + " ; mv %q %t"))) + (if tumme-cmd-pngcrush-program + (concat + (unless tumme-cmd-pngcrush-program + " ; cp %t %q") + " ; " tumme-cmd-pngcrush-program " -q " + "-text b \"Description\" \"Thumbnail of file://%f\" " + "-text b \"Software\" \"" (emacs-version) "\" " + ;; "-text b \"Thumb::Image::Height\" \"%oh\" " + ;; "-text b \"Thumb::Image::Mimetype\" \"%mime\" " + ;; "-text b \"Thumb::Image::Width\" \"%ow\" " + "-text b \"Thumb::MTime\" \"%m\" " + ;; "-text b \"Thumb::Size\" \"%b\" " + "-text b \"Thumb::URI\" \"file://%f\" " + "%q %t" + " ; rm %q"))) + "*Command to create thumbnails according to the Thumbnail Managing Standard." + :type 'string + :group 'tumme) + (defcustom tumme-cmd-rotate-thumbnail-program "mogrify" "*Executable used to rotate thumbnail. @@ -757,8 +803,19 @@ Used by `tumme-gallery-generate' to leave out \"hidden\" images." :type '(repeat string) :group 'tumme) -(defcustom tumme-thumb-size 100 - "Size of thumbnails, in pixels." +(defcustom tumme-thumb-size (if (eq 'standard tumme-thumbnail-storage) 128 100) + "Size of thumbnails, in pixels. +This is the default size for both `tumme-thumb-width' and `tumme-thumb-height'." + :type 'integer + :group 'tumme) + +(defcustom tumme-thumb-width tumme-thumb-size + "Width of thumbnails, in pixels." + :type 'integer + :group 'tumme) + +(defcustom tumme-thumb-height tumme-thumb-size + "Height of thumbnails, in pixels." :type 'integer :group 'tumme) @@ -841,7 +898,11 @@ with the comment." :type 'string :group 'tumme) -(defcustom tumme-external-viewer "qiv -t" +(defcustom tumme-external-viewer + ;; TODO: use mailcap, dired-guess-shell-alist-default, dired-view-command-alist + (cond ((executable-find "display")) + ((executable-find "xli")) + ((executable-find "qiv") "qiv -t")) "*Name of external viewer. Including parameters. Used when displaying original image from `tumme-thumbnail-mode'." @@ -888,8 +949,11 @@ Create the thumbnails directory if it does not exist." (<= (float-time (nth 5 (file-attributes file))) (float-time (nth 5 (file-attributes thumb-file))))) (tumme-create-thumb file thumb-file)) - (list 'image :type 'jpeg :file thumb-file - :relief tumme-thumb-relief :margin tumme-thumb-margin))) + (create-image thumb-file) +;; (list 'image :type 'jpeg +;; :file thumb-file +;; :relief tumme-thumb-relief :margin tumme-thumb-margin) + )) (defun tumme-insert-thumbnail (file original-file-name associated-dired-buffer) @@ -898,7 +962,9 @@ Add text properties ORIGINAL-FILE-NAME and ASSOCIATED-DIRED-BUFFER." (let (beg end) (setq beg (point)) (tumme-insert-image file - 'jpeg + ;; TODO: this should depend on the real file type + (if (eq 'standard tumme-thumbnail-storage) + 'png 'jpeg) tumme-thumb-relief tumme-thumb-margin) (setq end (point)) @@ -917,38 +983,52 @@ Depending on the value of `tumme-thumbnail-storage', the file name will vary. For central thumbnail file storage, make a MD5-hash of the image file's directory name and add that to make the thumbnail file name unique. For per-directory storage, just -add a subdirectory." - (let ((f (expand-file-name file)) - md5-hash) - (format "%s%s%s.thumb.%s" - (cond ((eq 'use-tumme-dir tumme-thumbnail-storage) - ;; Is MD5 hashes fast enough? The checksum of a - ;; thumbnail file name need not be that - ;; "cryptographically" good so a faster one could - ;; be used here. - (setq md5-hash (md5 (file-name-as-directory - (file-name-directory file)))) - (file-name-as-directory (expand-file-name (tumme-dir)))) - ((eq 'per-directory tumme-thumbnail-storage) - (format "%s.tumme/" - (file-name-directory f)))) - (file-name-sans-extension - (file-name-nondirectory f)) - (if md5-hash - (concat "_" md5-hash) - "") - (file-name-extension f)))) +add a subdirectory. For standard storage, produce the file name +according to the Thumbnail Managing Standard." + (cond ((eq 'standard tumme-thumbnail-storage) + (expand-file-name + (concat "~/.thumbnails/normal/" + (md5 (concat "file://" (expand-file-name file))) ".png"))) + ((eq 'use-tumme-dir tumme-thumbnail-storage) + (let* ((f (expand-file-name file)) + (md5-hash + ;; Is MD5 hashes fast enough? The checksum of a + ;; thumbnail file name need not be that + ;; "cryptographically" good so a faster one could + ;; be used here. + (md5 (file-name-as-directory (file-name-directory f))))) + (format "%s%s%s.thumb.%s" + (file-name-as-directory (expand-file-name (tumme-dir))) + (file-name-sans-extension (file-name-nondirectory f)) + (if md5-hash (concat "_" md5-hash) "") + (file-name-extension f)))) + ((eq 'per-directory tumme-thumbnail-storage) + (let ((f (expand-file-name file))) + (format "%s%s%s.thumb.%s" + (format "%s.tumme/" (file-name-directory f)) + (file-name-sans-extension (file-name-nondirectory f)) + (file-name-extension f)))))) (defun tumme-create-thumb (original-file thumbnail-file) "For ORIGINAL-FILE, create thumbnail image named THUMBNAIL-FILE." - (let* ((size (int-to-string tumme-thumb-size)) + (let* ((width (int-to-string tumme-thumb-width)) + (height (int-to-string tumme-thumb-height)) + (modif-time (format "%.0f" (float-time (nth 5 (file-attributes + original-file))))) + (thumbnail-nq8-file (replace-regexp-in-string ".png\\'" "-nq8.png" + thumbnail-file)) (command (format-spec - tumme-cmd-create-thumbnail-options + (if (eq 'standard tumme-thumbnail-storage) + tumme-cmd-create-standard-thumbnail-command + tumme-cmd-create-thumbnail-options) (list (cons ?p tumme-cmd-create-thumbnail-program) - (cons ?s size) + (cons ?w width) + (cons ?h height) + (cons ?m modif-time) (cons ?f original-file) + (cons ?q thumbnail-nq8-file) (cons ?t thumbnail-file)))) thumbnail-dir) (when (not (file-exists-p @@ -957,6 +1037,40 @@ add a subdirectory." (make-directory thumbnail-dir)) (shell-command command nil))) +;;;###autoload +(defun tumme-dired-insert-marked-thumbs () + "Insert thumbnails before file names of marked files in the dired buffer." + (interactive) + (dired-map-over-marks + (let* ((image-pos (dired-move-to-filename)) + (image-file (dired-get-filename)) + (thumb-file (tumme-get-thumbnail-image image-file)) + overlay) + ;; If image is not already added, then add it. + (unless (delq nil (mapcar (lambda (o) (overlay-get o 'put-image)) + ;; Can't use (overlays-at (point)), BUG? + (overlays-in (point) (1+ (point))))) + (put-image thumb-file image-pos) + (setq overlay (car (delq nil (mapcar (lambda (o) (and (overlay-get o 'put-image) o)) + (overlays-in (point) (1+ (point))))))) + (overlay-put overlay 'image-file image-file) + (overlay-put overlay 'thumb-file thumb-file))) + nil) + (add-hook 'dired-after-readin-hook 'tumme-dired-after-readin-hook nil t)) + +(defun tumme-dired-after-readin-hook () + "Relocate existing thumbnail overlays in dired buffer after reverting. +Move them to their corresponding files if they are still exist. +Otherwise, delete overlays." + (mapc (lambda (overlay) + (when (overlay-get overlay 'put-image) + (let* ((image-file (overlay-get overlay 'image-file)) + (image-pos (dired-goto-file image-file))) + (if image-pos + (move-overlay overlay image-pos image-pos) + (delete-overlay overlay))))) + (overlays-in (point-min) (point-max)))) + (defun tumme-next-line-and-display () "Move to next dired line and display thumbnail image." (interactive) @@ -1966,7 +2080,7 @@ Calculate how many thumbnails fit." (/ width (+ (* 2 tumme-thumb-relief) (* 2 tumme-thumb-margin) - tumme-thumb-size char-width)))) + tumme-thumb-width char-width)))) (tumme-line-up))) (defun tumme-line-up-interactive () @@ -2058,19 +2172,19 @@ systems it should feel snappy enough. If optional argument ORIGINAL-SIZE is non-nil, display image in its original size." (let ((new-file (expand-file-name tumme-temp-image-file)) - size-x size-y command ret) + width height command ret) (setq file (expand-file-name file)) (if (not original-size) (progn - (setq size-x (tumme-display-window-width)) - (setq size-y (tumme-display-window-height)) + (setq width (tumme-display-window-width)) + (setq height (tumme-display-window-height)) (setq command (format-spec tumme-cmd-create-temp-image-options (list (cons ?p tumme-cmd-create-temp-image-program) - (cons ?x size-x) - (cons ?y size-y) + (cons ?w width) + (cons ?h height) (cons ?f file) (cons ?t new-file)))) (setq ret (shell-command command nil)) -- cgit v1.2.1 From ea948bd6efab506a557588ed1292da27317c62d1 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Sun, 12 Feb 2006 17:46:11 +0000 Subject: (dired-mode-map): Bind `\C-t\C-t' to `tumme-dired-insert-marked-thumbs'. --- lisp/ChangeLog | 36 ++++++++++++++++++++++++++++++++++++ lisp/dired.el | 1 + 2 files changed, 37 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7be9ef7914d..4288df5e4a9 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,39 @@ +2006-02-12 Juri Linkov + + * tumme.el: Remove todo item about Thumbnail Managing Standard. + (tumme) : Change :group to `multimedia'. + (tumme-thumbnail-storage): Add choice `standard' for Thumbnail + Managing Standard. + (tumme-cmd-create-thumbnail-options): Use %w and %h instead of %s. + Fix dostring. + (tumme-cmd-create-temp-image-options): Use %w and %h instead of %x + and %y. Fix docstring. + (tumme-cmd-pngnq-program, tumme-cmd-pngcrush-program) + (tumme-cmd-create-standard-thumbnail-command): New user options. + (tumme-thumb-size): Set default to 128 if tumme-thumbnail-storage + is `standard'. Fix docstring. + (tumme-thumb-width, tumme-thumb-height): New user options. + (tumme-external-viewer): Try to find various viewers. + (tumme-get-thumbnail-image): Use `create-image' instead of + constructing the `image' structure. + (tumme-insert-thumbnail): Use `png' if tumme-thumbnail-storage is + `standard'. + (tumme-thumb-name): Add file name generation for standard storage. + Simplify code for other storages. + (tumme-thumb-name): Use width %w and height %h instead of size %s. + Add modification time %m and thumbnail-nq8 %q. + Use `tumme-cmd-create-standard-thumbnail-command' if + tumme-thumbnail-storage is `standard'. + (tumme-dired-insert-marked-thumbs): New autoload command. + (tumme-dired-after-readin-hook): New function. + (tumme-line-up-dynamic): Use `tumme-thumb-width' instead of + `tumme-thumb-size'. + (tumme-display-image): Replace size-x %x and size-y %y with + width %w and height %h. + + * dired.el (dired-mode-map): Bind `\C-t\C-t' to + `tumme-dired-insert-marked-thumbs'. + 2006-02-12 Mathias Dahl * tumme.el (tumme-write-tag): Fix small bug (file name did not diff --git a/lisp/dired.el b/lisp/dired.el index 8433432ff09..3bcb45e06c0 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -1258,6 +1258,7 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST." (define-key map "\C-t." 'tumme-display-thumb) (define-key map "\C-tc" 'tumme-dired-comment-files) (define-key map "\C-tf" 'tumme-mark-tagged-files) + (define-key map "\C-t\C-t" 'tumme-dired-insert-marked-thumbs) ;; Make menu bar items. -- cgit v1.2.1 From d884be122f69e64d81ceb08c5504d9034b36178f Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 12 Feb 2006 20:21:15 +0000 Subject: (Defuns): Delete duplicate explanation of left-margin paren convention. (Hungry Delete): Minor cleanup. --- man/programs.texi | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/man/programs.texi b/man/programs.texi index 6404e3466bc..643e6445fb0 100644 --- a/man/programs.texi +++ b/man/programs.texi @@ -132,19 +132,6 @@ place to set up customizations for that major mode. @xref{Hooks}. something like a function, is called a @dfn{defun}. The name comes from Lisp, but in Emacs we use it for all languages. - In many programming language modes, Emacs assumes that a defun is -any pair of parentheses (or braces, if the language uses braces this -way) that starts at the left margin. For example, in C, the body of a -function definition is a defun, usually recognized as an open-brace -that begins at the left margin@footnote{Alternatively, you can set up -C Mode to recognize a defun at an opening brace at the outermost -level. @xref{Movement Commands,,, ccmode, the CC Mode Manual}.}. A -variable's initializer can also count as a defun, if the open-brace -that begins the initializer is at the left margin. - - However, some language modes provide their own code for recognizing -defuns in a way that suits the language syntax and conventions better. - @menu * Left Margin Paren:: An open-paren or similar opening delimiter starts a defun if it is at the left margin. @@ -1573,9 +1560,9 @@ following point. As an alternative to the above commands, you can enable @dfn{hungry delete mode}. When this feature is enabled (indicated by @samp{/h} in -the mode line after the mode name), a single @key{DEL} command deletes -all preceding whitespace, not just one space, and a single @kbd{C-c -C-d} (but @emph{not} @key{DELETE}) deletes all following whitespace. +the mode line after the mode name), a single @key{DEL} deletes all +preceding whitespace, not just one space, and a single @kbd{C-c C-d} +(but @emph{not} plain @key{DELETE}) deletes all following whitespace. @table @kbd @item M-x c-toggle-hungry-state -- cgit v1.2.1 From 401b2885e6408c32f3d784c539ac1f0581b589ba Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 12 Feb 2006 20:22:05 +0000 Subject: (Cell Commands): Clarifications. --- man/text.texi | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/man/text.texi b/man/text.texi index 4fb5ee9cc1e..2b70c599b89 100644 --- a/man/text.texi +++ b/man/text.texi @@ -2575,10 +2575,10 @@ Likewise @kbd{M-x table-backward-cell} from the first cell in a table moves to the last cell. @findex table-span-cell - The command @code{table-span-cell} spans the current cell into one -of the four directions---right, left, above or below---and merges the -current cell with the adjacent cell. It does not allow directions to -which spanning does not produce a legitimate cell. + The command @code{table-span-cell} merges the current cell with the +adjacent cell in a specified direction---right, left, above or below. +You specify the direction with the minibuffer. It does not allow +merges which don't result in a legitimate cell layout. @findex table-split-cell @cindex text-based tables, split a cell @@ -2586,7 +2586,8 @@ which spanning does not produce a legitimate cell. The command @code{table-split-cell} splits the current cell vertically or horizontally. This command is a wrapper to the direction specific commands @code{table-split-cell-vertically} and -@code{table-split-cell-horizontally}. +@code{table-split-cell-horizontally}. You specify the direction with +a minibuffer argument. @findex table-split-cell-vertically The command @code{table-split-cell-vertically} splits the current -- cgit v1.2.1 From 7dbde7dd2e4a97d4beb6b6919e608d2b8092f30b Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Sun, 12 Feb 2006 20:22:28 +0000 Subject: * net/tramp.el (tramp-remote-path): Add "/usr/xpg4/bin" on top, because on Solaris a POSIX compatible "id" is needed. Reported by Magnus Henoch . --- lisp/ChangeLog | 6 ++++++ lisp/net/tramp.el | 10 ++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4288df5e4a9..64e9f7dc27c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2006-02-12 Michael Albinus + + * net/tramp.el (tramp-remote-path): Add "/usr/xpg4/bin" on top, + because on Solaris a POSIX compatible "id" is needed. Reported by + Magnus Henoch . + 2006-02-12 Juri Linkov * tumme.el: Remove todo item about Thumbnail Managing Standard. diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index afe5308a918..58f74133cd5 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -836,8 +836,10 @@ The default value is to use the same value as `tramp-rsh-end-of-line'." :type 'string) (defcustom tramp-remote-path - '("/bin" "/usr/bin" "/usr/sbin" "/usr/local/bin" "/usr/ccs/bin" - "/local/bin" "/local/freeware/bin" "/local/gnu/bin" + ;; "/usr/xpg4/bin" has been placed first, because on Solaris a POSIX + ;; compatible "id" is needed. + '("/usr/xpg4/bin" "/bin" "/usr/bin" "/usr/sbin" "/usr/local/bin" + "/usr/ccs/bin" "/local/bin" "/local/freeware/bin" "/local/gnu/bin" "/usr/freeware/bin" "/usr/pkg/bin" "/usr/contrib/bin") "*List of directories to search for executables on remote host. Please notify me about other semi-standard directories to include here. @@ -1735,7 +1737,7 @@ on the remote host.") (defvar tramp-perl-encode "%s -e ' # This script contributed by Juanma Barranquero . -# Copyright (C) 2006 Free Software Foundation, Inc. +# Copyright (C) 2002, 2006 Free Software Foundation, Inc. use strict; my %%trans = do { @@ -1777,7 +1779,7 @@ This string is passed to `format', so percent characters need to be doubled.") (defvar tramp-perl-decode "%s -e ' # This script contributed by Juanma Barranquero . -# Copyright (C) 2006 Free Software Foundation, Inc. +# Copyright (C) 2002, 2006 Free Software Foundation, Inc. use strict; my %%trans = do { -- cgit v1.2.1 From cf3a96a39dfd89cbfe8bb8e96dd89f552ea40185 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 12 Feb 2006 20:22:44 +0000 Subject: (Other GDB User Interface Buffers): Clarifications. --- man/building.texi | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/man/building.texi b/man/building.texi index e3e3b5ac5a2..4bcfbf9d7a7 100644 --- a/man/building.texi +++ b/man/building.texi @@ -976,11 +976,13 @@ for variables defined in compound statements, the default value is If the variable @code{gdb-use-inferior-io-buffer} is non-@code{nil}, the executable program that is being debugged takes its input and displays its output here. Otherwise it uses the GUD buffer for that. -To toggle the use of this buffer, do @kbd{M-x -gdb-use-inferior-io-buffer}. +To toggle whether GUD mode uses this buffer, do @kbd{M-x +gdb-use-inferior-io-buffer}. That takes effect when you next +restart the program you are debugging. -Some of the commands from shell mode are available here. @xref{Shell -Mode}. +The history and replay commands from Shell mode are available here, +as are the commands to send signals to the program you are debugging. +@xref{Shell Mode}. @item Locals Buffer The locals buffer displays the values of local variables of the @@ -990,8 +992,8 @@ Information on a frame, gdb, The GNU debugger}). Arrays and structures display their type only. With GDB 6.4 or later, move point to their name and press @key{RET}, or alternatively click @kbd{Mouse-2} there, to examine their values. With earlier versions -of GDB, move point to their type description ([struct/union] or -[array]). @xref{Watch Expressions}. +of GDB, use @kbd{Mouse-2} or @key{RET} on the type description +(@samp{[struct/union]} or @samp{[array]}). @xref{Watch Expressions}. @item Registers Buffer @findex toggle-gdb-all-registers -- cgit v1.2.1 From 92ed2bfbc0fa71a2490ddccfd60aae383c7a4aaf Mon Sep 17 00:00:00 2001 From: Miles Bader Date: Sun, 12 Feb 2006 20:25:00 +0000 Subject: Revision: emacs@sv.gnu.org/emacs--devo--0--patch-75 Creator: Michael Olson Make ERC comply with the new copyright year guidelines. --- lisp/erc/ChangeLog | 11 +++++++++++ lisp/erc/erc-autoaway.el | 2 +- lisp/erc/erc-dcc.el | 2 +- lisp/erc/erc-ezbounce.el | 2 +- lisp/erc/erc-fill.el | 2 +- lisp/erc/erc-goodies.el | 3 ++- lisp/erc/erc-hecomplete.el | 2 +- lisp/erc/erc-ibuffer.el | 2 +- lisp/erc/erc-identd.el | 2 +- lisp/erc/erc-imenu.el | 2 +- lisp/erc/erc-join.el | 2 +- lisp/erc/erc-lang.el | 2 +- lisp/erc/erc-list.el | 2 +- lisp/erc/erc-log.el | 2 +- lisp/erc/erc-match.el | 2 +- lisp/erc/erc-menu.el | 2 +- lisp/erc/erc-netsplit.el | 2 +- lisp/erc/erc-networks.el | 2 +- lisp/erc/erc-notify.el | 2 +- lisp/erc/erc-page.el | 2 +- lisp/erc/erc-pcomplete.el | 2 +- lisp/erc/erc-replace.el | 2 +- lisp/erc/erc-ring.el | 2 +- lisp/erc/erc-services.el | 2 +- lisp/erc/erc-sound.el | 2 +- lisp/erc/erc-speedbar.el | 2 +- lisp/erc/erc-spelling.el | 2 +- lisp/erc/erc-track.el | 2 +- lisp/erc/erc-truncate.el | 2 +- lisp/erc/erc-xdcc.el | 2 +- 30 files changed, 41 insertions(+), 29 deletions(-) diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 6abf4021a60..4653f4177e5 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -1,3 +1,14 @@ +2006-02-12 Michael Olson + + * erc-autoaway.el, erc-dcc.el, erc-ezbounce.el, erc-fill.el, + erc-goodies.el, erc-hecomplete.el, erc-ibuffer.el, erc-identd.el, + erc-imenu.el, erc-join.el, erc-lang.el, erc-list.el, erc-log.el, + erc-match.el, erc-menu.el, erc-netsplit.el, erc-networks.el, + erc-notify.el, erc-page.el, erc-pcomplete.el, erc-replace.el, + erc-ring.el, erc-services.el, erc-sound.el, erc-speedbar.el, + erc-spelling.el, erc-track.el, erc-truncate.el, erc-xdcc.el: Add + 2006 to copyright years, to comply with the changed guidelines. + 2006-02-11 Michael Olson * erc.el (erc-update-modules): Make some requirements shorter, so diff --git a/lisp/erc/erc-autoaway.el b/lisp/erc/erc-autoaway.el index 41c16b82cb1..56713cba8bf 100644 --- a/lisp/erc/erc-autoaway.el +++ b/lisp/erc/erc-autoaway.el @@ -1,6 +1,6 @@ ;;; erc-autoaway.el --- Provides autoaway for ERC -;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc. ;; Author: Jorgen Schaefer ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcAutoAway diff --git a/lisp/erc/erc-dcc.el b/lisp/erc/erc-dcc.el index 0848b202e1c..9b1e136ce59 100644 --- a/lisp/erc/erc-dcc.el +++ b/lisp/erc/erc-dcc.el @@ -1,6 +1,6 @@ ;;; erc-dcc.el --- CTCP DCC module for ERC -;; Copyright (C) 1993, 1994, 1995, 1998, 2002, 2003, 2004 +;; Copyright (C) 1993, 1994, 1995, 1998, 2002, 2003, 2004, 2006 ;; Free Software Foundation, Inc. ;; Author: Ben A. Mesander diff --git a/lisp/erc/erc-ezbounce.el b/lisp/erc/erc-ezbounce.el index 59e80b60b8d..48395bf1dab 100644 --- a/lisp/erc/erc-ezbounce.el +++ b/lisp/erc/erc-ezbounce.el @@ -1,6 +1,6 @@ ;;; erc-ezbounce.el --- Handle EZBounce bouncer commands -;; Copyright (C) 2002, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2004, 2006 Free Software Foundation, Inc. ;; Author: Andreas Fuchs ;; Keywords: comm diff --git a/lisp/erc/erc-fill.el b/lisp/erc/erc-fill.el index f945d838c2a..6a5f80f7fd8 100644 --- a/lisp/erc/erc-fill.el +++ b/lisp/erc/erc-fill.el @@ -1,6 +1,6 @@ ;;; erc-fill.el --- Filling IRC messages in various ways -;; Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2006 Free Software Foundation, Inc. ;; Author: Andreas Fuchs ;; Mario Lang diff --git a/lisp/erc/erc-goodies.el b/lisp/erc/erc-goodies.el index c844af55594..f6d32ee7c06 100644 --- a/lisp/erc/erc-goodies.el +++ b/lisp/erc/erc-goodies.el @@ -1,6 +1,7 @@ ;; erc-goodies.el --- Collection of ERC modules -;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation +;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 +;; Free Software Foundation, Inc. ;; Author: Jorgen Schaefer diff --git a/lisp/erc/erc-hecomplete.el b/lisp/erc/erc-hecomplete.el index 763d75c8fc7..85a81569782 100644 --- a/lisp/erc/erc-hecomplete.el +++ b/lisp/erc/erc-hecomplete.el @@ -1,6 +1,6 @@ ;;; erc-hecomplete.el --- Provides Nick name completion for ERC -;; Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2004, 2006 Free Software Foundation, Inc. ;; Author: Alex Schroeder ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcCompletion diff --git a/lisp/erc/erc-ibuffer.el b/lisp/erc/erc-ibuffer.el index a122908ed2c..7ca843d115c 100644 --- a/lisp/erc/erc-ibuffer.el +++ b/lisp/erc/erc-ibuffer.el @@ -1,6 +1,6 @@ ;;; erc-ibuffer.el --- ibuffer integration with ERC -;; Copyright (C) 2002, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2004, 2006 Free Software Foundation, Inc. ;; Author: Mario Lang ;; Keywords: comm diff --git a/lisp/erc/erc-identd.el b/lisp/erc/erc-identd.el index 5cb179c7e22..e0ccfb40497 100644 --- a/lisp/erc/erc-identd.el +++ b/lisp/erc/erc-identd.el @@ -1,6 +1,6 @@ ;;; erc-identd.el --- RFC1413 (identd authentication protocol) server -;; Copyright (C) 2003 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2006 Free Software Foundation, Inc. ;; Author: John Wiegley ;; Keywords: comm, processes diff --git a/lisp/erc/erc-imenu.el b/lisp/erc/erc-imenu.el index c64c9c04723..88de1cedf6e 100644 --- a/lisp/erc/erc-imenu.el +++ b/lisp/erc/erc-imenu.el @@ -1,6 +1,6 @@ ;;; erc-imenu.el -- Imenu support for ERC -;; Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2004, 2006 Free Software Foundation, Inc. ;; Author: Mario Lang ;; Keywords: comm diff --git a/lisp/erc/erc-join.el b/lisp/erc/erc-join.el index da41ea77374..0d2c1f98706 100644 --- a/lisp/erc/erc-join.el +++ b/lisp/erc/erc-join.el @@ -1,6 +1,6 @@ ;;; erc-join.el --- autojoin channels on connect and reconnects -;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc. ;; Author: Alex Schroeder ;; Keywords: irc diff --git a/lisp/erc/erc-lang.el b/lisp/erc/erc-lang.el index 20c89a8b0b6..04cfbe9e220 100644 --- a/lisp/erc/erc-lang.el +++ b/lisp/erc/erc-lang.el @@ -1,6 +1,6 @@ ;;; erc-lang.el --- provide the LANG command to ERC -;; Copyright (C) 2002, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2004, 2006 Free Software Foundation, Inc. ;; Author: Alex Schroeder ;; Maintainer: Alex Schroeder diff --git a/lisp/erc/erc-list.el b/lisp/erc/erc-list.el index 2243a2f4985..c041842429e 100644 --- a/lisp/erc/erc-list.el +++ b/lisp/erc/erc-list.el @@ -1,6 +1,6 @@ ;;; erc-list.el --- Provide a faster channel listing mechanism -;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. ;; Copyright (C) 2004 Brian Palmer ;; Author: Mario Lang diff --git a/lisp/erc/erc-log.el b/lisp/erc/erc-log.el index d4e6e5ad3fa..db60e5629bf 100644 --- a/lisp/erc/erc-log.el +++ b/lisp/erc/erc-log.el @@ -1,6 +1,6 @@ ;;; erc-log.el --- Logging facilities for ERC. -;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. ;; Author: Lawrence Mitchell ;; Keywords: IRC, chat, client, Internet, logging diff --git a/lisp/erc/erc-match.el b/lisp/erc/erc-match.el index ad875ceee99..88c6d4c425d 100644 --- a/lisp/erc/erc-match.el +++ b/lisp/erc/erc-match.el @@ -1,6 +1,6 @@ ;;; erc-match.el --- Highlight messages matching certain regexps -;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. ;; Author: Andreas Fuchs ;; Keywords: comm, faces diff --git a/lisp/erc/erc-menu.el b/lisp/erc/erc-menu.el index 36c28b740f2..7040a7baeee 100644 --- a/lisp/erc/erc-menu.el +++ b/lisp/erc/erc-menu.el @@ -1,6 +1,6 @@ ;; erc-menu.el -- Menu-bar definitions for ERC -;; Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2004, 2005, 2006 Free Software Foundation, Inc. ;; Author: Mario Lang ;; Keywords: comm, processes, menu diff --git a/lisp/erc/erc-netsplit.el b/lisp/erc/erc-netsplit.el index 70ec2f2fc0d..a982b5e7c7e 100644 --- a/lisp/erc/erc-netsplit.el +++ b/lisp/erc/erc-netsplit.el @@ -1,6 +1,6 @@ ;;; erc-netsplit.el --- Reduce JOIN/QUIT messages on netsplits -;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc. ;; Author: Mario Lang ;; Keywords: comm diff --git a/lisp/erc/erc-networks.el b/lisp/erc/erc-networks.el index b79a56a359c..c15f72e248f 100644 --- a/lisp/erc/erc-networks.el +++ b/lisp/erc/erc-networks.el @@ -1,6 +1,6 @@ ;;; erc-networks.el --- IRC networks -;; Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc. ;; Author: Mario Lang ;; Keywords: comm diff --git a/lisp/erc/erc-notify.el b/lisp/erc/erc-notify.el index 1d2bdbd5f45..bb1c9cdceb3 100644 --- a/lisp/erc/erc-notify.el +++ b/lisp/erc/erc-notify.el @@ -1,6 +1,6 @@ ;;; erc-notify.el --- Online status change notification -;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc. ;; Author: Mario Lang ;; Keywords: comm diff --git a/lisp/erc/erc-page.el b/lisp/erc/erc-page.el index d8e677031e3..4c6b86bd564 100644 --- a/lisp/erc/erc-page.el +++ b/lisp/erc/erc-page.el @@ -1,6 +1,6 @@ ;; erc-page.el - CTCP PAGE support for ERC -;; Copyright (C) 2002, 2004 Free Software Foundation +;; Copyright (C) 2002, 2004, 2006 Free Software Foundation ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc-pcomplete.el b/lisp/erc/erc-pcomplete.el index 110704304e2..d6d4dfdd3b3 100644 --- a/lisp/erc/erc-pcomplete.el +++ b/lisp/erc/erc-pcomplete.el @@ -1,6 +1,6 @@ ;;; erc-pcomplete.el --- Provides programmable completion for ERC -;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc. ;; Author: Sacha Chua ;; Keywords: comm, convenience diff --git a/lisp/erc/erc-replace.el b/lisp/erc/erc-replace.el index 07e8cd16138..06d3ca77f06 100644 --- a/lisp/erc/erc-replace.el +++ b/lisp/erc/erc-replace.el @@ -1,6 +1,6 @@ ;; erc-replace.el -- wash and massage messages inserted into the buffer -;; Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2004, 2006 Free Software Foundation, Inc. ;; Author: Andreas Fuchs ;; Maintainer: Mario Lang (mlang@delysid.org) diff --git a/lisp/erc/erc-ring.el b/lisp/erc/erc-ring.el index cabb8e2905f..87707e65faa 100644 --- a/lisp/erc/erc-ring.el +++ b/lisp/erc/erc-ring.el @@ -1,6 +1,6 @@ ;; erc-ring.el -- Command history handling for erc using ring.el -;; Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2006 Free Software Foundation, Inc. ;; Author: Alex Schroeder ;; Keywords: comm diff --git a/lisp/erc/erc-services.el b/lisp/erc/erc-services.el index 676948752fd..c8bac7fe45c 100644 --- a/lisp/erc/erc-services.el +++ b/lisp/erc/erc-services.el @@ -1,6 +1,6 @@ ;;; erc-services.el --- Identify to NickServ -;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc-sound.el b/lisp/erc/erc-sound.el index c5b0f8177f2..bbcddafc231 100644 --- a/lisp/erc/erc-sound.el +++ b/lisp/erc/erc-sound.el @@ -1,6 +1,6 @@ ;;; erc-sound.el --- CTCP SOUND support for ERC -;; Copyright (C) 2002, 2003 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc-speedbar.el b/lisp/erc/erc-speedbar.el index 254d7fc5781..55e24782f77 100644 --- a/lisp/erc/erc-speedbar.el +++ b/lisp/erc/erc-speedbar.el @@ -1,6 +1,6 @@ ;;; erc-speedbar.el --- Speedbar support for ERC -;; Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2006 Free Software Foundation, Inc. ;; Author: Mario Lang ;; Contributor: Eric M. Ludlam diff --git a/lisp/erc/erc-spelling.el b/lisp/erc/erc-spelling.el index 528668f4829..3cbc786274d 100644 --- a/lisp/erc/erc-spelling.el +++ b/lisp/erc/erc-spelling.el @@ -1,6 +1,6 @@ ;;; erc-spelling.el --- use flyspell in ERC -;; Copyright (C) 2005, 2006 Free Software Foundation, Inc. +;; Copyright (C) 2005, 2006 Free Software Foundation, Inc. ;; Author: Jorgen Schaefer ;; Keywords: irc diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el index 6d760d75ba2..63005678613 100644 --- a/lisp/erc/erc-track.el +++ b/lisp/erc/erc-track.el @@ -1,6 +1,6 @@ ;;; erc-track.el --- Track modified channel buffers -;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. ;; Author: Mario Lang ;; Keywords: comm, faces diff --git a/lisp/erc/erc-truncate.el b/lisp/erc/erc-truncate.el index 49cd20d759c..7a1feaaedd2 100644 --- a/lisp/erc/erc-truncate.el +++ b/lisp/erc/erc-truncate.el @@ -1,6 +1,6 @@ ;;; erc-truncate.el --- Functions for truncating ERC buffers -;; Copyright (C) 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc. ;; Author: Andreas Fuchs ;; Keywords: IRC, chat, client, Internet, logging diff --git a/lisp/erc/erc-xdcc.el b/lisp/erc/erc-xdcc.el index 84562e72c2c..d00dfc5e1a0 100644 --- a/lisp/erc/erc-xdcc.el +++ b/lisp/erc/erc-xdcc.el @@ -1,6 +1,6 @@ ;;; erc-xdcc.el --- XDCC file-server support for ERC -;; Copyright (C) 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc. ;; Author: Mario Lang ;; Keywords: comm, processes -- cgit v1.2.1 From 2f15c7c3f118d6bf052d84fe7d23fe4c4c7ec0bf Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 12 Feb 2006 20:26:40 +0000 Subject: (Maintaining): Change title; clarify topic. Delete duplicate index entries. --- man/maintaining.texi | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/man/maintaining.texi b/man/maintaining.texi index 66a235ae119..b3ff4b8dce9 100644 --- a/man/maintaining.texi +++ b/man/maintaining.texi @@ -3,14 +3,11 @@ @c 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Maintaining, Abbrevs, Building, Top -@chapter Maintaining Programs -@cindex Lisp editing -@cindex C editing -@cindex program editing - - This chapter describes Emacs features for maintaining programs. The -version control features (@pxref{Version Control}) are also particularly -useful for this purpose. +@chapter Maintaining Large Programs + + This chapter describes Emacs features for maintaining large +programs. The version control features (@pxref{Version Control}) are +also particularly useful for this purpose. @menu * Change Log:: Maintaining a change history for your program. -- cgit v1.2.1 From a6f0d581bf500eb6b2162d260d828f8f140b8cfd Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 12 Feb 2006 20:27:00 +0000 Subject: (Building): Clarify topic in intro. --- man/building.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/building.texi b/man/building.texi index 4bcfbf9d7a7..f621706fbbe 100644 --- a/man/building.texi +++ b/man/building.texi @@ -10,7 +10,7 @@ The previous chapter discusses the Emacs commands that are useful for making changes in programs. This chapter deals with commands that assist -in the larger process of developing and maintaining programs. +in the larger process of compiling and testing programs. @menu * Compilation:: Compiling programs in languages other -- cgit v1.2.1 From 79657d524c324baad0c74362e1f06bce364588d4 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 12 Feb 2006 20:27:51 +0000 Subject: (ebrowse-global-prefix-key): Change to C-c C-m. --- lisp/progmodes/ebrowse.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el index d9060a318e5..3c328697a20 100644 --- a/lisp/progmodes/ebrowse.el +++ b/lisp/progmodes/ebrowse.el @@ -4236,7 +4236,7 @@ NUMBER-OF-STATIC-VARIABLES:" "*Keymap for Ebrowse commands.") -(defvar ebrowse-global-prefix-key "\C-cb" +(defvar ebrowse-global-prefix-key "\C-cC-m" "Prefix key for Ebrowse commands.") -- cgit v1.2.1 From 9012c084ef3009a99c5bac01b0169202f54e66b0 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 12 Feb 2006 20:29:57 +0000 Subject: (Info-mode): Doc fix. --- lisp/info.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/info.el b/lisp/info.el index fa1e3060c10..96cbb218e96 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -3352,7 +3352,7 @@ Advanced commands: \\[Info-search-case-sensitively] Search through this Info file for specified regexp case-sensitively. \\[Info-search-next] Search for another occurrence of regexp from a previous \\\\[Info-search] command. -\\[Info-index] Look up a topic in this manual's Index and move to that index entry. +\\[Info-index] Search for a topic in this manual's Index and go to index entry. \\[Info-index-next] (comma) Move to the next match from a previous \\\\[Info-index] command. \\[info-apropos] Look for a string in the indices of all manuals. \\[Info-goto-node] Move to node specified by name. -- cgit v1.2.1 From a52152f859dbf91fe1890d62a626844b18aaf45e Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 12 Feb 2006 20:30:28 +0000 Subject: (magic-mode-alist): Don't use `\\s ' in regexps. --- lisp/files.el | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lisp/files.el b/lisp/files.el index 59a032759e4..16229cfda1c 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -2024,18 +2024,19 @@ associated with that interpreter in `interpreter-mode-alist'.") (defvar magic-mode-alist `(;; The < comes before the groups (but the first) to reduce backtracking. ;; TODO: UTF-16 \\s *<\\)"))) - (concat "\\(?:<\\?xml\\s +[^>]*>\\)?\\s *<" + (comment-re (concat "\\(?:!--" incomment-re "*-->[ \t\n]*<\\)"))) + (concat "\\(?:<\\?xml[ \t\n]+[^>]*>\\)?[ \t\n]*<" comment-re "*" - "\\(?:!DOCTYPE\\s +[^>]*>\\s *<\\s *" comment-re "*\\)?" + "\\(?:!DOCTYPE[ \t\n]+[^>]*>[ \t\n]*<[ \t\n]*" comment-re "*\\)?" "[Hh][Tt][Mm][Ll]")) . html-mode) ;; These two must come after html, because they are more general: ("<\\?xml " . xml-mode) (,(let* ((incomment-re "\\(?:[^-]\\|-[^-]\\)") - (comment-re (concat "\\(?:!--" incomment-re "*-->\\s *<\\)"))) - (concat "\\s *<" comment-re "*!DOCTYPE ")) + (comment-re (concat "\\(?:!--" incomment-re "*-->[ \t\n]*<\\)"))) + (concat "[ \t\n]*<" comment-re "*!DOCTYPE ")) . sgml-mode) ("%![^V]" . ps-mode) ("# xmcd " . conf-unix-mode)) -- cgit v1.2.1 From 516bf0ee5fb911aa0a3578e72407f975b35814b3 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 12 Feb 2006 20:30:49 +0000 Subject: Comment changes. --- lisp/ffap.el | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lisp/ffap.el b/lisp/ffap.el index d487c4f67a0..1b6665d16d5 100644 --- a/lisp/ffap.el +++ b/lisp/ffap.el @@ -287,9 +287,9 @@ For a fancy alternative, get `ffap-url.el'." ;;; Compatibility: ;; -;; This version of ffap supports Emacs 20 only, see the ftp site -;; for a more general version. The following functions are necessary -;; "leftovers" from the more general version. +;; This version of ffap supports only the Emacs it is distributed in. +;; See the ftp site for a more general version. The following +;; functions are necessary "leftovers" from the more general version. (defun ffap-mouse-event nil ; current mouse event, or nil (and (listp last-nonmenu-event) last-nonmenu-event)) @@ -730,7 +730,7 @@ kpathsea, a library used by some versions of TeX." path))) (defun ffap-locate-file (file &optional nosuffix path dir-ok) - ;; The Emacs 20 version of locate-library could almost replace this, + ;; The current version of locate-library could almost replace this, ;; except it does not let us override the suffix list. The ;; compression-suffixes search moved to ffap-file-exists-string. "A generic path-searching function, mimics `load' by default. -- cgit v1.2.1 From ab6b3b16554446c48e0a188550087c5082910ff5 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 12 Feb 2006 20:31:12 +0000 Subject: (blink-matching-paren-dont-ignore-comments): Doc fix. --- lisp/simple.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lisp/simple.el b/lisp/simple.el index 58b0ba2de57..685e6f2788b 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -4336,7 +4336,9 @@ If nil, search stops at the beginning of the accessible portion of the buffer." :group 'paren-blinking) (defcustom blink-matching-paren-dont-ignore-comments nil - "*Non-nil means `blink-matching-paren' will not ignore comments." + "*nil means `blink-matching-paren' ignores comments. +More precisely, when looking for the matching parenthesis, +it skips the contents of comments that end before point." :type 'boolean :group 'paren-blinking) -- cgit v1.2.1 From fda11e854d44ee2aff8b154ceb5bfe3dfee8769e Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 12 Feb 2006 20:32:18 +0000 Subject: (substitute-key-definition): Doc fix. --- lisp/subr.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lisp/subr.el b/lisp/subr.el index 9f6ad65bb4c..298a1d7c92f 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -561,7 +561,8 @@ In other words, OLDDEF is replaced with NEWDEF where ever it appears. Alternatively, if optional fourth argument OLDMAP is specified, we redefine in KEYMAP as NEWDEF those keys which are defined as OLDDEF in OLDMAP. -For most uses, it is simpler and safer to use command remapping like this: +If you don't specify OLDMAP, you can usually get the same results +in a cleaner way with command remapping, like this: \(define-key KEYMAP [remap OLDDEF] NEWDEF)" ;; Don't document PREFIX in the doc string because we don't want to ;; advertise it. It's meant for recursive calls only. Here's its -- cgit v1.2.1 From 0283e3398ee9dd368f35ba5b86c46222d72d4aef Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 12 Feb 2006 20:32:51 +0000 Subject: *** empty log message *** --- lisp/ChangeLog | 12 ++++++++++++ man/ChangeLog | 15 +++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 64e9f7dc27c..f95fec6bab4 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,15 @@ +2006-02-12 Richard M. Stallman + + * subr.el (substitute-key-definition): Doc fix. + + * simple.el (blink-matching-paren-dont-ignore-comments): Doc fix. + + * files.el (magic-mode-alist): Don't use `\\s ' in regexps. + + * info.el (Info-mode): Doc fix. + + * progmodes/ebrowse.el (ebrowse-global-prefix-key): Change to C-c C-m. + 2006-02-12 Michael Albinus * net/tramp.el (tramp-remote-path): Add "/usr/xpg4/bin" on top, diff --git a/man/ChangeLog b/man/ChangeLog index fa6e236959f..a59feddc41a 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,18 @@ +2006-02-12 Richard M. Stallman + + * building.texi (Building): Clarify topic in intro. + + * maintaining.texi (Maintaining): Change title; clarify topic. + Delete duplicate index entries. + + * building.texi (Other GDB User Interface Buffers): Clarifications. + + * text.texi (Cell Commands): Clarifications. + + * programs.texi (Defuns): Delete duplicate explanation of + left-margin paren convention. + (Hungry Delete): Minor cleanup. + 2006-02-11 Mathias Dahl * dired.texi (Tumme): More tumme documentation. -- cgit v1.2.1 From fb45347378e68faf855055d50dd2c82d9fa62f55 Mon Sep 17 00:00:00 2001 From: Mathias Dahl Date: Sun, 12 Feb 2006 22:14:53 +0000 Subject: *** empty log message *** --- lisp/ChangeLog | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f95fec6bab4..ecebfc5db38 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2006-02-12 Mathias Dahl + + * tumme.el (tumme-thumbnail-storage): Updated docstring. Added + info about the Thumbnail Managing Standard option. + 2006-02-12 Richard M. Stallman * subr.el (substitute-key-definition): Doc fix. -- cgit v1.2.1 From d51e86cc3e28ca3a07c76931ab1f775d7e0274ac Mon Sep 17 00:00:00 2001 From: Mathias Dahl Date: Sun, 12 Feb 2006 22:15:05 +0000 Subject: (tumme-thumbnail-storage): Updated docstring. Added info about the Thumbnail Managing Standard option. --- lisp/tumme.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lisp/tumme.el b/lisp/tumme.el index 2e818bd4a58..31fb2904714 100644 --- a/lisp/tumme.el +++ b/lisp/tumme.el @@ -589,7 +589,10 @@ Tumme can store thumbnail files in one of two ways and this is controlled by this variable. \"Use tumme dir\" means that the thumbnails are stored in a central directory. \"Per directory\" means that each thumbnail is stored in a subdirectory called -\".tumme\" in the same directory where the image file is." +\".tumme\" in the same directory where the image file is. +\"Thumbnail Managing Standard\" means that the thumbnails are +stored and generated according to the Thumbnail Managing +Standard." :type '(choice :tag "How to store thumbnail files" (const :tag "Thumbnail Managing Standard" standard) (const :tag "Use tumme-dir" use-tumme-dir) -- cgit v1.2.1 From 98da60f733aac7cfc1ebe73de4c7e84a56809f52 Mon Sep 17 00:00:00 2001 From: Mathias Dahl Date: Sun, 12 Feb 2006 23:44:37 +0000 Subject: *** empty log message *** --- lisp/ChangeLog | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ecebfc5db38..efe387f786f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2006-02-13 Mathias Dahl + + * tumme.el: Removed history section. If someone needs the it, it + can always be found in CVS. + 2006-02-12 Mathias Dahl * tumme.el (tumme-thumbnail-storage): Updated docstring. Added -- cgit v1.2.1 From f491d78ad85386dc22e2b1ab7507139aa4bb8eaa Mon Sep 17 00:00:00 2001 From: Mathias Dahl Date: Sun, 12 Feb 2006 23:44:53 +0000 Subject: Removed history section. If someone needs it, it can always be found in CVS. --- lisp/tumme.el | 378 ---------------------------------------------------------- 1 file changed, 378 deletions(-) diff --git a/lisp/tumme.el b/lisp/tumme.el index 31fb2904714..3ccffbc4386 100644 --- a/lisp/tumme.el +++ b/lisp/tumme.el @@ -135,384 +135,6 @@ ;; backup of `tumme-db-file' when testing new versions. ;; ;; -;;; History: -;; ======== -;; -;; Version 0.1, 2005-04-16 -;; -;; * First release, only browsing support for now. -;; -;; Version 0.2, 2005-04-21 -;; -;; * Changed calls to dired-filename-at-point to dired-get-filename -;; -;; Version 0.3, 2005-04-25 -;; -;; Quite a lot of changes: -;; -;; * Added basic image tagging support. No commands that make use of -;; it yet. -;; -;; * Added text properties for the thumbnail images to be able to -;; track where they came from originally. Used in `tumme-mode'. -;; -;; * Added `tumme-mode' to be used when navigating the thumbnail -;; buffer. Currently, there are commands to mark, unmark, flag and -;; jump to the original file in associated dired buffer. -;; -;; * When moving around in the thumbnail buffer (in `tumme-mode'), the -;; user can turn on tracking of the movements and let them be -;; mirrored in the associated dired buffer. -;; -;; * In this version I have been looking at some ideas in thumbs.el, -;; for example the image margin and relief and the `thumbs-mode' -;; which I copied and made the `tumme-mode' from. -;; -;; Version 0.4, 2005-05-02 -;; -;; * Renamed the functions that are to be used in `tumme-mode' in the -;; thumbnail buffer. -;; -;; * The mark, unmark and flag commands in `tumme-mode' now also moves -;; to next thumbnail, like how dired normally works. -;; -;; * Added `tumme-mode-line-up', `tumme-display-thumbs-append' and -;; `tumme-mode-delete-char'. -;; -;; * Each thumbnail's tags is now displayed when navigating among the -;; thumbnails in the thumbnail buffer. -;; -;; * Added simple slideshow functionality. -;; -;; Version 0.4.1, 2005-05-05 -;; -;; * Fixed bug in `tumme-flag-thumb-original-file' -;; -;; * Added commands to display original image in external viewer -;; (`tumme-display-external') and in a Emacs buffer -;; (`tumme-display-image'). -;; -;; * Minor code clean-up -;; -;; * Renamed some functions back again... -;; -;; * Added rotation of thumbnail images (90 degrees left and right) -;; -;; Version 0.4.2, 2005-05-06 -;; -;; * Removed need for `tumme-display-image-size' in -;; `tumme-display-image'. Now, the maximum image size that fits in -;; `tumme-display-buffer' is calculated automatically. Introduced -;; two correction variables, `tumme-display-window-width-correction' -;; and `tumme-display-window-height-correction' to be used to -;; correct width and height depending on width and height of window -;; decorations, fringes etc. This works really well! -;; -;; Version 0.4.3, 2005-05-07 -;; -;; * Added menus to `dired-mode' and `tumme-mode' -;; -;; * Added `tumme-mark-and-display-next' -;; -;; * Added `tumme-jump-thumbnail-buffer' -;; -;; * Bound TAB in `dired-mode-map' and `tumme-mode-map' to -;; `tumme-jump-thumbnail-buffer' and -;; `tumme-jump-original-dired-buffer', respectively. -;; -;; * Changed `tumme-display-image' to be more general. Now, it can be -;; used from both thumbnail buffer and dired buffer by calling -;; `tumme-display-thumbnail-original-image' and -;; `tumme-display-dired-image', respectively. -;; -;; Version 0.4.4, 2005-05-10 -;; -;; * Added `tumme-get-exif-file-name' and -;; `tumme-copy-with-exif-file-name'. These commands might not be -;; useful for all people because they are very specific. See the -;; documentation for each function for more information. -;; -;; * Added `tumme-display-next-thumbnail-original' and -;; `tumme-display-previous-thumbnail-original' to be used for easy -;; image browsing in thumbnail buffer. -;; -;; * Added support for comments. New function -;; `tumme-comment-thumbnail' added, to be used in thumbnail buffer. -;; -;; * Added `tumme-mark-tagged-files'. Use it in dired buffer to mark -;; tagged files. -;; -;; * Added `mouse-face' property `highlight' for mouse highlighting -;; and had to add a space between each thumbnail to avoid whole rows -;; to be highlighted. Doing this meant that I had to update -;; `tumme-line-up' too... -;; -;; * Added `tumme-mouse-display-image'. Use mouse-2 to display image -;; thumbnail when is highlighted. -;; -;; * As suggested by Ehud Karni on gnu.emacs.help, changed -;; `tumme-window-DIMENSION-pixels' to use `frame-char-DIMENSION' -;; instead of `frame-pixel-DIMENSION'. Feels better -;; -;; * Corrected a bug in `tumme-window-height-pixels'. I did not know -;; that the mode-line consumed one line. Also, after experimenting, it -;; seems that the only correction needed for the image display width -;; is one single pixel. I left the corection variables in there, just -;; in case someone has a system that differs. -;; -;; Version 0.4.5, 2005-05-19 -;; -;; * Added `tumme-line-up-dynamic' that calculates the number of -;; thumbnails that will fit in the thumbnail buffer's window and -;; `tumme-line-up-interactive' that asks the user. -;; -;; * Changed `tumme-display-thumbs' to call one of the `tumme-line-up' -;; functions instead of doing the line-up itself. -;; -;; * Finally! Added experimental gallery creation. See customizable -;; variables `tumme-gallery-dir', `tumme-gallery-image-root-url' and -;; `tumme-gallery-thumb-image-root-url' and new command -;; `tumme-gallery-generate'. Not beatiful, but it works quite -;; well. Probably needs some CSS-stuff in it eventually. Also, I'm not -;; sure this is the way I want to generate my image galleries in the -;; future. After all, static pages cannot do what dynamic pages using -;; PHP et al can do. Serves like a proof-of-concept of the tagging -;; though. -;; -;; * Added option to hide images with certain tags. See -;; `tumme-gallery-hidden-tags'. -;; -;; * Added `tumme-tag-thumbnail' for tagging files from thumbnail -;; buffer. -;; -;; * Added `tumme-tag-remove' and `tumme-tag-thumbnail-remove' so that -;; you can remove tags. Sorry if I have kept you waiting for -;; this... :) -;; -;; * Added option `tumme-append-when-browsing' and new command -;; `tumme-toggle-append-browsing'. -;; -;; Version 0.4.6, 2005-05-21 -;; -;; * Changed `tumme-thumb-name' to always use ".jpg" as file extension -;; for thumbnail files, instead of using the extension from the -;; original file's name. This was a very easy way to open up for -;; allowing browsing of all image file types that Emacs support, -;; assuming ImageMagick supports it too. -;; -;; * Fixed bug in `tumme-create-thumb' `tumme-rotate-thumbnail' and -;; `tumme-display-image' by adding quotes around the file names. The -;; conversion failed if the file name, or path, contained a -;; space. Also expanded the file name, as convert (or is it bash?) -;; does not work as expected for paths like "~/.tumme...". -;; -;; * Fixed another "space bug" :) in `tumme-display-external'. -;; -;; * In call to convert, added "jpeg:" in front of the output file -;; name, so that all generated files becomes JPEG files. For now, only -;; useful if `tumme-temp-image-file' does not end in .jpg. -;; -;; Version 0.4.7, 2005-05-26 -;; -;; * Change header line of tumme.el so that it does not wrap and cause -;; evaluation problems for people getting the source from Usenet. -;; -;; * Changed `tumme-write-tag' slightly to get better performance when -;; tagging many files. -;; -;; * Fixed bug in `tumme-create-gallery-lists' that made it puke if -;; there was empty lines in the database. Changed the code so that it -;; does not car about that. Also, fixed `tumme-remove-tag' so that it -;; tries not to add empty lines at the end of the database. -;; -;; * Changed all commands that execute shell commands to be -;; configurable using the `tumme-cmd-x' custom variables. This makes -;; it easier to switch among different image conversion tools which -;; might use different syntax and options. -;; -;; * Added `tumme-toggle-dired-display-properties'. -;; -;; * Added `tumme-thumb-file-name-format' and changed -;; `tumme-thumb-name' to make it possible to configure the format of -;; thumbnail files. Did not make it customizable yet though. It might -;; be a bad idea to be able to switch between formats... -;; -;; * Changed `tumme-display-window' so that it looks for tumme's -;; display window in all frames. Useful if you want to create an own -;; frame for displaying the temporary image. -;; -;; * After changing the call to `get-window-with-predicate' to scan -;; all frames for tumme's special buffers in visible windows, and also -;; changing the way tumme tracks thumbnail movement in the dired -;; buffer (now using `set-buffer' together with `set-window-point'), -;; tumme now works quite happily with all three buffers in different -;; frames. This empowers the user to setup the special buffers the way -;; that best fits his need at the time. Jumping between dired and -;; `tumme-thumbnail-buffer' work independent on in which frames they -;; are. -;; -;; * Renamed `tumme-track-movement-in-dired' to -;; `tumme-toggle-movement-tracking'. -;; -;; * Added `tumme-track-thumbnail' for movement tracking from dired -;; buffer, analoguous to the tracking done in thumbnail buffer. Both -;; uses the same custom variable `tumme-track-movement' which can be -;; toggled on and off with `tumme-toggle-movement-tracking'. This is -;; neat. :) Changed `tumme-setup-dired-keybindings' to make use of -;; this in the best way. Read more about this there. -;; -;; Version 0.4.8, 2005-06-05 -;; -;; * Changed `tumme-display-dired-image' and -;; `tumme-display-thumbnail-original-image' so that when called with a -;; prefix argument, the image is not resized in the display -;; buffer. This will be useful for later additions of image -;; manipulation commands. -;; -;; * Added `tumme-kill-buffer-and-window' to make it easy to kill the -;; tumme buffers. -;; -;; * Renamed `tumme-mode' to `tumme-thumbnail-mode'. -;; -;; * `tumme-tag-thumbnail' and `tumme-tag-thumbnail-remove' now -;; updates the tags property for the thumbnail. -;; -;; * Added `tumme-dired-display-external' to display images in -;; external viewer from dired buffer. -;; -;; * Added support for multiple files in `tumme-remove-tag' to -;; increase performance. -;; -;; * Added `tumme-display-image-mode' so that we can add image -;; manipulation commands there. -;; -;; * Added call to `tumme-display-thumb-properties' in -;; `tumme-track-thumbnail'. -;; -;; * Added command `tumme-display-current-image-in-full-size' to be -;; used in `tumme-display-image-mode'. -;; -;; * Changed `tumme-display-image' to call -;; `tumme-create-display-image-buffer' so that we are sure that -;; `tumme-display-image-buffer' is always available. -;; -;; * Added optional prefix argument to `tumme-dired-folder' that tells -;; it to skip the window splitting and just creates the needed -;; buffers. -;; -;; * Fixed bug somewhere that relied on `tumme-dired-folder' having -;; created the `tumme-display-image-buffer'. Now `tumme-dired-folder' -;; *should* not be necessary to call at all, just convenient. -;; -;; * Added tracking to `tumme-mouse-display-image'. -;; -;; * Added `tumme-mouse-select-thumbnail' and bound mouse-1 to it, so -;; that selecting a thumbnail will track the original file. -;; -;; * Added three new custom variables, `tumme-cmd-ACTION-program' to -;; make the command options cleaner and easier to read. -;; -;; * Added `tumme-display-properties-format' and -;; `tumme-format-properties-string' to make it possible to configure -;; the display format of the image file's properties. -;; -;; * Added missing (require 'format-spec) -;; -;; Version 0.4.9, 2005-09-25 -;; -;; * Fixed bug in `tumme-display-thumbs'. If a thumbnail file could -;; not be created for some reason (bad file for example), even if -;; several other thumbnails was created sucessfully, the code -;; generated an error and never continued doing the line-up. -;; -;; * Made tumme.el pass the M-x checkdoc test, phew! -;; -;; * Added `tumme-rotate-original', `tumme-rotate-original-left' and -;; `tumme-rotate-original-right' to rotate the original image from -;; thumbnail view. By default it uses JpegTRAN to rotate the images -;; non-lossy. Only works on JPEG images. The two new commands were -;; added to thumbnail mode. Thanks to Colin Marquardt who told me -;; about the "-copy all" option to jpegtran. -;; -;; * Added the functions `tumme-get-exif-data' and -;; `tumme-set-exif-data' for reading and writing EXIF data to image files. -;; -;; * Rewrote `tumme-get-exif-file-name': now uses -;; `tumme-get-exif-data'. Slight change to replace spaces with -;; underscores (tt seems not all cameras use the exact same format for -;; DateTimeOriginal). Added code for handling files that has no -;; EXIF-data (use file's timestamp instead). -;; -;; * Changed from using the exif program to exiftool because exiftool -;; also handles writing of EXIF data, which is very useful. -;; -;; * Added the command `tumme-thumbnail-set-image-description' that -;; can be used to set the EXIF tag ImageDescription. Thanks to Colin -;; Marquardt for the suggestion. -;; -;; * Added `tumme-toggle-mark-thumb-original-file' and -;; `tumme-mouse-toggle-mark' and changed -;; `tumme-modify-mark-on-thumb-original-file' to support toggling of -;; mark of original image file in dired, from -;; `tumme-thumbnail-mode'. Bound C-down-mouse-1 -;; `tumme-mouse-toggle-mark' to in `tumme-thumbnail-mode'. -;; -;; * Changed `tumme-mouse-select-thumbnail' to also display properties -;; after the file is selected. -;; -;; Version 0.4.10, 2005-11-07 -;; -;; * Renamed `tumme-dired-folder' to `tumme-dired'. -;; -;; * Changed format of the database file slightly, now the full path -;; and file name is used. Had to change most of the tag functions -;; (writing, reading, searching) slightly to cope with the change. If -;; you are an old tumme user, you have to update your database -;; manually, probably you only need to prefix all rows with a -;; directory name to get the full path and file name. -;; -;; * Removed `tumme-thumb-file-name-format'. Added -;; `tumme-thumbnail-storage' and changed `tumme-thumb-name' to provide -;; two different thumbnail storage schemes. It is no longer necessary -;; to have unique image file names to use tumme fully. -;; -;; * As a consequence of the above, gallery generation is currently -;; not supported if per-directory thumbnail file storage is used. -;; -;; * Changed parameters to `tumme-create-thumb'. -;; -;; * To be included in Emacs 22. -;; -;; -;; Version 0.4.11, 2006-MM-DD -;; -;; * Changed `tumme-display-thumbs' so that it calls `display-buffer' -;; after generating the thumbnails and changed -;; `tumme-display-thumbnail-original-image' to display the image -;; buffer. These small changes should make it easier for a user to -;; start using tumme. -;; -;; * Added `tumme-show-all-from-dir' to mimic thumbs.el's easy-to-use -;; `thumbs' command. A new customize option, -;; `tumme-show-all-from-dir-max-files' was added too. -;; -;; * Renamed `tumme-dired' to `tumme-dired-with-window-configuration' -;; and added code to save the window configuration before messing it -;; up. The saved window configuration can be restored using the new -;; command `tumme-restore-window-configuration'. -;; -;; * Added `tumme-get-thumbnail-image', created by Chong Yidong. His -;; own comments: ..., that just takes the original filename and -;; returns a thumbnail image descriptor. Then third-party libraries -;; won't have to muck around with tumme.el's internal functions like -;; `thumme-thumb-name', `tumme-create-thumb', etc. His code to get -;; speedbar display tumme thumbnails, might be integrated soon. -;; -;; * Changed the default value of `tumme-dir' to "~/.emacs.d/tumme" -;; and added a new function, `tumme-dir' to handle the creating of -;; it. Code copied from thumbs.el. -;; -;; ;; TODO ;; ==== ;; -- cgit v1.2.1 From 8e5815612b7794226b719ab0188cada4ccaa85d5 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 13 Feb 2006 01:25:58 +0000 Subject: (Emacs for Atari ST): use Sch@"auble instead of the 8-bit accented a. --- man/faq.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/faq.texi b/man/faq.texi index 734212758d5..4f9de5152b6 100644 --- a/man/faq.texi +++ b/man/faq.texi @@ -3670,7 +3670,7 @@ for OS/2 users of Emacs can be found at @cindex Atari ST, Emacs for @cindex TOS, Emacs for -Roland Schäuble reports that Emacs 18.58 running on plain TOS and MiNT +Roland Sch@"auble reports that Emacs 18.58 running on plain TOS and MiNT is available at @uref{ftp://atari.archive.umich.edu/Editors/Emacs-18-58/1858b-d3.zoo}. -- cgit v1.2.1 From 7478b9d7d922e4108b355133ae1adfa3e235cac5 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 13 Feb 2006 01:27:21 +0000 Subject: no 8-bit in faq.texi --- man/ChangeLog | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/man/ChangeLog b/man/ChangeLog index a59feddc41a..7471118334a 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,8 @@ +2006-02-12 Karl Berry + + * faq.texi (Emacs for Atari ST): use Sch@"auble instead of the + 8-bit accented a. + 2006-02-12 Richard M. Stallman * building.texi (Building): Clarify topic in intro. -- cgit v1.2.1 From 3715419e9ee01c49e2b846fa8322c80db5629d6d Mon Sep 17 00:00:00 2001 From: Miles Bader Date: Mon, 13 Feb 2006 01:59:00 +0000 Subject: Revision: emacs@sv.gnu.org/emacs--devo--0--patch-79 (rcirc-format-response-string): Fix small bugs --- lisp/ChangeLog | 4 ++++ lisp/net/rcirc.el | 41 +++++++++++++++++++---------------------- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index efe387f786f..614faaae847 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2006-02-12 Miles Bader + + * net/rcirc.el (rcirc-format-response-string): Fix small bugs. + 2006-02-13 Mathias Dahl * tumme.el: Removed history section. If someone needs the it, it diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el index c0bf8be3cf8..971b65bf25c 100644 --- a/lisp/net/rcirc.el +++ b/lisp/net/rcirc.el @@ -929,7 +929,7 @@ the of the following escape sequences replaced by the described values: %fp Following text uses the face `rcirc-server-prefix' %fs Following text uses the face `rcirc-server' %f[FACE] Following text uses the face FACE - %f- Following text uses the default face + %f- Following text uses the default face %% A literal `%' character " :type '(alist :key-type (choice (string :tag "Type") @@ -957,59 +957,56 @@ is found by looking up RESPONSE in `rcirc-response-formats'." (setq chunk (substring chunk 1))) (setq repl (cond ((eq key ?%) - ;; %% -- literal % character ; + ;; %% -- literal % character "%") ((eq key ?n) - ;; %n -- nick ; + ;; %n -- nick (rcirc-facify (concat (rcirc-abbrev-nick sender) (and target (concat "," target))) (if (string= sender (rcirc-nick process)) 'rcirc-my-nick 'rcirc-other-nick))) ((eq key ?T) - ;; %T -- timestamp ; + ;; %T -- timestamp (rcirc-facify (format-time-string rcirc-time-format (current-time)) 'rcirc-timestamp)) ((eq key ?m) - ;; %m -- message text ; - ;; We add the text property `rcirc-text' to identify this ; - ;; as the body text. ; + ;; %m -- message text + ;; We add the text property `rcirc-text' to identify this + ;; as the body text. (propertize (rcirc-mangle-text process (rcirc-facify text face)) 'rcirc-text text)) ((eq key ?t) - ;; %t -- target ; + ;; %t -- target (rcirc-facify (or rcirc-target "") face)) ((eq key ?r) - ;; %r -- response ; + ;; %r -- response (rcirc-facify response face)) ((eq key ?f) - ;; %f -- change face ; + ;; %f -- change face (setq face-key (aref chunk 0)) + (setq chunk (substring chunk 1)) (cond ((eq face-key ?w) - ;; %fw -- warning face ; + ;; %fw -- warning face (setq face 'font-lock-warning-face)) ((eq face-key ?p) - ;; %fp -- server-prefix face ; + ;; %fp -- server-prefix face (setq face 'rcirc-server-prefix)) ((eq face-key ?s) - ;; %fs -- warning face ; + ;; %fs -- warning face (setq face 'rcirc-server)) ((eq face-key ?-) - ;; %fs -- warning face ; + ;; %fs -- warning face (setq face nil)) ((and (eq face-key ?\[) - (string-match "^[[]\\([^]]*\\)[]]" chunk) + (string-match "^\\([^]]*\\)[]]" chunk) (facep (match-string 1 chunk))) - ;; %f[...] -- named face ; + ;; %f[...] -- named face (setq face (intern (match-string 1 chunk))) - (setq chunk (substring chunk (match-end 1))))) - (setq chunk (substring chunk 1)) - "") - (t - ;; just insert the key literally ; - (rcirc-facify (substring chunk 0 1) face)))) + (setq chunk (substring chunk (match-end 0))))) + ""))) (setq result (concat result repl (rcirc-facify chunk face)))) result)) -- cgit v1.2.1 From 4d94dd9a25e291ad9e59c3f44d40e5a7317ac63d Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 13 Feb 2006 02:17:15 +0000 Subject: (internal_self_insert): Handle weird auto-fill-function. --- src/ChangeLog | 4 ++++ src/cmds.c | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 8c1fffe9911..bd6d28aad6a 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2006-02-12 Richard M. Stallman + + * cmds.c (internal_self_insert): Handle weird auto-fill-function. + 2006-02-11 Eli Zaretskii * keyboard.c (Venable_disabled_menus_and_buttons): New variable. diff --git a/src/cmds.c b/src/cmds.c index f1e92ab2f75..494ef14db99 100644 --- a/src/cmds.c +++ b/src/cmds.c @@ -528,7 +528,8 @@ internal_self_insert (c, noautofill) justification, if any, know where the end is going to be. */ SET_PT_BOTH (PT - 1, PT_BYTE - 1); tem = call0 (current_buffer->auto_fill_function); - if (c == '\n') + /* Test PT < ZV in case the auto-fill-function is strange. */ + if (c == '\n' && PT < ZV) SET_PT_BOTH (PT + 1, PT_BYTE + 1); if (!NILP (tem)) hairy = 2; -- cgit v1.2.1 From 461a3118024b3904d447fb7c22f08559380764be Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Mon, 13 Feb 2006 10:10:25 +0000 Subject: (Standard Faces): Mention Mac OS port. --- man/display.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/display.texi b/man/display.texi index 9c653e2ca56..83b5ae48554 100644 --- a/man/display.texi +++ b/man/display.texi @@ -472,7 +472,7 @@ This face determines the colors and font of Emacs's menus. @xref{Menu Bars}. Setting the font of LessTif/Motif menus is currently not supported; attempts to set the font are ignored in this case. Likewise, attempts to customize this face in Emacs built with GTK and -in the MS-Windows port are ignored by the respective GUI toolkits; +in the MS-Windows/Mac ports are ignored by the respective GUI toolkits; you need to use system-wide styles and options to change the appearance of the menus. @end table -- cgit v1.2.1 From 96c53f2ae85769faee1148e7d24d9ed916da4f44 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Mon, 13 Feb 2006 10:10:52 +0000 Subject: (Colors on a TTY): Mention Mac OS port. --- man/faq.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/faq.texi b/man/faq.texi index 4f9de5152b6..fd69ad663b5 100644 --- a/man/faq.texi +++ b/man/faq.texi @@ -1272,7 +1272,7 @@ customize, with completion. In Emacs 21.1 and later, colors and faces are supported in non-windowed mode, i.e.@: on Unix and GNU/Linux text-only terminals and consoles, and when -invoked as @samp{emacs -nw} on X and MS-Windows. (Colors and faces were +invoked as @samp{emacs -nw} on X, MS-Windows, and Mac. (Colors and faces were supported in the MS-DOS port since Emacs 19.29.) Emacs automatically detects color support at startup and uses it if available. If you think that your terminal supports colors, but Emacs won't use them, check the -- cgit v1.2.1 From 638dab3734d3d6f3f48edea8c82e0350be4c6076 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Mon, 13 Feb 2006 10:11:18 +0000 Subject: (Visiting): Mention Mac OS port. --- man/files.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/files.texi b/man/files.texi index 4bafc9b736c..a0822054210 100644 --- a/man/files.texi +++ b/man/files.texi @@ -239,7 +239,7 @@ toolkit, commands invoked with the mouse (by clicking on the menu bar or tool bar) use the toolkit's standard File Selection dialog instead of prompting for the file name in the minibuffer. On Unix and GNU/Linux platforms, Emacs does that when built with GTK, LessTif, and -Motif toolkits; on MS-Windows, the GUI version does that by default. +Motif toolkits; on MS-Windows and Mac, the GUI version does that by default. For information on how to customize this, see @ref{Dialog Boxes}. Secondly, Emacs supports ``drag and drop''; dropping a file into an -- cgit v1.2.1 From 99ce07a6583f954c8e340b2c3821bd1a4fa6ba50 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Mon, 13 Feb 2006 10:11:45 +0000 Subject: (Clipboard): Mention Mac OS port. --- man/frames.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/frames.texi b/man/frames.texi index f25399e071b..b5ec21533b7 100644 --- a/man/frames.texi +++ b/man/frames.texi @@ -293,7 +293,7 @@ names, all use the clipboard. the Emacs yank functions consult the clipboard before the primary selection, and to make the kill functions to store in the clipboard as well as the primary selection. Otherwise they do not access the -clipboard at all. Using the clipboard is the default on MS-Windows, +clipboard at all. Using the clipboard is the default on MS-Windows and Mac, but not on other systems. @node Mouse References -- cgit v1.2.1 From 0a2f1a0cfc8664c90135a9b76fb4f2e757851e3d Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Mon, 13 Feb 2006 10:12:09 +0000 Subject: (Glossary) : Mention Mac OS port. --- man/glossary.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/glossary.texi b/man/glossary.texi index 9d86a8d12cc..e2d2ad56832 100644 --- a/man/glossary.texi +++ b/man/glossary.texi @@ -175,7 +175,7 @@ mouse button and release it without moving the mouse. @xref{Mouse Buttons}. @item Clipboard A clipboard is a buffer provided by the window system for transferring text between applications. On the X Window system, the clipboard is -provided in addition to the primary selection (q.v.@:); on MS-Windows, +provided in addition to the primary selection (q.v.@:); on MS-Windows and Mac, the clipboard is used @emph{instead} of the primary selection. @xref{Clipboard}. -- cgit v1.2.1 From 2d488bd1dbd17113f08a40d67d5dfb7dab3e26e9 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Mon, 13 Feb 2006 10:13:05 +0000 Subject: (X Resources): Mention Mac OS port. --- man/ChangeLog | 9 +++++++++ man/xresources.texi | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/man/ChangeLog b/man/ChangeLog index 7471118334a..e274f09d8e5 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,12 @@ +2006-02-13 YAMAMOTO Mitsuharu + + * display.texi (Standard Faces): + * faq.texi (Colors on a TTY): + * files.texi (Visiting): + * frames.texi (Clipboard): + * glossary.texi (Glossary) : + * xresources.texi (X Resources): Mention Mac OS port. + 2006-02-12 Karl Berry * faq.texi (Emacs for Atari ST): use Sch@"auble instead of the diff --git a/man/xresources.texi b/man/xresources.texi index f7947edda17..87781da582c 100644 --- a/man/xresources.texi +++ b/man/xresources.texi @@ -8,7 +8,8 @@ You can customize some X-related aspects of Emacs behavior using X resources, as is usual for programs that use X. On MS-Windows, you can customize some of the same aspects using the system registry. -@xref{MS-Windows Registry}. +@xref{MS-Windows Registry}. Likewise, the Mac Carbon port emulates X +resources using the Preferences system. @xref{Mac Environment Variables}. When Emacs is built using an `X toolkit', such as Lucid or LessTif, you need to use X resources to customize the appearance of the -- cgit v1.2.1 From 50d16788f2586ba58b3f10824ab770633b6e0870 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Mon, 13 Feb 2006 11:05:37 +0000 Subject: (substitute-key-definition): Doc fix (hide internal argument). --- lisp/ChangeLog | 12 ++++++++---- lisp/subr.el | 3 ++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 614faaae847..449470c23f8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,16 +1,20 @@ +2006-02-13 Juanma Barranquero + + * subr.el (substitute-key-definition): Doc fix (hide internal arg). + 2006-02-12 Miles Bader * net/rcirc.el (rcirc-format-response-string): Fix small bugs. 2006-02-13 Mathias Dahl - * tumme.el: Removed history section. If someone needs the it, it + * tumme.el: Remove history section. If someone needs the it, it can always be found in CVS. 2006-02-12 Mathias Dahl - * tumme.el (tumme-thumbnail-storage): Updated docstring. Added - info about the Thumbnail Managing Standard option. + * tumme.el (tumme-thumbnail-storage): Update docstring. Add info + about the Thumbnail Managing Standard option. 2006-02-12 Richard M. Stallman @@ -95,7 +99,7 @@ * ido.el (ido-buffer-internal): Set mark for ido-insert-buffer. Don't use insert-buffer; do insert-buffer-substring directly. - (ido-file-internal): Set mark for ido-insert-file. Use insert-file-1. + (ido-file-internal): Set mark for ido-insert-file. Use insert-file-1. 2006-02-11 Martin Rudalics diff --git a/lisp/subr.el b/lisp/subr.el index 298a1d7c92f..c543ecffad3 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -563,7 +563,8 @@ in KEYMAP as NEWDEF those keys which are defined as OLDDEF in OLDMAP. If you don't specify OLDMAP, you can usually get the same results in a cleaner way with command remapping, like this: - \(define-key KEYMAP [remap OLDDEF] NEWDEF)" + \(define-key KEYMAP [remap OLDDEF] NEWDEF) +\n(fn OLDDEF NEWDEF KEYMAP &optional OLDMAP)" ;; Don't document PREFIX in the doc string because we don't want to ;; advertise it. It's meant for recursive calls only. Here's its ;; meaning -- cgit v1.2.1 From 0c0351b5994bd23b215ab3f744cadd6a8e71d453 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Mon, 13 Feb 2006 11:34:20 +0000 Subject: * xterm.c (note_mouse_movement): Check for NULL FRAME_X_OUTPUT (frame). --- src/ChangeLog | 4 ++++ src/xterm.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index bd6d28aad6a..6c5fa163938 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2006-02-13 Jan Dj,Ad(Brv + + * xterm.c (note_mouse_movement): Check for NULL FRAME_X_OUTPUT (frame). + 2006-02-12 Richard M. Stallman * cmds.c (internal_self_insert): Handle weird auto-fill-function. diff --git a/src/xterm.c b/src/xterm.c index e3407dcaaec..6ab8b8db487 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -3592,6 +3592,10 @@ note_mouse_movement (frame, event) last_mouse_motion_event = *event; XSETFRAME (last_mouse_motion_frame, frame); + if (!FRAME_X_OUTPUT (frame)) { + return 0; + } + if (event->window != FRAME_X_WINDOW (frame)) { frame->mouse_moved = 1; -- cgit v1.2.1 From ace665ea95af278749a80a5a743ce4a16374229c Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Mon, 13 Feb 2006 14:47:25 +0000 Subject: (tumme-thumbnail-storage): Fix docstring. (tumme-thumb-name): Fix per-directory format. --- lisp/ChangeLog | 5 +++++ lisp/tumme.el | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 449470c23f8..c53fb8122b8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2006-02-13 Juri Linkov + + * tumme.el (tumme-thumbnail-storage): Fix docstring. + (tumme-thumb-name): Fix per-directory format. + 2006-02-13 Juanma Barranquero * subr.el (substitute-key-definition): Doc fix (hide internal arg). diff --git a/lisp/tumme.el b/lisp/tumme.el index 3ccffbc4386..6cec3e73a16 100644 --- a/lisp/tumme.el +++ b/lisp/tumme.el @@ -213,8 +213,8 @@ thumbnails are stored in a central directory. \"Per directory\" means that each thumbnail is stored in a subdirectory called \".tumme\" in the same directory where the image file is. \"Thumbnail Managing Standard\" means that the thumbnails are -stored and generated according to the Thumbnail Managing -Standard." +stored and generated according to the Thumbnail Managing Standard +that allows sharing of thumbnails across different programs." :type '(choice :tag "How to store thumbnail files" (const :tag "Thumbnail Managing Standard" standard) (const :tag "Use tumme-dir" use-tumme-dir) @@ -629,8 +629,8 @@ according to the Thumbnail Managing Standard." (file-name-extension f)))) ((eq 'per-directory tumme-thumbnail-storage) (let ((f (expand-file-name file))) - (format "%s%s%s.thumb.%s" - (format "%s.tumme/" (file-name-directory f)) + (format "%s.tumme/%s.thumb.%s" + (file-name-directory f) (file-name-sans-extension (file-name-nondirectory f)) (file-name-extension f)))))) -- cgit v1.2.1 From fd5b25da6a3ea29591d128455b4ddd325b34a174 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Mon, 13 Feb 2006 15:44:01 +0000 Subject: (info-xref-visited): Inherit from info-xref too. (Info-set-mode-line): Replace occurrences of `%' by `%%' when propertizing Info-current-file and Info-current-node. --- lisp/ChangeLog | 6 ++++++ lisp/info.el | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c53fb8122b8..b65f1d554c5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2006-02-13 Martin Rudalics (tiny change) + + * info.el (info-xref-visited): Inherit from info-xref too. + (Info-set-mode-line): Replace occurrences of `%' by `%%' + when propertizing Info-current-file and Info-current-node. + 2006-02-13 Juri Linkov * tumme.el (tumme-thumbnail-storage): Fix docstring. diff --git a/lisp/info.el b/lisp/info.el index 96cbb218e96..e3514fb9729 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -134,7 +134,7 @@ The Lisp code is executed when the node is selected.") :group 'info) (defface info-xref-visited - '((t :inherit link-visited)) + '((t :inherit (link-visited info-xref))) "Face for visited Info cross-references." :version "22.1" :group 'info) @@ -1407,11 +1407,13 @@ any double quotes or backslashes must be escaped (\\\",\\\\)." (concat " (" (if (stringp Info-current-file) - (file-name-nondirectory Info-current-file) + (replace-regexp-in-string + "%" "%%" (file-name-nondirectory Info-current-file)) "") ") " (if Info-current-node - (propertize Info-current-node + (propertize (replace-regexp-in-string + "%" "%%" Info-current-node) 'face 'mode-line-buffer-id 'help-echo "mouse-1: scroll forward, mouse-3: scroll back" -- cgit v1.2.1 From 2c8ed53856868a6d294de75a013c8dc6c6220872 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 13 Feb 2006 16:18:46 +0000 Subject: (describe-key-briefly, describe-key): Do all arg-reading inside `interactive' spec. (describe-key-briefly-internal, describe-key-internal): Functions merged back into their callers. --- lisp/ChangeLog | 7 ++++ lisp/help.el | 112 +++++++++++++++++++++++++++++---------------------------- 2 files changed, 65 insertions(+), 54 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b65f1d554c5..eb7094bb374 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2006-02-13 Richard M. Stallman + + * help.el (describe-key-briefly, describe-key): Do all arg-reading + inside `interactive' spec. + (describe-key-briefly-internal, describe-key-internal): + Functions merged back into their callers. + 2006-02-13 Martin Rudalics (tiny change) * info.el (info-xref-visited): Inherit from info-xref too. diff --git a/lisp/help.el b/lisp/help.el index bea404f5112..76aeac0ef62 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -565,31 +565,30 @@ the last key hit are used. If KEY is a menu item or a tool-bar button that is disabled, this command temporarily enables it to allow getting help on disabled items and buttons." - (interactive) - (let ((enable-disabled-menus-and-buttons t) - (save-yank-menu)) - (if key - ;; Non-interactive invocation - (describe-key-briefly-internal key insert untranslated) - ;; If yank-menu is empty, populate it temporarily, so that - ;; "Select and Paste" menu can generate a complete event - (if (null (cdr yank-menu)) - (unwind-protect - (progn - (setq save-yank-menu (copy-sequence yank-menu)) - (menu-bar-update-yank-menu "(any string)" nil) - (call-interactively 'describe-key-briefly-internal)) - (progn (setq yank-menu (copy-sequence save-yank-menu)) - (fset 'yank-menu (cons 'keymap yank-menu)))) - (call-interactively 'describe-key-briefly-internal))))) - -(defun describe-key-briefly-internal (key &optional insert untranslated) - "Print the name of the function KEY invokes. KEY is a string. -If INSERT (the prefix arg) is non-nil, insert the message in the buffer. -If non-nil UNTRANSLATED is a vector of the untranslated events. -It can also be a number in which case the untranslated events from -the last key hit are used." - (interactive "kDescribe key briefly: \nP\np") + (interactive + (let ((enable-disabled-menus-and-buttons t) + (cursor-in-echo-area t) + saved-yank-menu) + (unwind-protect + (let (key) + ;; If yank-menu is empty, populate it temporarily, so that + ;; "Select and Paste" menu can generate a complete event. + (when (null (cdr yank-menu)) + (setq saved-yank-menu (copy-sequence yank-menu)) + (menu-bar-update-yank-menu "(any string)" nil)) + (setq key (read-key-sequence "Describe key (or click or menu item): ")) + (list + key + (prefix-numeric-value current-prefix-arg) + ;; If KEY is a down-event, read the corresponding up-event + ;; and use it as the third argument. + (if (and (consp key) (symbolp (car key)) + (memq 'down (cdr (get (car key) 'event-symbol-elements)))) + (read-event)))) + ;; Put yank-menu back as it was, if we changed it. + (when saved-yank-menu + (setq yank-menu (copy-sequence saved-yank-menu)) + (fset 'yank-menu (cons 'keymap yank-menu)))))) (if (numberp untranslated) (setq untranslated (this-single-command-raw-keys))) (save-excursion @@ -611,6 +610,11 @@ the last key hit are used." (let ((defn (or (string-key-binding key) (key-binding key t))) key-desc) + ;; Handle the case where we faked an entry in "Select and Paste" menu. + (if (and (eq defn nil) + (stringp (aref key (1- (length key)))) + (eq (key-binding (substring key 0 -1)) 'yank-menu)) + (setq defn 'menu-bar-select-yank)) ;; Don't bother user with strings from (e.g.) the select-paste menu. (if (stringp (aref key (1- (length key)))) (aset key (1- (length key)) "(any string)")) @@ -641,35 +645,30 @@ UP-EVENT is the up-event that was discarded by reading KEY, or nil. If KEY is a menu item or a tool-bar button that is disabled, this command temporarily enables it to allow getting help on disabled items and buttons." - (interactive) - (let ((enable-disabled-menus-and-buttons t) - (save-yank-menu)) - (if key - ;; Non-interactive invocation - (describe-key-internal key untranslated up-event) - ;; If yank-menu is empty, populate it temporarily, so that - ;; "Select and Paste" menu can generate a complete event - (if (null (cdr yank-menu)) - (unwind-protect - (progn - (setq save-yank-menu (copy-sequence yank-menu)) - (menu-bar-update-yank-menu "(any string)" nil) - (call-interactively 'describe-key-internal)) - (progn (setq yank-menu (copy-sequence save-yank-menu)) - (fset 'yank-menu (cons 'keymap yank-menu)))) - (call-interactively 'describe-key-internal))))) - -(defun describe-key-internal (key &optional untranslated up-event) - "Display documentation of the function invoked by KEY. -KEY can be any kind of a key sequence; it can include keyboard events, -mouse events, and/or menu events. When calling from a program, -pass KEY as a string or a vector. - -If non-nil, UNTRANSLATED is a vector of the corresponding untranslated events. -It can also be a number, in which case the untranslated events from -the last key sequence entered are used. -UP-EVENT is the up-event that was discarded by reading KEY, or nil." - (interactive "kDescribe key (or click or menu item): \np\nU") + (interactive + (let ((enable-disabled-menus-and-buttons t) + (cursor-in-echo-area t) + saved-yank-menu) + (unwind-protect + (let (key) + ;; If yank-menu is empty, populate it temporarily, so that + ;; "Select and Paste" menu can generate a complete event. + (when (null (cdr yank-menu)) + (setq saved-yank-menu (copy-sequence yank-menu)) + (menu-bar-update-yank-menu "(any string)" nil)) + (setq key (read-key-sequence "Describe key (or click or menu item): ")) + (list + key + (prefix-numeric-value current-prefix-arg) + ;; If KEY is a down-event, read the corresponding up-event + ;; and use it as the third argument. + (if (and (consp key) (symbolp (car key)) + (memq 'down (cdr (get (car key) 'event-symbol-elements)))) + (read-event)))) + ;; Put yank-menu back as it was, if we changed it. + (when saved-yank-menu + (setq yank-menu (copy-sequence saved-yank-menu)) + (fset 'yank-menu (cons 'keymap yank-menu)))))) (if (numberp untranslated) (setq untranslated (this-single-command-raw-keys))) (save-excursion @@ -686,6 +685,11 @@ UP-EVENT is the up-event that was discarded by reading KEY, or nil." (set-buffer (window-buffer window)) (goto-char position)) (let ((defn (or (string-key-binding key) (key-binding key t)))) + ;; Handle the case where we faked an entry in "Select and Paste" menu. + (if (and (eq defn nil) + (stringp (aref key (1- (length key)))) + (eq (key-binding (substring key 0 -1)) 'yank-menu)) + (setq defn 'menu-bar-select-yank)) (if (or (null defn) (integerp defn) (equal defn 'undefined)) (message "%s is undefined" (help-key-description key untranslated)) (help-setup-xref (list #'describe-function defn) (interactive-p)) -- cgit v1.2.1 From 25d346437329083b623d6e051f0acf71d35364b6 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 13 Feb 2006 18:45:39 +0000 Subject: (xwindow): Update the code to show the window box. --- src/.gdbinit | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/.gdbinit b/src/.gdbinit index c67e0b0389f..aeabe19100e 100644 --- a/src/.gdbinit +++ b/src/.gdbinit @@ -548,7 +548,16 @@ end define xwindow xgetptr $ print (struct window *) $ptr - printf "%dx%d+%d+%d\n", $->width, $->height, $->left, $->top + set $window = (struct window *) $ptr + xgetint $window->total_cols + set $width=$int + xgetint $window->total_lines + set $height=$int + xgetint $window->left_col + set $left=$int + xgetint $window->top_line + set $top=$int + printf "%dx%d+%d+%d\n", $width, $height, $left, $top end document xwindow Print $ as a window pointer, assuming it is an Emacs Lisp window value. -- cgit v1.2.1 From ad64cd77b0d31794b2a57c6f25efa5d6138459a6 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 13 Feb 2006 18:47:18 +0000 Subject: (mouse-drag-mode-line-1): Use mouse-drag-move-window-bottom for the minibuffer too, but not if resize-mini-windows will interfere. --- lisp/mouse.el | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/lisp/mouse.el b/lisp/mouse.el index 9922b0f9aed..3a22fb49b04 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -481,21 +481,8 @@ MODE-LINE-P non-nil means dragging a mode line; nil means a header line." ;; grow/shrink minibuffer? (if should-enlarge-minibuffer - (progn - ;; yes. briefly select minibuffer so - ;; enlarge-window will affect the - ;; correct window. - (select-window minibuffer) - ;; scale back shrinkage if it would - ;; make the minibuffer less than 1 - ;; line tall. - (if (and (> growth 0) - (< (- (window-height minibuffer) - growth) - 1)) - (setq growth (1- (window-height minibuffer)))) - (enlarge-window (- growth)) - (select-window start-event-window)) + (unless resize-mini-windows + (mouse-drag-move-window-bottom start-event-window growth)) ;; no. grow/shrink the selected window ;(message "growth = %d" growth) (if mode-line-p -- cgit v1.2.1 From f8d775e1cd691af73af657f6cf091b7db0227faf Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 13 Feb 2006 18:47:24 +0000 Subject: *** empty log message *** --- lisp/ChangeLog | 3 +++ src/ChangeLog | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index eb7094bb374..3f20cbefd89 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2006-02-13 Richard M. Stallman + * mouse.el (mouse-drag-mode-line-1): Use mouse-drag-move-window-bottom + for the minibuffer too, but not if resize-mini-windows will interfere. + * help.el (describe-key-briefly, describe-key): Do all arg-reading inside `interactive' spec. (describe-key-briefly-internal, describe-key-internal): diff --git a/src/ChangeLog b/src/ChangeLog index 6c5fa163938..54c855fc909 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2006-02-13 Richard M. Stallman + + * .gdbinit (xwindow): Update the code to show the window box. + 2006-02-13 Jan Dj,Ad(Brv * xterm.c (note_mouse_movement): Check for NULL FRAME_X_OUTPUT (frame). -- cgit v1.2.1 From c3a1b86139af2a446a09d40b28c123931dea6266 Mon Sep 17 00:00:00 2001 From: Jay Belanger Date: Mon, 13 Feb 2006 21:36:51 +0000 Subject: (math-check-known-matrixp): Make sure expression is a symbol before checking that it is bound. --- lisp/ChangeLog | 5 +++++ lisp/calc/calc-arith.el | 1 + 2 files changed, 6 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 3f20cbefd89..e1166bbd2e5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2006-02-13 Jay Belanger + + * calc/calc-arith.el: (math-check-known-matrixp): Make sure + expression is a symbol before checking that it is bound. + 2006-02-13 Richard M. Stallman * mouse.el (mouse-drag-mode-line-1): Use mouse-drag-move-window-bottom diff --git a/lisp/calc/calc-arith.el b/lisp/calc/calc-arith.el index 2372b0ebbfb..a5f25e2464e 100644 --- a/lisp/calc/calc-arith.el +++ b/lisp/calc/calc-arith.el @@ -362,6 +362,7 @@ ((memq 'matrix (nth 1 decl)) t) ((and (eq (car a) 'var) + (symbolp (nth 2 a)) (boundp (nth 2 a)) (setq val (symbol-value (nth 2 a)))) (math-check-known-matrixp val)) -- cgit v1.2.1 From 555ffb460d6369b392eac3255560fa08d3439f31 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 13 Feb 2006 21:42:43 +0000 Subject: Fix style of last change. --- src/xterm.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/xterm.c b/src/xterm.c index 6ab8b8db487..eb0b984d486 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -3592,9 +3592,8 @@ note_mouse_movement (frame, event) last_mouse_motion_event = *event; XSETFRAME (last_mouse_motion_frame, frame); - if (!FRAME_X_OUTPUT (frame)) { - return 0; - } + if (!FRAME_X_OUTPUT (frame)) + return 0; if (event->window != FRAME_X_WINDOW (frame)) { -- cgit v1.2.1 From ee517841b8f3ee83699a3a5c1956fde063ec1e1f Mon Sep 17 00:00:00 2001 From: Nick Roberts Date: Mon, 13 Feb 2006 21:58:44 +0000 Subject: *** empty log message *** --- lisp/ChangeLog | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e1166bbd2e5..6ccf48732b4 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,20 @@ +2006-02-14 Nick Roberts + + * progmodes/gdb-ui.el (gud-watch, gdb-invalidate-registers-1) + (gdb-get-changed-registers): Test value of gud-minor-mode relative + to gud-comint-buffer. + (gdb-speedbar-expand-node, gdb-locals-mode): Use functions in + gdb-ui.el for gdb-mi.el. + (gdb-post-prompt, gdb-get-changed-registers): Move test for + registers buffer to gdb-get-changed-registers. + (gdb-breakpoint-regexp): New regexp. Allow toggling and + deletion of catchpoints (throw and catch). + (gdb-toggle-breakpoint, gdb-delete-breakpoint) + (gdb-goto-breakpoint): Use it for both gdb-ui and gdb-mi. + (gdb-find-file-hook, gdb-set-gud-minor-mode-existing-buffers-1) + (gdb-var-list-children-1, gdb-info-breakpoints-custom) + (gdb-var-update-1, gdb-invalidate-locals-1): Use also for gdb-mi. + 2006-02-13 Jay Belanger * calc/calc-arith.el: (math-check-known-matrixp): Make sure -- cgit v1.2.1 From 621b3aac569662b9a908b484457f6fde1e783e13 Mon Sep 17 00:00:00 2001 From: Nick Roberts Date: Mon, 13 Feb 2006 21:59:45 +0000 Subject: (gud-watch, gdb-invalidate-registers-1) (gdb-get-changed-registers): Test value of gud-minor-mode relative to gud-comint-buffer. (gdb-speedbar-expand-node, gdb-locals-mode): Use functions in gdb-ui.el for gdb-mi.el. (gdb-post-prompt, gdb-get-changed-registers): Move test for registers buffer to gdb-get-changed-registers. (gdb-breakpoint-regexp): New regexp. Allow toggling and deletion of catchpoints (throw and catch). (gdb-toggle-breakpoint, gdb-delete-breakpoint) (gdb-goto-breakpoint): Use it for both gdb-ui and gdb-mi. (gdb-find-file-hook, gdb-set-gud-minor-mode-existing-buffers-1) (gdb-var-list-children-1, gdb-info-breakpoints-custom) (gdb-var-update-1, gdb-invalidate-locals-1): Use also for gdb-mi. --- lisp/progmodes/gdb-ui.el | 111 +++++++++++++++++++++-------------------------- 1 file changed, 50 insertions(+), 61 deletions(-) diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index 755e83646fc..93eeaeac4f6 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el @@ -571,7 +571,7 @@ With arg, automatically raise speedbar iff arg is positive." (set-text-properties 0 (length expr) nil expr) (gdb-enqueue-input (list - (if (eq gud-minor-mode 'gdba) + (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba) (concat "server interpreter mi \"-var-create - * " expr "\"\n") (concat"-var-create - * " expr "\n")) `(lambda () (gdb-var-create-handler ,expr)))))))) @@ -594,8 +594,7 @@ With arg, automatically raise speedbar iff arg is positive." (speedbar-change-initial-expansion-list "GUD")) (gdb-enqueue-input (list - (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) - 'gdba) + (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba) (concat "server interpreter mi \"-var-evaluate-expression " (nth 1 var) "\"\n") (concat "-var-evaluate-expression " (nth 1 var) "\n")) @@ -743,13 +742,11 @@ TEXT is the text of the button we clicked on, a + or - item. TOKEN is data related to this node. INDENT is the current indentation depth." (cond ((string-match "+" text) ;expand this node - (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba) - (if (string-equal gdb-version "pre-6.4") - (gdb-var-list-children token) - (gdb-var-list-children-1 token)) - (progn - (gdbmi-var-update) - (gdbmi-var-list-children token)))) + (if (and + (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba) + (string-equal gdb-version "pre-6.4")) + (gdb-var-list-children token) + (gdb-var-list-children-1 token))) ((string-match "-" text) ;contract this node (dolist (var gdb-var-list) (if (string-match (concat token "\\.") (nth 1 var)) @@ -1195,7 +1192,7 @@ happens to be appropriate." (if (string-equal gdb-version "pre-6.4") (gdb-invalidate-registers) - (if (gdb-get-buffer 'gdb-registers-buffer) (gdb-get-changed-registers)) + (gdb-get-changed-registers) (gdb-invalidate-registers-1)) (gdb-invalidate-memory) @@ -1498,7 +1495,7 @@ static char *magick[] = { ;; Remove all breakpoint-icons in source buffers but not assembler buffer. (dolist (buffer (buffer-list)) (with-current-buffer buffer - (if (and (eq gud-minor-mode 'gdba) + (if (and (memq gud-minor-mode '(gdba gdbmi)) (not (string-match "\\`\\*.+\\*\\'" (buffer-name)))) (gdb-remove-breakpoint-icons (point-min) (point-max))))) (with-current-buffer (gdb-get-buffer 'gdb-breakpoints-buffer) @@ -1633,7 +1630,7 @@ static char *magick[] = { (defvar gdb-breakpoints-mode-map (let ((map (make-sparse-keymap)) (menu (make-sparse-keymap "Breakpoints"))) - (define-key menu [quit] '("Quit" . kill-this-buffer)) + (define-key menu [quit] '("Quit" . gdb-delete-frame-or-window)) (define-key menu [goto] '("Goto" . gdb-goto-breakpoint)) (define-key menu [delete] '("Delete" . gdb-delete-breakpoint)) (define-key menu [toggle] '("Toggle" . gdb-toggle-breakpoint)) @@ -1668,15 +1665,15 @@ static char *magick[] = { 'gdb-invalidate-breakpoints 'gdbmi-invalidate-breakpoints)) +(defconst gdb-breakpoint-regexp + "\\([0-9]+\\).*?\\(?:point\\|catch\\s-+\\S-+\\)\\s-+\\S-+\\s-+\\(.\\)\\s-+") + (defun gdb-toggle-breakpoint () "Enable/disable breakpoint at current line." (interactive) (save-excursion (beginning-of-line 1) - (if (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba) - (looking-at "\\([0-9]+\\).*?point\\s-+\\S-+\\s-+\\(.\\)\\s-+") - (looking-at - "\\([0-9]+\\)\\s-+\\S-+\\s-+\\S-+\\s-+\\(.\\)\\s-+\\S-+\\s-+\\S-+:[0-9]+")) + (if (looking-at gdb-breakpoint-regexp) (gdb-enqueue-input (list (concat gdb-server-prefix @@ -1690,10 +1687,7 @@ static char *magick[] = { "Delete the breakpoint at current line." (interactive) (beginning-of-line 1) - (if (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba) - (looking-at "\\([0-9]+\\).*?point\\s-+\\S-+\\s-+\\(.\\)") - (looking-at - "\\([0-9]+\\)\\s-+\\S-+\\s-+\\S-+\\s-+\\s-+\\S-+\\s-+\\S-+:[0-9]+")) + (if (looking-at gdb-breakpoint-regexp) (gdb-enqueue-input (list (concat gdb-server-prefix "delete " (match-string 1) "\n") 'ignore)) @@ -1708,11 +1702,7 @@ static char *magick[] = { (if window (save-selected-window (select-window window)))) (save-excursion (beginning-of-line 1) - (if (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba) - (looking-at "\\([0-9]+\\) .+ in .+ at\\s-+\\(\\S-+\\):\\([0-9]+\\)") - (looking-at - "\\([0-9]+\\)\\s-+\\S-+\\s-+\\S-+\\s-+.\\s-+\\S-+\\s-+\ -\\(\\S-+\\):\\([0-9]+\\)")) + (if (looking-at "\\([0-9]+\\) .+ in .+ at\\s-+\\(\\S-+\\):\\([0-9]+\\)") (let ((bptno (match-string 1)) (file (match-string 2)) (line (match-string 3))) @@ -1724,7 +1714,7 @@ static char *magick[] = { (with-current-buffer buf (goto-line (string-to-number line)) (set-window-point window (point)))))) - (error "Not recognized as break/watchpoint line")))) + (error "No location specified.")))) ;; Frames buffer. This displays a perpetually correct bactracktrace @@ -2416,11 +2406,10 @@ corresponding to the mode line clicked." (set (make-local-variable 'font-lock-defaults) '(gdb-locals-font-lock-keywords)) (run-mode-hooks 'gdb-locals-mode-hook) - (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba) - (if (string-equal gdb-version "pre-6.4") - 'gdb-invalidate-locals - 'gdb-invalidate-locals-1) - 'gdbmi-invalidate-locals)) + (if (and (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba) + (string-equal gdb-version "pre-6.4")) + 'gdb-invalidate-locals + 'gdb-invalidate-locals-1)) (defun gdb-locals-buffer-name () (with-current-buffer gud-comint-buffer @@ -2684,11 +2673,12 @@ of the current session." (if (and (buffer-name gud-comint-buffer) ;; in case gud or gdb-ui is just loaded gud-comint-buffer - (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) - 'gdba)) + (memq (buffer-local-value 'gud-minor-mode gud-comint-buffer) + '(gdba gdbmi))) (if (member buffer-file-name gdb-source-file-list) (with-current-buffer (find-buffer-visiting buffer-file-name) - (set (make-local-variable 'gud-minor-mode) 'gdba) + (set (make-local-variable 'gud-minor-mode) + (buffer-local-value 'gud-minor-mode gud-comint-buffer)) (set (make-local-variable 'tool-bar-map) gud-tool-bar-map))))) ;;from put-image @@ -2973,30 +2963,25 @@ BUFFER nil or omitted means use the current buffer." (defun gdb-xbacktrace () "Generate a full lisp level backtrace with arguments." (interactive) - (setq my-frames nil) - (with-current-buffer (get-buffer-create "xbacktrace") - (erase-buffer)) - (let (frame-number gdb-frame-number) + (let ((frames nil) + (frame-number gdb-frame-number)) (with-current-buffer (gdb-get-buffer 'gdb-stack-buffer) (save-excursion (goto-char (point-min)) (while (search-forward "in Ffuncall " nil t) (goto-char (line-beginning-position)) (looking-at "^#\\([0-9]+\\)") - (push (match-string-no-properties 1) my-frames) + (push (match-string-no-properties 1) frames) (forward-line 1)))) - (dolist (frame my-frames) + (dolist (frame frames) (gdb-enqueue-input (list (concat "server frame " frame "\n") 'ignore)) +; can't use separate buffer because Emacs gets confused by starting +; annotation from debug1_print (with output-sink eq 'emacs) ; (gdb-enqueue-input (list "server ppargs\n" 'gdb-get-arguments)) - (gud-basic-call "server ppargs") -) + (gud-basic-call "server ppargs")) (gdb-enqueue-input (list (concat "server frame " frame-number "\n") 'ignore)))) - -(defun gdb-get-arguments () - (with-current-buffer "xbacktrace" - (insert-buffer-substring (gdb-get-buffer 'gdb-partial-output-buffer)))) ;; Code specific to GDB 6.4 (defconst gdb-source-file-regexp-1 "fullname=\"\\(.*?\\)\"") @@ -3009,7 +2994,8 @@ BUFFER nil or omitted means use the current buffer." (dolist (buffer (buffer-list)) (with-current-buffer buffer (when (member buffer-file-name gdb-source-file-list) - (set (make-local-variable 'gud-minor-mode) 'gdba) + (set (make-local-variable 'gud-minor-mode) + (buffer-local-value 'gud-minor-mode gud-comint-buffer)) (set (make-local-variable 'tool-bar-map) gud-tool-bar-map) (when gud-tooltip-mode (make-local-variable 'gdb-define-alist) @@ -3019,12 +3005,12 @@ BUFFER nil or omitted means use the current buffer." ; Uses "-var-list-children --all-values". Needs GDB 6.1 onwards. (defun gdb-var-list-children-1 (varnum) (gdb-enqueue-input - (list (concat "server interpreter mi \"-var-update " varnum "\"\n") - 'ignore)) - (gdb-enqueue-input - (list (concat "server interpreter mi \"-var-list-children --all-values " - varnum "\"\n") - `(lambda () (gdb-var-list-children-handler-1 ,varnum))))) + (list + (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba) + (concat "server interpreter mi \"-var-list-children --all-values " + varnum "\"\n") + (concat "-var-list-children --all-values " varnum "\n")) + `(lambda () (gdb-var-list-children-handler-1 ,varnum))))) (defconst gdb-var-list-children-regexp-1 "name=\"\\(.+?\\)\",exp=\"\\(.+?\\)\",numchild=\"\\(.+?\\)\",\ @@ -3059,10 +3045,10 @@ value=\\(\".*?\"\\),type=\"\\(.+?\\)\"}") (progn (gdb-enqueue-input (list - (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)) + (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba) "server interpreter mi \"-var-update --all-values *\"\n" "-var-update --all-values *\n") - 'gdb-var-update-handler-1)) + 'gdb-var-update-handler-1)) (push 'gdb-var-update gdb-pending-triggers)))) (defconst gdb-var-update-regexp-1 "name=\"\\(.*?\\)\",value=\\(\".*?\"\\),") @@ -3098,7 +3084,7 @@ value=\\(\".*?\"\\),type=\"\\(.+?\\)\"}") (def-gdb-auto-update-trigger gdb-invalidate-registers-1 (gdb-get-buffer 'gdb-registers-buffer) - (if (eq gud-minor-mode 'gdba) + (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba) "server interpreter mi \"-data-list-register-values x\"\n" "-data-list-register-values x\n") gdb-data-list-register-values-handler) @@ -3157,14 +3143,15 @@ value=\\(\".*?\"\\),type=\"\\(.+?\\)\"}") ;; Needs GDB 6.4 onwards (used to fail with no stack). (defun gdb-get-changed-registers () - (if (not (member 'gdb-get-changed-registers gdb-pending-triggers)) + (if (and (gdb-get-buffer 'gdb-registers-buffer) + (not (member 'gdb-get-changed-registers gdb-pending-triggers))) (progn (gdb-enqueue-input (list - (if (eq gud-minor-mode 'gdba) + (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba) "server interpreter mi -data-list-changed-registers\n" "-data-list-changed-registers\n") - 'gdb-get-changed-registers-handler)) + 'gdb-get-changed-registers-handler)) (push 'gdb-get-changed-registers gdb-pending-triggers)))) (defconst gdb-data-list-register-names-regexp "\"\\(.*?\\)\"") @@ -3187,7 +3174,9 @@ value=\\(\".*?\"\\),type=\"\\(.+?\\)\"}") (def-gdb-auto-update-trigger gdb-invalidate-locals-1 (gdb-get-buffer 'gdb-locals-buffer) - "server interpreter mi -\"stack-list-locals --simple-values\"\n" + (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba) + "server interpreter mi -\"stack-list-locals --simple-values\"\n" + "-stack-list-locals --simple-values\n") gdb-stack-list-locals-handler) (defconst gdb-stack-list-locals-regexp -- cgit v1.2.1 From 240029d92c295507f17ceb6e9d30b93610bc4deb Mon Sep 17 00:00:00 2001 From: Miles Bader Date: Mon, 13 Feb 2006 22:57:54 +0000 Subject: Revision: emacs@sv.gnu.org/emacs--devo--0--patch-82 Creator: Michael Olson Fix compiler error in erc-dcc.el. --- lisp/erc/ChangeLog | 4 ++++ lisp/erc/erc-dcc.el | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 4653f4177e5..3d44f87777c 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -1,3 +1,7 @@ +2006-02-13 Michael Olson + + * erc-dcc.el: Use (eval-when-compile (require 'cl)). + 2006-02-12 Michael Olson * erc-autoaway.el, erc-dcc.el, erc-ezbounce.el, erc-fill.el, diff --git a/lisp/erc/erc-dcc.el b/lisp/erc/erc-dcc.el index 9b1e136ce59..4b9172f06d7 100644 --- a/lisp/erc/erc-dcc.el +++ b/lisp/erc/erc-dcc.el @@ -55,7 +55,8 @@ (require 'erc) (eval-when-compile - (require 'pcomplete)) + (require 'cl) + (require 'pcomplete)) (defgroup erc-dcc nil "DCC stands for Direct Client Communication, where you and your -- cgit v1.2.1 From 5a6c1d871eb47630435c4253286f550e9c91b0eb Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Tue, 14 Feb 2006 01:21:31 +0000 Subject: * files.el (safe-local-variable-values): New option. (hack-local-variables-prop-line): Return a list of variable-value pairs if MODE-ONLY is non-nil. (hack-local-variables): Construct list of variable-value pairs, and apply or reject them in one go. Ask for confirmation if variables are not known safe. (hack-local-variables-confirm): Complete rewrite. Support `safe-local-variable-values'. (enable-local-variables): Update docstring to reflect new behavior. (ignored-local-variables): Ignore ignored-local-variables and safe-local-variable-values. (safe-local-variable-p): New function. (risky-local-variable-p): `safe-local-variable' property check moved to safe-local-variable-p. (hack-one-local-variable): Checks moved to hack-local-variables. (byte-compile-dynamic, c-basic-offset, c-file-style, c-indent-level, comment-column, fill-column, fill-prefix, indent-tabs-mode, kept-new-versions, no-byte-compile, no-update-autoloads, outline-regexp, page-delimiter, paragraph-start, paragraph-separate, sentence-end, sentence-end-double-space tab-width, version-control): Add `safe-local-variable' property. * find-lisp.el: Delete nonexistent `autocompile' file variable. * icomplete.el, play/landmark.el: Change nonexistent `outline-layout' file variable to `allout-layout'. --- lisp/ChangeLog | 32 ++++ lisp/files.el | 452 ++++++++++++++++++++++++++++++-------------------- lisp/find-lisp.el | 4 - lisp/icomplete.el | 2 +- lisp/play/landmark.el | 4 +- 5 files changed, 308 insertions(+), 186 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6ccf48732b4..83e47bfc26d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,35 @@ +2006-02-13 Chong Yidong + + * files.el (safe-local-variable-values): New option. + (hack-local-variables-prop-line): Return a list of variable-value + pairs if MODE-ONLY is non-nil. + (hack-local-variables): Construct list of variable-value pairs, + and apply or reject them in one go. Ask for confirmation if + variables are not known safe. + (hack-local-variables-confirm): Complete rewrite. Support + `safe-local-variable-values'. + (enable-local-variables): Update docstring to reflect new + behavior. + (ignored-local-variables): Ignore ignored-local-variables and + safe-local-variable-values. + (safe-local-variable-p): New function. + (risky-local-variable-p): `safe-local-variable' property check + moved to safe-local-variable-p. + (hack-one-local-variable): Checks moved to hack-local-variables. + + (byte-compile-dynamic, c-basic-offset, c-file-style, + c-indent-level, comment-column, fill-column, fill-prefix, + indent-tabs-mode, kept-new-versions, no-byte-compile, + no-update-autoloads, outline-regexp, page-delimiter, + paragraph-start, paragraph-separate, sentence-end, + sentence-end-double-space tab-width, version-control): Add + `safe-local-variable' property. + + * find-lisp.el: Delete nonexistent `autocompile' file variable. + + * icomplete.el, play/landmark.el: Change nonexistent + `outline-layout' file variable to `allout-layout'. + 2006-02-14 Nick Roberts * progmodes/gdb-ui.el (gud-watch, gdb-invalidate-registers-1) diff --git a/lisp/files.el b/lisp/files.el index 16229cfda1c..e96aace0467 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -445,8 +445,13 @@ use `before-save-hook'.") (defcustom enable-local-variables t "*Control use of local variables in files you visit. The value can be t, nil or something else. -A value of t means file local variables specifications are obeyed; -nil means they are ignored; anything else means query. + +A value of t means file local variables specifications are obeyed +if all the specified variables are safe. If any variables are +not safe, you will be queries before setting them. +A value of nil means file local variables are ignored. +Any other value means to always query. + This variable also controls use of major modes specified in a -*- line. @@ -2214,42 +2219,79 @@ Otherwise, return nil; point may be changed." (goto-char beg) end)))) -(defun hack-local-variables-confirm (string flag-to-check) - (or (eq flag-to-check t) - (and flag-to-check - (save-window-excursion - (condition-case nil - (switch-to-buffer (current-buffer)) - (error - ;; If we fail to switch in the selected window, - ;; it is probably a minibuffer or dedicated window. - ;; So try another window. - (let ((pop-up-frames nil)) - ;; Refrain from popping up frames since it can't - ;; be undone by save-window-excursion. - (pop-to-buffer (current-buffer))))) - (save-excursion - (beginning-of-line) - (set-window-start (selected-window) (point))) - (y-or-n-p (format string - (if buffer-file-name - (file-name-nondirectory buffer-file-name) - (concat "buffer " (buffer-name))))))))) +(defun hack-local-variables-confirm (vars unsafe-vars risky-vars) + (if noninteractive + nil + (let ((name (if buffer-file-name + (file-name-nondirectory buffer-file-name) + (concat "buffer " (buffer-name)))) + char) + (save-window-excursion + (with-output-to-temp-buffer "*Local Variables*" + (if unsafe-vars + (progn (princ "The local variables list in ") + (princ name) + (princ "\ncontains values that may not be safe (*)") + (if risky-vars + (princ ", and variables that are risky (**).") + (princ "."))) + (if risky-vars + (progn (princ "The local variables list in ") + (princ name) + (princ "\ncontains variables that are risky (**).")) + (princ "A local variables list is specified in ") + (princ name) + (princ "."))) + (princ "\n\nDo you want to apply it? You can type +y -- to apply the local variables list. +n -- to ignore the local variables list. +! -- to apply the local variables list, and mark these values (*) as + safe (in the future, they can be set automatically.)\n\n") + (dolist (elt vars) + (cond ((member elt unsafe-vars) + (princ " * ")) + ((member elt risky-vars) + (princ " ** ")) + (t + (princ " "))) + (princ (car elt)) + (princ " : ") + (princ (cdr elt)) + (princ "\n"))) + (message "Please type y, n, or !: ") + (let ((inhibit-quit t) + (cursor-in-echo-area t)) + (while (or (not (numberp (setq char (read-event)))) + (not (memq (downcase char) + '(?! ?y ?n ?\s ?\C-g)))) + (message "Please type y, n, or !: ")) + (if (= char ?\C-g) + (setq quit-flag nil))) + (setq char (downcase char)) + (when (and (= char ?!) unsafe-vars) + (dolist (elt unsafe-vars) + (push elt safe-local-variable-values)) + (customize-save-variable + 'safe-local-variable-values + safe-local-variable-values)) + (or (= char ?!) + (= char ?\s) + (= char ?y)))))) (defun hack-local-variables-prop-line (&optional mode-only) - "Set local variables specified in the -*- line. + "Return local variables specified in the -*- line. Ignore any specification for `mode:' and `coding:'; `set-auto-mode' should already have handled `mode:', `set-auto-coding' should already have handled `coding:'. -If MODE-ONLY is non-nil, all we do is check whether the major mode -is specified, returning t if it is specified." + +If MODE-ONLY is non-nil, all we do is check whether the major +mode is specified, returning t if it is specified. Otherwise, +return an alist of elements (VAR . VAL), where VAR is a variable +and VAL is the specified value." (save-excursion (goto-char (point-min)) - (let ((result nil) - (end (set-auto-mode-1)) - mode-specified - (enable-local-variables - (and local-enable-local-variables enable-local-variables))) + (let ((end (set-auto-mode-1)) + result mode-specified) ;; Parse the -*- line into the RESULT alist. ;; Also set MODE-SPECIFIED if we see a spec or `mode'. (cond ((not end) @@ -2279,128 +2321,162 @@ is specified, returning t if it is specified." ;; so we must do that here as well. ;; That is inconsistent, but we're stuck with it. ;; The same can be said for `coding' in set-auto-coding. - (or (equal (downcase (symbol-name key)) "mode") + (or (and (equal (downcase (symbol-name key)) "mode") + (setq mode-specified t)) (equal (downcase (symbol-name key)) "coding") - (setq result (cons (cons key val) result))) - (if (equal (downcase (symbol-name key)) "mode") - (setq mode-specified t)) - (skip-chars-forward " \t;"))) - (setq result (nreverse result)))) - - (if mode-only mode-specified - (if (and result - (or mode-only - (hack-local-variables-confirm - "Set local variables as specified in -*- line of %s? " - enable-local-variables))) - (let ((enable-local-eval enable-local-eval)) - (while result - (hack-one-local-variable (car (car result)) (cdr (car result))) - (setq result (cdr result))))) - nil)))) + (condition-case nil + (push (cons (if (eq key 'eval) + 'eval + (indirect-variable key)) + val) result) + (error nil))) + (skip-chars-forward " \t;"))))) + + (if mode-only + mode-specified + result)))) (defvar hack-local-variables-hook nil "Normal hook run after processing a file's local variables specs. Major modes can use this to examine user-specified local variables in order to initialize other data structure based on them.") +(defcustom safe-local-variable-values nil + "List variable-value pairs that are considered safe. +Each element is a cons cell (VAR . VAL), where VAR is a variable +symbol and VAL is a value that is considered safe." + :group 'find-file + :type 'alist) + (defun hack-local-variables (&optional mode-only) "Parse and put into effect this buffer's local variables spec. If MODE-ONLY is non-nil, all we do is check whether the major mode is specified, returning t if it is specified." - (let ((mode-specified - ;; If MODE-ONLY is t, we check here for specifying the mode - ;; in the -*- line. If MODE-ONLY is nil, we process - ;; the -*- line here. - (hack-local-variables-prop-line mode-only)) - (enable-local-variables - (and local-enable-local-variables enable-local-variables))) - ;; Look for "Local variables:" line in last page. - (save-excursion - (goto-char (point-max)) - (search-backward "\n\^L" (max (- (point-max) 3000) (point-min)) 'move) - (when (let ((case-fold-search t)) - (and (search-forward "Local Variables:" nil t) - (or mode-only - (hack-local-variables-confirm - "Set local variables as specified at end of %s? " - enable-local-variables)))) - (skip-chars-forward " \t") - (let ((enable-local-eval enable-local-eval) - ;; suffix is what comes after "local variables:" in its line. - (suffix - (concat - (regexp-quote (buffer-substring (point) (line-end-position))) - "$")) - ;; prefix is what comes before "local variables:" in its line. - (prefix - (concat "^" (regexp-quote - (buffer-substring (line-beginning-position) - (match-beginning 0))))) - beg) - - (forward-line 1) - (let ((startpos (point)) - endpos - (thisbuf (current-buffer))) - (save-excursion - (unless (let ((case-fold-search t)) - (re-search-forward - (concat prefix "[ \t]*End:[ \t]*" suffix) - nil t)) - (error "Local variables list is not properly terminated")) - (beginning-of-line) - (setq endpos (point))) - - (with-temp-buffer - (insert-buffer-substring thisbuf startpos endpos) - (goto-char (point-min)) - (subst-char-in-region (point) (point-max) ?\^m ?\n) - (while (not (eobp)) - ;; Discard the prefix. - (if (looking-at prefix) - (delete-region (point) (match-end 0)) - (error "Local variables entry is missing the prefix")) - (end-of-line) - ;; Discard the suffix. - (if (looking-back suffix) - (delete-region (match-beginning 0) (point)) - (error "Local variables entry is missing the suffix")) - (forward-line 1)) - (goto-char (point-min)) - - (while (not (eobp)) - ;; Find the variable name; strip whitespace. - (skip-chars-forward " \t") - (setq beg (point)) - (skip-chars-forward "^:\n") - (if (eolp) (error "Missing colon in local variables entry")) - (skip-chars-backward " \t") - (let* ((str (buffer-substring beg (point))) - (var (read str)) - val) - ;; Read the variable value. - (skip-chars-forward "^:") - (forward-char 1) - (setq val (read (current-buffer))) - (if mode-only - (if (eq var 'mode) - (setq mode-specified t)) - ;; Set the variable. "Variables" mode and eval are funny. - (with-current-buffer thisbuf - (hack-one-local-variable var val)))) - (forward-line 1))))))) - (unless mode-only - (run-hooks 'hack-local-variables-hook)) - mode-specified)) - -(defvar ignored-local-variables () + (let ((enable-local-variables + (and local-enable-local-variables enable-local-variables)) + result) + (when (or mode-only enable-local-variables) + (setq result (hack-local-variables-prop-line mode-only)) + ;; Look for "Local variables:" line in last page. + (save-excursion + (goto-char (point-max)) + (search-backward "\n\^L" (max (- (point-max) 3000) (point-min)) + 'move) + (when (let ((case-fold-search t)) + (search-forward "Local Variables:" nil t)) + (skip-chars-forward " \t") + ;; suffix is what comes after "local variables:" in its line. + ;; prefix is what comes before "local variables:" in its line. + (let ((suffix + (concat + (regexp-quote (buffer-substring (point) + (line-end-position))) + "$")) + (prefix + (concat "^" (regexp-quote + (buffer-substring (line-beginning-position) + (match-beginning 0))))) + beg) + + (forward-line 1) + (let ((startpos (point)) + endpos + (thisbuf (current-buffer))) + (save-excursion + (unless (let ((case-fold-search t)) + (re-search-forward + (concat prefix "[ \t]*End:[ \t]*" suffix) + nil t)) + (error "Local variables list is not properly terminated")) + (beginning-of-line) + (setq endpos (point))) + + (with-temp-buffer + (insert-buffer-substring thisbuf startpos endpos) + (goto-char (point-min)) + (subst-char-in-region (point) (point-max) ?\^m ?\n) + (while (not (eobp)) + ;; Discard the prefix. + (if (looking-at prefix) + (delete-region (point) (match-end 0)) + (error "Local variables entry is missing the prefix")) + (end-of-line) + ;; Discard the suffix. + (if (looking-back suffix) + (delete-region (match-beginning 0) (point)) + (error "Local variables entry is missing the suffix")) + (forward-line 1)) + (goto-char (point-min)) + + (while (not (eobp)) + ;; Find the variable name; strip whitespace. + (skip-chars-forward " \t") + (setq beg (point)) + (skip-chars-forward "^:\n") + (if (eolp) (error "Missing colon in local variables entry")) + (skip-chars-backward " \t") + (let* ((str (buffer-substring beg (point))) + (var (read str)) + val) + ;; Read the variable value. + (skip-chars-forward "^:") + (forward-char 1) + (setq val (read (current-buffer))) + (if mode-only + (if (eq var 'mode) + (setq result t)) + (unless (eq var 'coding) + (condition-case nil + (push (cons (if (eq var 'eval) + 'eval + (indirect-variable var)) + val) result) + (error nil))))) + (forward-line 1))))))) + + ;; We've read all the local variables. Now, return whether the + ;; mode is specified (if MODE-ONLY is non-nil), or set the + ;; variables (if MODE-ONLY is nil.) + (if mode-only + result + (setq result (nreverse result)) + (dolist (ignored ignored-local-variables) + (setq result (assq-delete-all ignored result))) + (if (null enable-local-eval) + (setq result (assq-delete-all 'eval result))) + ;; Find those variables that we may want to save to + ;; `safe-local-variable-values'. + (let (risky-vars unsafe-vars) + (dolist (elt result) + (let ((var (car elt)) + (val (cdr elt))) + (or (eq var 'mode) + (and (eq var 'eval) + (or (eq enable-local-eval t) + (hack-one-local-variable-eval-safep + (eval (quote val))))) + (safe-local-variable-p var val) + (and (risky-local-variable-p var val) + (push elt risky-vars)) + (push elt unsafe-vars)))) + (if (or (and (eq enable-local-variables t) + (null unsafe-vars) + (null risky-vars)) + (hack-local-variables-confirm + result unsafe-vars risky-vars)) + (dolist (elt result) + (hack-one-local-variable (car elt) (cdr elt))))) + (run-hooks 'hack-local-variables-hook))))) + +(defvar ignored-local-variables + '(ignored-local-variables safe-local-variable-values) "Variables to be ignored in a file's local variable spec.") ;; Get confirmation before setting these variables as locals in a file. (put 'debugger 'risky-local-variable t) (put 'enable-local-eval 'risky-local-variable t) (put 'ignored-local-variables 'risky-local-variable t) +(put 'ignored-local-variables 'safe-local-variable-values t) (put 'eval 'risky-local-variable t) (put 'file-name-handler-alist 'risky-local-variable t) (put 'inhibit-quit 'risky-local-variable t) @@ -2452,27 +2528,68 @@ is specified, returning t if it is specified." (put 'display-time-string 'risky-local-variable t) (put 'parse-time-rules 'risky-local-variable t) -;; This case is safe because the user gets to check it before it is used. -(put 'compile-command 'safe-local-variable 'stringp) - -(defun risky-local-variable-p (sym &optional val) - "Non-nil if SYM could be dangerous as a file-local variable with value VAL. -If VAL is nil or omitted, the question is whether any value might be -dangerous." +;; Commonly-encountered local variables that are safe: +(let ((string-or-null (lambda (a) (or (stringp a) (null a))))) + (eval + `(mapc (lambda (pair) + (put (car pair) 'safe-local-variable (cdr pair))) + '((byte-compile-dynamic . t) + (c-basic-offset . integerp) + (c-file-style . stringp) + (c-indent-level . integerp) + (comment-column . integerp) + (compile-command . ,string-or-null) + (fill-column . integerp) + (fill-prefix . ,string-or-null) + (indent-tabs-mode . t) + (kept-new-versions . integerp) + (no-byte-compile . t) + (no-update-autoloads . t) + (outline-regexp . ,string-or-null) + (page-delimiter . ,string-or-null) + (paragraph-start . ,string-or-null) + (paragraph-separate . ,string-or-null) + (sentence-end . ,string-or-null) + (sentence-end-double-space . t) + (tab-width . integerp) + (version-control . t))))) + +(defun safe-local-variable-p (sym val) + "Non-nil if SYM is safe as a file-local variable with value VAL. +It is safe if any of these conditions are met: + + * There is a matching entry (SYM . VAL) in the + `safe-local-variable-values' user option. + + * The `safe-local-variable' property of SYM is t. + + * The `safe-local-variable' property of SYM is a function that + evaluates to a non-nil value with VAL as an argument." + (or (member (cons sym val) safe-local-variable-values) + (let ((safep (get sym 'safe-local-variable))) + (or (eq safep t) + (and (functionp safep) + (funcall safep val)))))) + +(defun risky-local-variable-p (sym &optional ignored) + "Non-nil if SYM could be dangerous as a file-local variable. +It is dangerous if either of these conditions are met: + + * Its `risky-local-variable' property is non-nil. + + * Its name ends with \"hook(s)\", \"function(s)\", \"form(s)\", \"map\", + \"program\", \"command(s)\", \"predicate(s)\", \"frame-alist\", + \"mode-alist\", \"font-lock-(syntactic-)keyword*\", or + \"map-alist\"." ;; If this is an alias, check the base name. (condition-case nil (setq sym (indirect-variable sym)) (error nil)) - (let ((safep (get sym 'safe-local-variable))) - (or (get sym 'risky-local-variable) - (and (string-match "-hooks?$\\|-functions?$\\|-forms?$\\|-program$\\|-commands?$\\|-predicates?$\\|font-lock-keywords$\\|font-lock-keywords-[0-9]+$\\|font-lock-syntactic-keywords$\\|-frame-alist$\\|-mode-alist$\\|-map$\\|-map-alist$" - (symbol-name sym)) - (not safep)) - ;; If the safe-local-variable property isn't t or nil, - ;; then it must return non-nil on the proposed value to be safe. - (and (not (memq safep '(t nil))) - (or (null val) - (not (funcall safep val))))))) + (or (get sym 'risky-local-variable) + (string-match "-hooks?$\\|-functions?$\\|-forms?$\\|-program$\\|\ +-commands?$\\|-predicates?$\\|font-lock-keywords$\\|font-lock-keywords\ +-[0-9]+$\\|font-lock-syntactic-keywords$\\|-frame-alist$\\|-mode-alist$\\|\ +-map$\\|-map-alist$" (symbol-name sym)))) (defcustom safe-local-eval-forms nil "*Expressions that are considered \"safe\" in an `eval:' local variable. @@ -2529,35 +2646,12 @@ asking you for confirmation." ok))))))) (defun hack-one-local-variable (var val) - "\"Set\" one variable in a local variables spec. -A few patterns are specified so that any name which matches one -is considered risky." + "Set local variable VAR with value VAL." (cond ((eq var 'mode) (funcall (intern (concat (downcase (symbol-name val)) "-mode")))) - ((eq var 'coding) - ;; We have already handled coding: tag in set-auto-coding. - nil) - ((memq var ignored-local-variables) - nil) - ;; "Setting" eval means either eval it or do nothing. - ;; Likewise for setting hook variables. - ((risky-local-variable-p var val) - ;; Permit evalling a put of a harmless property. - ;; if the args do nothing tricky. - (if (or (and (eq var 'eval) - (hack-one-local-variable-eval-safep val)) - ;; Permit eval if not root and user says ok. - (and (not (zerop (user-uid))) - (hack-local-variables-confirm - "Process `eval' or hook local variables in %s? " - enable-local-eval))) - (if (eq var 'eval) - (save-excursion (eval val)) - (make-local-variable var) - (set var val)) - (message "Ignoring risky spec in the local variables list"))) - ;; Ordinary variable, really set it. + ((eq var 'eval) + (save-excursion (eval val))) (t (make-local-variable var) ;; Make sure the string has no text properties. ;; Some text properties can get evaluated in various ways, diff --git a/lisp/find-lisp.el b/lisp/find-lisp.el index c7527fe21f5..5cedaa60e35 100644 --- a/lisp/find-lisp.el +++ b/lisp/find-lisp.el @@ -359,9 +359,5 @@ It is a function which takes two arguments, the directory and its parent." (provide 'find-lisp) -;; Local Variables: -;; autocompile: t -;; End: - ;;; arch-tag: a711374c-f12a-46f6-aa18-ba7d77b9602a ;;; find-lisp.el ends here diff --git a/lisp/icomplete.el b/lisp/icomplete.el index f835d91ff9a..191f1d324e6 100644 --- a/lisp/icomplete.el +++ b/lisp/icomplete.el @@ -325,7 +325,7 @@ are exhibited within the square braces.)" ;;;_* Local emacs vars. ;;;Local variables: -;;;outline-layout: (-2 :) +;;;allout-layout: (-2 :) ;;;End: ;; arch-tag: 339ec25a-0741-4eb6-be63-997532e89b0f diff --git a/lisp/play/landmark.el b/lisp/play/landmark.el index ed4181e5b8d..63d7a9fe33a 100644 --- a/lisp/play/landmark.el +++ b/lisp/play/landmark.el @@ -1694,13 +1694,13 @@ Use \\[describe-mode] for more info." ;;;_ + Local variables -;;; The following `outline-layout' local variable setting: +;;; The following `allout-layout' local variable setting: ;;; - closes all topics from the first topic to just before the third-to-last, ;;; - shows the children of the third to last (config vars) ;;; - and the second to last (code section), ;;; - and closes the last topic (this local-variables section). ;;;Local variables: -;;;outline-layout: (0 : -1 -1 0) +;;;allout-layout: (0 : -1 -1 0) ;;;End: (provide 'landmark) -- cgit v1.2.1 From f925e502c9293432abeac82167d5625aa781647b Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Tue, 14 Feb 2006 01:21:48 +0000 Subject: * custom.texi (Specifying File Variables, Unsafe File Variables): New nodes, split from File Variables. Document new file local variable behavior. --- man/ChangeLog | 6 +++++ man/custom.texi | 76 ++++++++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 62 insertions(+), 20 deletions(-) diff --git a/man/ChangeLog b/man/ChangeLog index e274f09d8e5..eedc1755f88 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,9 @@ +2006-02-13 Chong Yidong + + * custom.texi (Specifying File Variables, Unsafe File Variables): + New nodes, split from File Variables. Document new file local + variable behavior. + 2006-02-13 YAMAMOTO Mitsuharu * display.texi (Standard Faces): diff --git a/man/custom.texi b/man/custom.texi index 2efbdd81398..5b6dcde70ee 100644 --- a/man/custom.texi +++ b/man/custom.texi @@ -1043,6 +1043,15 @@ file with Emacs. Visiting the file checks for local variable specifications; it automatically makes these variables local to the buffer, and sets them to the values specified in the file. +@menu +* Specifying File Variables:: Specifying file local variables. +* Unsafe File Variables:: Handling local variables that may not + be safe. +@end menu + +@node Specifying File Variables +@subsubsection Specifying File Variables + There are two ways to specify local variable values: in the first line, or with a local variables list. Here's how to specify them in the first line: @@ -1170,33 +1179,60 @@ list need not take the time to search the whole file. major mode of a buffer according to the file name and contents, including the local variables list if any. @xref{Choosing Modes}. +@node Unsafe File Variables +@subsubsection Unsafe File Variables + + File variables create a certain amount of risk; when you visit +someone else's file, its variables could affect your Emacs in +arbitrary ways. A special risk is posed by the @code{eval} +``variable,'' which can potentially execute arbitrary code, and +certain actual variables such as @code{load-path}. + + Therefore, whenever Emacs encounters file variables that are not +known to be safe, it displays the entire list of variables defined in +that file, and asks you for confirmation before setting them. You can +type @samp{y} or @samp{SPC} to apply the local variables list, or +@samp{n} to ignore it. + + There is a set of file variables and values that are known to be +safe. For instance, it is safe to give @code{comment-column} or +@code{fill-column} any integer value. If a file specifies only safe +variable-value pairs, Emacs will not ask for confirmation before +setting them. You can also tell Emacs that a set of variable-value +pairs is safe, by entering @samp{!} at the file variables confirmation +prompt. In that case, Emacs will not ask for confirmation if it +encounters these variable-value pairs in the future. You can directly +edit the list of safe variable-value pairs by customizing +@samp{safe-local-variable-values} (@pxref{Easy Customization}). + + Some variables, such as @code{load-path}, are considered +@dfn{risky}: there is seldom any reason to specify them as file +variables, and changing them can be dangerous. Even if you enter +@samp{!} at the confirmation prompt, Emacs will not save these values +for the future. Therefore, you will be prompted each time the +variable is encountered. If you really want to allow such a variable, +you can avoid the prompt by editing @samp{safe-local-variable-values}. + @findex enable-local-variables - The variable @code{enable-local-variables} controls whether to process -local variables in files, and thus gives you a chance to override them. -Its default value is @code{t}, which means do process local variables in -files. If you set the value to @code{nil}, Emacs simply ignores local -variables in files. Any other value says to query you about each file -that has local variables, showing you the local variable specifications -so you can judge. + The variable @code{enable-local-variables} allows you to change the +way Emacs processes local variables. Its default value is @code{t}, +which means the behavior described above. If you set the value to +@code{nil}, Emacs simply ignores local variables in files. Any other +value says to query you about each file that has local variables, even +if the variables are known to be safe. @findex enable-local-eval - The @code{eval} ``variable,'' and certain actual variables, create a -special risk; when you visit someone else's file, local variable -specifications for these could affect your Emacs in arbitrary ways. -Therefore, the variable @code{enable-local-eval} controls whether Emacs -processes @code{eval} variables, as well variables with names that end -in @samp{-hook}, @samp{-hooks}, @samp{-function} or @samp{-functions}, -and certain other variables. The three possibilities for the variable's -value are @code{t}, @code{nil}, and anything else, just as for -@code{enable-local-variables}. The default is @code{maybe}, which is -neither @code{t} nor @code{nil}, so normally Emacs does ask for -confirmation about file settings for these variables. + The variable @code{enable-local-eval} controls whether Emacs +processes @code{eval} variables. The three possibilities for the +variable's value are @code{t}, @code{nil}, and anything else, just as +for @code{enable-local-variables}. The default is @code{maybe}, which +is neither @code{t} nor @code{nil}, so normally Emacs does ask for +confirmation about processes @code{eval} variables. @findex safe-local-eval-forms The @code{safe-local-eval-forms} is a customizable list of eval forms which are safe to eval, so Emacs should not ask for -confirmation to evaluate these forms, even if -@code{enable-local-variables} says to ask for confirmation in general. +confirmation to evaluate these forms. @node Key Bindings @section Customizing Key Bindings -- cgit v1.2.1 From 51a39bab2e2c7de59181e6d6db171a5a45f435d3 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Tue, 14 Feb 2006 01:22:05 +0000 Subject: * variables.texi (File Local Variables): Document new file local variable behavior. --- lispref/ChangeLog | 5 +++ lispref/variables.texi | 92 +++++++++++++++++++++++++++++++------------------- 2 files changed, 63 insertions(+), 34 deletions(-) diff --git a/lispref/ChangeLog b/lispref/ChangeLog index b396e8b3ee7..250d5450608 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog @@ -1,3 +1,8 @@ +2006-02-13 Chong Yidong + + * variables.texi (File Local Variables): Document new file local + variable behavior. + 2006-02-10 Kim F. Storm * eval.texi (Function Indirection): Add NOERROR to indirect-function. diff --git a/lispref/variables.texi b/lispref/variables.texi index 32a6e9b7873..8b54d02758e 100644 --- a/lispref/variables.texi +++ b/lispref/variables.texi @@ -1752,9 +1752,9 @@ information about file local variables. @defopt enable-local-variables This variable controls whether to process file local variables. A -value of @code{t} means process them unconditionally; @code{nil} means -ignore them; anything else means ask the user what to do for each -file. The default value is @code{t}. +value of @code{t} means to process them, querying the user if unsafe +variables are encountered; @code{nil} means ignore them; anything else +means to query the user for each file. The default value is @code{t}. @end defopt @defun hack-local-variables &optional mode-only @@ -1773,46 +1773,70 @@ It does not set the mode nor any other file local variable. If a file local variable could specify a function that would be called later, or an expression that would be executed later, simply -visiting a file could take over your Emacs. To prevent this, Emacs -takes care not to allow to set such file local variables. +visiting a file could take over your Emacs. Emacs takes several +measures to prevent this. + +@cindex safe local variable + When Emacs encounters a file local variable whose safety is not +guaranteed, it asks the user whether or not to obey the file variable +specifications. If the user says no, Emacs ignores @emph{all} the +file variables specified in that file. A variable can be marked as +@dfn{safe} by setting its @code{safe-local-variable} property. If the +property is @code{t}, that variable is always considered safe, +regardless of the value assigned to it. The +@code{safe-local-variable} property can also be a a function taking +exactly one argument. In that case, Emacs considers it safe to give +the variable a certain value if the function returns non-@code{nil} +when called with that value as argument. Many commonly-encountered +file variables possess @code{safe-local-variable} by default, +including @code{fill-column}, @code{fill-prefix}, and +@code{indent-tabs-mode}. + +@defopt safe-local-variable-values +This variable provides another way to mark variables as safe. It is a +list of cons cells @var{(var . val)}, where @var{var} is a variable +name and @var{val} is a value of that variable that is safe. + +When Emacs asks the user whether or not to obey a set of file variable +specifications, the user can choose to mark them as safe. This adds +those variable-value pairs to @code{safe-local-variable-values}, and +saves it to the user's custom file. +@end defopt + +@defun safe-local-variable-p sym val +This function returns non-@code{nil} if it is safe to give @var{sym} +the value @var{val}, based on the above criteria. +@end defun - For one thing, any variable whose name ends in any of -@samp{-command}, @samp{-frame-alist}, @samp{-function}, +@cindex risky local variable +Some variables are considered @dfn{risky}. A variable whose name ends +in any of @samp{-command}, @samp{-frame-alist}, @samp{-function}, @samp{-functions}, @samp{-hook}, @samp{-hooks}, @samp{-form}, @samp{-forms}, @samp{-map}, @samp{-map-alist}, @samp{-mode-alist}, -@samp{-program}, or @samp{-predicate} cannot be given a file local -value. In general, you should use such a name whenever it is -appropriate for the variable's meaning. The variables -@samp{font-lock-keywords}, @samp{font-lock-keywords} followed by a -digit, and @samp{font-lock-syntactic-keywords} cannot be given file -local values either. These rules can be overridden by giving the -variable's name a non-@code{nil} @code{safe-local-variable} property. -If one gives it a @code{safe-local-variable} property of @code{t}, -then one can give the variable any file local value. One can also -give any symbol, including the above, a @code{safe-local-variable} -property that is a function taking exactly one argument. In that -case, giving a variable with that name a file local value is only -allowed if the function returns non-@code{nil} when called with that -value as argument. - - In addition, any variable whose name has a non-@code{nil} -@code{risky-local-variable} property is also ignored. So are all -variables listed in @code{ignored-local-variables}: +@samp{-program}, or @samp{-predicate} is considered risky. The +variables @samp{font-lock-keywords}, @samp{font-lock-keywords} +followed by a digit, and @samp{font-lock-syntactic-keywords} are also +considered risky. Finally, any variable whose name has a +non-@code{nil} @code{risky-local-variable} property is considered +risky. + +@defun risky-local-variable-p sym +This function returns non-@code{nil} if @var{sym} is a risky variable, +based on the above criteria. +@end defun + +If a variable is risky, it will not be entered automatically into +@code{safe-local-variable-values} as described above. Therefore, +Emacs will always query before setting a risky variable, unless the +user explicitly allows it by editing @code{safe-local-variable-values} +via Customize. @defvar ignored-local-variables This variable holds a list of variables that should not be given local values by files. Any value specified for one of these variables is -ignored. +completely ignored. @end defvar -@defun risky-local-variable-p sym &optional val -If @var{val} is non-@code{nil}, returns non-@code{nil} if giving -@var{sym} a file local value of @var{val} would be risky, for any of -the reasons stated above. If @var{val} is @code{nil} or omitted, only -returns @code{nil} if @var{sym} can be safely assigned any file local -value whatsoever. -@end defun - The @samp{Eval:} ``variable'' is also a potential loophole, so Emacs normally asks for confirmation before handling it. -- cgit v1.2.1 From dd60bebe07d9fc5a6954d306269553d09e715de2 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Tue, 14 Feb 2006 03:47:00 +0000 Subject: * files.el (hack-local-variables): Only set results if they exist. --- lisp/files.el | 57 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/lisp/files.el b/lisp/files.el index e96aace0467..0096916ce0b 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -2439,34 +2439,35 @@ is specified, returning t if it is specified." ;; variables (if MODE-ONLY is nil.) (if mode-only result - (setq result (nreverse result)) - (dolist (ignored ignored-local-variables) - (setq result (assq-delete-all ignored result))) - (if (null enable-local-eval) - (setq result (assq-delete-all 'eval result))) - ;; Find those variables that we may want to save to - ;; `safe-local-variable-values'. - (let (risky-vars unsafe-vars) - (dolist (elt result) - (let ((var (car elt)) - (val (cdr elt))) - (or (eq var 'mode) - (and (eq var 'eval) - (or (eq enable-local-eval t) - (hack-one-local-variable-eval-safep - (eval (quote val))))) - (safe-local-variable-p var val) - (and (risky-local-variable-p var val) - (push elt risky-vars)) - (push elt unsafe-vars)))) - (if (or (and (eq enable-local-variables t) - (null unsafe-vars) - (null risky-vars)) - (hack-local-variables-confirm - result unsafe-vars risky-vars)) - (dolist (elt result) - (hack-one-local-variable (car elt) (cdr elt))))) - (run-hooks 'hack-local-variables-hook))))) + (when result + (setq result (nreverse result)) + (dolist (ignored ignored-local-variables) + (setq result (assq-delete-all ignored result))) + (if (null enable-local-eval) + (setq result (assq-delete-all 'eval result))) + ;; Find those variables that we may want to save to + ;; `safe-local-variable-values'. + (let (risky-vars unsafe-vars) + (dolist (elt result) + (let ((var (car elt)) + (val (cdr elt))) + (or (eq var 'mode) + (and (eq var 'eval) + (or (eq enable-local-eval t) + (hack-one-local-variable-eval-safep + (eval (quote val))))) + (safe-local-variable-p var val) + (and (risky-local-variable-p var val) + (push elt risky-vars)) + (push elt unsafe-vars)))) + (if (or (and (eq enable-local-variables t) + (null unsafe-vars) + (null risky-vars)) + (hack-local-variables-confirm + result unsafe-vars risky-vars)) + (dolist (elt result) + (hack-one-local-variable (car elt) (cdr elt))))) + (run-hooks 'hack-local-variables-hook)))))) (defvar ignored-local-variables '(ignored-local-variables safe-local-variable-values) -- cgit v1.2.1 From a5f435502d4cf4f06ad2299e0be6e54d86bbe34c Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Tue, 14 Feb 2006 08:14:01 +0000 Subject: (where-is): Fix displaying of remappings. --- lisp/ChangeLog | 22 +++++++++++++--------- lisp/help.el | 2 +- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 83e47bfc26d..207d7c50607 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2006-02-14 Juanma Barranquero + + * help.el (where-is): Fix message for remapped commands. + 2006-02-13 Chong Yidong * files.el (safe-local-variable-values): New option. @@ -17,13 +21,13 @@ moved to safe-local-variable-p. (hack-one-local-variable): Checks moved to hack-local-variables. - (byte-compile-dynamic, c-basic-offset, c-file-style, - c-indent-level, comment-column, fill-column, fill-prefix, - indent-tabs-mode, kept-new-versions, no-byte-compile, - no-update-autoloads, outline-regexp, page-delimiter, - paragraph-start, paragraph-separate, sentence-end, - sentence-end-double-space tab-width, version-control): Add - `safe-local-variable' property. + (byte-compile-dynamic, c-basic-offset, c-file-style) + (c-indent-level, comment-column, fill-column, fill-prefix) + (indent-tabs-mode, kept-new-versions, no-byte-compile) + (no-update-autoloads, outline-regexp, page-delimiter) + (paragraph-start, paragraph-separate, sentence-end) + (sentence-end-double-space tab-width, version-control): + Add `safe-local-variable' property. * find-lisp.el: Delete nonexistent `autocompile' file variable. @@ -49,7 +53,7 @@ 2006-02-13 Jay Belanger - * calc/calc-arith.el: (math-check-known-matrixp): Make sure + * calc/calc-arith.el (math-check-known-matrixp): Make sure expression is a symbol before checking that it is bound. 2006-02-13 Richard M. Stallman @@ -61,7 +65,7 @@ inside `interactive' spec. (describe-key-briefly-internal, describe-key-internal): Functions merged back into their callers. - + 2006-02-13 Martin Rudalics (tiny change) * info.el (info-xref-visited): Inherit from info-xref too. diff --git a/lisp/help.el b/lisp/help.el index 76aeac0ef62..02045948ecb 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -510,7 +510,7 @@ If INSERT (the prefix arg) is non-nil, insert the message in the buffer." (if (> (length keys) 0) (if remapped (format "%s is remapped to %s which is on %s" - definition symbol keys) + symbol remapped keys) (format "%s is on %s" symbol keys)) ;; If this is the command the user asked about, ;; and it is not on any key, say so. -- cgit v1.2.1 From e92928a72de3ccb09acf5101b3d9d0cb18f12999 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Tue, 14 Feb 2006 10:01:23 +0000 Subject: * xterm.c (x_x_to_emacs_modifiers): Make non-static. --- src/xterm.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/xterm.c b/src/xterm.c index eb0b984d486..c1a7e95d1f0 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -322,8 +322,7 @@ static void x_set_window_size_1 P_ ((struct frame *, int, int, int)); static const XColor *x_color_cells P_ ((Display *, int *)); static void x_update_window_end P_ ((struct window *, int, int)); void x_delete_display P_ ((struct x_display_info *)); -static unsigned int x_x_to_emacs_modifiers P_ ((struct x_display_info *, - unsigned)); + static int x_io_error_quitter P_ ((Display *)); int x_catch_errors P_ ((Display *)); void x_uncatch_errors P_ ((Display *, int)); @@ -3464,7 +3463,7 @@ x_find_modifier_meanings (dpyinfo) /* Convert between the modifier bits X uses and the modifier bits Emacs uses. */ -static unsigned int +unsigned int x_x_to_emacs_modifiers (dpyinfo, state) struct x_display_info *dpyinfo; unsigned int state; -- cgit v1.2.1 From d39f8cb63439e175c8bbb53f921ab92d41dc0357 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Tue, 14 Feb 2006 10:01:39 +0000 Subject: * xterm.h: Declare x_x_to_emacs_modifiers. --- src/xterm.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/xterm.h b/src/xterm.h index 6e4871a5834..bc52efe379d 100644 --- a/src/xterm.h +++ b/src/xterm.h @@ -1003,6 +1003,8 @@ extern void x_clear_area P_ ((Display *, Window, int, int, int, int, int)); extern void set_vertical_scroll_bar P_ ((struct window *)); extern int x_dispatch_event P_ ((XEvent *, Display *)); +extern unsigned int x_x_to_emacs_modifiers P_ ((struct x_display_info *, + unsigned)); /* Defined in xselect.c */ -- cgit v1.2.1 From 2334f9e76929128e5237b435746fcd6bb5df9e80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Tue, 14 Feb 2006 10:01:58 +0000 Subject: * gtkutil.c (xg_tool_bar_button_cb): New function. (xg_tool_bar_callback): Call x_x_to_emacs_modifiers to store modifiers in event. (update_frame_tool_bar): Connect button-release-event to xg_tool_bar_button_cb. --- src/gtkutil.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/gtkutil.c b/src/gtkutil.c index 3efc96cfe5d..a59fa18821c 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -3242,11 +3242,28 @@ xg_set_toolkit_scroll_bar_thumb (bar, portion, position, whole) the GtkImage with a new image. */ #define XG_TOOL_BAR_IMAGE_DATA "emacs-tool-bar-image" +/* The key for storing the latest modifiers so the activate callback can + get them. */ +#define XG_TOOL_BAR_LAST_MODIFIER "emacs-tool-bar-modifier" + + /* Callback function invoked when a tool bar item is pressed. W is the button widget in the tool bar that got pressed, CLIENT_DATA is an integer that is the index of the button in the tool bar. 0 is the first button. */ +static gboolean +xg_tool_bar_button_cb (widget, event, user_data) + GtkWidget *widget; + GdkEventButton *event; + gpointer user_data; +{ + g_object_set_data (G_OBJECT (user_data), XG_TOOL_BAR_LAST_MODIFIER, + (gpointer) event->state); + return FALSE; +} + + static void xg_tool_bar_callback (w, client_data) GtkWidget *w; @@ -3254,6 +3271,8 @@ xg_tool_bar_callback (w, client_data) { /* The EMACS_INT cast avoids a warning. */ int idx = (int) (EMACS_INT) client_data; + int mod = (int) g_object_get_data (G_OBJECT (w), XG_TOOL_BAR_LAST_MODIFIER); + FRAME_PTR f = (FRAME_PTR) g_object_get_data (G_OBJECT (w), XG_FRAME_DATA); Lisp_Object key, frame; struct input_event event; @@ -3274,7 +3293,10 @@ xg_tool_bar_callback (w, client_data) event.kind = TOOL_BAR_EVENT; event.frame_or_window = frame; event.arg = key; - event.modifiers = 0; /* These are not available. */ + /* Convert between the modifier bits GDK uses and the modifier bits + Emacs uses. This assumes GDK an X masks are the same, which they are when + this is written. */ + event.modifiers = x_x_to_emacs_modifiers (FRAME_X_DISPLAY_INFO (f), mod); kbd_buffer_store_event (&event); } @@ -3629,6 +3651,13 @@ update_frame_tool_bar (f) while (! GTK_IS_BUTTON (w)) w = gtk_widget_get_parent (w); + /* Callback to save modifyer mask (Shift/Control, etc). GTK makes + no distinction based on modifiers in the activate callback, + so we have to do it ourselves. */ + g_signal_connect (w, "button-release-event", + GTK_SIGNAL_FUNC (xg_tool_bar_button_cb), + ti); + g_object_set_data (G_OBJECT (w), XG_FRAME_DATA, (gpointer)f); /* Use enter/leave notify to show help. We use the events -- cgit v1.2.1 From 58118de5e03d8d7dcbf9ef45c574dfe136689127 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Tue, 14 Feb 2006 10:02:23 +0000 Subject: * xterm.c (x_x_to_emacs_modifiers): Make non-static. * xterm.h: Declare x_x_to_emacs_modifiers. * gtkutil.c (xg_tool_bar_button_cb): New function. (xg_tool_bar_callback): Call x_x_to_emacs_modifiers to store modifiers in event. (update_frame_tool_bar): Connect button-release-event to xg_tool_bar_button_cb. --- src/ChangeLog | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index 54c855fc909..31b5f5c32a6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,15 @@ +2006-02-14 Jan Dj,Ad(Brv + + * xterm.c (x_x_to_emacs_modifiers): Make non-static. + + * xterm.h: Declare x_x_to_emacs_modifiers. + + * gtkutil.c (xg_tool_bar_button_cb): New function. + (xg_tool_bar_callback): Call x_x_to_emacs_modifiers to + store modifiers in event. + (update_frame_tool_bar): Connect button-release-event to + xg_tool_bar_button_cb. + 2006-02-13 Richard M. Stallman * .gdbinit (xwindow): Update the code to show the window box. -- cgit v1.2.1 From 4d7637b85f25e5e8b6872280212739339a1be4c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Tue, 14 Feb 2006 10:04:19 +0000 Subject: Fix address. --- src/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 31b5f5c32a6..7aa6a97967c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,4 +1,4 @@ -2006-02-14 Jan Dj,Ad(Brv +2006-02-14 Jan Dj,Ad(Brv * xterm.c (x_x_to_emacs_modifiers): Make non-static. -- cgit v1.2.1 From 0da933504cac484d6a183924595e3b080cf95a1f Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Tue, 14 Feb 2006 10:05:39 +0000 Subject: (File Local Variables): Use @code for a cons cell, not @var. --- lispref/ChangeLog | 5 +++++ lispref/variables.texi | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lispref/ChangeLog b/lispref/ChangeLog index 250d5450608..1d1bf8fcaa6 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog @@ -1,3 +1,8 @@ +2006-02-14 Juanma Barranquero + + * variables.texi (File Local Variables): Use @code for a cons + cell, not @var. + 2006-02-13 Chong Yidong * variables.texi (File Local Variables): Document new file local diff --git a/lispref/variables.texi b/lispref/variables.texi index 8b54d02758e..d272e78d3a5 100644 --- a/lispref/variables.texi +++ b/lispref/variables.texi @@ -1794,7 +1794,7 @@ including @code{fill-column}, @code{fill-prefix}, and @defopt safe-local-variable-values This variable provides another way to mark variables as safe. It is a -list of cons cells @var{(var . val)}, where @var{var} is a variable +list of cons cells @code{(var . val)}, where @var{var} is a variable name and @var{val} is a value of that variable that is safe. When Emacs asks the user whether or not to obey a set of file variable -- cgit v1.2.1 From 0f340cab5f8ee965bf36d63b9e9ae4a1af491420 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Tue, 14 Feb 2006 11:34:44 +0000 Subject: * gtkutil.c (xg_tool_bar_detach_callback): Set show-arrow to the value of x-gtk-whole-detached-tool-bar. --- src/gtkutil.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/gtkutil.c b/src/gtkutil.c index a59fa18821c..35fb9ce328c 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -3314,6 +3314,10 @@ xg_tool_bar_detach_callback (wbox, w, client_data) gpointer client_data; { FRAME_PTR f = (FRAME_PTR) client_data; + extern int x_gtk_whole_detached_tool_bar; + + g_object_set (G_OBJECT (w), "show-arrow", !x_gtk_whole_detached_tool_bar, + NULL); if (f) { @@ -3344,6 +3348,7 @@ xg_tool_bar_attach_callback (wbox, w, client_data) gpointer client_data; { FRAME_PTR f = (FRAME_PTR) client_data; + g_object_set (G_OBJECT (w), "show-arrow", TRUE, NULL); if (f) { -- cgit v1.2.1 From e0f467cba74a690dbdd9afd05a022006930356d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Tue, 14 Feb 2006 11:35:00 +0000 Subject: * xfns.c (syms_of_xfns): New variable: x-gtk-whole-detached-tool-bar. --- src/xfns.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/xfns.c b/src/xfns.c index 10996f8fbbd..e2449a8f3c0 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -158,6 +158,10 @@ int x_use_old_gtk_file_dialog; int x_gtk_show_hidden_files; +/* If non-zero, don't collapse to tool bar when it is detached. */ + +int x_gtk_whole_detached_tool_bar; + /* The background and shape of the mouse pointer, and shape when not over text or in the modeline. */ @@ -5806,6 +5810,12 @@ Note that this is just the default, there is a toggle button on the file chooser to show or not show hidden files on a case by case basis. */); x_gtk_show_hidden_files = 0; + DEFVAR_BOOL ("x-gtk-whole-detached-tool-bar", &x_gtk_whole_detached_tool_bar, + doc: /* *If non-nil, a detached tool bar is shown in full. +The default is to just show an arrow and pressing on that arrow shows +the tool bar buttons. */); + x_gtk_whole_detached_tool_bar = 0; + Fprovide (intern ("x"), Qnil); #ifdef USE_X_TOOLKIT -- cgit v1.2.1 From 26ebccfd1d6ea8dee26478bc3dd5fe43b4b1d25b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Tue, 14 Feb 2006 11:35:19 +0000 Subject: * gtkutil.c (xg_tool_bar_detach_callback): Set show-arrow to the value of x-gtk-whole-detached-tool-bar. (xg_tool_bar_attach_callback): Set show-arrow to FALSE. * xfns.c (syms_of_xfns): New variable: x-gtk-whole-detached-tool-bar. --- src/ChangeLog | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index 7aa6a97967c..aec3e6d1ee2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2006-02-14 Jan Dj,Ad(Brv + + * gtkutil.c (xg_tool_bar_detach_callback): Set show-arrow to the + value of x-gtk-whole-detached-tool-bar. + (xg_tool_bar_attach_callback): Set show-arrow to FALSE. + + * xfns.c (syms_of_xfns): New variable: x-gtk-whole-detached-tool-bar. + 2006-02-14 Jan Dj,Ad(Brv * xterm.c (x_x_to_emacs_modifiers): Make non-static. -- cgit v1.2.1 From a6d48e091927ee6763c37e59356cf016e6fff9dd Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Tue, 14 Feb 2006 11:35:48 +0000 Subject: (mouse-wheel-click-event, mouse-wheel-mode): Fix typos in docstrings. --- lisp/mwheel.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/mwheel.el b/lisp/mwheel.el index aca959e8577..662b992b343 100644 --- a/lisp/mwheel.el +++ b/lisp/mwheel.el @@ -91,7 +91,7 @@ mouse-wheel-click-button)) "Event that should be temporarily inhibited after mouse scrolling. The mouse wheel is typically on the mouse-2 button, so it may easily -happen that text is accidentially yanked into the buffer when +happen that text is accidentally yanked into the buffer when scrolling with the mouse wheel. To prevent that, this variable can be set to the event sent when clicking on the mouse wheel button." :group 'mouse @@ -220,7 +220,7 @@ This should only be bound to mouse buttons 4 and 5." (define-minor-mode mouse-wheel-mode "Toggle mouse wheel support. With prefix argument ARG, turn on if positive, otherwise off. -Returns non-nil if the new state is enabled." +Return non-nil if the new state is enabled." :global t :group 'mouse (let* ((dn mouse-wheel-down-event) -- cgit v1.2.1 From 0dd95b49d8575aa22cdc93107f02b37353df7b22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Tue, 14 Feb 2006 11:36:25 +0000 Subject: * cus-start.el (all): Add x-gtk-whole-detached-tool-bar --- lisp/ChangeLog | 4 ++++ lisp/cus-start.el | 1 + 2 files changed, 5 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 207d7c50607..8b4c20e7142 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2006-02-14 Jan Dj,Ad(Brv + + * cus-start.el (all): Add x-gtk-whole-detached-tool-bar + 2006-02-14 Juanma Barranquero * help.el (where-is): Fix message for remapped commands. diff --git a/lisp/cus-start.el b/lisp/cus-start.el index 3b9d7c34e5e..eab451775f9 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el @@ -359,6 +359,7 @@ since it could result in memory overflow and make Emacs crash." (repeat (directory :format "%v"))) (x-use-old-gtk-file-dialog menu boolean "22.1") (x-gtk-show-hidden-files menu boolean "22.1") + (x-gtk-whole-detached-tool-bar x boolean "22.1") ;; xterm.c (mouse-autoselect-window display boolean "21.3") (x-use-underline-position-properties display boolean "21.3") -- cgit v1.2.1 From ef4cbfc0fa242c55aeb83ffbe03db5bbac2feffa Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Tue, 14 Feb 2006 11:39:21 +0000 Subject: *** empty log message *** --- lisp/ChangeLog | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8b4c20e7142..8ae02450785 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,11 +1,14 @@ 2006-02-14 Jan Dj,Ad(Brv - * cus-start.el (all): Add x-gtk-whole-detached-tool-bar + * cus-start.el (all): Add x-gtk-whole-detached-tool-bar. 2006-02-14 Juanma Barranquero * help.el (where-is): Fix message for remapped commands. + * mwheel.el (mouse-wheel-click-event, mouse-wheel-mode): + Fix typos in docstrings. + 2006-02-13 Chong Yidong * files.el (safe-local-variable-values): New option. -- cgit v1.2.1 From 3430357a0337e6ab427efb2d9e4c29987be2933a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Tue, 14 Feb 2006 11:40:14 +0000 Subject: * NEWS: Gtk+ 2.4 is required. --- etc/ChangeLog | 4 ++++ etc/NEWS | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/etc/ChangeLog b/etc/ChangeLog index 382a97ab50a..ebdd0a3c41a 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,3 +1,7 @@ +2006-02-14 Jan Dj,Ad(Brv + + * NEWS: Gtk+ 2.4 is required. + 2006-02-10 YAMAMOTO Mitsuharu * PROBLEMS (Mac OS X): Add QuickTime 7.0.4 / Mac OS X 10.3.9 breakage. diff --git a/etc/NEWS b/etc/NEWS index d481776e8cd..51549f7f4a0 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -27,7 +27,7 @@ installed programs. --- ** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk' -when you run configure. This requires Gtk+ 2.0 or newer. This port +when you run configure. This requires Gtk+ 2.4 or newer. This port provides a way to display multilingual text in menus (with some caveats). --- @@ -942,7 +942,7 @@ to explicitly specify a fontSet resource for this to work, for example ESC, like they do for Gtk+, Mac and W32. +++ -*** For Gtk+ version 2.4, you can make Emacs use the old file dialog +*** For the Gtk+ version, you can make Emacs use the old file dialog by setting the variable `x-use-old-gtk-file-dialog' to t. Default is to use the new dialog. -- cgit v1.2.1 From 542f7c55b40c5c020777b283c22702c88c5080d6 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Tue, 14 Feb 2006 14:44:32 +0000 Subject: * NEWS: Changes in handling of file local variables. --- etc/ChangeLog | 4 ++++ etc/NEWS | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/etc/ChangeLog b/etc/ChangeLog index ebdd0a3c41a..565b2d3e220 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,3 +1,7 @@ +2006-02-14 Chong Yidong + + * NEWS: Changes in handling of file local variables. + 2006-02-14 Jan Dj,Ad(Brv * NEWS: Gtk+ 2.4 is required. diff --git a/etc/NEWS b/etc/NEWS index 51549f7f4a0..def357fcdfe 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -574,6 +574,21 @@ is only rarely needed. *** In processing a local variables list, Emacs strips the prefix and suffix from every line before processing all the lines. ++++ +*** If the local variables list contains any variable-value pairs that +are not known to be safe, Emacs shows a prompt asking whether to apply +the local variables list as a whole. In earlier versions, a prompt +was only issued for variables explicitly marked as risky (for the +definition of risky variables, see `risky-local-variable-p'). + +At the prompt, the user can choose to save the contents of this local +variables list to `safe-local-variable-values'. This new customizable +option is a list of variable-value pairs that are known to be safe. +Variables can also be marked as safe with the existing +`safe-local-variable' property (see `safe-local-variable-p'). +However, risky variables will not be added to +`safe-local-variable-values' in this way. + +++ *** find-file-read-only visits multiple files in read-only mode, when the file name contains wildcard characters. -- cgit v1.2.1 From 764d6d17d36f16dec1ea4b5091f19815ef2d5603 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Tue, 14 Feb 2006 15:17:27 +0000 Subject: Typo. --- lispref/variables.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lispref/variables.texi b/lispref/variables.texi index d272e78d3a5..2677dd72bdb 100644 --- a/lispref/variables.texi +++ b/lispref/variables.texi @@ -1784,7 +1784,7 @@ file variables specified in that file. A variable can be marked as @dfn{safe} by setting its @code{safe-local-variable} property. If the property is @code{t}, that variable is always considered safe, regardless of the value assigned to it. The -@code{safe-local-variable} property can also be a a function taking +@code{safe-local-variable} property can also be a function taking exactly one argument. In that case, Emacs considers it safe to give the variable a certain value if the function returns non-@code{nil} when called with that value as argument. Many commonly-encountered -- cgit v1.2.1 From 3e5b698e85bc80946cb01f6cfa10465499db7340 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 14 Feb 2006 15:31:49 +0000 Subject: New file. --- src/m/ibms390x.h | 160 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 src/m/ibms390x.h diff --git a/src/m/ibms390x.h b/src/m/ibms390x.h new file mode 100644 index 00000000000..e11bdaeeafc --- /dev/null +++ b/src/m/ibms390x.h @@ -0,0 +1,160 @@ +/* machine description file for IBM S390 in 64-bit mode + Copyright (C) 2002, 2003, 2004, 2005, 2006 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 2, 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; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301, USA. */ + +/* This file was made by copying the significant parts of amdx86-64.h + into ibms390.h. */ + + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="" + +NOTE-START +IBM s390 64 bits (-machine=ibms390x64) + + The possibilities for -opsystem are: gnu-linux. + +NOTE-END */ + +#define BITS_PER_LONG 64 +#define BITS_PER_EMACS_INT 64 + +/* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word + is the most significant byte. */ + +#define WORDS_BIG_ENDIAN + +/* Define NO_ARG_ARRAY if you cannot take the address of the first of a + * group of arguments and treat it as an array of the arguments. */ + +#define NO_ARG_ARRAY + +/* Define WORD_MACHINE if addresses and such have + * to be corrected before they can be used as byte counts. */ + +#define WORD_MACHINE + +/* Now define a symbol for the cpu type, if your compiler + does not define it automatically: + Ones defined so far include vax, m68000, ns16000, pyramid, + orion, tahoe, APOLLO and many others */ + +/* Use type int rather than a union, to represent Lisp_Object */ +/* This is desirable for most machines. */ + +#define NO_UNION_TYPE + +/* Define the type to use. */ +#define EMACS_INT long +#define EMACS_UINT unsigned long +#define SPECIAL_EMACS_INT + +/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend + the 24-bit bit field into an int. In other words, if bit fields + are always unsigned. + + If you use NO_UNION_TYPE, this flag does not matter. */ + +#undef EXPLICIT_SIGN_EXTEND + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE long + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) + +/* Define CANNOT_DUMP on machines where unexec does not work. + Then the function dump-emacs will not be defined + and temacs will do (load "loadup") automatically unless told otherwise. */ + +#undef CANNOT_DUMP + +/* Define VIRT_ADDR_VARIES if the virtual addresses of + pure and impure space as loaded can vary, and even their + relative order cannot be relied on. + + Otherwise Emacs assumes that text space precedes data space, + numerically. */ + +#define VIRT_ADDR_VARIES + +/* Define C_ALLOCA if this machine does not support a true alloca + and the one written in C should be used instead. + Define HAVE_ALLOCA to say that the system provides a properly + working alloca function and it should be used. + Define neither one if an assembler-language alloca + in the file alloca.s should be used. */ + +#undef C_ALLOCA +#define HAVE_ALLOCA + +/* Define NO_REMAP if memory segmentation makes it not work well + to change the boundary between the text section and data section + when Emacs is dumped. If you define this, the preloaded Lisp + code will not be sharable; but that's better than failing completely. */ + +#undef NO_REMAP + +/* Some really obscure 4.2-based systems (like Sequent DYNIX) + * do not support asynchronous I/O (using SIGIO) on sockets, + * even though it works fine on tty's. If you have one of + * these systems, define the following, and then use it in + * config.h (or elsewhere) to decide when (not) to use SIGIO. + * + * You'd think this would go in an operating-system description file, + * but since it only occurs on some, but not all, BSD systems, the + * reasonable place to select for it is in the machine description + * file. + */ + +#undef NO_SOCK_SIGIO + + +/* After adding support for a new system, modify the large case + statement in the `configure' script to recognize reasonable + configuration names, and add a description of the system to + `etc/MACHINES'. + + If you've just fixed a problem in an existing configuration file, + you should also check `etc/MACHINES' to make sure its descriptions + of known problems in that configuration should be updated. */ + +#define PNTR_COMPARISON_TYPE unsigned long + +/* On the 64 bit architecture, we can use 60 bits for addresses */ + +#define VALBITS 60 + +/* This definition of MARKBIT is necessary because of the comparison of + ARRAY_MARK_FLAG and MARKBIT in an #if in lisp.h, which cpp doesn't like. */ + +#define MARKBIT 0x8000000000000000L + +#define LINKER $(CC) -nostdlib + +/* Define XINT and XUINT so that they can take arguments of type int */ +#define XINT(a) (((long) (a) << (BITS_PER_LONG - VALBITS)) >> (BITS_PER_LONG - VALBITS)) +#define XUINT(a) ((long) (a) & VALMASK) + +/* Define XPNTR to avoid or'ing with DATA_SEG_BITS */ + +#define XPNTR(a) XUINT (a) -- cgit v1.2.1 From e9da7ba51ada39393d9ae36969c3c8e5a9df66ce Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 14 Feb 2006 15:32:49 +0000 Subject: (s390x-*-linux-gnu*): New configuration. --- configure.in | 3 +++ 1 file changed, 3 insertions(+) diff --git a/configure.in b/configure.in index 2982f4c2fc2..3c3a44560bc 100644 --- a/configure.in +++ b/configure.in @@ -654,6 +654,9 @@ dnl see the `changequote' comment above. s390-*-linux-gnu* ) machine=ibms390 opsys=gnu-linux ;; + s390x-*-linux-gnu* ) + machine=ibms390x opsys=gnu-linux + ;; rs6000-ibm-aix3.1* | powerpc-ibm-aix3.1* ) machine=ibmrs6000 opsys=aix3-1 ;; -- cgit v1.2.1 From 885f1975d5b10073b669a244e650aac04826bbe9 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 14 Feb 2006 15:32:55 +0000 Subject: *** empty log message *** --- ChangeLog | 4 ++++ src/ChangeLog | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/ChangeLog b/ChangeLog index cb2d6730c2e..cf4d78a6069 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2006-02-14 Richard M. Stallman + + * configure.in (s390x-*-linux-gnu*): New configuration. + 2006-01-31 Jan Dj,Ad(Brv * configure.in: Require GTK 2.4 or newer. diff --git a/src/ChangeLog b/src/ChangeLog index aec3e6d1ee2..773f87c8f7c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2006-02-14 Richard M. Stallman + + * m/ibms390x.h: New file. + 2006-02-14 Jan Dj,Ad(Brv * gtkutil.c (xg_tool_bar_detach_callback): Set show-arrow to the -- cgit v1.2.1 From d450f2a250afb0997d8f9c4554b02d4d7aa9af50 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Tue, 14 Feb 2006 19:54:25 +0000 Subject: * files.el (hack-local-variables): Remove ignored variables before checking if any variables need setting. --- lisp/ChangeLog | 5 +++++ lisp/files.el | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8ae02450785..d5f95771d20 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2006-02-14 Chong Yidong + + * files.el (hack-local-variables): Remove ignored variables before + checking if any variables need setting. + 2006-02-14 Jan Dj,Ad(Brv * cus-start.el (all): Add x-gtk-whole-detached-tool-bar. diff --git a/lisp/files.el b/lisp/files.el index 0096916ce0b..9aab6209db4 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -2439,12 +2439,12 @@ is specified, returning t if it is specified." ;; variables (if MODE-ONLY is nil.) (if mode-only result + (dolist (ignored ignored-local-variables) + (setq result (assq-delete-all ignored result))) + (if (null enable-local-eval) + (setq result (assq-delete-all 'eval result))) (when result (setq result (nreverse result)) - (dolist (ignored ignored-local-variables) - (setq result (assq-delete-all ignored result))) - (if (null enable-local-eval) - (setq result (assq-delete-all 'eval result))) ;; Find those variables that we may want to save to ;; `safe-local-variable-values'. (let (risky-vars unsafe-vars) -- cgit v1.2.1 From e1ec62a59692221b5979d5238272c1fbec31ed06 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Tue, 14 Feb 2006 20:16:04 +0000 Subject: * wid-edit.el (widget-button-click): Use :pressed-face property for overlay face, if it exists. * cus-edit.el (custom-manual, custom-add-see-also) (custom-add-parent-links, custom-group-link): Add :pressed-face property to links. --- lisp/ChangeLog | 7 +++++++ lisp/cus-edit.el | 8 ++++++-- lisp/wid-edit.el | 16 ++++++---------- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d5f95771d20..45cdfeb2f4c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,12 @@ 2006-02-14 Chong Yidong + * wid-edit.el (widget-button-click): Use :pressed-face property + for overlay face, if it exists. + + * cus-edit.el (custom-manual, custom-add-see-also) + (custom-add-parent-links, custom-group-link): Add :pressed-face + property to links. + * files.el (hack-local-variables): Remove ignored variables before checking if any variables need setting. diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 763b4b8c57f..0595336c3ed 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -1720,6 +1720,7 @@ item in another window.\n\n")) :help-echo "Read the manual entry for this option." :button-face 'custom-link :mouse-face 'highlight + :pressed-face 'highlight :tag "Manual") ;;; The `custom-magic' Widget. @@ -2201,7 +2202,8 @@ Insert PREFIX first if non-nil." (push (widget-create-child-and-convert widget (car links) :button-face 'custom-link - :mouse-face 'highlight) + :mouse-face 'highlight + :pressed-face 'highlight) buttons) (setq links (cdr links)) (cond ((null links) @@ -2247,7 +2249,8 @@ If INITIAL-STRING is non-nil, use that rather than \"Parent groups:\"." (push (widget-create-child-and-convert widget (car links) :button-face 'custom-link - :mouse-face 'highlight) + :mouse-face 'highlight + :pressed-face 'highlight) buttons) (setq links (cdr links)) (cond ((null links) @@ -3590,6 +3593,7 @@ restoring it to the state of a face that has never been customized." "Show parent in other window when activated." :button-face 'custom-link :mouse-face 'highlight + :pressed-face 'highlight :help-echo "Create customization buffer for this group." :action 'custom-group-link-action) diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index 720fb9929e4..52bf3a212be 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el @@ -929,6 +929,8 @@ Recommended as a parent keymap for modes using widgets.") (save-excursion (goto-char (posn-point (event-start event))) (let* ((overlay (widget-get button :button-overlay)) + (pressed-face (or (widget-get button :pressed-face) + widget-button-pressed-face)) (face (overlay-get overlay 'face)) (mouse-face (overlay-get overlay 'mouse-face))) (unwind-protect @@ -938,10 +940,8 @@ Recommended as a parent keymap for modes using widgets.") ;; on when we move over it. (save-excursion (when face ; avoid changing around image - (overlay-put overlay - 'face widget-button-pressed-face) - (overlay-put overlay - 'mouse-face widget-button-pressed-face)) + (overlay-put overlay 'face pressed-face) + (overlay-put overlay 'mouse-face pressed-face)) (unless (widget-apply button :mouse-down-action event) (let ((track-mouse t)) (while (not (widget-button-release-event-p event)) @@ -951,12 +951,8 @@ Recommended as a parent keymap for modes using widgets.") (eq (get-char-property pos 'button) button)) (when face - (overlay-put overlay - 'face - widget-button-pressed-face) - (overlay-put overlay - 'mouse-face - widget-button-pressed-face)) + (overlay-put overlay 'face pressed-face) + (overlay-put overlay 'mouse-face pressed-face)) (overlay-put overlay 'face face) (overlay-put overlay 'mouse-face mouse-face))))) -- cgit v1.2.1 From 1324d26ee232ca437e4ded795131fb769029a539 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 14 Feb 2006 20:58:33 +0000 Subject: (File Local Variables): Clarifications. --- lispref/ChangeLog | 4 ++++ lispref/variables.texi | 43 ++++++++++++++++++++----------------------- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/lispref/ChangeLog b/lispref/ChangeLog index 1d1bf8fcaa6..8b523f288d6 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog @@ -1,3 +1,7 @@ +2006-02-14 Richard M. Stallman + + * variables.texi (File Local Variables): Clarifications. + 2006-02-14 Juanma Barranquero * variables.texi (File Local Variables): Use @code for a cons diff --git a/lispref/variables.texi b/lispref/variables.texi index 2677dd72bdb..c3fe6cf6a23 100644 --- a/lispref/variables.texi +++ b/lispref/variables.texi @@ -1777,30 +1777,27 @@ visiting a file could take over your Emacs. Emacs takes several measures to prevent this. @cindex safe local variable - When Emacs encounters a file local variable whose safety is not -guaranteed, it asks the user whether or not to obey the file variable -specifications. If the user says no, Emacs ignores @emph{all} the -file variables specified in that file. A variable can be marked as -@dfn{safe} by setting its @code{safe-local-variable} property. If the -property is @code{t}, that variable is always considered safe, -regardless of the value assigned to it. The -@code{safe-local-variable} property can also be a function taking -exactly one argument. In that case, Emacs considers it safe to give -the variable a certain value if the function returns non-@code{nil} -when called with that value as argument. Many commonly-encountered -file variables possess @code{safe-local-variable} by default, -including @code{fill-column}, @code{fill-prefix}, and -@code{indent-tabs-mode}. + A variable can be marked as @dfn{safe} by setting its +@code{safe-local-variable} property. If the property is @code{t}, +setting that variable in a file is always considered safe, regardless +of the value assigned to it. The @code{safe-local-variable} property +can also be a function of one argument. In that case, Emacs considers +it safe to give the variable a certain value if the function returns +non-@code{nil} when given that value as argument. Many +commonly-encountered file variables standardly have +@code{safe-local-variable} properties, including @code{fill-column}, +@code{fill-prefix}, and @code{indent-tabs-mode}. @defopt safe-local-variable-values -This variable provides another way to mark variables as safe. It is a -list of cons cells @code{(var . val)}, where @var{var} is a variable -name and @var{val} is a value of that variable that is safe. +This variable provides another way to mark some variable values as +safe. It is a list of cons cells @code{(@var{var} . @var{val})}, +where @var{var} is a variable name and @var{val} is a value which is +safe for that variable. When Emacs asks the user whether or not to obey a set of file variable -specifications, the user can choose to mark them as safe. This adds -those variable-value pairs to @code{safe-local-variable-values}, and -saves it to the user's custom file. +specifications, the user can choose to mark them as safe. Doing so +adds those variable-value pairs to @code{safe-local-variable-values}, +and saves it to the user's custom file. @end defopt @defun safe-local-variable-p sym val @@ -1809,8 +1806,8 @@ the value @var{val}, based on the above criteria. @end defun @cindex risky local variable -Some variables are considered @dfn{risky}. A variable whose name ends -in any of @samp{-command}, @samp{-frame-alist}, @samp{-function}, + Some variables are considered @dfn{risky}. A variable whose name +ends in any of @samp{-command}, @samp{-frame-alist}, @samp{-function}, @samp{-functions}, @samp{-hook}, @samp{-hooks}, @samp{-form}, @samp{-forms}, @samp{-map}, @samp{-map-alist}, @samp{-mode-alist}, @samp{-program}, or @samp{-predicate} is considered risky. The @@ -1825,7 +1822,7 @@ This function returns non-@code{nil} if @var{sym} is a risky variable, based on the above criteria. @end defun -If a variable is risky, it will not be entered automatically into + If a variable is risky, it will not be entered automatically into @code{safe-local-variable-values} as described above. Therefore, Emacs will always query before setting a risky variable, unless the user explicitly allows it by editing @code{safe-local-variable-values} -- cgit v1.2.1 From eb90d8443cc32d5c6ec5bdff9ffa1ae392dc577b Mon Sep 17 00:00:00 2001 From: Jay Belanger Date: Tue, 14 Feb 2006 21:38:57 +0000 Subject: (math-check-known-scalarp): Make sure expression is a symbol before checking that it is bound. --- lisp/calc/calc-arith.el | 1 + 1 file changed, 1 insertion(+) diff --git a/lisp/calc/calc-arith.el b/lisp/calc/calc-arith.el index a5f25e2464e..ec09ae29318 100644 --- a/lisp/calc/calc-arith.el +++ b/lisp/calc/calc-arith.el @@ -334,6 +334,7 @@ ((memq 'scalar (nth 1 decl)) t) ((and (eq (car a) 'var) + (symbolp (nth 2 a)) (boundp (nth 2 a)) (setq val (symbol-value (nth 2 a)))) (math-check-known-scalarp val)) -- cgit v1.2.1 From 63f7edace755ddb71ba842b55bafa98e55a2e768 Mon Sep 17 00:00:00 2001 From: Jay Belanger Date: Tue, 14 Feb 2006 21:39:26 +0000 Subject: (math-integrate-by-parts): Do a more careful test to see if equation can be solved. --- lisp/calc/calcalg2.el | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lisp/calc/calcalg2.el b/lisp/calc/calcalg2.el index facb691c08b..f71e58e223a 100644 --- a/lisp/calc/calcalg2.el +++ b/lisp/calc/calcalg2.el @@ -1253,9 +1253,11 @@ (calcFunc-expand temp) (setq v (list 'var 'PARTS math-cur-record) temp (let (calc-next-why) - (math-solve-for (math-sub v temp) 0 v nil))) - (and temp (not (integerp temp)) - (math-simplify-extended temp))))) + (math-simplify-extended + (math-solve-for (math-sub v temp) 0 v nil))) + temp (if (and (eq (car-safe temp) '/) + (math-zerop (nth 2 temp))) + nil temp))))) (setcar (cdr math-cur-record) 'busy))))) ;;; This tries two different formulations, hoping the algebraic simplifier -- cgit v1.2.1 From 9fb0c6f5fc7a6215f266c1cc6d48716daa6f1ab0 Mon Sep 17 00:00:00 2001 From: Nick Roberts Date: Tue, 14 Feb 2006 21:42:11 +0000 Subject: (GDB Graphical Interface): Replace gdb-use-inferior-io-buffer with gdb-use-separate-io-buffer. --- man/building.texi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/man/building.texi b/man/building.texi index f621706fbbe..ea8055c1cab 100644 --- a/man/building.texi +++ b/man/building.texi @@ -841,7 +841,7 @@ displays the following frame layout: +--------------------------------+--------------------------------+ @end example - However, if @code{gdb-use-inferior-io-buffer} is @code{nil}, the I/O + However, if @code{gdb-use-separate-io-buffer} is @code{nil}, the I/O buffer does not appear and the source buffer occupies the full width of the frame. @@ -972,12 +972,12 @@ for variables defined in compound statements, the default value is @table @asis @item Input/Output Buffer -@vindex gdb-use-inferior-io-buffer -If the variable @code{gdb-use-inferior-io-buffer} is non-@code{nil}, +@vindex gdb-use-separate-io-buffer +If the variable @code{gdb-use-separate-io-buffer} is non-@code{nil}, the executable program that is being debugged takes its input and displays its output here. Otherwise it uses the GUD buffer for that. To toggle whether GUD mode uses this buffer, do @kbd{M-x -gdb-use-inferior-io-buffer}. That takes effect when you next +gdb-use-separate-io-buffer}. That takes effect when you next restart the program you are debugging. The history and replay commands from Shell mode are available here, -- cgit v1.2.1 From d7505da3d06c9b2221e869793a4e54a3e0285703 Mon Sep 17 00:00:00 2001 From: Jay Belanger Date: Tue, 14 Feb 2006 21:42:32 +0000 Subject: *** empty log message *** --- lisp/ChangeLog | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 45cdfeb2f4c..e89c9bea3cb 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2006-02-14 Jay Belanger + + * calc/calc-arith.el (math-check-known-scalarp): Make sure + expression is a symbol before checking that it is bound. + + * calc/calcalg2.el (math-integrate-by-parts): Do a more careful + test to see if equation can be solved. + 2006-02-14 Chong Yidong * wid-edit.el (widget-button-click): Use :pressed-face property -- cgit v1.2.1 From a4b354b7314e7eaa3d96f7895bf21bd7907adc4e Mon Sep 17 00:00:00 2001 From: Nick Roberts Date: Tue, 14 Feb 2006 22:01:13 +0000 Subject: *** empty log message *** --- lisp/ChangeLog | 12 ++++++++++++ man/ChangeLog | 5 +++++ 2 files changed, 17 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e89c9bea3cb..8f325d6ae6d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,15 @@ +2006-02-15 Nick Roberts + + * progmodes/gud.el (gdb): Improve doc string. + (gdb-script-font-lock-keywords): Expand allowed character set. + + * progmodes/gdb-ui.el (gdb-use-separate-io-buffer) + (gdb-display-separate-io-buffer, gdb-frame-separate-io-buffer) + (gdb-separate-io-interrupt, gdb-separate-io-quit) + (gdb-separate-io-stop, gdb-separate-io-eof): + Rename from gdb-inferior-* to gdb-separate-*. + (gdb-set-gud-minor-mode-existing-buffers-1): Improve doc string. + 2006-02-14 Jay Belanger * calc/calc-arith.el (math-check-known-scalarp): Make sure diff --git a/man/ChangeLog b/man/ChangeLog index eedc1755f88..81975537176 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,8 @@ +2006-02-15 Nick Roberts + + * building.texi (GDB Graphical Interface): Replace + gdb-use-inferior-io-buffer with gdb-use-separate-io-buffer. + 2006-02-13 Chong Yidong * custom.texi (Specifying File Variables, Unsafe File Variables): -- cgit v1.2.1 From ee75f8b7ae03bc5eb01081b7f553b40af4c038dd Mon Sep 17 00:00:00 2001 From: Nick Roberts Date: Tue, 14 Feb 2006 22:02:21 +0000 Subject: (gdb): Improve doc string. (gdb-script-font-lock-keywords): Expand allowed character set. --- lisp/progmodes/gud.el | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index b927c765476..1d5172a1a52 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el @@ -656,8 +656,13 @@ required by the caller." ;;;###autoload (defun gdb (command-line) "Run gdb on program FILE in buffer *gud-FILE*. -The directory containing FILE becomes the initial working directory -and source-file directory for your debugger." +The directory containing FILE becomes the initial working +directory and source-file directory for your debugger. By +default this command starts GDB using a graphical interface. See +`gdba' for more information. + +To run GDB in text command mode, set `gud-gdb-command-name' to +\"gdb --fullname\" and include the pathname, if necessary." (interactive (list (gud-query-cmdline 'gdb))) (if (and gud-comint-buffer @@ -3120,7 +3125,7 @@ class of the file (using s to separate nested class ids)." (defvar gdb-script-font-lock-keywords '(("^define\\s-+\\(\\(\\w\\|\\s_\\)+\\)" (1 font-lock-function-name-face)) ("\\$\\(\\w+\\)" (1 font-lock-variable-name-face)) - ("^\\s-*\\([a-z]+\\)" (1 font-lock-keyword-face)))) + ("^\\s-*\\(\\(\\w\\|\\s_\\)+\\)" (1 font-lock-keyword-face)))) ;; FIXME: The keyword "end" associated with "document" ;; should have font-lock-keyword-face (currently font-lock-doc-face). -- cgit v1.2.1 From 853e72d905ac4b85e441948896229d5726858257 Mon Sep 17 00:00:00 2001 From: Miles Bader Date: Tue, 14 Feb 2006 22:03:16 +0000 Subject: Add arch tagline --- src/m/ibms390x.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/m/ibms390x.h b/src/m/ibms390x.h index e11bdaeeafc..0d3acd34d97 100644 --- a/src/m/ibms390x.h +++ b/src/m/ibms390x.h @@ -158,3 +158,6 @@ NOTE-END */ /* Define XPNTR to avoid or'ing with DATA_SEG_BITS */ #define XPNTR(a) XUINT (a) + +/* arch-tag: 4b87653c-6add-4663-8691-7d9dc17b5519 + (do not change this comment) */ -- cgit v1.2.1 From b5e5e9f2a070dbf739827834109cce8f5d83b2db Mon Sep 17 00:00:00 2001 From: Nick Roberts Date: Tue, 14 Feb 2006 22:03:20 +0000 Subject: (gdb-use-separate-io-buffer) (gdb-display-separate-io-buffer, gdb-frame-separate-io-buffer) (gdb-separate-io-interrupt, gdb-separate-io-quit) (gdb-separate-io-stop, gdb-separate-io-eof): Rename from gdb-inferior-* to gdb-separate-*. (gdb-set-gud-minor-mode-existing-buffers-1): Improve doc string. --- lisp/progmodes/gdb-ui.el | 91 ++++++++++++++++++------------------------------ 1 file changed, 34 insertions(+), 57 deletions(-) diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index 93eeaeac4f6..d271ea4acf9 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el @@ -185,7 +185,6 @@ handlers.") "Font lock keywords used in `gdb-local-mode'.") ;; Variables for GDB 6.4+ - (defvar gdb-register-names nil "List of register names.") (defvar gdb-changed-registers nil "List of changed register numbers (strings).") @@ -203,7 +202,7 @@ other with the source file with the main routine of the inferior. If `gdb-many-windows' is t, regardless of the value of `gdb-show-main', the layout below will appear unless -`gdb-use-inferior-io-buffer' is nil when the source buffer +`gdb-use-separate-io-buffer' is nil when the source buffer occupies the full width of the frame. Keybindings are given in relevant buffer. @@ -281,26 +280,26 @@ Also display the main routine in the disassembly buffer if present." :group 'gud :version "22.1") -(defcustom gdb-use-inferior-io-buffer nil +(defcustom gdb-use-separate-io-buffer nil "Non-nil means display output from the inferior in a separate buffer." :type 'boolean :group 'gud :version "22.1") -(defun gdb-use-inferior-io-buffer (arg) +(defun gdb-use-separate-io-buffer (arg) "Toggle separate IO for inferior. With arg, use separate IO iff arg is positive." (interactive "P") - (setq gdb-use-inferior-io-buffer + (setq gdb-use-separate-io-buffer (if (null arg) - (not gdb-use-inferior-io-buffer) + (not gdb-use-separate-io-buffer) (> (prefix-numeric-value arg) 0))) (message (format "Separate inferior IO %sabled" - (if gdb-use-inferior-io-buffer "en" "dis"))) + (if gdb-use-separate-io-buffer "en" "dis"))) (if (and gud-comint-buffer (buffer-name gud-comint-buffer)) (condition-case nil - (if gdb-use-inferior-io-buffer + (if gdb-use-separate-io-buffer (gdb-restore-windows) (kill-buffer (gdb-inferior-io-name))) (error nil)))) @@ -462,7 +461,7 @@ With arg, use separate IO iff arg is positive." (setq gdb-buffer-type 'gdba) - (if gdb-use-inferior-io-buffer (gdb-clear-inferior-io)) + (if gdb-use-separate-io-buffer (gdb-clear-inferior-io)) ;; Hack to see test for GDB 6.4+ (-stack-info-frame was implemented in 6.4) (setq gdb-version nil) @@ -853,7 +852,7 @@ The key should be one of the cars in `gdb-buffer-rules-assoc'." (gdb-get-target-string) "*")) -(defun gdb-display-inferior-io-buffer () +(defun gdb-display-separate-io-buffer () "Display IO of inferior in a separate window." (interactive) (if gdb-use-inferior-io-buffer @@ -867,21 +866,21 @@ The key should be one of the cars in `gdb-buffer-rules-assoc'." (menu-bar-lines . nil) (minibuffer . nil))) -(defun gdb-frame-inferior-io-buffer () +(defun gdb-frame-separate-io-buffer () "Display IO of inferior in a new frame." (interactive) - (if gdb-use-inferior-io-buffer + (if gdb-use-separate-io-buffer (let ((special-display-regexps (append special-display-regexps '(".*"))) (special-display-frame-alist gdb-frame-parameters)) (display-buffer (gdb-get-create-buffer 'gdb-inferior-io))))) (defvar gdb-inferior-io-mode-map (let ((map (make-sparse-keymap))) - (define-key map "\C-c\C-c" 'gdb-inferior-io-interrupt) - (define-key map "\C-c\C-z" 'gdb-inferior-io-stop) - (define-key map "\C-c\C-\\" 'gdb-inferior-io-quit) - (define-key map "\C-c\C-d" 'gdb-inferior-io-eof) - (define-key map "\C-d" 'gdb-inferior-io-eof) + (define-key map "\C-c\C-c" 'gdb-separate-io-interrupt) + (define-key map "\C-c\C-z" 'gdb-separate-io-stop) + (define-key map "\C-c\C-\\" 'gdb-separate-io-quit) + (define-key map "\C-c\C-d" 'gdb-separate-io-eof) + (define-key map "\C-d" 'gdb-separate-io-eof) map)) (define-derived-mode gdb-inferior-io-mode comint-mode "Inferior I/O" @@ -902,25 +901,25 @@ The key should be one of the cars in `gdb-buffer-rules-assoc'." (process-send-string proc string) (process-send-string proc "\n"))) -(defun gdb-inferior-io-interrupt () +(defun gdb-separate-io-interrupt () "Interrupt the program being debugged." (interactive) (interrupt-process (get-buffer-process gud-comint-buffer) comint-ptyp)) -(defun gdb-inferior-io-quit () +(defun gdb-separate-io-quit () "Send quit signal to the program being debugged." (interactive) (quit-process (get-buffer-process gud-comint-buffer) comint-ptyp)) -(defun gdb-inferior-io-stop () +(defun gdb-separate-io-stop () "Stop the program being debugged." (interactive) (stop-process (get-buffer-process gud-comint-buffer) comint-ptyp)) -(defun gdb-inferior-io-eof () +(defun gdb-separate-io-eof () "Send end-of-file to the program being debugged." (interactive) (process-send-eof @@ -1116,7 +1115,7 @@ not GDB." ((eq sink 'user) (progn (setq gud-running t) - (if gdb-use-inferior-io-buffer + (if gdb-use-separate-io-buffer (setq gdb-output-sink 'inferior)))) (t (gdb-resync) @@ -1126,7 +1125,7 @@ not GDB." "An annotation handler for `breakpoint' and other annotations. They say that I/O for the subprocess is now GDB, not the program being debugged." - (if gdb-use-inferior-io-buffer + (if gdb-use-separate-io-buffer (let ((sink gdb-output-sink)) (cond ((eq sink 'inferior) @@ -2467,8 +2466,8 @@ corresponding to the mode line clicked." '("Disassembly" . gdb-display-assembler-buffer)) (define-key menu [registers] '("Registers" . gdb-display-registers-buffer)) (define-key menu [inferior] - '(menu-item "Inferior IO" gdb-display-inferior-io-buffer - :enable gdb-use-inferior-io-buffer)) + '(menu-item "Inferior IO" gdb-display-separate-io-buffer + :enable gdb-use-separate-io-buffer)) (define-key menu [locals] '("Locals" . gdb-display-locals-buffer)) (define-key menu [frames] '("Stack" . gdb-display-stack-buffer)) (define-key menu [breakpoints] @@ -2484,8 +2483,8 @@ corresponding to the mode line clicked." (define-key menu [disassembly] '("Disassembiy" . gdb-frame-assembler-buffer)) (define-key menu [registers] '("Registers" . gdb-frame-registers-buffer)) (define-key menu [inferior] - '(menu-item "Inferior IO" gdb-frame-inferior-io-buffer - :enable gdb-use-inferior-io-buffer)) + '(menu-item "Inferior IO" gdb-frame-separate-io-buffer + :enable gdb-use-separate-io-buffer)) (define-key menu [locals] '("Locals" . gdb-frame-locals-buffer)) (define-key menu [frames] '("Stack" . gdb-frame-stack-buffer)) (define-key menu [breakpoints] @@ -2495,11 +2494,11 @@ corresponding to the mode line clicked." (define-key gud-menu-map [ui] `(menu-item (if (eq gud-minor-mode 'gdba) "GDB-UI" "GDB-MI") ,menu :visible (memq gud-minor-mode '(gdbmi gdba)))) - (define-key menu [gdb-use-inferior-io] - '(menu-item "Separate inferior IO" gdb-use-inferior-io-buffer + (define-key menu [gdb-use-separate-io] + '(menu-item "Separate inferior IO" gdb-use-separate-io-buffer :visible (eq gud-minor-mode 'gdba) :help "Toggle separate IO for inferior." - :button (:toggle . gdb-use-inferior-io-buffer))) + :button (:toggle . gdb-use-separate-io-buffer))) (define-key menu [gdb-many-windows] '(menu-item "Display Other Windows" gdb-many-windows :help "Toggle display of locals, stack and breakpoint information" @@ -2545,7 +2544,7 @@ corresponding to the mode line clicked." (if gud-last-last-frame (gud-find-file (car gud-last-last-frame)) (gud-find-file gdb-main-file))) - (when gdb-use-inferior-io-buffer + (when gdb-use-separate-io-buffer (split-window-horizontally) (other-window 1) (gdb-set-window-buffer @@ -2957,37 +2956,15 @@ BUFFER nil or omitted means use the current buffer." (if (re-search-forward " source language \\(\\S-*\\)\." nil t) (setq gdb-current-language (match-string 1))) (gdb-invalidate-assembler)) - - -;; For debugging Emacs only (assumes that usual stack buffer already exists). -(defun gdb-xbacktrace () - "Generate a full lisp level backtrace with arguments." - (interactive) - (let ((frames nil) - (frame-number gdb-frame-number)) - (with-current-buffer (gdb-get-buffer 'gdb-stack-buffer) - (save-excursion - (goto-char (point-min)) - (while (search-forward "in Ffuncall " nil t) - (goto-char (line-beginning-position)) - (looking-at "^#\\([0-9]+\\)") - (push (match-string-no-properties 1) frames) - (forward-line 1)))) - (dolist (frame frames) - (gdb-enqueue-input (list (concat "server frame " frame "\n") - 'ignore)) -; can't use separate buffer because Emacs gets confused by starting -; annotation from debug1_print (with output-sink eq 'emacs) -; (gdb-enqueue-input (list "server ppargs\n" 'gdb-get-arguments)) - (gud-basic-call "server ppargs")) - (gdb-enqueue-input (list (concat "server frame " frame-number "\n") - 'ignore)))) + ;; Code specific to GDB 6.4 (defconst gdb-source-file-regexp-1 "fullname=\"\\(.*?\\)\"") (defun gdb-set-gud-minor-mode-existing-buffers-1 () - "Create list of source files for current GDB session." + "Create list of source files for current GDB session. +If buffers already exist for any of these files, gud-minor-mode +is set in them." (goto-char (point-min)) (while (re-search-forward gdb-source-file-regexp-1 nil t) (push (match-string 1) gdb-source-file-list)) -- cgit v1.2.1 From cb851ef5d97577c0266bb2c220f895d9f55a0c6b Mon Sep 17 00:00:00 2001 From: Nick Roberts Date: Tue, 14 Feb 2006 22:19:26 +0000 Subject: (gdb-display-separate-io-buffer): Change use of gdb-use-inferior-io-buffer to gdb-use-separate-io-buffer (missed in previous change). --- lisp/progmodes/gdb-ui.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index d271ea4acf9..49f6c64c1a7 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el @@ -855,7 +855,7 @@ The key should be one of the cars in `gdb-buffer-rules-assoc'." (defun gdb-display-separate-io-buffer () "Display IO of inferior in a separate window." (interactive) - (if gdb-use-inferior-io-buffer + (if gdb-use-separate-io-buffer (gdb-display-buffer (gdb-get-create-buffer 'gdb-inferior-io)))) -- cgit v1.2.1 From 31d7d3406008ca4d15092a42dbeed7c8e01571b9 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Wed, 15 Feb 2006 00:18:44 +0000 Subject: (GDB User Interface Layout): Don't say `inferior' for program being debugged. --- man/building.texi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/man/building.texi b/man/building.texi index ea8055c1cab..497c2777a5a 100644 --- a/man/building.texi +++ b/man/building.texi @@ -828,15 +828,15 @@ displays the following frame layout: @example +--------------------------------+--------------------------------+ | | | -| GUD buffer (I/O of GDB) | Locals buffer | +| GUD buffer (I/O of GDB) | Locals buffer | | | | |--------------------------------+--------------------------------+ | | | -| Source buffer | I/O buffer (of inferior) | +| Source buffer | I/O buffer for debugged pgm | | | | |--------------------------------+--------------------------------+ | | | -| Stack buffer | Breakpoints buffer | +| Stack buffer | Breakpoints buffer | | | | +--------------------------------+--------------------------------+ @end example -- cgit v1.2.1 From 5f69492604f7a91733972602bf1a45f5a53ab258 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Wed, 15 Feb 2006 01:05:33 +0000 Subject: (x_get_arg): Clear out all occurrences of PARAM in ALIST. --- src/frame.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/frame.c b/src/frame.c index 6712fa6b287..08b3764fe16 100644 --- a/src/frame.c +++ b/src/frame.c @@ -3526,7 +3526,14 @@ x_get_arg (dpyinfo, alist, param, attribute, class, type) so that it won't be "left over" at the end. */ #ifdef HAVE_X_WINDOWS /* macfns.c and w32fns.c have not yet been changed to cope with this. */ + Lisp_Object tail; XSETCAR (tem, Qnil); + /* In case the parameter appears more than once in the alist, + clear it out. */ + for (tail = alist; CONSP (tail); tail = XCDR (tail)) + if (CONSP (XCAR (tail)) + && EQ (XCAR (XCAR (tail)), param)) + XSETCAR (XCAR (tail), Qnil); #endif } else -- cgit v1.2.1 From 9d8f542c7c8a4b27eda9090bc036ce562da111fc Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Wed, 15 Feb 2006 01:05:41 +0000 Subject: *** empty log message *** --- man/ChangeLog | 5 +++++ src/ChangeLog | 2 ++ 2 files changed, 7 insertions(+) diff --git a/man/ChangeLog b/man/ChangeLog index 81975537176..f142ed75616 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,8 @@ +2006-02-14 Richard M. Stallman + + * building.texi (GDB User Interface Layout): Don't say `inferior' + for program being debugged. + 2006-02-15 Nick Roberts * building.texi (GDB Graphical Interface): Replace diff --git a/src/ChangeLog b/src/ChangeLog index 773f87c8f7c..f1f63986454 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,7 @@ 2006-02-14 Richard M. Stallman + * frame.c (x_get_arg): Clear out all occurrences of PARAM in ALIST. + * m/ibms390x.h: New file. 2006-02-14 Jan Dj,Ad(Brv -- cgit v1.2.1 From 42078bb225a979a791d8b33528ae1c96e4bd19cf Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Wed, 15 Feb 2006 01:21:31 +0000 Subject: * files.el (hack-local-variables-confirm): Allow scrolling if the file variable list is too long. --- lisp/ChangeLog | 5 ++++ lisp/files.el | 90 ++++++++++++++++++++++++++++++++-------------------------- 2 files changed, 55 insertions(+), 40 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8f325d6ae6d..d691f30b035 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2006-02-14 Chong Yidong + + * files.el (hack-local-variables-confirm): Allow scrolling if the + file variable list is too long. + 2006-02-15 Nick Roberts * progmodes/gud.el (gdb): Improve doc string. diff --git a/lisp/files.el b/lisp/files.el index 9aab6209db4..7b0c5e591c1 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -2227,56 +2227,66 @@ Otherwise, return nil; point may be changed." (concat "buffer " (buffer-name)))) char) (save-window-excursion - (with-output-to-temp-buffer "*Local Variables*" + (let ((buf (get-buffer-create "*Local Variables*")) + (prompt)) + (pop-to-buffer buf) + (set (make-local-variable 'cursor-type) nil) + (erase-buffer) (if unsafe-vars - (progn (princ "The local variables list in ") - (princ name) - (princ "\ncontains values that may not be safe (*)") - (if risky-vars - (princ ", and variables that are risky (**).") - (princ "."))) + (insert "The local variables list in " name + "\ncontains values that may not be safe (*)" + (if risky-vars + ", and variables that are risky (**)." + ".")) (if risky-vars - (progn (princ "The local variables list in ") - (princ name) - (princ "\ncontains variables that are risky (**).")) - (princ "A local variables list is specified in ") - (princ name) - (princ "."))) - (princ "\n\nDo you want to apply it? You can type + (insert "The local variables list in " name + "\ncontains variables that are risky (**).") + (insert "A local variables list is specified in " name "."))) + (insert "\n\nDo you want to apply it? You can type y -- to apply the local variables list. n -- to ignore the local variables list. ! -- to apply the local variables list, and mark these values (*) as safe (in the future, they can be set automatically.)\n\n") (dolist (elt vars) (cond ((member elt unsafe-vars) - (princ " * ")) + (insert " * ")) ((member elt risky-vars) - (princ " ** ")) + (insert " ** ")) (t - (princ " "))) - (princ (car elt)) - (princ " : ") - (princ (cdr elt)) - (princ "\n"))) - (message "Please type y, n, or !: ") - (let ((inhibit-quit t) - (cursor-in-echo-area t)) - (while (or (not (numberp (setq char (read-event)))) - (not (memq (downcase char) - '(?! ?y ?n ?\s ?\C-g)))) - (message "Please type y, n, or !: ")) - (if (= char ?\C-g) - (setq quit-flag nil))) - (setq char (downcase char)) - (when (and (= char ?!) unsafe-vars) - (dolist (elt unsafe-vars) - (push elt safe-local-variable-values)) - (customize-save-variable - 'safe-local-variable-values - safe-local-variable-values)) - (or (= char ?!) - (= char ?\s) - (= char ?y)))))) + (insert " "))) + (princ (car elt) buf) + (insert " : ") + (princ (cdr elt) buf) + (insert "\n")) + (if (< (line-number-at-pos) (window-body-height)) + (setq prompt "Please type y, n, or !: ") + (goto-char (point-min)) + (setq prompt "Please type y, n, or !, or C-v to scroll: ")) + (let ((inhibit-quit t) + (cursor-in-echo-area t) + done) + (while (not done) + (message prompt) + (setq char (read-event)) + (if (numberp char) + (if (eq char ?\C-v) + (condition-case nil + (scroll-up) + (error (goto-char (point-min)))) + (setq done (memq (downcase char) + '(?! ?y ?n ?\s ?\C-g)))))) + (if (= char ?\C-g) + (setq quit-flag nil))) + (setq char (downcase char)) + (when (and (= char ?!) unsafe-vars) + (dolist (elt unsafe-vars) + (add-to-list 'safe-local-variable-values elt)) + (customize-save-variable + 'safe-local-variable-values + safe-local-variable-values)) + (or (= char ?!) + (= char ?\s) + (= char ?y))))))) (defun hack-local-variables-prop-line (&optional mode-only) "Return local variables specified in the -*- line. -- cgit v1.2.1 From 0a158521c591c4e81e544ef60956543b0d59e86d Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Wed, 15 Feb 2006 01:32:50 +0000 Subject: * files.el (hack-local-variables-confirm): Kill temp buffer after use. --- lisp/ChangeLog | 2 +- lisp/files.el | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d691f30b035..10b4816e9e7 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,7 +1,7 @@ 2006-02-14 Chong Yidong * files.el (hack-local-variables-confirm): Allow scrolling if the - file variable list is too long. + file variable list is too long. Kill temp buffer after use. 2006-02-15 Nick Roberts diff --git a/lisp/files.el b/lisp/files.el index 7b0c5e591c1..285cd50e6af 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -2225,10 +2225,9 @@ Otherwise, return nil; point may be changed." (let ((name (if buffer-file-name (file-name-nondirectory buffer-file-name) (concat "buffer " (buffer-name)))) - char) + prompt char) (save-window-excursion - (let ((buf (get-buffer-create "*Local Variables*")) - (prompt)) + (let ((buf (get-buffer-create "*Local Variables*"))) (pop-to-buffer buf) (set (make-local-variable 'cursor-type) nil) (erase-buffer) @@ -2284,6 +2283,7 @@ n -- to ignore the local variables list. (customize-save-variable 'safe-local-variable-values safe-local-variable-values)) + (kill-buffer buf) (or (= char ?!) (= char ?\s) (= char ?y))))))) -- cgit v1.2.1 From 252293378b1467cd6dda2e69154fed991e6a6e8a Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Wed, 15 Feb 2006 01:37:53 +0000 Subject: * custom.texi (Unsafe File Variables): File variable confirmation assumed denied in batch mode. --- man/ChangeLog | 5 +++++ man/custom.texi | 3 +++ 2 files changed, 8 insertions(+) diff --git a/man/ChangeLog b/man/ChangeLog index f142ed75616..141115ec00e 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,8 @@ +2006-02-14 Chong Yidong + + * custom.texi (Unsafe File Variables): File variable confirmation + assumed denied in batch mode. + 2006-02-14 Richard M. Stallman * building.texi (GDB User Interface Layout): Don't say `inferior' diff --git a/man/custom.texi b/man/custom.texi index 5b6dcde70ee..8c414e6393c 100644 --- a/man/custom.texi +++ b/man/custom.texi @@ -1194,6 +1194,9 @@ that file, and asks you for confirmation before setting them. You can type @samp{y} or @samp{SPC} to apply the local variables list, or @samp{n} to ignore it. + When Emacs is run in batch mode (@pxref{Initial Options}), it +assumes that the answer is @samp{n}. + There is a set of file variables and values that are known to be safe. For instance, it is safe to give @code{comment-column} or @code{fill-column} any integer value. If a file specifies only safe -- cgit v1.2.1 From 16f18d05e54a74d8ce789ecf61803c85717f1ac4 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Wed, 15 Feb 2006 02:35:20 +0000 Subject: * gnus-cus.el: Revert 2005-10-17 change. --- lisp/gnus/ChangeLog | 4 ++++ lisp/gnus/gnus-cus.el | 16 ++++------------ 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index be9436d350c..5a925f18adc 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,7 @@ +2006-02-14 Chong Yidong + + * gnus-cus.el: Revert 2005-10-17 change. + 2006-02-10 Reiner Steib * gnus.el: Remove bogus comment. diff --git a/lisp/gnus/gnus-cus.el b/lisp/gnus/gnus-cus.el index fdce8d1b665..5acad8f721b 100644 --- a/lisp/gnus/gnus-cus.el +++ b/lisp/gnus/gnus-cus.el @@ -36,14 +36,6 @@ ;;; Widgets: -(defvar gnus-custom-map - (let ((map (make-keymap))) - (set-keymap-parent map widget-keymap) - (suppress-keymap map) - (define-key map [mouse-1] 'widget-move-and-invoke) - map) - "Keymap for editing Gnus customization buffers.") - (defun gnus-custom-mode () "Major mode for editing Gnus customization buffers. @@ -59,7 +51,7 @@ if that value is non-nil." (kill-all-local-variables) (setq major-mode 'gnus-custom-mode mode-name "Gnus Customize") - (use-local-map gnus-custom-map) + (use-local-map widget-keymap) ;; Emacs 21 stuff: (when (and (facep 'custom-button-face) (facep 'custom-button-pressed-face)) @@ -490,7 +482,7 @@ form, but who cares?" (widget-create 'sexp :tag "Method" :value (gnus-info-method info)))) - (use-local-map gnus-custom-map) + (use-local-map widget-keymap) (widget-setup) (buffer-enable-undo) (goto-char (point-min)))) @@ -884,7 +876,7 @@ articles in the thread. '(repeat :inline t :tag "Unknown entries" sexp))) - (use-local-map gnus-custom-map) + (use-local-map widget-keymap) (widget-setup))) (defun gnus-score-customize-done (&rest ignore) @@ -1061,7 +1053,7 @@ articles in the thread. (gnus-agent-cat-prepare-category-field agent-enable-undownloaded-faces) - (use-local-map gnus-custom-map) + (use-local-map widget-keymap) (widget-setup) (buffer-enable-undo)))) -- cgit v1.2.1 From bb55f90e4acf87076d743298ecb64eabb1b39993 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Wed, 15 Feb 2006 02:41:02 +0000 Subject: * wid-edit.el (widget-keymap): Bind down-mouse-1 to widget-button-click. * cus-edit.el (custom-mode-map): Remove mouse-1 binding. --- lisp/ChangeLog | 6 ++++++ lisp/cus-edit.el | 1 - lisp/wid-edit.el | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 10b4816e9e7..438907164b8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,10 @@ 2006-02-14 Chong Yidong + * wid-edit.el (widget-keymap): Bind down-mouse-1 to + widget-button-click. + + * cus-edit.el (custom-mode-map): Remove mouse-1 binding. + * files.el (hack-local-variables-confirm): Allow scrolling if the file variable list is too long. Kill temp buffer after use. @@ -35,6 +40,7 @@ * files.el (hack-local-variables): Remove ignored variables before checking if any variables need setting. +>>>>>>> 1.9141 2006-02-14 Jan Dj,Ad(Brv * cus-start.el (all): Add x-gtk-whole-detached-tool-bar. diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 0595336c3ed..87e902ac65e 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -4369,7 +4369,6 @@ The format is suitable for use with `easy-menu-define'." (define-key map "u" 'Custom-goto-parent) (define-key map "n" 'widget-forward) (define-key map "p" 'widget-backward) - (define-key map [mouse-1] 'widget-move-and-invoke) map) "Keymap for `custom-mode'.") diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index 52bf3a212be..659c562ea65 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el @@ -860,6 +860,7 @@ button end points." (define-key map [(shift tab)] 'advertised-widget-backward) (define-key map [backtab] 'widget-backward) (define-key map [down-mouse-2] 'widget-button-click) + (define-key map [down-mouse-1] 'widget-button-click) (define-key map "\C-m" 'widget-button-press) map) "Keymap containing useful binding for buffers containing widgets. -- cgit v1.2.1 From 50be33f562fc92ad2663d5e13ca3ec92d65c2c48 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Wed, 15 Feb 2006 02:42:10 +0000 Subject: * cus-theme.el (custom-new-theme-mode-map): Remove mouse-1 binding. --- lisp/ChangeLog | 3 +++ lisp/cus-theme.el | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 438907164b8..724e47000d1 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -5,6 +5,9 @@ * cus-edit.el (custom-mode-map): Remove mouse-1 binding. + * cus-theme.el (custom-new-theme-mode-map): Remove mouse-1 + binding. + * files.el (hack-local-variables-confirm): Allow scrolling if the file variable list is too long. Kill temp buffer after use. diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el index 3a89c6a664e..53f530505ae 100644 --- a/lisp/cus-theme.el +++ b/lisp/cus-theme.el @@ -38,7 +38,6 @@ (suppress-keymap map) (define-key map "n" 'widget-forward) (define-key map "p" 'widget-backward) - (define-key map [mouse-1] 'widget-move-and-invoke) map) "Keymap for `custom-new-theme-mode'.") -- cgit v1.2.1 From 9ca66103163cfe43b813f6d4fc6a430a0ceab0bb Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Wed, 15 Feb 2006 02:43:55 +0000 Subject: * cus-edit.el (custom-mode): Update docstring. --- lisp/ChangeLog | 1 + lisp/cus-edit.el | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 724e47000d1..0e97f2866a7 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -4,6 +4,7 @@ widget-button-click. * cus-edit.el (custom-mode-map): Remove mouse-1 binding. + (custom-mode): Update docstring. * cus-theme.el (custom-new-theme-mode-map): Remove mouse-1 binding. diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 87e902ac65e..3d06bd0fcae 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -4424,7 +4424,7 @@ Move to previous button, link or editable field. \\[advertised-widget-backward] \\\ Complete content of editable text field. \\[widget-complete] \\\ -Invoke button under the mouse pointer. \\[widget-move-and-invoke] +Invoke button under the mouse pointer. \\[widget-button-click] Invoke button under point. \\[widget-button-press] Set all options from current text. \\[Custom-set] Make values in current text permanent. \\[Custom-save] -- cgit v1.2.1 From 2b2ea6dbc5a2d5da046f9e294ce5b2b489e3fd29 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Wed, 15 Feb 2006 04:33:46 +0000 Subject: (Safe File Variables): Lots of clarification. Renamed from Unsafe File Variables. --- man/ChangeLog | 5 ++++ man/custom.texi | 89 ++++++++++++++++++++++++++++----------------------------- 2 files changed, 49 insertions(+), 45 deletions(-) diff --git a/man/ChangeLog b/man/ChangeLog index 141115ec00e..a4fa515512a 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,8 @@ +2006-02-14 Richard M. Stallman + + * custom.texi (Safe File Variables): Lots of clarification. + Renamed from Unsafe File Variables. + 2006-02-14 Chong Yidong * custom.texi (Unsafe File Variables): File variable confirmation diff --git a/man/custom.texi b/man/custom.texi index 8c414e6393c..db88f64f839 100644 --- a/man/custom.texi +++ b/man/custom.texi @@ -1045,14 +1045,13 @@ buffer, and sets them to the values specified in the file. @menu * Specifying File Variables:: Specifying file local variables. -* Unsafe File Variables:: Handling local variables that may not - be safe. +* Safe File Variables:: Making sure file local variables are safe. @end menu @node Specifying File Variables @subsubsection Specifying File Variables - There are two ways to specify local variable values: in the first + There are two ways to specify file local variable values: in the first line, or with a local variables list. Here's how to specify them in the first line: @@ -1098,7 +1097,7 @@ variables list and a @samp{-*-} line, Emacs processes @emph{everything} in the @samp{-*-} line first, and @emph{everything} in the local variables list afterward. -Here is an example of a local variables list: + Here is an example of a local variables list: @example ;;; Local Variables: *** @@ -1179,52 +1178,52 @@ list need not take the time to search the whole file. major mode of a buffer according to the file name and contents, including the local variables list if any. @xref{Choosing Modes}. -@node Unsafe File Variables -@subsubsection Unsafe File Variables - - File variables create a certain amount of risk; when you visit -someone else's file, its variables could affect your Emacs in -arbitrary ways. A special risk is posed by the @code{eval} -``variable,'' which can potentially execute arbitrary code, and -certain actual variables such as @code{load-path}. - - Therefore, whenever Emacs encounters file variables that are not -known to be safe, it displays the entire list of variables defined in -that file, and asks you for confirmation before setting them. You can -type @samp{y} or @samp{SPC} to apply the local variables list, or -@samp{n} to ignore it. - - When Emacs is run in batch mode (@pxref{Initial Options}), it -assumes that the answer is @samp{n}. - - There is a set of file variables and values that are known to be -safe. For instance, it is safe to give @code{comment-column} or +@node Safe File Variables +@subsubsection Safety of File Variables + + File-local variables can be dangerous; when you visit someone else's +file, there's no telling what its local variables list could do to +your Emacs. Improper values of the @code{eval} ``variable,'' and +other variables such as @code{load-path}, could execute Lisp code you +didn't intend to run. + + Therefore, whenever Emacs encounters file local variable values that +are not known to be safe, it displays the file's entire local +variables list, and asks you for confirmation before setting them. +You can type @kbd{y} or @key{SPC} to put the local variables list into +effect, or @kbd{n} to ignore it. When Emacs is run in batch mode +(@pxref{Initial Options}), it can't really ask you, so it assumes the +answer @samp{n}. + + Emacs normally recognizes certain variables/value pairs as safe. +For instance, it is safe to give @code{comment-column} or @code{fill-column} any integer value. If a file specifies only safe -variable-value pairs, Emacs will not ask for confirmation before -setting them. You can also tell Emacs that a set of variable-value -pairs is safe, by entering @samp{!} at the file variables confirmation -prompt. In that case, Emacs will not ask for confirmation if it -encounters these variable-value pairs in the future. You can directly -edit the list of safe variable-value pairs by customizing +variable/value pairs, Emacs does not ask for confirmation before +setting them. Otherwise, you can tell Emacs to record that all the +variable/value pairs in the file are safe, by typing @kbd{!} at the +confirmation prompt. When Emacs encounters these variable/value pairs +subsequently, in the same file or others, it will assume they are +safe. + +@vindex safe-local-variable-values +@cindex risky variable + Some variables, such as @code{load-path}, are considered +particularly @dfn{risky}: there is seldom any reason to specify them +as local variables, and changing them can be dangerous. Even if you +enter @kbd{!} at the confirmation prompt, Emacs will not record any +values as safe for these variables. If you really want to record safe +values for these variables, do it directly by customizing @samp{safe-local-variable-values} (@pxref{Easy Customization}). - Some variables, such as @code{load-path}, are considered -@dfn{risky}: there is seldom any reason to specify them as file -variables, and changing them can be dangerous. Even if you enter -@samp{!} at the confirmation prompt, Emacs will not save these values -for the future. Therefore, you will be prompted each time the -variable is encountered. If you really want to allow such a variable, -you can avoid the prompt by editing @samp{safe-local-variable-values}. - -@findex enable-local-variables +@vindex enable-local-variables The variable @code{enable-local-variables} allows you to change the way Emacs processes local variables. Its default value is @code{t}, -which means the behavior described above. If you set the value to -@code{nil}, Emacs simply ignores local variables in files. Any other -value says to query you about each file that has local variables, even -if the variables are known to be safe. +which specifies the behavior described above. If it is @code{nil}, +Emacs simply ignores all file local variables. Any other value says +to query you about each file that has local variables, without trying +to determine whether the values are known to be safe. -@findex enable-local-eval +@vindex enable-local-eval The variable @code{enable-local-eval} controls whether Emacs processes @code{eval} variables. The three possibilities for the variable's value are @code{t}, @code{nil}, and anything else, just as @@ -1232,7 +1231,7 @@ for @code{enable-local-variables}. The default is @code{maybe}, which is neither @code{t} nor @code{nil}, so normally Emacs does ask for confirmation about processes @code{eval} variables. -@findex safe-local-eval-forms +@vindex safe-local-eval-forms The @code{safe-local-eval-forms} is a customizable list of eval forms which are safe to eval, so Emacs should not ask for confirmation to evaluate these forms. -- cgit v1.2.1 From 3fdd8b9aa962853c8ed49ebdfc1bb1c0f666af97 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Wed, 15 Feb 2006 04:38:45 +0000 Subject: (File Local Variables): Clarifications. --- lispref/variables.texi | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/lispref/variables.texi b/lispref/variables.texi index c3fe6cf6a23..f3e81c3ddd3 100644 --- a/lispref/variables.texi +++ b/lispref/variables.texi @@ -1777,14 +1777,12 @@ visiting a file could take over your Emacs. Emacs takes several measures to prevent this. @cindex safe local variable - A variable can be marked as @dfn{safe} by setting its + You can specify safe values for a variable with a @code{safe-local-variable} property. If the property is @code{t}, setting that variable in a file is always considered safe, regardless -of the value assigned to it. The @code{safe-local-variable} property -can also be a function of one argument. In that case, Emacs considers -it safe to give the variable a certain value if the function returns -non-@code{nil} when given that value as argument. Many -commonly-encountered file variables standardly have +of the value used. If the property is a function of one argument, +then any value is safe if the function returns non-@code{nil} given +that value. Many commonly encountered file variables standardly have @code{safe-local-variable} properties, including @code{fill-column}, @code{fill-prefix}, and @code{indent-tabs-mode}. @@ -1794,10 +1792,11 @@ safe. It is a list of cons cells @code{(@var{var} . @var{val})}, where @var{var} is a variable name and @var{val} is a value which is safe for that variable. -When Emacs asks the user whether or not to obey a set of file variable -specifications, the user can choose to mark them as safe. Doing so -adds those variable-value pairs to @code{safe-local-variable-values}, -and saves it to the user's custom file. +When Emacs asks the user whether or not to obey a set of file local +variable specifications, the user can choose to mark them as safe. +Doing so adds those variable/value pairs to +@code{safe-local-variable-values}, and saves it to the user's custom +file. @end defopt @defun safe-local-variable-p sym val @@ -1825,8 +1824,8 @@ based on the above criteria. If a variable is risky, it will not be entered automatically into @code{safe-local-variable-values} as described above. Therefore, Emacs will always query before setting a risky variable, unless the -user explicitly allows it by editing @code{safe-local-variable-values} -via Customize. +user explicitly allows the setting by customizing +@code{safe-local-variable-values} directly. @defvar ignored-local-variables This variable holds a list of variables that should not be given local -- cgit v1.2.1 From 0a9cef67feaec081a224eacdb28cf5146e4cde50 Mon Sep 17 00:00:00 2001 From: Romain Francoise Date: Wed, 15 Feb 2006 07:28:15 +0000 Subject: *** empty log message *** --- lisp/ChangeLog | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 0e97f2866a7..5d3b960af59 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -44,7 +44,6 @@ * files.el (hack-local-variables): Remove ignored variables before checking if any variables need setting. ->>>>>>> 1.9141 2006-02-14 Jan Dj,Ad(Brv * cus-start.el (all): Add x-gtk-whole-detached-tool-bar. @@ -237,7 +236,7 @@ 2006-02-11 Martin Rudalics * files.el (revert-buffer, recover-file): Replace buffer-read-only - with inhibit-read-only. Suggested by Stefan Monnier. + with inhibit-read-only. Suggested by Stefan Monnier. (revert-buffer): Let insert-file-contents discard buffer-undo-list. Simplify code. (find-file, find-file-existing, revert-buffer): Doc-string fixes. -- cgit v1.2.1 From 58ec29139aea7173bd91095892c2987fe1317321 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Wed, 15 Feb 2006 08:41:12 +0000 Subject: (x_get_arg): Clear out PARAM in ALIST also on Mac. --- src/frame.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/frame.c b/src/frame.c index 08b3764fe16..dd91e436600 100644 --- a/src/frame.c +++ b/src/frame.c @@ -3524,8 +3524,7 @@ x_get_arg (dpyinfo, alist, param, attribute, class, type) { /* If we find this parm in ALIST, clear it out so that it won't be "left over" at the end. */ -#ifdef HAVE_X_WINDOWS /* macfns.c and w32fns.c have not yet - been changed to cope with this. */ +#ifndef WINDOWSNT /* w32fns.c has not yet been changed to cope with this. */ Lisp_Object tail; XSETCAR (tem, Qnil); /* In case the parameter appears more than once in the alist, -- cgit v1.2.1 From 052c4ff370464bf164912207381857e8182cc87a Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Wed, 15 Feb 2006 08:41:36 +0000 Subject: (x_set_menu_bar_lines): Menu bar is always shown on Mac. --- src/macfns.c | 35 +++++++---------------------------- 1 file changed, 7 insertions(+), 28 deletions(-) diff --git a/src/macfns.c b/src/macfns.c index b6ef85bcd9f..617167dfc46 100644 --- a/src/macfns.c +++ b/src/macfns.c @@ -1647,36 +1647,15 @@ x_set_menu_bar_lines (f, value, oldval) struct frame *f; Lisp_Object value, oldval; { - int nlines; - int olines = FRAME_MENU_BAR_LINES (f); - - /* Right now, menu bars don't work properly in minibuf-only frames; - most of the commands try to apply themselves to the minibuffer - frame itself, and get an error because you can't switch buffers - in or split the minibuffer window. */ - if (FRAME_MINIBUF_ONLY_P (f)) - return; - - if (INTEGERP (value)) - nlines = XINT (value); - else - nlines = 0; + /* Make sure we redisplay all windows in this frame. */ + windows_or_buffers_changed++; FRAME_MENU_BAR_LINES (f) = 0; - if (nlines) - FRAME_EXTERNAL_MENU_BAR (f) = 1; - else - { - if (FRAME_EXTERNAL_MENU_BAR (f) == 1) - free_frame_menubar (f); - FRAME_EXTERNAL_MENU_BAR (f) = 0; - - /* Adjust the frame size so that the client (text) dimensions - remain the same. This depends on FRAME_EXTERNAL_MENU_BAR being - set correctly. */ - x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f)); - do_pending_window_change (0); - } + /* The menu bar is always shown. */ + FRAME_EXTERNAL_MENU_BAR (f) = 1; + if (FRAME_MAC_P (f) && f->output_data.mac->menubar_widget == 0) + /* Make sure next redisplay shows the menu bar. */ + XWINDOW (FRAME_SELECTED_WINDOW (f))->update_mode_line = Qt; adjust_glyphs (f); } -- cgit v1.2.1 From f036d043abe46601f658ab9854b63c5e19afadb7 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Wed, 15 Feb 2006 08:42:12 +0000 Subject: (set_frame_menubar): Don't call DrawMenuBar. --- src/ChangeLog | 8 ++++++++ src/macmenu.c | 2 -- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index f1f63986454..70d03104b7b 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2006-02-15 YAMAMOTO Mitsuharu + + * frame.c (x_get_arg): Clear out PARAM in ALIST also on Mac. + + * macfns.c (x_set_menu_bar_lines): Menu bar is always shown on Mac. + + * macmenu.c (set_frame_menubar): Don't call DrawMenuBar. + 2006-02-14 Richard M. Stallman * frame.c (x_get_arg): Clear out all occurrences of PARAM in ALIST. diff --git a/src/macmenu.c b/src/macmenu.c index 91cf28f7456..bd4ad6291cf 100644 --- a/src/macmenu.c +++ b/src/macmenu.c @@ -1701,8 +1701,6 @@ set_frame_menubar (f, first_time, deep_p) fill_menubar (first_wv->contents); - DrawMenuBar (); - /* Add event handler so we can detect C-g. */ install_menu_quit_handler (NULL); free_menubar_widget_value_tree (first_wv); -- cgit v1.2.1 From 6d45d2a00150a4ea45fdf5fe5aadb250df3f6316 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Wed, 15 Feb 2006 09:45:31 +0000 Subject: Indentation fix --- src/gtkutil.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gtkutil.c b/src/gtkutil.c index 35fb9ce328c..5b7a5166888 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -3258,9 +3258,9 @@ xg_tool_bar_button_cb (widget, event, user_data) GdkEventButton *event; gpointer user_data; { - g_object_set_data (G_OBJECT (user_data), XG_TOOL_BAR_LAST_MODIFIER, - (gpointer) event->state); - return FALSE; + g_object_set_data (G_OBJECT (user_data), XG_TOOL_BAR_LAST_MODIFIER, + (gpointer) event->state); + return FALSE; } -- cgit v1.2.1 From d8d3d48ce84db1041ac52084b63b4e021589b690 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Dj=C3=A4rv?= Date: Wed, 15 Feb 2006 09:46:01 +0000 Subject: Fix entry for 2006-02-14 --- src/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 70d03104b7b..18dcc803efa 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -16,7 +16,7 @@ * gtkutil.c (xg_tool_bar_detach_callback): Set show-arrow to the value of x-gtk-whole-detached-tool-bar. - (xg_tool_bar_attach_callback): Set show-arrow to FALSE. + (xg_tool_bar_attach_callback): Set show-arrow to TRUE. * xfns.c (syms_of_xfns): New variable: x-gtk-whole-detached-tool-bar. -- cgit v1.2.1 From 310a26be6284648d501764efe921fdad606b991d Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Wed, 15 Feb 2006 11:10:56 +0000 Subject: (bs-mode): Use `buffer-disable-undo'. (bs--get-file-name): Simplify. (bs-show-in-buffer): Mark the buffer as not modified. --- lisp/bs.el | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/lisp/bs.el b/lisp/bs.el index a1dfad6ac7a..f095a98dc00 100644 --- a/lisp/bs.el +++ b/lisp/bs.el @@ -652,6 +652,7 @@ to show always. (use-local-map bs-mode-map) (make-local-variable 'font-lock-defaults) (make-local-variable 'font-lock-verbose) + (buffer-disable-undo) (setq major-mode 'bs-mode mode-name "Buffer-Selection-Menu" buffer-read-only t @@ -1164,7 +1165,8 @@ and move point to current buffer." (bs--set-window-height) (bs--goto-current-buffer) (font-lock-fontify-buffer) - (bs-apply-sort-faces))) + (bs-apply-sort-faces) + (set-buffer-modified-p nil))) (defun bs-next-buffer (&optional buffer-list sorting-p) "Return next buffer and buffer list for buffer cycling in BUFFER-LIST. @@ -1338,16 +1340,11 @@ If current mode is `dired-mode' or `shell-mode' it returns the default directory. START-BUFFER is the buffer where we started buffer selection. ALL-BUFFERS is the list of buffer appearing in Buffer Selection Menu." - (let ((string (copy-sequence (if (member major-mode - '(shell-mode dired-mode)) - default-directory - (or buffer-file-name ""))))) - (add-text-properties - 0 (length string) - '(mouse-face highlight - help-echo "mouse-2: select this buffer, mouse-3: select in other frame") - string) - string)) + (propertize (if (member major-mode '(shell-mode dired-mode)) + default-directory + (or buffer-file-name "")) + 'mouse-face 'highlight + 'help-echo "mouse-2: select this buffer, mouse-3: select in other frame")) (defun bs--insert-one-entry (buffer) "Generate one entry for buffer BUFFER in Buffer Selection Menu. -- cgit v1.2.1 From 988deaf96761934bb038ab6d24067bf41abd3ee6 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Wed, 15 Feb 2006 11:25:58 +0000 Subject: *** empty log message *** --- lisp/ChangeLog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5d3b960af59..1061469c5d5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2006-02-15 Juanma Barranquero + + * bs.el (bs-mode): Use `buffer-disable-undo'. + (bs--get-file-name): Simplify. + (bs-show-in-buffer): Mark the buffer as not modified. + 2006-02-14 Chong Yidong * wid-edit.el (widget-keymap): Bind down-mouse-1 to -- cgit v1.2.1 From fc4c8611e97e93f0a4f49e5749e75b01e1a4f493 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francesco=20Potort=C3=AC?= Date: Wed, 15 Feb 2006 13:29:34 +0000 Subject: *** empty log message *** --- man/ChangeLog | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/man/ChangeLog b/man/ChangeLog index a4fa515512a..0d22e6d17bc 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,8 @@ +2006-02-15 Francesco Potort,Al(B + + * maintaining.texi (Create Tags Table): Explain why the + exception when etags writes to files under the /dev tree. + 2006-02-14 Richard M. Stallman * custom.texi (Safe File Variables): Lots of clarification. -- cgit v1.2.1 From 1899ba3642557437c156156bad44d99d4aae5323 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francesco=20Potort=C3=AC?= Date: Wed, 15 Feb 2006 13:30:19 +0000 Subject: (Create Tags Table): Explain why the exception when etags writes to files under the /dev tree. --- man/maintaining.texi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/man/maintaining.texi b/man/maintaining.texi index b3ff4b8dce9..9836aae4e83 100644 --- a/man/maintaining.texi +++ b/man/maintaining.texi @@ -404,7 +404,8 @@ directory where the tags file was initially written. This way, you can move an entire directory tree containing both the tags file and the source files, and the tags file will still refer correctly to the source files. If the tags file is in @file{/dev}, however, the file names are -made relative to the current working directory. +made relative to the current working directory. This is useful, for +example, when writing the tags to @file{/dev/stdout}. If you specify absolute file names as arguments to @code{etags}, then the tags file will contain absolute file names. This way, the tags file -- cgit v1.2.1 From e7559e307df1582c802885c5c6f80fba230bc524 Mon Sep 17 00:00:00 2001 From: Miles Bader Date: Thu, 16 Feb 2006 01:41:30 +0000 Subject: Revision: emacs@sv.gnu.org/emacs--devo--0--patch-88 Creator: Michael Olson Merge from erc--emacs--0 --- etc/ERC-NEWS | 36 ++++++++++++++++++++++++++++++++++++ lisp/erc/ChangeLog | 22 ++++++++++++++++++++++ lisp/erc/erc-stamp.el | 9 ++++----- lisp/erc/erc.el | 3 ++- 4 files changed, 64 insertions(+), 6 deletions(-) diff --git a/etc/ERC-NEWS b/etc/ERC-NEWS index eee5589ad8d..ada1d02785d 100644 --- a/etc/ERC-NEWS +++ b/etc/ERC-NEWS @@ -1,5 +1,41 @@ ERC NEWS -*- outline -*- +* Changes in ERC 5.1.2 (unreleased) + +** Fix compiler errors in erc-autojoin.el and erc-dcc.el. + +** Move to end of prompt when ERC reconnects to a server. + +** Changes and additions to modules + +*** Spell-checking (erc-spelling.el) + +**** Don't spell-check nicks or words that are prefixed with '/'. + +**** Remove flyspell properties from words we shouldn't spell-check. + +**** Fix an issue that caused the ispell process to reload every time +we switch to an ERC buffer. + +*** Timestamps (erc-stamp.el) + +**** Fix an inconsistency in calculating width of right timestamps. + +**** Rename option `erc-timestamp-right-align-by-pixel' to +`erc-timestamp-use-align-to'. This controls whether to use the more +fail-proof method of aligning right timestamps, as mentioned below. + +**** Fix a right timestamp spacing problem that used to occur when +erc-stamp.el was byte-compiled. Now that this is fixed, it is safe to +use the method that aligns right timestamps perfectly in Emacs22 with +X. If the current version of Emacs doesn't support this method, use +the simpler method, which is prone to alignment issues for math +symbols and other variable-width text. + +A side effect of using this new method is that there will only be one +space before a right timestamp in any saved logs. If this is +unacceptable, set `erc-timestamp-use-align-to' to nil. + * Changes in ERC 5.1.1 ** Fix a requirement on cl.el. diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 3d44f87777c..ec2098c7bd3 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -1,3 +1,25 @@ +2006-02-15 Michael Olson + + * erc.el (erc): Move to the end of the buffer when a continued + session is detected. Thanks to e1f and indio for the report and + testing a potential fix. + +2006-02-14 Michael Olson + + * debian/changelog: Prepare a new Debian package. + + * Makefile (debprepare): New rule that creates an ERC snapshot + directory for use in both new Debian releases and revisions for + Debian packages. + (debrelease, debrevision-mwolson): Use debprepare. + + * NEWS: Bring up-to-date. + + * erc-stamp.el (erc-insert-timestamp-right): For now, put + timestamps before rather than after erc-fill-column when + erc-timestamp-right-column is nil. This way we won't surprise + anyone unpleasantly, or so it is hoped. + 2006-02-13 Michael Olson * erc-dcc.el: Use (eval-when-compile (require 'cl)). diff --git a/lisp/erc/erc-stamp.el b/lisp/erc/erc-stamp.el index e5d4250d142..5d43baab6c9 100644 --- a/lisp/erc/erc-stamp.el +++ b/lisp/erc/erc-stamp.el @@ -240,19 +240,18 @@ be printed just before the window-width." (goto-char (point-max)) (forward-char -1);; before the last newline (let* ((current-window (get-buffer-window (current-buffer))) + (str-width (string-width string)) (pos (cond (erc-timestamp-right-column erc-timestamp-right-column) ((and (boundp 'erc-fill-mode) erc-fill-mode (boundp 'erc-fill-column) erc-fill-column) - (1+ erc-fill-column)) + (1+ (- erc-fill-column str-width))) (fill-column - (1+ fill-column)) + (1+ (- fill-column str-width))) (t - (- (window-width) - (string-width string) - 1)))) + (- (window-width) str-width 1)))) (from (point)) (col (current-column)) indent) diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index d444ab2af0f..e1dc240901b 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -1927,7 +1927,8 @@ Returns the buffer for the given server or channel." (goto-char (point-max)) (insert "\n")) (set-marker (process-mark erc-server-process) (point)) - (unless continued-session + (if continued-session + (goto-char (point-max)) (set-marker erc-insert-marker (point)) (erc-display-prompt) (goto-char (point-max))) -- cgit v1.2.1 From fc0f755fab9c900ebfcb549bc01d69a6ee6b611b Mon Sep 17 00:00:00 2001 From: Peter Galbraith Date: Thu, 16 Feb 2006 02:14:40 +0000 Subject: mh-compat.el (mh-image-search-load-path): Compatibility code. Emacs 21 and XEmacs don't have `image-search-load-path'. mh-utils.el (mh-image-load-path): Don't bail out on error if the images are already found. --- lisp/mh-e/ChangeLog | 8 ++++++++ lisp/mh-e/mh-compat.el | 8 +++++++- lisp/mh-e/mh-utils.el | 50 +++++++++++++++++++++++++++++++++++--------------- 3 files changed, 50 insertions(+), 16 deletions(-) diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog index 349bae9f072..3dcf689767a 100644 --- a/lisp/mh-e/ChangeLog +++ b/lisp/mh-e/ChangeLog @@ -1,3 +1,11 @@ +2006-02-15 Peter S Galbraith + + * mh-compat.el (mh-image-search-load-path): Compatibility code. + Emacs 21 and XEmacs don't have `image-search-load-path'. + + * mh-utils.el (mh-image-load-path): Don't bail out on error if the + images are already found. + 2006-02-10 Bill Wohler * mh-search.el (mh-search): Wrap code in (block mh-search ...) diff --git a/lisp/mh-e/mh-compat.el b/lisp/mh-e/mh-compat.el index 090ee51c5fc..4bc5fdf36f7 100644 --- a/lisp/mh-e/mh-compat.el +++ b/lisp/mh-e/mh-compat.el @@ -115,6 +115,12 @@ introduced in Emacs 22." `(face-background ,face ,frame) `(face-background ,face ,frame ,inherit))) +(mh-defun-compat mh-image-search-load-path + image-search-load-path (file &optional path) + "Emacs 21 and XEmacs don't have `image-search-load-path'. +This function returns nil on those systems." + nil) + ;; For XEmacs. (defalias 'mh-line-beginning-position (if (fboundp 'line-beginning-position) @@ -131,7 +137,7 @@ introduced in Emacs 22." (mh-defun-compat mh-mail-abbrev-make-syntax-table mail-abbrev-make-syntax-table () "Emacs 21 and XEmacs don't have `mail-abbrev-make-syntax-table'. -This function does nothing on those systems." +This function returns nil on those systems." nil) (mh-defun-compat mh-match-string-no-properties diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el index dc86d19ae77..bf0d29fd2a7 100644 --- a/lisp/mh-e/mh-utils.el +++ b/lisp/mh-e/mh-utils.el @@ -109,21 +109,41 @@ already there. See also variable `mh-image-load-path-called-flag'." (unless mh-image-load-path-called-flag - (if (or (not mh-image-load-path) - (not (file-exists-p mh-image-load-path))) - (let (mh-library-name) - ;; First, find mh-e in the load-path. - (setq mh-library-name (locate-library "mh-e")) - (if (not mh-library-name) - (error "Can not find MH-E in load-path")) - (setq mh-image-load-path - (expand-file-name (concat (file-name-directory mh-library-name) - "../../etc/images"))))) - (if (not (file-exists-p mh-image-load-path)) - (error "Can not find image directory %s" mh-image-load-path)) - (if (boundp 'image-load-path) - (add-to-list 'image-load-path mh-image-load-path) - (add-to-list 'load-path mh-image-load-path)) + (cond + ((and mh-image-load-path + (file-exists-p (expand-file-name "mh-logo.xpm" + mh-image-load-path)))) + ;; User setting exists. We're done. + ((and mh-image-load-path + (not (file-exists-p (expand-file-name "mh-logo.xpm" + mh-image-load-path)))) + ;; User setting does not exist. + (message "Variable mh-image-load-path %s does not contain MH-E images" + mh-image-load-path)) + ((mh-image-search-load-path "mh-logo.xpm") + ;; Emacs 22 already knows where the images are. + (setq mh-image-load-path + (file-name-directory (mh-image-search-load-path "mh-logo.xpm")))) + ((locate-library "mh-logo.xpm") + ;; Other Emacs already knows where the images are... + (setq mh-image-load-path + (file-name-directory (locate-library "mh-logo.xpm")))) + (t + ;; Guess `mh-image-load-path' if it wasn't provided by the user. + (let (mh-library-name) + ;; First, find mh-e in the load-path. + (setq mh-library-name (locate-library "mh-e")) + (if (not mh-library-name) + (error "Can not find MH-E in load-path")) + (setq mh-image-load-path + (expand-file-name (concat + (file-name-directory mh-library-name) + "../../etc/images")))) + (if (not (file-exists-p mh-image-load-path)) + (error "Can not find image directory %s" mh-image-load-path)) + (if (boundp 'image-load-path) + (add-to-list 'image-load-path mh-image-load-path) + (add-to-list 'load-path mh-image-load-path)))) (setq mh-image-load-path-called-flag t))) ;;;###mh-autoload -- cgit v1.2.1 From 598d751d7c089bb7959782a4ca262930f27c8dd1 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Thu, 16 Feb 2006 11:32:43 +0000 Subject: (icalendar--get-event-property, icalendar--get-event-property-attributes): Fix typos in docstrings. --- lisp/calendar/icalendar.el | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el index e1d513ce680..b900d4c57f3 100644 --- a/lisp/calendar/icalendar.el +++ b/lisp/calendar/icalendar.el @@ -293,7 +293,7 @@ it finds" ;; (car (cddr event))) (defun icalendar--get-event-property (event prop) - "For the given EVENT return the value of the first occurence of PROP." + "For the given EVENT return the value of the first occurrence of PROP." (catch 'found (let ((props (car (cddr event))) pp) (while props @@ -304,7 +304,7 @@ it finds" nil)) (defun icalendar--get-event-property-attributes (event prop) - "For the given EVENT return attributes of the first occurence of PROP." + "For the given EVENT return attributes of the first occurrence of PROP." (catch 'found (let ((props (car (cddr event))) pp) (while props @@ -705,7 +705,7 @@ would be \"pm\"." "Export diary file to iCalendar format. All diary entries in the file DIARY-FILENAME are converted to iCalendar format. The result is appended to the file ICAL-FILENAME." - (interactive "FExport diary data from file: + (interactive "FExport diary data from file: Finto iCalendar file: ") (save-current-buffer (set-buffer (find-file diary-filename)) @@ -1449,8 +1449,8 @@ Argument ICAL-FILENAME output iCalendar file. Argument DIARY-FILENAME input `diary-file'. Optional argument NON-MARKING determines whether events are created as non-marking or not." - (interactive "fImport iCalendar data from file: -Finto diary file: + (interactive "fImport iCalendar data from file: +Finto diary file: p") ;; clean up the diary file (save-current-buffer -- cgit v1.2.1 From caf213c53d8d2c86d25ad2dc5e1e325495edad66 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Thu, 16 Feb 2006 11:36:21 +0000 Subject: (spam-stat-buffer-words): Fix typo in docstring. --- lisp/gnus/spam-stat.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/gnus/spam-stat.el b/lisp/gnus/spam-stat.el index 66f302d32e5..e21372bd649 100644 --- a/lisp/gnus/spam-stat.el +++ b/lisp/gnus/spam-stat.el @@ -323,7 +323,7 @@ Use `spam-stat-ngood', `spam-stat-nbad', `spam-stat-good', ,@body)) (defun spam-stat-buffer-words () - "Return a hash table of words and number of occurences in the buffer." + "Return a hash table of words and number of occurrences in the buffer." (with-spam-stat-max-buffer-size (with-syntax-table spam-stat-syntax-table (goto-char (point-min)) -- cgit v1.2.1 From 338ecb71b1f2de619942b7c5c6eaf30729fa1075 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Thu, 16 Feb 2006 11:36:52 +0000 Subject: (html2text-remove-tag-list): Fix typo in docstring. --- lisp/gnus/html2text.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/gnus/html2text.el b/lisp/gnus/html2text.el index ceba84decf1..68934c909e9 100644 --- a/lisp/gnus/html2text.el +++ b/lisp/gnus/html2text.el @@ -59,7 +59,7 @@ completely verbatim - without any use of REGEXP.") This is a list of tags which should be removed, without any formatting. Note that tags in the list are presented *without* -any \"<\" or \">\". All occurences of a tag appearing in this +any \"<\" or \">\". All occurrences of a tag appearing in this list are removed, irrespective of whether it is a closing or opening tag, or if the tag has additional attributes. The deletion is done by the function `html2text-remove-tags'. -- cgit v1.2.1 From 57d3a1f359e3652bf11e16824c23566a50b47a15 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Thu, 16 Feb 2006 11:40:51 +0000 Subject: (flymake-fix-file-name): Fix typo in docstring. --- lisp/progmodes/flymake.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 9a6024c8e8b..4f197e34bfe 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el @@ -339,7 +339,7 @@ Return its file name if found, or nil if not found." nil))))) (defun flymake-fix-file-name (name) - "Replace all occurences of '\' with '/'." + "Replace all occurrences of '\' with '/'." (when name (setq name (expand-file-name name)) (setq name (abbreviate-file-name name)) -- cgit v1.2.1 From b51897597a6ab40a4772d70a23421e66b3eb5048 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Thu, 16 Feb 2006 11:45:23 +0000 Subject: *** empty log message *** --- lisp/ChangeLog | 9 +++++++++ lisp/gnus/ChangeLog | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1061469c5d5..670f6db6282 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,12 @@ +2006-02-16 Juanma Barranquero + + * calendar/icalendar.el (icalendar--get-event-property) + (icalendar--get-event-property-attributes): Fix typos in + docstrings. + + * progmodes/flymake.el (flymake-fix-file-name): Fix typo in + docstring. + 2006-02-15 Juanma Barranquero * bs.el (bs-mode): Use `buffer-disable-undo'. diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 5a925f18adc..adca02f5b95 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,8 @@ +2006-02-16 Juanma Barranquero + + * html2text.el (html2text-remove-tag-list): + * spam-stat.el (spam-stat-buffer-words): Fix typo in docstring. + 2006-02-14 Chong Yidong * gnus-cus.el: Revert 2005-10-17 change. -- cgit v1.2.1