Using saved parent location: http://bzr.savannah.gnu.org/r/emacs/trunk/ Now on revision 101866. ------------------------------------------------------------ revno: 101866 committer: Katsumi Yamaoka branch nick: trunk timestamp: Sat 2010-10-09 04:22:17 +0000 message: gnus.texi: untabify. diff: === modified file 'doc/misc/gnus.texi' --- doc/misc/gnus.texi 2010-10-09 01:49:20 +0000 +++ doc/misc/gnus.texi 2010-10-09 04:22:17 +0000 @@ -25510,8 +25510,8 @@ (setq gnus-refer-article-method '(current - (nnregistry) - (nnweb "gmane" (nnweb-type gmane)))) + (nnregistry) + (nnweb "gmane" (nnweb-type gmane)))) @end example The example above instructs Gnus to first look up the article in the ------------------------------------------------------------ revno: 101865 committer: Chong Yidong branch nick: trunk timestamp: Fri 2010-10-08 23:30:31 -0400 message: * xterm.c (x_draw_relief_rect): Clear corner pixels. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2010-10-08 12:41:49 +0000 +++ src/ChangeLog 2010-10-09 03:30:31 +0000 @@ -1,3 +1,7 @@ +2010-10-09 Chong Yidong + + * xterm.c (x_draw_relief_rect): Clear corner pixels. + 2010-10-08 Michael Albinus * keyboard.c: Revert last change; it was not intended to be === modified file 'src/xterm.c' --- src/xterm.c 2010-10-08 05:02:56 +0000 +++ src/xterm.c 2010-10-09 03:30:31 +0000 @@ -1967,6 +1967,9 @@ if (width == 1) XDrawLine (dpy, window, gc, left_x, top_y + 1, left_x, bottom_y); + XClearArea (dpy, window, left_x, top_y, 1, 1, False); + XClearArea (dpy, window, left_x, bottom_y, 1, 1, False); + for (i = (width > 1 ? 1 : 0); i < width; ++i) XDrawLine (dpy, window, gc, left_x + i, top_y + i, left_x + i, bottom_y - i + 1); @@ -2006,9 +2009,13 @@ /* Right. */ if (right_p) - for (i = 0; i < width; ++i) - XDrawLine (dpy, window, gc, - right_x - i, top_y + i + 1, right_x - i, bottom_y - i); + { + XClearArea (dpy, window, right_x, top_y, 1, 1, False); + XClearArea (dpy, window, right_x, bottom_y, 1, 1, False); + for (i = 0; i < width; ++i) + XDrawLine (dpy, window, gc, + right_x - i, top_y + i + 1, right_x - i, bottom_y - i); + } XSetClipMask (dpy, gc, None); } ------------------------------------------------------------ revno: 101864 committer: Chong Yidong branch nick: trunk timestamp: Fri 2010-10-08 23:23:38 -0400 message: More face customization cleanups. * cus-edit.el (custom-commands, custom-buffer-create-internal) (custom-magic-value-create): Pad button tags with spaces. (custom-face-edit): New variable. (custom-face-value-create): Determine whether to use the usual face editor here, instead of using custom-face-selected. Pass face defaults to custom-face-edit widget. (custom-face-selected, custom-display-unselected): Delete widgets. (custom-display-unselected-match): Function removed. (custom-face-set, custom-face-mark-to-save): Accept custom-face-edit widgets as the direct widget child. * wid-edit.el (widget--completing-widget): New var. (widget-default-complete): Bind it when doing completion. (widget-string-complete, widget-file-complete): Use it. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-10-09 02:25:38 +0000 +++ lisp/ChangeLog 2010-10-09 03:23:38 +0000 @@ -1,3 +1,20 @@ +2010-10-08 Chong Yidong + + * cus-edit.el (custom-commands, custom-buffer-create-internal) + (custom-magic-value-create): Pad button tags with spaces. + (custom-face-edit): New variable. + (custom-face-value-create): Determine whether to use the usual + face editor here, instead of using custom-face-selected. Pass + face defaults to custom-face-edit widget. + (custom-face-selected, custom-display-unselected): Delete widgets. + (custom-display-unselected-match): Function removed. + (custom-face-set, custom-face-mark-to-save): Accept + custom-face-edit widgets as the direct widget child. + + * wid-edit.el (widget--completing-widget): New var. + (widget-default-complete): Bind it when doing completion. + (widget-string-complete, widget-file-complete): Use it. + 2010-10-09 Glenn Morris * calendar/cal-hebrew.el (holiday-hebrew-rosh-hashanah) === modified file 'lisp/cus-edit.el' --- lisp/cus-edit.el 2010-10-08 00:05:12 +0000 +++ lisp/cus-edit.el 2010-10-09 03:23:38 +0000 @@ -738,33 +738,33 @@ ;; `custom-buffer-create-internal' if `custom-buffer-verbose-help' is non-nil. (defvar custom-commands - '(("Set for current session" Custom-set t + '((" Set for current session " Custom-set t "Apply all settings in this buffer to the current session" "index" "Apply") - ("Save for future sessions" Custom-save + (" Save for future sessions " Custom-save (or custom-file user-init-file) "Apply all settings in this buffer and save them for future Emacs sessions." "save" "Save") - ("Undo edits" Custom-reset-current t + (" Undo edits " Custom-reset-current t "Restore all settings in this buffer to reflect their current values." "refresh" "Undo") - ("Reset to saved" Custom-reset-saved t + (" Reset to saved " Custom-reset-saved t "Restore all settings in this buffer to their saved values (if any)." "undo" "Reset") - ("Erase customizations" Custom-reset-standard + (" Erase customizations " Custom-reset-standard (or custom-file user-init-file) "Un-customize all settings in this buffer and save them with standard values." "delete" "Uncustomize") - ("Help for Customize" Custom-help t + (" Help for Customize " Custom-help t "Get help for using Customize." "help" "Help") - ("Exit" Custom-buffer-done t "Exit Customize." "exit" "Exit"))) + (" Exit " Custom-buffer-done t "Exit Customize." "exit" "Exit"))) (defun Custom-help () "Read the node on Easy Customization in the Emacs manual." @@ -1607,7 +1607,7 @@ (widget-insert " ") (widget-create-child-and-convert search-widget 'push-button - :tag "Search" + :tag " Search " :help-echo echo :action (lambda (widget &optional event) (customize-apropos (widget-value (widget-get widget :parent))))) @@ -2039,7 +2039,7 @@ :button-prefix 'widget-push-button-prefix :button-suffix 'widget-push-button-suffix :mouse-down-action 'widget-magic-mouse-down-action - :tag "State") + :tag " State ") children) (insert ": ") (let ((start (point))) @@ -2455,7 +2455,6 @@ (define-widget 'custom-variable 'custom "A widget for displaying a Custom variable. - The following properties have special meanings for this widget: :hidden-states should be a list of widget states for which the @@ -3032,7 +3031,13 @@ ;;; The `custom-face-edit' Widget. (define-widget 'custom-face-edit 'checklist - "Widget for editing face attributes." + "Widget for editing face attributes. +The following properties have special meanings for this widget: + +:value is a plist of face attributes. + +:default-face-attributes, if non-nil, is a plist of defaults for +face attributes (as specified by a `default' defface entry)." :format "%v" :extra-offset 3 :button-args '(:help-echo "Control whether this attribute has any effect.") @@ -3050,18 +3055,22 @@ custom-face-attributes)) (defun custom-face-edit-value-create (widget) - (let* ((value (widget-get widget :value)) ; list of key-value pairs - (alist (widget-checklist-match-find widget value)) + (let* ((alist (widget-checklist-match-find + widget (widget-get widget :value))) (args (widget-get widget :args)) (show-all (widget-get widget :show-all-attributes)) - (buttons (widget-get widget :buttons)) + (buttons (widget-get widget :buttons)) + (defaults (widget-checklist-match-find + widget + (widget-get widget :default-face-attributes))) entry) (unless (looking-back "^ *") (insert ?\n)) (insert-char ?\s (widget-get widget :extra-offset)) - (if (or alist show-all) + (if (or alist defaults show-all) (dolist (prop args) - (setq entry (assq prop alist)) + (setq entry (or (assq prop alist) + (assq prop defaults))) (if (or entry show-all) (widget-checklist-add-item widget prop entry))) (insert (propertize "-- Empty face --" 'face 'shadow) ?\n)) @@ -3127,6 +3136,9 @@ (widget-get widget :args))) widget) +(defconst custom-face-edit (widget-convert 'custom-face-edit) + "Converted version of the `custom-face-edit' widget.") + (defun custom-face-edit-deactivate (widget) "Make face widget WIDGET inactive for user modifications." (unless (widget-get widget :inactive) @@ -3282,15 +3294,22 @@ (define-widget 'custom-face 'custom "Widget for customizing a face. -The widget value is the face name (a symbol). - The following properties have special meanings for this widget: +:value is the face name (a symbol). + :custom-form should be a symbol describing how to display and edit the face attributes---either `selected' (attributes for selected display only), `all' (all attributes), `lisp' (as a Lisp sexp), or `mismatch' (should not happen); if nil, use - the return value of `custom-face-default-form'." + the return value of `custom-face-default-form'. + +:display-style, if non-nil, should be a symbol describing the + style of display to use. If the value is `concise', a more + concise interface is shown. + +:sample-indent, if non-nil, should be an integer; this is the +number of columns to which to indent the face sample." :sample-face 'custom-face-tag :help-echo "Set or reset this face." :documentation-property #'face-doc-string @@ -3319,29 +3338,6 @@ (defconst custom-face-all (widget-convert 'custom-face-all) "Converted version of the `custom-face-all' widget.") -(define-widget 'custom-display-unselected 'item - "A display specification that doesn't match the selected display." - :match 'custom-display-unselected-match) - -(defun custom-display-unselected-match (widget value) - "Non-nil if VALUE is an unselected display specification." - (not (face-spec-set-match-display value (selected-frame)))) - -(define-widget 'custom-face-selected 'group - "Widget for editing the attributes of a face on the selected display." - :args '((group :tag "No Defaults" :inline t - (repeat :format "" - :inline t - (group custom-display-unselected sexp)) - (group (sexp :format "") - (custom-face-edit :tag "\n Attributes")) - (repeat :format "" - :inline t - sexp)))) - -(defconst custom-face-selected (widget-convert 'custom-face-selected) - "Converted version of the `custom-face-selected' widget.") - (defun custom-filter-face-spec (spec filter-index &optional default-filter) "Return a canonicalized version of SPEC using. FILTER-INDEX is the index in the entry for each attribute in @@ -3390,6 +3386,7 @@ (tag (or (widget-get widget :tag) (prin1-to-string symbol))) (hiddenp (eq (widget-get widget :custom-state) 'hidden)) + (style (widget-get widget :display-style)) children) (if (eq custom-buffer-style 'tree) @@ -3424,9 +3421,14 @@ (t " face: "))) ;; Face sample. + (let ((sample-indent (widget-get widget :sample-indent)) + (indent-tabs-mode nil)) + (and sample-indent + (<= (current-column) sample-indent) + (indent-to-column sample-indent))) (push (widget-create-child-and-convert widget 'item - :format "(%{%t%})" :sample-face symbol :tag "sample") + :format "[%{%t%}]" :sample-face symbol :tag "sample") buttons) ;; Magic. (insert "\n") @@ -3439,19 +3441,20 @@ (widget-put widget :buttons buttons) ;; Insert documentation. - (widget-put widget :documentation-indent 3) - (widget-add-documentation-string-button - widget :visibility-widget 'custom-visibility) - ;; The comment field - (unless hiddenp - (let* ((comment (get symbol 'face-comment)) - (comment-widget - (widget-create-child-and-convert - widget 'custom-comment - :parent widget - :value (or comment "")))) - (widget-put widget :comment-widget comment-widget) - (push comment-widget children))) + (unless (and hiddenp (eq style 'concise)) + (widget-put widget :documentation-indent 3) + (widget-add-documentation-string-button + widget :visibility-widget 'custom-visibility) + ;; The comment field + (unless hiddenp + (let* ((comment (get symbol 'face-comment)) + (comment-widget + (widget-create-child-and-convert + widget 'custom-comment + :parent widget + :value (or comment "")))) + (widget-put widget :comment-widget comment-widget) + (push comment-widget children)))) ;; Editor. (unless (eq (preceding-char) ?\n) @@ -3469,7 +3472,7 @@ symbol (selected-frame)))))) (form (widget-get widget :custom-form)) (indent (widget-get widget :indent)) - edit-widget-type edit) + face-alist face-entry spec-default spec-match editor) ;; If the user has changed this face in some other way, ;; edit it as the user has specified it. (if (not (face-spec-match-p symbol spec (selected-frame))) @@ -3477,21 +3480,42 @@ (selected-frame)))))) (setq spec (custom-pre-filter-face-spec spec)) - (cond ((and (eq form 'selected) - (widget-apply custom-face-selected :match spec)) - (when indent (insert-char ?\s indent)) - (setq edit-widget-type 'custom-face-selected)) - ((and (not (eq form 'lisp)) - (widget-apply custom-face-all :match spec)) - (setq edit-widget-type 'custom-face-all)) - (t - (when indent - (insert-char ?\s indent)) - (setq edit-widget-type 'sexp))) - (setq edit (widget-create-child-and-convert - widget edit-widget-type :value spec)) + ;; Find a display in SPEC matching the selected display. + ;; This will use the usual face customization interface. + (setq face-alist spec) + (when (eq (car-safe (car-safe face-alist)) 'default) + (setq spec-default (pop face-alist))) + + (while (and face-alist (listp face-alist) (null spec-match)) + (setq face-entry (car face-alist)) + (and (listp face-entry) + (face-spec-set-match-display (car face-entry) + (selected-frame)) + (widget-apply custom-face-edit :match (cadr face-entry)) + (setq spec-match face-entry)) + (setq face-alist (cdr face-alist))) + + ;; Insert the appropriate editing widget. + (setq editor + (cond + ((and (eq form 'selected) + (or spec-match spec-default)) + (when indent (insert-char ?\s indent)) + (widget-create-child-and-convert + widget 'custom-face-edit + :value (cadr spec-match) + :default-face-attributes (cadr spec-default))) + ((and (not (eq form 'lisp)) + (widget-apply custom-face-all :match spec)) + (widget-create-child-and-convert + widget 'custom-face-all :value spec)) + (t + (when indent + (insert-char ?\s indent)) + (widget-create-child-and-convert + widget 'sexp :value spec)))) (custom-face-state-set widget) - (push edit children) + (push editor children) (widget-put widget :children children)))))) (defvar custom-face-menu @@ -3603,7 +3627,10 @@ "Make the face attributes in WIDGET take effect." (let* ((symbol (widget-value widget)) (child (car (widget-get widget :children))) - (value (custom-post-filter-face-spec (widget-value child))) + (value (custom-post-filter-face-spec + (if (eq (widget-type child) 'custom-face-edit) + `((t ,(widget-value child))) + (widget-value child)))) (comment-widget (widget-get widget :comment-widget)) (comment (widget-value comment-widget))) (when (equal comment "") @@ -3626,7 +3653,10 @@ "Mark for saving the face edited by WIDGET." (let* ((symbol (widget-value widget)) (child (car (widget-get widget :children))) - (value (custom-post-filter-face-spec (widget-value child))) + (value (custom-post-filter-face-spec + (if (eq (widget-type child) 'custom-face-edit) + `((t ,(widget-value child))) + (widget-value child)))) (comment-widget (widget-get widget :comment-widget)) (comment (widget-value comment-widget))) (when (equal comment "") === modified file 'lisp/wid-edit.el' --- lisp/wid-edit.el 2010-10-08 00:05:12 +0000 +++ lisp/wid-edit.el 2010-10-09 03:23:38 +0000 @@ -57,8 +57,6 @@ ;;; Code: -(defvar widget) - ;;; Compatibility. (defun widget-event-point (event) @@ -1462,11 +1460,15 @@ :notify 'widget-default-notify :prompt-value 'widget-default-prompt-value) +(defvar widget--completing-widget) + (defun widget-default-complete (widget) "Call the value of the :complete-function property of WIDGET. -If that does not exist, call the value of `widget-complete-field'." - (call-interactively (or (widget-get widget :complete-function) - widget-complete-field))) +If that does not exist, call the value of `widget-complete-field'. +During this call, `widget--completing-widget' is bound to WIDGET." + (let ((widget--completing-widget widget)) + (call-interactively (or (widget-get widget :complete-function) + widget-complete-field)))) (defun widget-default-create (widget) "Create WIDGET at point in the current buffer." @@ -3048,14 +3050,13 @@ :complete-function 'ispell-complete-word :prompt-history 'widget-string-prompt-value-history) -(defvar widget) - (defun widget-string-complete () "Complete contents of string field. Completions are taken from the :completion-alist property of the widget. If that isn't a list, it's evalled and expected to yield a list." (interactive) - (let* ((completion-ignore-case (widget-get widget :completion-ignore-case)) + (let* ((widget widget--completing-widget) + (completion-ignore-case (widget-get widget :completion-ignore-case)) (alist (widget-get widget :completion-alist)) (_ (unless (listp alist) (setq alist (eval alist))))) @@ -3100,9 +3101,10 @@ (defun widget-file-complete () "Perform completion on file name preceding point." (interactive) - (completion-in-region (widget-field-start widget) - (max (point) (widget-field-text-end widget)) - 'completion-file-name-table)) + (let ((widget widget--completing-widget)) + (completion-in-region (widget-field-start widget) + (max (point) (widget-field-text-end widget)) + 'completion-file-name-table))) (defun widget-file-prompt-value (widget prompt value unbound) ;; Read file from minibuffer. @@ -3725,7 +3727,7 @@ (widget-insert " ") (widget-create-child-and-convert widget 'push-button - :tag "Choose" :action 'widget-color--choose-action) + :tag " Choose " :action 'widget-color--choose-action) (widget-insert " ")) (defun widget-color--choose-action (widget &optional event) ------------------------------------------------------------ revno: 101863 committer: Glenn Morris branch nick: trunk timestamp: Fri 2010-10-08 19:25:38 -0700 message: Small simplifications for some cal-hebrew calculations. * lisp/calendar/cal-hebrew.el (holiday-hebrew-rosh-hashanah) (holiday-hebrew-passover, holiday-hebrew-tisha-b-av) (holiday-hebrew-misc): Small simplifications. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-10-09 01:15:15 +0000 +++ lisp/ChangeLog 2010-10-09 02:25:38 +0000 @@ -1,5 +1,9 @@ 2010-10-09 Glenn Morris + * calendar/cal-hebrew.el (holiday-hebrew-rosh-hashanah) + (holiday-hebrew-passover, holiday-hebrew-tisha-b-av) + (holiday-hebrew-misc): Small simplifications. + * emacs-lisp/authors.el (authors-valid-file-names): Add b2m.c. * net/browse-url.el: Don't require thingatpt, term, dired, === modified file 'lisp/calendar/cal-hebrew.el' --- lisp/calendar/cal-hebrew.el 2010-08-29 16:17:13 +0000 +++ lisp/calendar/cal-hebrew.el 2010-10-09 02:25:38 +0000 @@ -376,7 +376,7 @@ (list (calendar-gregorian-from-absolute (1+ abs-r-h)) "Rosh HaShanah (second day)") (list (calendar-gregorian-from-absolute - (if (= (% abs-r-h 7) 4) (+ abs-r-h 3) (+ abs-r-h 2))) + (+ abs-r-h (if (= (% abs-r-h 7) 4) 3 2))) "Tzom Gedaliah") (list (calendar-gregorian-from-absolute (calendar-dayname-on-or-before 6 (+ 7 abs-r-h))) @@ -454,70 +454,71 @@ (list (calendar-gregorian-from-absolute (+ abs-p 50)) "Shavuot")) (when (or all calendar-hebrew-all-holidays-flag) - (list - (list (calendar-gregorian-from-absolute - (calendar-dayname-on-or-before 6 (- abs-p 43))) - "Shabbat Shekalim") - (list (calendar-gregorian-from-absolute - (calendar-dayname-on-or-before 6 (- abs-p 30))) - "Shabbat Zachor") - (list (calendar-gregorian-from-absolute - (if (= (% abs-p 7) 2) (- abs-p 33) (- abs-p 31))) - "Fast of Esther") - (list (calendar-gregorian-from-absolute (- abs-p 31)) - "Erev Purim") - (list (calendar-gregorian-from-absolute (- abs-p 30)) - "Purim") - (list (calendar-gregorian-from-absolute - (if (zerop (% abs-p 7)) (- abs-p 28) (- abs-p 29))) - "Shushan Purim") - (list (calendar-gregorian-from-absolute - (- (calendar-dayname-on-or-before 6 (- abs-p 14)) 7)) - "Shabbat Parah") - (list (calendar-gregorian-from-absolute - (calendar-dayname-on-or-before 6 (- abs-p 14))) - "Shabbat HaHodesh") - (list (calendar-gregorian-from-absolute - (calendar-dayname-on-or-before 6 (1- abs-p))) - "Shabbat HaGadol") - (list (calendar-gregorian-from-absolute (1- abs-p)) - "Erev Passover") - (list (calendar-gregorian-from-absolute (1+ abs-p)) - "Passover (second day)") - (list (calendar-gregorian-from-absolute (+ abs-p 2)) - "Hol Hamoed Passover (first day)") - (list (calendar-gregorian-from-absolute (+ abs-p 3)) - "Hol Hamoed Passover (second day)") - (list (calendar-gregorian-from-absolute (+ abs-p 4)) - "Hol Hamoed Passover (third day)") - (list (calendar-gregorian-from-absolute (+ abs-p 5)) - "Hol Hamoed Passover (fourth day)") - (list (calendar-gregorian-from-absolute (+ abs-p 6)) - "Passover (seventh day)") - (list (calendar-gregorian-from-absolute (+ abs-p 7)) - "Passover (eighth day)") - (list (calendar-gregorian-from-absolute - (if (zerop (% (+ abs-p 12) 7)) - (+ abs-p 13) - (+ abs-p 12))) - "Yom HaShoah") - (list (calendar-gregorian-from-absolute - (if (zerop (% abs-p 7)) - (+ abs-p 18) - (if (= (% abs-p 7) 6) - (+ abs-p 19) - (if (= (% abs-p 7) 2) - (+ abs-p 21) - (+ abs-p 20))))) - "Yom HaAtzma'ut") - (list (calendar-gregorian-from-absolute (+ abs-p 33)) - "Lag BaOmer") - (list (calendar-gregorian-from-absolute (+ abs-p 43)) - "Yom Yerushalaim") - (list (calendar-gregorian-from-absolute (+ abs-p 49)) - "Erev Shavuot") - (list (calendar-gregorian-from-absolute (+ abs-p 51)) - "Shavuot (second day)")))))))) + (let ((wday (% abs-p 7))) + (list + (list (calendar-gregorian-from-absolute + (calendar-dayname-on-or-before 6 (- abs-p 43))) + "Shabbat Shekalim") + (list (calendar-gregorian-from-absolute + (calendar-dayname-on-or-before 6 (- abs-p 30))) + "Shabbat Zachor") + (list (calendar-gregorian-from-absolute + (- abs-p (if (= wday 2) 33 31))) + "Fast of Esther") + (list (calendar-gregorian-from-absolute (- abs-p 31)) + "Erev Purim") + (list (calendar-gregorian-from-absolute (- abs-p 30)) + "Purim") + (list (calendar-gregorian-from-absolute + (- abs-p (if (zerop wday) 28 29))) + "Shushan Purim") + (list (calendar-gregorian-from-absolute + (- (calendar-dayname-on-or-before 6 (- abs-p 14)) 7)) + "Shabbat Parah") + (list (calendar-gregorian-from-absolute + (calendar-dayname-on-or-before 6 (- abs-p 14))) + "Shabbat HaHodesh") + (list (calendar-gregorian-from-absolute + (calendar-dayname-on-or-before 6 (1- abs-p))) + "Shabbat HaGadol") + (list (calendar-gregorian-from-absolute (1- abs-p)) + "Erev Passover") + (list (calendar-gregorian-from-absolute (1+ abs-p)) + "Passover (second day)") + (list (calendar-gregorian-from-absolute (+ abs-p 2)) + "Hol Hamoed Passover (first day)") + (list (calendar-gregorian-from-absolute (+ abs-p 3)) + "Hol Hamoed Passover (second day)") + (list (calendar-gregorian-from-absolute (+ abs-p 4)) + "Hol Hamoed Passover (third day)") + (list (calendar-gregorian-from-absolute (+ abs-p 5)) + "Hol Hamoed Passover (fourth day)") + (list (calendar-gregorian-from-absolute (+ abs-p 6)) + "Passover (seventh day)") + (list (calendar-gregorian-from-absolute (+ abs-p 7)) + "Passover (eighth day)") + (list (calendar-gregorian-from-absolute + (+ abs-p (if (zerop (% (+ abs-p 12) 7)) + 13 + 12))) + "Yom HaShoah") + (list (calendar-gregorian-from-absolute + (+ abs-p + ;; If falls on Sat or Fri, moves to preceding Thurs. + ;; If falls on Mon, moves to Tues (since 2004). + (cond ((zerop wday) 18) ; Sat + ((= wday 6) 19) ; Fri + ((= wday 2) 21) ; Mon + (t 20)))) + "Yom HaAtzma'ut") + (list (calendar-gregorian-from-absolute (+ abs-p 33)) + "Lag BaOmer") + (list (calendar-gregorian-from-absolute (+ abs-p 43)) + "Yom Yerushalaim") + (list (calendar-gregorian-from-absolute (+ abs-p 49)) + "Erev Shavuot") + (list (calendar-gregorian-from-absolute (+ abs-p 51)) + "Shavuot (second day)"))))))))) ;;;###holiday-autoload (define-obsolete-function-alias 'holiday-passover-etc @@ -527,18 +528,19 @@ (defun holiday-hebrew-tisha-b-av () "List of dates around Tisha B'Av, as visible in calendar window." (when (memq displayed-month '(5 6 7 8 9)) - (let ((abs-t-a (calendar-hebrew-to-absolute - (list 5 9 (+ displayed-year 3760))))) + (let* ((abs-t-a (calendar-hebrew-to-absolute + (list 5 9 (+ displayed-year 3760)))) + (wday (% abs-t-a 7))) (holiday-filter-visible-calendar (list (list (calendar-gregorian-from-absolute - (if (= (% abs-t-a 7) 6) (- abs-t-a 20) (- abs-t-a 21))) + (- abs-t-a (if (= wday 6) 20 21))) "Tzom Tammuz") (list (calendar-gregorian-from-absolute (calendar-dayname-on-or-before 6 abs-t-a)) "Shabbat Hazon") (list (calendar-gregorian-from-absolute - (if (= (% abs-t-a 7) 6) (1+ abs-t-a) abs-t-a)) + (if (= wday 6) (1+ abs-t-a) abs-t-a)) "Tisha B'Av") (list (calendar-gregorian-from-absolute (calendar-dayname-on-or-before 6 (+ abs-t-a 7))) @@ -557,7 +559,7 @@ Kiddush HaHamah." (let ((m displayed-month) (y displayed-year) - year h-year s-s) + year h-year) (append (holiday-julian 11 @@ -591,20 +593,17 @@ (calendar-extract-year (calendar-hebrew-from-absolute (calendar-absolute-from-gregorian - (list m (calendar-last-day-of-month m y) y))))) - s-s - (calendar-hebrew-from-absolute - (if (= 6 - (% (calendar-hebrew-to-absolute - (list 7 1 h-year)) - 7)) - (calendar-dayname-on-or-before - 6 (calendar-hebrew-to-absolute - (list 11 17 h-year))) - (calendar-dayname-on-or-before - 6 (calendar-hebrew-to-absolute - (list 11 16 h-year)))))) - (calendar-extract-day s-s)) + (list m (calendar-last-day-of-month m y) y)))))) + (calendar-extract-day + (calendar-hebrew-from-absolute + (calendar-dayname-on-or-before + 6 (calendar-hebrew-to-absolute + (list 11 + (if (= 6 + (% (calendar-hebrew-to-absolute + (list 7 1 h-year)) + 7)) + 17 16) h-year)))))) "Shabbat Shirah") (and (progn (setq m displayed-month @@ -1162,5 +1161,4 @@ (provide 'cal-hebrew) -;; arch-tag: aaab6718-7712-42ac-a32d-28fe1f944f3c ;;; cal-hebrew.el ends here ------------------------------------------------------------ revno: 101862 committer: Glenn Morris branch nick: trunk timestamp: Fri 2010-10-08 19:16:38 -0700 message: * configure.in: Combine some conditionals. diff: === modified file 'ChangeLog' --- ChangeLog 2010-10-09 01:41:21 +0000 +++ ChangeLog 2010-10-09 02:16:38 +0000 @@ -1,5 +1,7 @@ 2010-10-09 Glenn Morris + * configure.in: Combine some conditionals. + * configure.in (AC_OUTPUT): Add doc/emacs/emacsver.texi. * make-dist: Include doc/emacs/*.texi.in. === modified file 'configure.in' --- configure.in 2010-10-09 01:41:21 +0000 +++ configure.in 2010-10-09 02:16:38 +0000 @@ -850,14 +850,12 @@ dnl Add our options to ac_link now, after it is set up. -if test x$GCC = xyes && test "x$GCC_LINK_TEST_OPTIONS" != x -then - ac_link="$ac_link $GCC_LINK_TEST_OPTIONS" -fi - -if test x$GCC = x && test "x$NON_GCC_LINK_TEST_OPTIONS" != x -then - ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS" +if test x$GCC = xyes; then + test "x$GCC_LINK_TEST_OPTIONS" != x && \ + ac_link="$ac_link $GCC_LINK_TEST_OPTIONS" +else + test "x$NON_GCC_LINK_TEST_OPTIONS" != x && \ + ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS" fi dnl We need -znocombreloc if we're using a relatively recent GNU ld. @@ -867,7 +865,7 @@ dnl if not built to support GNU ld. late_LDFLAGS=$LDFLAGS -if test "$GCC" = yes; then +if test x$GCC = xyes; then LDFLAGS="$LDFLAGS -Wl,-znocombreloc" else LDFLAGS="$LDFLAGS -znocombreloc" @@ -3540,17 +3538,14 @@ #include config_opsysfile #include config_machfile -/* Set up some defines, C and LD flags for NeXTstep interface on GNUstep. - (There is probably a better place to do this, but right now the Cocoa - side does this in s/darwin.h and we cannot - parallel this exactly since GNUstep is multi-OS. */ -#ifdef HAVE_NS -# ifdef NS_IMPL_GNUSTEP /* GNUstep needs a bit more pure memory. Of the existing knobs, -SYSTEM_PURESIZE_EXTRA seems like the least likely to cause problems. */ + SYSTEM_PURESIZE_EXTRA seems like the least likely to cause problems. + (There is probably a better place to do this, but right now the + Cocoa side does this in s/darwin.h and we cannot parallel this + exactly since GNUstep is multi-OS. */ +#if defined HAVE_NS && defined NS_IMPL_GNUSTEP # define SYSTEM_PURESIZE_EXTRA 30000 -# endif /* NS_IMPL_GNUSTEP */ -#endif /* HAVE_NS */ +#endif /* SIGTYPE is the macro we actually use. */ #ifndef SIGTYPE ------------------------------------------------------------ revno: 101861 committer: Glenn Morris branch nick: trunk timestamp: Fri 2010-10-08 19:13:20 -0700 message: Add doc/emacs/emacsver.texi. diff: === modified file '.bzrignore' --- .bzrignore 2010-09-17 12:30:04 +0000 +++ .bzrignore 2010-10-09 02:13:20 +0000 @@ -29,6 +29,7 @@ TAGS-LISP info/* admin/unidata/unidata.txt +doc/emacs/emacsver.texi leim/leim-list.el leim/quail/*.el leim/changed.misc ------------------------------------------------------------ revno: 101860 committer: Glenn Morris branch nick: trunk timestamp: Fri 2010-10-08 19:09:46 -0700 message: Add doc/ dependencies on emacsver.texi. * doc/misc/Makefile.in ($(infodir)/efaq): Depend on emacsver.texi. * doc/lispref/Makefile.in (srcs): Add emacsver.texi. * doc/emacs/Makefile.in (EMACSSOURCES): Add emacsver.texi. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2010-10-09 01:41:21 +0000 +++ doc/emacs/ChangeLog 2010-10-09 02:09:46 +0000 @@ -4,6 +4,7 @@ * emacs.texi: Set EMACSVER by including emacsver.texi. * Makefile.in (distclean): Delete emacsver.texi. (dist): Copy emacsver.texi. + (EMACSSOURCES): Add emacsver.texi. * ack.texi (Acknowledgments): No more b2m.c. === modified file 'doc/emacs/Makefile.in' --- doc/emacs/Makefile.in 2010-10-09 01:41:21 +0000 +++ doc/emacs/Makefile.in 2010-10-09 02:09:46 +0000 @@ -70,6 +70,7 @@ $(srcdir)/msdog-xtra.texi EMACSSOURCES= \ + ${srcdir}/emacsver.texi \ ${srcdir}/emacs.texi \ ${srcdir}/doclicense.texi \ ${srcdir}/gpl.texi \ === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2010-10-09 01:41:21 +0000 +++ doc/lispref/ChangeLog 2010-10-09 02:09:46 +0000 @@ -3,6 +3,8 @@ * Makefile.in (emacsdir): New variable. (MAKEINFO): Add -I $emacsdir. (dist): Copy emacsver.texi. + (srcs): Add emacsver.texi. + * book-spine.texinfo, elisp.texi, vol2.texi, vol1.texi: Set EMACSVER by including emacsver.texi. === modified file 'doc/lispref/Makefile.in' --- doc/lispref/Makefile.in 2010-10-09 01:41:21 +0000 +++ doc/lispref/Makefile.in 2010-10-09 02:09:46 +0000 @@ -42,6 +42,7 @@ # List of all the texinfo files in the manual: srcs = \ + $(emacsdir)/emacsver.texi \ $(srcdir)/abbrevs.texi \ $(srcdir)/advice.texi \ $(srcdir)/anti.texi \ === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2010-10-09 01:49:20 +0000 +++ doc/misc/ChangeLog 2010-10-09 02:09:46 +0000 @@ -4,6 +4,8 @@ * Makefile.in (emacsdir): New variable. ($(infodir)/efaq): Pass -I $(emacsdir) to makeinfo. + Depend on emacsver.texi. + * faq.texi (VER): Replace with EMACSVER from emacsver.texi. * Makefile.in (.PHONY): Declare info, dvi, pdf and the clean rules. === modified file 'doc/misc/Makefile.in' --- doc/misc/Makefile.in 2010-10-09 01:41:21 +0000 +++ doc/misc/Makefile.in 2010-10-09 02:09:46 +0000 @@ -364,7 +364,7 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/eudc.texi efaq : $(infodir)/efaq -$(infodir)/efaq: faq.texi $(infodir) +$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi $(infodir) cd $(srcdir); $(MAKEINFO) -I $(emacsdir) faq.texi faq.dvi: faq.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/faq.texi ------------------------------------------------------------ revno: 101859 committer: Glenn Morris branch nick: trunk timestamp: Fri 2010-10-08 18:59:50 -0700 message: Regenerate configure, src/config.in. diff: === modified file 'configure' --- configure 2010-09-29 18:52:34 +0000 +++ configure 2010-10-09 01:59:50 +0000 @@ -8058,7 +8058,6 @@ main () { char *data, *data2, *data3; - const char *cdata2; int i, pagesize; int fd, fd2; @@ -8083,10 +8082,10 @@ fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); if (fd2 < 0) return 4; - cdata2 = ""; - if (write (fd2, cdata2, 1) != 1) + data2 = ""; + if (write (fd2, data2, 1) != 1) return 5; - data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); + data2 = mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); if (data2 == MAP_FAILED) return 6; for (i = 0; i < pagesize; ++i) @@ -9509,7 +9508,8 @@ fi if test "${HAVE_GNUTLS}" = "yes"; then - $as_echo "#define HAVE_GNUTLS 1" >>confdefs.h + +$as_echo "#define HAVE_GNUTLS 1" >>confdefs.h fi fi @@ -15017,7 +15017,7 @@ test "${exec_prefix}" != NONE && exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'` -ac_config_files="$ac_config_files Makefile lib-src/Makefile oldXMenu/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile leim/Makefile" +ac_config_files="$ac_config_files Makefile lib-src/Makefile oldXMenu/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile leim/Makefile doc/emacs/emacsver.texi" ac_config_commands="$ac_config_commands default" @@ -15726,6 +15726,7 @@ "lwlib/Makefile") CONFIG_FILES="$CONFIG_FILES lwlib/Makefile" ;; "lisp/Makefile") CONFIG_FILES="$CONFIG_FILES lisp/Makefile" ;; "leim/Makefile") CONFIG_FILES="$CONFIG_FILES leim/Makefile" ;; + "doc/emacs/emacsver.texi") CONFIG_FILES="$CONFIG_FILES doc/emacs/emacsver.texi" ;; "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; === modified file 'src/config.in' --- src/config.in 2010-10-03 15:39:21 +0000 +++ src/config.in 2010-10-09 01:59:50 +0000 @@ -255,7 +255,7 @@ /* Define to 1 if you have a gif (or ungif) library. */ #undef HAVE_GIF -/* Define if we have the GNU TLS library. */ +/* Define if using GnuTLS. */ #undef HAVE_GNUTLS /* Define to 1 if you have the gpm library (-lgpm). */ @@ -408,6 +408,9 @@ /* Define to 1 if you have the `Xext' library (-lXext). */ #undef HAVE_LIBXEXT +/* Define to 1 if you have the libxml library (-lxml2). */ +#undef HAVE_LIBXML2 + /* Define to 1 if you have the `Xmu' library (-lXmu). */ #undef HAVE_LIBXMU @@ -816,9 +819,6 @@ /* Define to 1 if you have the SM library (-lSM). */ #undef HAVE_X_SM -/* Define to 1 if you have the libxml2 library (-lxml2). */ -#undef HAVE_LIBXML2 - /* Define to 1 if you want to use the X window system. */ #undef HAVE_X_WINDOWS @@ -1097,12 +1097,6 @@ #include config_opsysfile #include config_machfile -#if HAVE_GNUTLS -#define LIBGNUTLS $(LIBGNUTLS_LIBS) -#else /* not HAVE_GNUTLS */ -#define LIBGNUTLS -#endif /* not HAVE_GNUTLS */ - /* Set up some defines, C and LD flags for NeXTstep interface on GNUstep. (There is probably a better place to do this, but right now the Cocoa side does this in s/darwin.h and we cannot ------------------------------------------------------------ revno: 101858 committer: Glenn Morris branch nick: trunk timestamp: Fri 2010-10-08 18:49:20 -0700 message: * doc/misc/gnus.texi (Article Washing): Fix previous change. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2010-10-09 01:41:21 +0000 +++ doc/misc/ChangeLog 2010-10-09 01:49:20 +0000 @@ -1,5 +1,7 @@ 2010-10-09 Glenn Morris + * gnus.texi (Article Washing): Fix previous change. + * Makefile.in (emacsdir): New variable. ($(infodir)/efaq): Pass -I $(emacsdir) to makeinfo. * faq.texi (VER): Replace with EMACSVER from emacsver.texi. === modified file 'doc/misc/gnus.texi' --- doc/misc/gnus.texi 2010-10-08 23:55:33 +0000 +++ doc/misc/gnus.texi 2010-10-09 01:49:20 +0000 @@ -9815,7 +9815,6 @@ @item mm-shr Use Gnus simple html renderer. -@table @code @item gnus-article-html Use Gnus rendered based on w3m. ------------------------------------------------------------ revno: 101857 committer: Glenn Morris branch nick: trunk timestamp: Fri 2010-10-08 18:41:21 -0700 message: Set the version number in the texinfo manuals using configure. * doc/misc/Makefile.in (emacsdir): New variable. ($(infodir)/efaq): Pass -I $(emacsdir) to makeinfo. * doc/misc/faq.texi (VER): Replace with EMACSVER from emacsver.texi. * doc/lispref/Makefile.in (emacsdir): New variable. (MAKEINFO): Add -I $emacsdir. (dist): Copy emacsver.texi. * doc/lispref/book-spine.texinfo, doc/lispref/elisp.texi: * doc/lispref/vol2.texi, doc/lispref/vol1.texi: Set EMACSVER by including emacsver.texi. * doc/emacs/emacsver.texi.in: New file. * doc/emacs/emacs.texi: Set EMACSVER by including emacsver.texi. * doc/emacs/Makefile.in (distclean): Delete emacsver.texi. (dist): Copy emacsver.texi. * admin/admin.el (set-version): No need to act on doc/ files any more. * configure.in (AC_OUTPUT): Add doc/emacs/emacsver.texi. * make-dist: Include doc/emacs/*.texi.in. diff: === modified file 'ChangeLog' --- ChangeLog 2010-10-09 01:15:15 +0000 +++ ChangeLog 2010-10-09 01:41:21 +0000 @@ -1,5 +1,8 @@ 2010-10-09 Glenn Morris + * configure.in (AC_OUTPUT): Add doc/emacs/emacsver.texi. + * make-dist: Include doc/emacs/*.texi.in. + * INSTALL, make-dist: Remove references to b2m. * Makefile.in (MAN_PAGES): Remove b2m.1. === modified file 'admin/ChangeLog' --- admin/ChangeLog 2010-10-09 01:15:15 +0000 +++ admin/ChangeLog 2010-10-09 01:41:21 +0000 @@ -1,5 +1,7 @@ 2010-10-09 Glenn Morris + * admin.el (set-version): No need to act on doc/ files any more. + * quick-install-emacs (PUBLIC_LIBSRC_BINARIES): Remove b2m. 2010-09-05 Juanma Barranquero === modified file 'admin/admin.el' --- admin/admin.el 2010-07-24 13:35:31 +0000 +++ admin/admin.el 2010-10-09 01:41:21 +0000 @@ -1,7 +1,7 @@ ;;; admin.el --- utilities for Emacs administration -;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -;; Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, +;; 2010 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. @@ -70,28 +70,10 @@ (rx (and "AC_INIT" (1+ (not (in ?,))) ?, (0+ space) (submatch (1+ (in "0-9.")))))) - (set-version-in-file root "doc/emacs/emacs.texi" version - (rx (and "EMACSVER" (1+ space) - (submatch (1+ (in "0-9.")))))) - (set-version-in-file root "doc/lispref/elisp.texi" version - (rx (and "EMACSVER" (1+ space) - (submatch (1+ (in "0-9.")))))) - (set-version-in-file root "doc/lispref/vol1.texi" version - (rx (and "EMACSVER" (1+ space) - (submatch (1+ (in "0-9.")))))) - (set-version-in-file root "doc/lispref/vol2.texi" version - (rx (and "EMACSVER" (1+ space) - (submatch (1+ (in "0-9.")))))) - (set-version-in-file root "doc/lispref/book-spine.texinfo" version - (rx (and "Emacs Version" (1+ space) - (submatch (1+ (in "0-9.")))))) (set-version-in-file root "doc/man/emacs.1" version (rx (and ".TH EMACS" (1+ not-newline) "GNU Emacs" (1+ space) (submatch (1+ (in "0-9.")))))) - (set-version-in-file root "doc/misc/faq.texi" version - (rx (and "VER" (1+ space) - (submatch (1+ (in "0-9.")))))) (set-version-in-file root "lib-src/makefile.w32-in" version (rx (and "VERSION" (0+ space) "=" (0+ space) (submatch (1+ (in "0-9.")))))) @@ -218,5 +200,4 @@ (provide 'admin) -;; arch-tag: 4ea83636-2293-408b-884e-ad64f22a3bf5 ;;; admin.el ends here === modified file 'configure.in' --- configure.in 2010-10-03 15:39:21 +0000 +++ configure.in 2010-10-09 01:41:21 +0000 @@ -3776,7 +3776,8 @@ AC_OUTPUT(Makefile lib-src/Makefile oldXMenu/Makefile \ doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \ doc/lispref/Makefile src/Makefile \ - lwlib/Makefile lisp/Makefile leim/Makefile, [ + lwlib/Makefile lisp/Makefile leim/Makefile \ + doc/emacs/emacsver.texi, [ ### Make the necessary directories, if they don't exist. for dir in etc lisp ; do @@ -3793,6 +3794,3 @@ ], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPPFLAGS="$CPPFLAGS"]) -m4_if(dnl Do not change this comment - arch-tag: 156a4dd5-bddc-4d18-96ac-f37742cf6a5e -)dnl === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2010-10-09 01:15:15 +0000 +++ doc/emacs/ChangeLog 2010-10-09 01:41:21 +0000 @@ -1,5 +1,10 @@ 2010-10-09 Glenn Morris + * emacsver.texi.in: New file. + * emacs.texi: Set EMACSVER by including emacsver.texi. + * Makefile.in (distclean): Delete emacsver.texi. + (dist): Copy emacsver.texi. + * ack.texi (Acknowledgments): No more b2m.c. * Makefile.in (.PHONY): Declare info, dvi, pdf, dist. === modified file 'doc/emacs/Makefile.in' --- doc/emacs/Makefile.in 2010-10-09 01:02:21 +0000 +++ doc/emacs/Makefile.in 2010-10-09 01:41:21 +0000 @@ -159,6 +159,7 @@ rm -f emacs-manual-${version}.tar* distclean: clean + rm -f emacsver.texi ## In the standalone tarfile, the clean rule runs this. infoclean: @@ -179,6 +180,8 @@ -e 's/\(infodir *=\).*/\1 ./' -e 's/^\(clean:.*\)/\1 infoclean/' \ -e "s/@ver[s]ion@/${version}/" \ ${srcdir}/Makefile.in > emacs-manual-${version}/Makefile + sed -e "s/@ver[s]ion@/${version}/" \ + ${srcdir}/emacsver.texi.in > emacs-manual-${version}/emacsver.texi tar -cf emacs-manual-${version}.tar emacs-manual-${version} rm -rf emacs-manual-${version} === modified file 'doc/emacs/emacs.texi' --- doc/emacs/emacs.texi 2010-09-14 14:41:53 +0000 +++ doc/emacs/emacs.texi 2010-10-09 01:41:21 +0000 @@ -5,7 +5,7 @@ @c The edition number appears in several places in this file @set EDITION Sixteenth -@set EMACSVER 24.0.50 +@include emacsver.texi @copying This is the @value{EDITION} edition of the @cite{GNU Emacs Manual},@* @@ -51,7 +51,6 @@ @tex @ifset smallbook @fonttextsize 10 -@set EMACSVER 22 \global\let\urlcolor=\Black % don't print links in grayscale \global\let\linkcolor=\Black @end ifset @@ -1575,7 +1574,3 @@ @printindex cp @bye - -@ignore - arch-tag: ed48740a-410b-46ea-9387-c9a9252a3392 -@end ignore === added file 'doc/emacs/emacsver.texi.in' --- doc/emacs/emacsver.texi.in 1970-01-01 00:00:00 +0000 +++ doc/emacs/emacsver.texi.in 2010-10-09 01:41:21 +0000 @@ -0,0 +1,1 @@ +@set EMACSVER @version@ === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2010-10-09 01:02:21 +0000 +++ doc/lispref/ChangeLog 2010-10-09 01:41:21 +0000 @@ -1,5 +1,11 @@ 2010-10-09 Glenn Morris + * Makefile.in (emacsdir): New variable. + (MAKEINFO): Add -I $emacsdir. + (dist): Copy emacsver.texi. + * book-spine.texinfo, elisp.texi, vol2.texi, vol1.texi: + Set EMACSVER by including emacsver.texi. + * Makefile.in (.PHONY): Declare info, dvi, pdf, dist. 2010-10-07 Glenn Morris === modified file 'doc/lispref/Makefile.in' --- doc/lispref/Makefile.in 2010-10-09 01:02:21 +0000 +++ doc/lispref/Makefile.in 2010-10-09 01:41:21 +0000 @@ -32,8 +32,10 @@ infodir = ../../info # Directory with the (customized) texinfo.tex file. texinfodir = $(srcdir)/../misc +# Directory with emacsver.texi. +emacsdir = $(srcdir)/../emacs -MAKEINFO = makeinfo --force +MAKEINFO = makeinfo --force -I $(emacsdir) TEXI2DVI = texi2dvi TEXI2PDF = texi2pdf @@ -143,6 +145,8 @@ -e 's/\(infodir *=\).*/\1 ./' -e 's/^\(clean:.*\)/\1 infoclean/' \ -e "s/@ver[s]ion@/${version}/" \ ${srcdir}/Makefile.in > emacs-lispref-${version}/Makefile + sed -e "s/@ver[s]ion@/${version}/" \ + ${emacsdir}/emacsver.texi.in > emacs-lispref-${version}/emacsver.texi tar -cf emacs-lispref-${version}.tar emacs-lispref-${version} rm -rf emacs-lispref-${version} === modified file 'doc/lispref/book-spine.texinfo' --- doc/lispref/book-spine.texinfo 2010-05-08 18:47:07 +0000 +++ doc/lispref/book-spine.texinfo 2010-10-09 01:41:21 +0000 @@ -4,6 +4,8 @@ @settitle book-spine @c %**end of header +@include emacsver.texi + @c need dot in text so first space command works! . @sp 7 @@ -11,7 +13,7 @@ @center @titlefont{GNU Emacs Lisp Reference Manual} @sp 5 @center GNU -@center Emacs Version 24.0.50 +@center Emacs Version @value{EMACSVER} @center for Unix Users @sp 5 @@ -23,7 +25,3 @@ @sp 5 @center Free Software Foundation @bye - -@ignore - arch-tag: 4466c7ca-e549-4119-948c-6eed34e1ff87 -@end ignore === modified file 'doc/lispref/elisp.texi' --- doc/lispref/elisp.texi 2010-08-25 20:25:32 +0000 +++ doc/lispref/elisp.texi 2010-10-09 01:41:21 +0000 @@ -8,7 +8,7 @@ @c Please remember to update the edition number in README as well. @c And also the copies in vol1.texi and vol2.texi. @set VERSION 3.0 -@set EMACSVER 24.0.50 +@include emacsver.texi @set DATE July 2009 @c in general, keep the following line commented out, unless doing a @@ -1529,7 +1529,3 @@ These words prevent "local variables" above from confusing Emacs. - -@ignore - arch-tag: f7e9a219-a0e1-4776-b631-08eaa1d49b34 -@end ignore === modified file 'doc/lispref/vol1.texi' --- doc/lispref/vol1.texi 2010-08-25 20:25:32 +0000 +++ doc/lispref/vol1.texi 2010-10-09 01:41:21 +0000 @@ -27,7 +27,7 @@ @c Version of the manual and of Emacs. @c Please remember to update the edition number in README as well. @set VERSION 3.0 -@set EMACSVER 24.0.50 +@include emacsver.texi @set DATE July 2009 @dircategory Emacs @@ -1550,7 +1550,3 @@ These words prevent "local variables" above from confusing Emacs. - -@ignore - arch-tag: 9594760d-8801-4d1b-aeb9-f3b3166b5be2 -@end ignore === modified file 'doc/lispref/vol2.texi' --- doc/lispref/vol2.texi 2010-08-25 20:25:32 +0000 +++ doc/lispref/vol2.texi 2010-10-09 01:41:21 +0000 @@ -27,7 +27,7 @@ @c Version of the manual and of Emacs. @c Please remember to update the edition number in README as well. @set VERSION 3.0 -@set EMACSVER 24.0.50 +@include emacsver.texi @set DATE July 2009 @dircategory Emacs @@ -1549,7 +1549,3 @@ These words prevent "local variables" above from confusing Emacs. - -@ignore - arch-tag: dfdbecf8-fec2-49c1-8427-3e8ac8b0b849 -@end ignore === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2010-10-09 01:02:21 +0000 +++ doc/misc/ChangeLog 2010-10-09 01:41:21 +0000 @@ -1,10 +1,14 @@ 2010-10-09 Glenn Morris + * Makefile.in (emacsdir): New variable. + ($(infodir)/efaq): Pass -I $(emacsdir) to makeinfo. + * faq.texi (VER): Replace with EMACSVER from emacsver.texi. + * Makefile.in (.PHONY): Declare info, dvi, pdf and the clean rules. 2010-10-08 Julien Danjou - * gnus.texi: add mm-shr + * gnus.texi: Add mm-shr. 2010-10-08 Ludovic Courtès === modified file 'doc/misc/Makefile.in' --- doc/misc/Makefile.in 2010-10-09 01:02:21 +0000 +++ doc/misc/Makefile.in 2010-10-09 01:41:21 +0000 @@ -32,6 +32,9 @@ ## Where the output files go. ## Note that the setfilename command in the .texi files assumes this. infodir=../../info +## Directory with emacsver.texi. +## Currently only used by efaq; could be added to MAKEINFO. +emacsdir = $(srcdir)/../emacs # The makeinfo program is part of the Texinfo distribution. # Use --force so that it generates output even if there are errors. @@ -362,7 +365,7 @@ efaq : $(infodir)/efaq $(infodir)/efaq: faq.texi $(infodir) - cd $(srcdir); $(MAKEINFO) faq.texi + cd $(srcdir); $(MAKEINFO) -I $(emacsdir) faq.texi faq.dvi: faq.texi $(ENVADD) $(TEXI2DVI) ${srcdir}/faq.texi faq.pdf: faq.texi === modified file 'doc/misc/faq.texi' --- doc/misc/faq.texi 2010-07-10 18:52:53 +0000 +++ doc/misc/faq.texi 2010-10-09 01:41:21 +0000 @@ -4,8 +4,7 @@ @settitle GNU Emacs FAQ @c %**end of header -@c This is used in many places -@set VER 24.0.50 +@include emacsver.texi @c This file is maintained by Romain Francoise . @c Feel free to install changes without prior permission (but I'd @@ -67,7 +66,7 @@ or have any suggestions, please use @kbd{M-x report-emacs-bug} to report them. -This is the version of the FAQ distributed with Emacs @value{VER}, and +This is the version of the FAQ distributed with Emacs @value{EMACSVER}, and mainly describes that version. Although there is some information on older versions, details about very old releases (now only of historical interest) have been removed. If you are interested in this, consult @@ -1010,7 +1009,7 @@ @cindex Repository, Emacs @cindex Bazaar repository, Emacs -Emacs @value{VER} is the current version as of this writing. A version +Emacs @value{EMACSVER} is the current version as of this writing. A version number with two components (e.g. @samp{22.1}) indicates a released version; three components indicate a development version (e.g. @samp{23.0.50} is what will eventually become @samp{23.1}). @@ -4479,7 +4478,3 @@ @printindex cp @bye - -@ignore - arch-tag: fee0d62d-06cf-43d8-ac21-123408eaf10f -@end ignore === modified file 'make-dist' --- make-dist 2010-10-09 01:15:15 +0000 +++ make-dist 2010-10-09 01:41:21 +0000 @@ -666,9 +666,10 @@ ln emacs dummy~ ; ln emacs \#dummy\# rm -f *~ \#*\# core .arch-inventory .gitignore) +# FIXME ? Why including *.aux etc? echo "Making links to \`doc/emacs'" (cd doc/emacs - ln *.texi *.aux *.fns *.kys *.vrs ../../${tempdir}/doc/emacs + ln *.texi *.texi.in *.aux *.fns *.kys *.vrs ../../${tempdir}/doc/emacs ln makefile.w32-in ../../${tempdir}/doc/emacs test -f Makefile.in && ln Makefile.in ../../${tempdir}/doc/emacs ln ChangeLog ../../${tempdir}/doc/emacs ------------------------------------------------------------ revno: 101856 committer: Glenn Morris branch nick: trunk timestamp: Fri 2010-10-08 18:15:15 -0700 message: Remove lib-src/b2m.c and b2m.pl. Emacs does not use Babyl files since 23.1, and you can use M-x unrmail. * msdos/mainmake.v2 (install): Remove b2m. * lisp/emacs-lisp/authors.el (authors-valid-file-names): Add b2m.c. * lib-src/b2m.c, lib-src/b2m.pl: Remove files. * lib-src/Makefile.in (INSTALLABLES): Remove b2m. * lib-src/makefile.w32-in ($(BLD)/b2m.$(O)): Remove. * doc/emacs/ack.texi (Acknowledgments): No more b2m.c. * admin/quick-install-emacs (PUBLIC_LIBSRC_BINARIES): Remove b2m. * INSTALL, make-dist: Remove references to b2m. * Makefile.in (MAN_PAGES): Remove b2m.1. diff: === modified file 'ChangeLog' --- ChangeLog 2010-10-05 02:40:34 +0000 +++ ChangeLog 2010-10-09 01:15:15 +0000 @@ -1,3 +1,8 @@ +2010-10-09 Glenn Morris + + * INSTALL, make-dist: Remove references to b2m. + * Makefile.in (MAN_PAGES): Remove b2m.1. + 2010-10-05 Glenn Morris * .dir-locals.el: The Emacs convention is sentence-end-double-space. === modified file 'INSTALL' --- INSTALL 2010-06-21 07:37:16 +0000 +++ INSTALL 2010-10-09 01:15:15 +0000 @@ -460,7 +460,7 @@ are installed in the following directories: `/usr/local/bin' holds the executable programs users normally run - - `emacs', `etags', `ctags', `b2m', `emacsclient', + `emacs', `etags', `ctags', `emacsclient', `grep-changelog', and `rcs-checkin'. `/usr/local/share/emacs/VERSION/lisp' holds the Emacs Lisp library; @@ -705,7 +705,7 @@ Strictly speaking, not all of the executables in `./lib-src' need be copied. - The programs `fakemail', `hexl', `movemail', `profile', `rcs2log', and `vcdiff' are used by Emacs; they do need to be copied. -- The programs `etags', `ctags', `emacsclient', `b2m', and `rcs-checkin' +- The programs `etags', `ctags', `emacsclient', and `rcs-checkin' are intended to be run by users; they are handled below. - The programs `make-docfile' and `test-distrib' were used in building Emacs, and are not needed any more. @@ -727,9 +727,9 @@ You can delete `./src/temacs'. -4) Copy the programs `b2m', `emacsclient', `ctags', `etags', and -`rcs-checkin' from `./lib-src' to `/usr/local/bin'. These programs are -intended for users to run. +4) Copy the programs `emacsclient', `ctags', `etags', and `rcs-checkin' +from `./lib-src' to `/usr/local/bin'. These programs are intended for +users to run. 5) Copy the man pages in `./doc/man' into the appropriate man directory. === modified file 'Makefile.in' --- Makefile.in 2010-06-12 03:35:55 +0000 +++ Makefile.in 2010-10-09 01:15:15 +0000 @@ -125,7 +125,7 @@ # (and they contain cross-references that expect them to be there). mandir=@mandir@ man1dir=$(mandir)/man1 -MAN_PAGES=b2m.1 ctags.1 ebrowse.1 emacs.1 emacsclient.1 etags.1 \ +MAN_PAGES=ctags.1 ebrowse.1 emacs.1 emacsclient.1 etags.1 \ grep-changelog.1 rcs-checkin.1 # Where to install and expect the info files describing Emacs. In the === modified file 'admin/ChangeLog' --- admin/ChangeLog 2010-09-05 02:06:39 +0000 +++ admin/ChangeLog 2010-10-09 01:15:15 +0000 @@ -1,3 +1,7 @@ +2010-10-09 Glenn Morris + + * quick-install-emacs (PUBLIC_LIBSRC_BINARIES): Remove b2m. + 2010-09-05 Juanma Barranquero * unidata/BidiMirroring.txt: Update from === modified file 'admin/quick-install-emacs' --- admin/quick-install-emacs 2010-05-27 05:43:27 +0000 +++ admin/quick-install-emacs 2010-10-09 01:15:15 +0000 @@ -28,7 +28,7 @@ ## install emacs very often. See the --help output for more details. -PUBLIC_LIBSRC_BINARIES='b2m emacsclient etags ctags ebrowse' +PUBLIC_LIBSRC_BINARIES='emacsclient etags ctags ebrowse' PUBLIC_LIBSRC_SCRIPTS='grep-changelog rcs-checkin' AVOID="CVS -DIC README COPYING ChangeLog ~ [.]orig$ [.]rej$ Makefile$ Makefile.in$ makefile$ makefile.w32-in$ stamp-subdir [.]cvsignore [.]arch-ids [{]arch[}] [.][cho]$ make-docfile testfile test-distrib" @@ -374,5 +374,3 @@ done ) | eval $EXEC - -# arch-tag: 9322b572-9755-4cf7-a67a-21e6505f1477 === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2010-10-09 01:02:21 +0000 +++ doc/emacs/ChangeLog 2010-10-09 01:15:15 +0000 @@ -1,5 +1,7 @@ 2010-10-09 Glenn Morris + * ack.texi (Acknowledgments): No more b2m.c. + * Makefile.in (.PHONY): Declare info, dvi, pdf, dist. (emacs): Remove rule. (dist): No need to deal with the emacs rule any more. === modified file 'doc/emacs/ack.texi' --- doc/emacs/ack.texi 2010-06-10 05:20:14 +0000 +++ doc/emacs/ack.texi 2010-10-09 01:15:15 +0000 @@ -1321,10 +1321,6 @@ entirely in Emacs Lisp. He also contributed to Org mode (q.v.@:). @item -Ed Wilkinson wrote @file{b2m.c}, a program to convert mail files from -RMAIL format to Unix @code{mbox} format. - -@item Mike Williams wrote @file{mouse-sel.el}, providing enhanced mouse selection; and @file{thingatpt.el}, a library of functions for finding the ``thing'' (word, line, s-expression) containing point. @@ -1418,7 +1414,3 @@ with visual feedback. @end itemize - -@ignore - arch-tag: bb1d0fa4-0240-4992-b5d4-8602d1e3d4ba -@end ignore === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2010-10-08 10:14:47 +0000 +++ lib-src/ChangeLog 2010-10-09 01:15:15 +0000 @@ -1,3 +1,9 @@ +2010-10-09 Glenn Morris + + * b2m.c, b2m.pl: Remove files. + * Makefile.in (INSTALLABLES): Remove b2m. + * makefile.w32-in ($(BLD)/b2m.$(O)): Remove. + 2010-10-08 Glenn Morris * emacsclient.c (set_local_socket) [DARWIN_OS]: Try as a fall-back === modified file 'lib-src/Makefile.in' --- lib-src/Makefile.in 2010-10-03 15:46:41 +0000 +++ lib-src/Makefile.in 2010-10-09 01:15:15 +0000 @@ -1,6 +1,7 @@ # Makefile for lib-src subdirectory in GNU Emacs. # Copyright (C) 1985, 1987, 1988, 1993, 1994, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# 2005, 2006, 2007, 2008, 2009, 2010 +# Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -111,7 +112,7 @@ # Things that a user might actually run, which should be installed in bindir. INSTALLABLES = etags${EXEEXT} ctags${EXEEXT} emacsclient${EXEEXT} \ - b2m${EXEEXT} ebrowse${EXEEXT} + ebrowse${EXEEXT} INSTALLABLE_SCRIPTS = rcs-checkin grep-changelog STAMP_INST_SCRIPTS = stamp-rcs-checkin stamp-grep-changelog @@ -359,10 +360,6 @@ sorted-doc${EXEEXT}: ${srcdir}/sorted-doc.c $(CC) ${ALL_CFLAGS} ${srcdir}/sorted-doc.c $(LOADLIBES) -o sorted-doc -b2m${EXEEXT}: ${srcdir}/b2m.c ../src/config.h $(GETOPTDEPS) - $(CC) ${ALL_CFLAGS} ${srcdir}/b2m.c -DVERSION="\"${version}\"" \ - $(GETOPTOBJS) $(LOADLIBES) -o b2m - movemail${EXEEXT}: movemail.o pop.o $(GETOPTDEPS) $(CC) ${LINK_CFLAGS} ${MOVE_FLAGS} movemail.o pop.o \ $(GETOPTOBJS) $(LOADLIBES) $(LIBS_MOVE) -o movemail === removed file 'lib-src/b2m.c' --- lib-src/b2m.c 2010-08-11 08:20:34 +0000 +++ lib-src/b2m.c 1970-01-01 00:00:00 +0000 @@ -1,318 +0,0 @@ -/* - * b2m - a filter for Babyl -> Unix mail files - * The copyright on this file has been disclaimed. - * - * usage: b2m < babyl > mailbox - * - * I find this useful whenever I have to use a - * system which - shock horror! - doesn't run - * GNU Emacs. At least now I can read all my - * GNU Emacs Babyl format mail files! - * - * it's not much but it's free! - * - * Ed Wilkinson - * E.Wilkinson@massey.ac.nz - * Mon Nov 7 15:54:06 PDT 1988 - */ - -/* Made conformant to the GNU coding standards January, 1995 - by Francesco Potorti` . */ - -#ifdef HAVE_CONFIG_H -#include -/* On some systems, Emacs defines static as nothing for the sake - of unexec. We don't want that here since we don't use unexec. */ -#undef static -#endif - -#include -#include -#include -#include -#ifdef MSDOS -#include -#endif - -#undef TRUE -#define TRUE 1 -#undef FALSE -#define FALSE 0 - -#define streq(s,t) (strcmp (s, t) == 0) -#define strneq(s,t,n) (strncmp (s, t, n) == 0) - -typedef int logical; - -#define TM_YEAR_BASE 1900 - -/* Nonzero if TM_YEAR is a struct tm's tm_year value that causes - asctime to have well-defined behavior. */ -#ifndef TM_YEAR_IN_ASCTIME_RANGE -# define TM_YEAR_IN_ASCTIME_RANGE(tm_year) \ - (1000 - TM_YEAR_BASE <= (tm_year) && (tm_year) <= 9999 - TM_YEAR_BASE) -#endif - -/* - * A `struct linebuffer' is a structure which holds a line of text. - * `readline' reads a line from a stream into a linebuffer and works - * regardless of the length of the line. - */ -struct linebuffer -{ - long size; - char *buffer; -}; - -extern char *strtok(char *, const char *); - -long *xmalloc (unsigned int size); -long *xrealloc (char *ptr, unsigned int size); -char *concat (const char *s1, const char *s2, const char *s3); -long readline (struct linebuffer *linebuffer, register FILE *stream); -void fatal (const char *message) NO_RETURN; - -/* - * xnew -- allocate storage. SYNOPSIS: Type *xnew (int n, Type); - */ -#define xnew(n, Type) ((Type *) xmalloc ((n) * sizeof (Type))) - - - -char *progname; - -struct option longopts[] = -{ - { "help", no_argument, NULL, 'h' }, - { "version", no_argument, NULL, 'V' }, - { 0 } -}; - -extern int optind; - -int -main (int argc, char **argv) -{ - logical labels_saved, printing, header, first, last_was_blank_line; - time_t ltoday; - struct tm *tm; - char *labels, *p, *today; - struct linebuffer data; - -#ifdef MSDOS - _fmode = O_BINARY; /* all of files are treated as binary files */ -#if __DJGPP__ > 1 - if (!isatty (fileno (stdout))) - setmode (fileno (stdout), O_BINARY); - if (!isatty (fileno (stdin))) - setmode (fileno (stdin), O_BINARY); -#else /* not __DJGPP__ > 1 */ - (stdout)->_flag &= ~_IOTEXT; - (stdin)->_flag &= ~_IOTEXT; -#endif /* not __DJGPP__ > 1 */ -#endif - progname = argv[0]; - - while (1) - { - int opt = getopt_long (argc, argv, "hV", longopts, 0); - if (opt == EOF) - break; - - switch (opt) - { - case 'V': - printf ("%s (GNU Emacs %s)\n", "b2m", VERSION); - puts ("b2m is in the public domain."); - exit (EXIT_SUCCESS); - - case 'h': - fprintf (stderr, "Usage: %s unixmailbox\n", progname); - exit (EXIT_SUCCESS); - } - } - - if (optind != argc) - { - fprintf (stderr, "Usage: %s unixmailbox\n", progname); - exit (EXIT_SUCCESS); - } - - labels_saved = printing = header = last_was_blank_line = FALSE; - first = TRUE; - ltoday = time (0); - /* Convert to a string, checking for out-of-range time stamps. - Don't use 'ctime', as that might dump core if the hardware clock - is set to a bizarre value. */ - tm = localtime (<oday); - if (! (tm && TM_YEAR_IN_ASCTIME_RANGE (tm->tm_year) - && (today = asctime (tm)))) - fatal ("current time is out of range"); - data.size = 200; - data.buffer = xnew (200, char); - - if (readline (&data, stdin) == 0 - || !strneq (data.buffer, "BABYL OPTIONS:", 14)) - fatal ("standard input is not a Babyl mailfile."); - - while (readline (&data, stdin) > 0) - { - if (streq (data.buffer, "*** EOOH ***") && !printing) - { - printing = header = TRUE; - printf ("From \"Babyl to mail by %s\" %s", progname, today); - continue; - } - - if (data.buffer[0] == '\037') - { - if (data.buffer[1] == '\0') - continue; - else if (data.buffer[1] == '\f') - { - static char babyl[] = "X-Babyl-Labels: "; - if (first) - first = FALSE; - else if (! last_was_blank_line) - puts(""); - /* Save labels. */ - readline (&data, stdin); - p = strtok (data.buffer, " ,\r\n\t"); - labels = babyl; - - while ((p = strtok (NULL, " ,\r\n\t"))) - labels = concat (labels, p, ", "); - - p = &labels[strlen (labels) - 2]; - if (*p == ',') - *p = '\0'; - printing = header = FALSE; - labels_saved = TRUE; - continue; - } - } - - if ((data.buffer[0] == '\0') && header) - { - header = FALSE; - if (labels_saved) - puts (labels); - } - - if (printing) - { - puts (data.buffer); - if (data.buffer[0] == '\0') - last_was_blank_line = TRUE; - else - last_was_blank_line = FALSE; - } - } - - return EXIT_SUCCESS; -} - - - -/* - * Return a newly-allocated string whose contents - * concatenate those of s1, s2, s3. - */ -char * -concat (const char *s1, const char *s2, const char *s3) -{ - int len1 = strlen (s1), len2 = strlen (s2), len3 = strlen (s3); - char *result = xnew (len1 + len2 + len3 + 1, char); - - strcpy (result, s1); - strcpy (result + len1, s2); - strcpy (result + len1 + len2, s3); - result[len1 + len2 + len3] = '\0'; - - return result; -} - -/* - * Read a line of text from `stream' into `linebuffer'. - * Return the number of characters read from `stream', - * which is the length of the line including the newline, if any. - */ -long -readline (struct linebuffer *linebuffer, register FILE *stream) -{ - char *buffer = linebuffer->buffer; - register char *p = linebuffer->buffer; - register char *pend; - int chars_deleted; - - pend = p + linebuffer->size; /* Separate to avoid 386/IX compiler bug. */ - - while (1) - { - register int c = getc (stream); - if (p == pend) - { - linebuffer->size *= 2; - buffer = (char *) xrealloc (buffer, linebuffer->size); - p += buffer - linebuffer->buffer; - pend = buffer + linebuffer->size; - linebuffer->buffer = buffer; - } - if (c == EOF) - { - *p = '\0'; - chars_deleted = 0; - break; - } - if (c == '\n') - { - if (p > buffer && p[-1] == '\r') - { - *--p = '\0'; - chars_deleted = 2; - } - else - { - *p = '\0'; - chars_deleted = 1; - } - break; - } - *p++ = c; - } - - return (p - buffer + chars_deleted); -} - -/* - * Like malloc but get fatal error if memory is exhausted. - */ -long * -xmalloc (unsigned int size) -{ - long *result = (long *) malloc (size); - if (result == NULL) - fatal ("virtual memory exhausted"); - return result; -} - -long * -xrealloc (char *ptr, unsigned int size) -{ - long *result = (long *) realloc (ptr, size); - if (result == NULL) - fatal ("virtual memory exhausted"); - return result; -} - -void -fatal (const char *message) -{ - fprintf (stderr, "%s: %s\n", progname, message); - exit (EXIT_FAILURE); -} - -/* arch-tag: 5a3ad2af-a802-408f-83cc-e7cf5e98653e - (do not change this comment) */ - -/* b2m.c ends here */ === removed file 'lib-src/b2m.pl' --- lib-src/b2m.pl 2010-01-13 08:35:10 +0000 +++ lib-src/b2m.pl 1970-01-01 00:00:00 +0000 @@ -1,158 +0,0 @@ -#!/usr/bin/perl - -# b2m.pl - Script to convert a Babyl file to an mbox file - -# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -# Free Software Foundation, Inc. - -# Maintainer: Jonathan Kamens - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -# Requires CPAN modules: MailTools (for Mail::Address), TimeDate (for -# Date::Parse). - -use warnings; -use strict; -use File::Basename; -use Getopt::Long; -use Mail::Address; -use Date::Parse; - -my($whoami) = basename $0; -my($version) = '$Revision$'; -my($usage) = "Usage: $whoami [--help] [--version] [--[no]full-headers] [Babyl-file] -\tBy default, full headers are printed.\n"; - -my($opt_help, $opt_version); -my($opt_full_headers) = 1; - -die $usage if (! GetOptions( - 'help' => \$opt_help, - 'version' => \$opt_version, - 'full-headers!' => \$opt_full_headers, - )); - -if ($opt_help) { - print $usage; - exit; -} -elsif ($opt_version) { - print "$whoami version: $version\n"; - exit; -} - -die $usage if (@ARGV > 1); - -$/ = "\n\037"; - -if (<> !~ /^BABYL OPTIONS:/) { - die "$whoami: $ARGV is not a Babyl file\n$usage"; -} - -while (<>) { - my($msg_num) = $. - 1; - my($labels, $pruned, $full_header, $header); - my($from_line, $from_addr); - my($time); - - # This will strip the initial form feed, any whitespace that may - # be following it, and then a newline - s/^\s+//; - # This will strip the ^_ off of the end of the message - s/\037$//; - - if (! s/(.*)\n//) { - malformatted: - warn "$whoami: message $msg_num in $ARGV is malformatted\n"; - next; - } - $labels = $1; - - # Strip the integer indicating whether the header is pruned - $labels =~ s/^(\d+)[,\s]*//; - $pruned = $1; - - s/(?:((?:.+\n)+)\n*)?\*\*\* EOOH \*\*\*\n+// || goto malformatted; - $full_header = $1; - - if (s/((?:.+\n)+)\n+//) { - $header = $1; - } - else { - # Message has no body - $header = $_; - $_ = ''; - } - - # "$pruned eq '0'" is different from "! $pruned". We want to make - # sure that we found a valid label line which explicitly indicated - # that the header was not pruned. - if ((! $full_header) || ($pruned eq '0')) { - $full_header = $header; - } - - # End message with two newlines (some mbox parsers require a blank - # line before the next "From " line). - s/\s+$/\n\n/; - - # Quote "^From " - s/(^|\n)From /$1>From /g; - - # Strip extra commas and whitespace from the end - $labels =~ s/[,\s]+$//; - # Now collapse extra commas and whitespace in the remaining label string - $labels =~ s/[,\s]+/, /g; - - foreach my $rmail_header qw(summary-line x-coding-system) { - $full_header =~ s/(^|\n)$rmail_header:.*\n/$1/i; - } - - if ($full_header =~ s/(^|\n)mail-from:\s*(From .*)\n/$1/i) { - ($from_line = $2) =~ s/\s*$/\n/; - } - else { - foreach my $addr_header qw(return-path from really-from sender) { - if ($full_header =~ /(?:^|\n)$addr_header:\s*(.*\n(?:\B.*\n)*)/i) { - my($addr) = Mail::Address->parse($1); - $from_addr = $addr->address($addr); - last; - } - } - - if (! $from_addr) { - $from_addr = "Babyl_to_mail_by_$whoami\@localhost"; - } - - if ($full_header =~ /(?:^|\n)date:\s*(\S.*\S)/i) { - $time = str2time($1); - } - - if (! $time) { - # No Date header or we failed to parse it - $time = time; - } - - $from_line = "From " . $from_addr . " " . localtime($time) . "\n"; - } - - print($from_line, ($opt_full_headers ? $full_header : $header), - ($labels ? "X-Babyl-Labels: $labels\n" : ""), "\n", - $_) || die "$whoami: error writing to stdout: $!\n"; -} - -close(STDOUT) || die "$whoami: Error closing stdout: $!\n"; - -# arch-tag: 8c7c8ab0-721c-46d7-ba3e-139801240aa8 === modified file 'lib-src/makefile.w32-in' --- lib-src/makefile.w32-in 2010-10-02 12:12:17 +0000 +++ lib-src/makefile.w32-in 2010-10-09 01:15:15 +0000 @@ -395,12 +395,6 @@ $(EMACS_ROOT)/src/config.h \ $(EMACS_ROOT)/src/blockinput.h -$(BLD)/b2m.$(O) : \ - $(SRC)/b2m.c \ - $(EMACS_ROOT)/src/s/ms-w32.h \ - $(EMACS_ROOT)/src/m/intel386.h \ - $(EMACS_ROOT)/lib-src/../src/config.h - $(BLD)/ctags.$(O) : \ $(SRC)/ctags.c \ $(EMACS_ROOT)/nt/inc/sys/param.h \ === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-10-09 00:52:12 +0000 +++ lisp/ChangeLog 2010-10-09 01:15:15 +0000 @@ -1,5 +1,7 @@ 2010-10-09 Glenn Morris + * emacs-lisp/authors.el (authors-valid-file-names): Add b2m.c. + * net/browse-url.el: Don't require thingatpt, term, dired, executable, or w3-auto when compiling. (dired-get-filename, term-char-mode, term-send-down, term-send-string): === modified file 'lisp/emacs-lisp/authors.el' --- lisp/emacs-lisp/authors.el 2010-08-29 20:10:43 +0000 +++ lisp/emacs-lisp/authors.el 2010-10-09 01:15:15 +0000 @@ -507,6 +507,7 @@ "ymakefile" "permute-index" "index.perm" "ibmrs6000.inp" + "b2m.c" "emacs.ico" "emacs21.ico" "LPF" "LEDIT" "OTHER.EMACSES" @@ -1027,5 +1028,4 @@ (provide 'authors) -;; arch-tag: 659d5900-5ff2-43b0-954c-a315cc1e4dc1 ;;; authors.el ends here === modified file 'make-dist' --- make-dist 2010-09-09 02:37:59 +0000 +++ make-dist 2010-10-09 01:15:15 +0000 @@ -480,7 +480,7 @@ (cd lib-src ln [a-zA-Z]*.[chmy] ../${tempdir}/lib-src ln ChangeLog Makefile.in README testfile vcdiff ../${tempdir}/lib-src - ln b2m.pl grep-changelog rcs2log rcs-checkin ../${tempdir}/lib-src + ln grep-changelog rcs2log rcs-checkin ../${tempdir}/lib-src ln makefile.w32-in ../${tempdir}/lib-src ## If we ended up with a symlink, or if we did not get anything ## due to a cross-device symlink, copy the file. @@ -769,5 +769,4 @@ rm -rf ${tempparent} fi -# arch-tag: 26e3eb50-a394-4ab2-82b2-d8e5af500de7 ### make-dist ends here === modified file 'msdos/ChangeLog' --- msdos/ChangeLog 2010-10-02 09:08:47 +0000 +++ msdos/ChangeLog 2010-10-09 01:15:15 +0000 @@ -1,3 +1,7 @@ +2010-10-09 Glenn Morris + + * mainmake.v2 (install): Remove b2m. + 2010-10-02 Eli Zaretskii * mainmake.v2 (TAGS tags): Use `find' to filter out loaddefs === modified file 'msdos/mainmake.v2' --- msdos/mainmake.v2 2010-10-02 09:08:47 +0000 +++ msdos/mainmake.v2 2010-10-09 01:15:15 +0000 @@ -129,7 +129,7 @@ install: all if not exist bin\nul md bin cd lib-src - command.com /c >/dev/null for %p in (hexl etags ctags b2m ebrowse) do\ + command.com /c >/dev/null for %p in (hexl etags ctags ebrowse) do\ if exist %p.exe mv -f %p.exe ../bin if exist fns.el update fns.el ../bin/fns.el cd .. @@ -287,4 +287,3 @@ command.com /e:2048 /c config msdos $(MAKE) $(MFLAGS) info all -# arch-tag: 6fee5130-4c53-46c6-93d3-d0ea852298b9 ------------------------------------------------------------ revno: 101855 committer: Glenn Morris branch nick: trunk timestamp: Fri 2010-10-08 18:02:21 -0700 message: Mark some doc/ rules as PHONY. * doc/misc/Makefile.in (.PHONY): Declare info, dvi, pdf and the clean rules. * doc/lispref/Makefile.in (.PHONY): Declare info, dvi, pdf, dist. * doc/lispintro/Makefile.in (.PHONY): Declare info, dvi, html, pdf, dist. * doc/emacs/Makefile.in (.PHONY): Declare info, dvi, pdf, dist. (emacs): Remove rule. (dist): No need to deal with the emacs rule any more. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2010-10-07 02:23:28 +0000 +++ doc/emacs/ChangeLog 2010-10-09 01:02:21 +0000 @@ -1,3 +1,9 @@ +2010-10-09 Glenn Morris + + * Makefile.in (.PHONY): Declare info, dvi, pdf, dist. + (emacs): Remove rule. + (dist): No need to deal with the emacs rule any more. + 2010-10-07 Glenn Morris * Makefile.in (version): New, set by configure. === modified file 'doc/emacs/Makefile.in' --- doc/emacs/Makefile.in 2010-10-07 02:23:28 +0000 +++ doc/emacs/Makefile.in 2010-10-09 01:02:21 +0000 @@ -33,6 +33,11 @@ ## Where the output files go. ## Note that the setfilename command in the .texi files assumes this. +## This is a bit funny. Because the info files are in the +## distribution tarfiles, they are always made in $scrdir/../../info, +## even for out-of-tree builds. So infodir is really relative to srcdir. +## The use of VPATH makes it work out, but why not set +## infodir = $(srcdir)/../../info and make it explicit? infodir=../../info # Directory with the (customized) texinfo.tex file. texinfodir = $(srcdir)/../misc @@ -111,6 +116,8 @@ ${srcdir}/kmacro.texi \ $(EMACS_XTRA) +.PHONY: info dvi pdf + info: $(infodir)/emacs $(infodir): @@ -123,8 +130,6 @@ # There is no provision for Info files to exist in the build directory. # In a distribution of Emacs, the Info files should be up to date. -emacs : $(infodir)/emacs - $(infodir)/emacs: $(infodir) ${EMACSSOURCES} cd $(srcdir); $(MAKEINFO) emacs.texi -o $@ @@ -161,17 +166,17 @@ maintainer-clean: distclean infoclean +.PHONY: dist + ## Make a standalone tarfile of the Emacs manual sources. ## The [c] is a dumb way to prevent configure expanding it. -## The emacs: rule becomes circular when we change infodir to ".". dist: rm -rf emacs-manual-${version} mkdir emacs-manual-${version} cp ${srcdir}/*.texi ${texinfodir}/texinfo.tex \ ${srcdir}/ChangeLog* emacs-manual-${version}/ sed -e 's/@sr[c]dir@/./' -e 's/\(texinfodir *=\).*/\1 ./' \ - -e 's/\(infodir *=\).*/\1 ./' -e '/^emacs *:/d' \ - -e 's/^\(clean:.*\)/\1 infoclean/' \ + -e 's/\(infodir *=\).*/\1 ./' -e 's/^\(clean:.*\)/\1 infoclean/' \ -e "s/@ver[s]ion@/${version}/" \ ${srcdir}/Makefile.in > emacs-manual-${version}/Makefile tar -cf emacs-manual-${version}.tar emacs-manual-${version} === modified file 'doc/lispintro/ChangeLog' --- doc/lispintro/ChangeLog 2010-10-07 02:23:28 +0000 +++ doc/lispintro/ChangeLog 2010-10-09 01:02:21 +0000 @@ -1,3 +1,7 @@ +2010-10-09 Glenn Morris + + * Makefile.in (.PHONY): Declare info, dvi, html, pdf, dist. + 2010-10-07 Glenn Morris * Makefile.in (version): New, set by configure. === modified file 'doc/lispintro/Makefile.in' --- doc/lispintro/Makefile.in 2010-10-07 02:23:28 +0000 +++ doc/lispintro/Makefile.in 2010-10-09 01:02:21 +0000 @@ -36,6 +36,8 @@ .SUFFIXES: .dvi .ps .texi +.PHONY: info dvi html pdf + info: ${infodir}/eintr $(infodir): @@ -80,6 +82,8 @@ maintainer-clean: distclean infoclean +.PHONY: dist + dist: rm -rf emacs-lispintro-${version} mkdir emacs-lispintro-${version} === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2010-10-08 10:14:47 +0000 +++ doc/lispref/ChangeLog 2010-10-09 01:02:21 +0000 @@ -1,3 +1,7 @@ +2010-10-09 Glenn Morris + + * Makefile.in (.PHONY): Declare info, dvi, pdf, dist. + 2010-10-07 Glenn Morris * Makefile.in (version): New, set by configure. === modified file 'doc/lispref/Makefile.in' --- doc/lispref/Makefile.in 2010-10-07 02:23:28 +0000 +++ doc/lispref/Makefile.in 2010-10-09 01:02:21 +0000 @@ -93,6 +93,8 @@ $(srcdir)/gpl.texi \ $(srcdir)/doclicense.texi +.PHONY: info dvi pdf + # The info file is named `elisp'. info: $(infodir)/elisp dvi: elisp.dvi @@ -129,6 +131,8 @@ maintainer-clean: distclean infoclean +.PHONY: dist + ## Note this excludes the two-volume stuff. dist: rm -rf emacs-lispref-${version} === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2010-10-08 23:55:33 +0000 +++ doc/misc/ChangeLog 2010-10-09 01:02:21 +0000 @@ -1,3 +1,7 @@ +2010-10-09 Glenn Morris + + * Makefile.in (.PHONY): Declare info, dvi, pdf and the clean rules. + 2010-10-08 Julien Danjou * gnus.texi: add mm-shr === modified file 'doc/misc/Makefile.in' --- doc/misc/Makefile.in 2010-10-06 04:20:46 +0000 +++ doc/misc/Makefile.in 2010-10-09 01:02:21 +0000 @@ -199,6 +199,8 @@ ENVADD = TEXINPUTS="$(srcdir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)" +.PHONY: info dvi pdf + info: $(INFO_TARGETS) $(infodir): @@ -611,6 +613,8 @@ $(ENVADD) $(TEXI2PDF) ${srcdir}/woman.texi +.PHONY: mostlyclean clean distclean maintainer-clean + mostlyclean: rm -f *.aux *.log *.cp *.cps *.fn *.fns *.ky *.kys \ *.op *.ops *.pg *.pgs *.tp *.tps *.vr *.vrs ------------------------------------------------------------ revno: 101854 committer: Glenn Morris branch nick: trunk timestamp: Fri 2010-10-08 17:52:12 -0700 message: browse-url.el trivia. * lisp/net/browse-url.el: Don't require thingatpt, term, dired, executable, or w3-auto when compiling. (dired-get-filename, term-char-mode, term-send-down, term-send-string): Declare. (browse-url-text-emacs): Require term. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-10-08 17:32:14 +0000 +++ lisp/ChangeLog 2010-10-09 00:52:12 +0000 @@ -1,3 +1,11 @@ +2010-10-09 Glenn Morris + + * net/browse-url.el: Don't require thingatpt, term, dired, + executable, or w3-auto when compiling. + (dired-get-filename, term-char-mode, term-send-down, term-send-string): + Declare. + (browse-url-text-emacs): Require term. + 2010-10-08 Andreas Schwab * net/browse-url.el (browse-url-xdg-open): Remove use of /bin/sh. === modified file 'lisp/net/browse-url.el' --- lisp/net/browse-url.el 2010-10-08 17:32:14 +0000 +++ lisp/net/browse-url.el 2010-10-09 00:52:12 +0000 @@ -205,12 +205,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Variables -(eval-when-compile (require 'cl) - (require 'thingatpt) - (require 'term) - (require 'dired) - (require 'executable) - (require 'w3-auto nil t)) +(eval-when-compile (require 'cl)) (defgroup browse-url nil "Use a web browser to look at a URL." @@ -756,6 +751,9 @@ (add-hook 'kill-buffer-hook 'browse-url-delete-temp-file) +(declare-function dired-get-filename "dired" + (&optional localp no-error-if-not-filep)) + ;;;###autoload (defun browse-url-of-dired-file () "In Dired, ask a WWW browser to display the file named on this line." @@ -1384,6 +1382,10 @@ ;; --- Lynx in an Emacs "term" window --- +(declare-function term-char-mode "term" ()) +(declare-function term-send-down "term" ()) +(declare-function term-send-string "term" (proc str)) + ;;;###autoload (defun browse-url-text-emacs (url &optional new-buffer) "Ask a text browser to load URL. @@ -1404,6 +1406,7 @@ (buf (get-buffer "*text browser*")) (proc (and buf (get-buffer-process buf))) (n browse-url-text-input-attempts)) + (require 'term) (if (and (browse-url-maybe-new-window new-buffer) buf) ;; Rename away the OLD buffer. This isn't very polite, but ;; term insists on working in a buffer named *lynx* and would ------------------------------------------------------------ revno: 101853 author: Gnus developers committer: Katsumi Yamaoka branch nick: trunk timestamp: Fri 2010-10-08 23:55:33 +0000 message: shr.el (shr-insert): Don't insert double spaces. auth.texi (Help for users, GnuPG and EasyPG Assistant Configuration): Update docs. gnus-registry.el, nnregistry.el: Remove nnregistry refer method auto-install and update docs. gnus.texi (Finding the Parent, The Gnus Registry, Registry Article Refer Method): Update docs for nnregistry.el. gnus-demon.el, gnus-group.el, gnus-msg.el, gnus-sum.el, gnus-util.el, gnus.el: Rename `gnus-pull' to `gnus-alist-pull'. gnus.texi (Article Washing): Add mm-shr. mm-decode.el (mm-text-html-renderer): Add mm-shr in choice list. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2010-10-08 10:14:47 +0000 +++ doc/misc/ChangeLog 2010-10-08 23:55:33 +0000 @@ -1,3 +1,17 @@ +2010-10-08 Julien Danjou + + * gnus.texi: add mm-shr + +2010-10-08 Ludovic Courtès + + * gnus.texi (Finding the Parent, The Gnus Registry) + (Registry Article Refer Method): Update docs for nnregistry.el. + +2010-10-08 Daiki Ueno + + * auth.texi (Help for users) + (GnuPG and EasyPG Assistant Configuration): Update docs. + 2010-10-08 Glenn Morris * cl.texi (Organization, Installation, Old CL Compatibility): === modified file 'doc/misc/auth.texi' --- doc/misc/auth.texi 2010-09-02 00:55:51 +0000 +++ doc/misc/auth.texi 2010-10-08 23:55:33 +0000 @@ -59,6 +59,7 @@ * Help for users:: * Secret Service API:: * Help for developers:: +* GnuPG and EasyPG Assistant Configuration:: * Index:: * Function Index:: * Variable Index:: @@ -176,16 +177,8 @@ If you don't customize @code{auth-sources}, you'll have to live with the defaults: any host and any port are looked up in the netrc -file @code{~/.authinfo.gpg}. This is an encrypted file if and only if -you set up EPA, which is strongly recommended. - -@lisp -(require 'epa-file) -(epa-file-enable) -;;; VERY important if you want symmetric encryption -;;; irrelevant if you don't -(setq epa-file-cache-passphrase-for-symmetric-encryption t) -@end lisp +file @code{~/.authinfo.gpg}, which is a GnuPG encrypted file. +@xref{GnuPG and EasyPG Assistant Configuration}. The simplest working netrc line example is one without a port. @@ -271,6 +264,54 @@ @end defun +@node GnuPG and EasyPG Assistant Configuration +@appendix GnuPG and EasyPG Assistant Configuration + +In Emacs 23 or later there is an option @code{auto-encryption-mode} to +automatically decrypt @code{*.gpg} files and it is enabled by default +so there is no setting is needed. If you are using earlier versions +of Emacs for some reason, you will need: + +@lisp +(require 'epa-file) +(epa-file-enable) +@end lisp + +If you want your GnuPG passwords to be cached, setup @code{gpg-agent} +or EasyPG Assitant +@pxref{Caching Passphrases, , Caching Passphrases, epa} + +For those who are using older vesions of Emacs, here are some portion +copied from the EasyPG Assitant manual: + +Here are some questions: + +@enumerate +@item Do you use GnuPG version 2 instead of GnuPG version 1? +@item Do you use symmetric encryption rather than public key encryption? +@item Do you want to use gpg-agent? +@end enumerate + +Here are configurations depending on your answers: + +@multitable {111} {222} {333} {configuration configuration configuration} +@item @b{1} @tab @b{2} @tab @b{3} @tab Configuration +@item Yes @tab Yes @tab Yes @tab Nothing to do. +@item Yes @tab Yes @tab No @tab You can't, without gpg-agent. +@item Yes @tab No @tab Yes @tab Nothing to do. +@item Yes @tab No @tab No @tab You can't, without gpg-agent. +@item No @tab Yes @tab Yes @tab Set up elisp passphrase cache. +@item No @tab Yes @tab No @tab Set up elisp passphrase cache. +@item No @tab No @tab Yes @tab Nothing to do. +@item No @tab No @tab No @tab You can't, without gpg-agent. +@end multitable + +To setup gpg-agent, follow the instruction in GnuPG manual. +@pxref{Invoking GPG-AGENT, , Invoking GPG-AGENT, gnupg}. + +To set up elisp passphrase cache, set +@code{epa-file-cache-passphrase-for-symmetric-encryption}. + @node Index @chapter Index @printindex cp === modified file 'doc/misc/gnus.texi' --- doc/misc/gnus.texi 2010-10-07 12:31:39 +0000 +++ doc/misc/gnus.texi 2010-10-08 23:55:33 +0000 @@ -9812,6 +9812,10 @@ can use include: @table @code +@item mm-shr +Use Gnus simple html renderer. + +@table @code @item gnus-article-html Use Gnus rendered based on w3m. @@ -10989,9 +10993,12 @@ @code{nnbabyl}, @code{nnmaildir}, @code{nnml}, are able to locate articles from any groups, while @code{nnfolder}, and @code{nnimap} are only able to locate articles that have been posted to the current -group. (Anything else would be too time consuming.) @code{nnmh} does -not support this at all. +group. @code{nnmh} does not support this at all. +Fortunately, the special @code{nnregistry} back end is able to locate +articles in any groups, regardless of their back end (@pxref{Registry +Article Refer Method, fetching by @code{Message-ID} using the +registry}). @node Alternative Approaches @section Alternative Approaches @@ -12452,7 +12459,7 @@ @item mm-text-html-renderer @vindex mm-text-html-renderer If set to @code{gnus-article-html}, Gnus will use the built-in method, -that's based on @code{curl} and @code{w3m}. +that's based on @code{w3m}. @item gnus-blocked-images @vindex gnus-blocked-images @@ -25374,6 +25381,13 @@ available. @item +Refer to messages by ID + +Commands like @code{gnus-summary-refer-parent-article} can take +advantage of the registry to jump to the referred article, regardless +of the group the message is in. + +@item Store custom flags and keywords The registry can store custom flags and keywords for a message. For @@ -25392,6 +25406,7 @@ @menu * Setup:: * Fancy splitting to parent:: +* Registry Article Refer Method:: * Store custom flags and keywords:: * Store arbitrary data:: @end menu @@ -25468,6 +25483,42 @@ The file where the registry will be stored between Gnus sessions. @end defvar +@node Registry Article Refer Method +@subsection Fetching by @code{Message-ID} Using the Registry + +The registry knows how to map each @code{Message-ID} to the group it's +in. This can be leveraged to enhance the ``article refer method'', +the thing that tells Gnus how to look up an article given its +Message-ID (@pxref{Finding the Parent}). + +@vindex nnregistry +@vindex gnus-refer-article-method + +The @code{nnregistry} refer method does exactly that. It has the +advantage that an article may be found regardless of the group it's +in---provided its @code{Message-ID} is known to the registry. It can +be enabled by augmenting the start-up file with something along these +lines: + +@example +;; Keep enough entries to have a good hit rate when referring to an +;; article using the registry. Use long group names so that Gnus +;; knows where the article is. +(setq gnus-registry-max-entries 2500 + gnus-registry-use-long-group-names t) + +(gnus-registry-initialize) + +(setq gnus-refer-article-method + '(current + (nnregistry) + (nnweb "gmane" (nnweb-type gmane)))) +@end example + +The example above instructs Gnus to first look up the article in the +current group, or, alternatively, using the registry, and finally, if +all else fails, using Gmane. + @node Fancy splitting to parent @subsection Fancy splitting to parent === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2010-10-08 12:16:05 +0000 +++ lisp/gnus/ChangeLog 2010-10-08 23:55:33 +0000 @@ -1,3 +1,36 @@ +2010-10-08 Julien Danjou + + * mm-decode.el (mm-text-html-renderer): Add mm-shr in choice list. + +2010-10-08 Teodor Zlatanov + + * gnus-util.el (gnus-alist-pull): Rename `gnus-pull'. + + * gnus-sum.el (gnus-mark-article-as-unread) + (gnus-summary-mark-article-as-unread, gnus-summary-remove-bookmark) + (gnus-summary-set-bookmark): Use it. + + * gnus-msg.el (gnus-setup-message): Use it. + + * gnus-demon.el (gnus-demon-remove-handler): Use it. + + * gnus.el (gnus-group-remove-parameter): Use it. + + * gnus-group.el (gnus-group-make-web-group): Use it. + + * gnus-demon.el (gnus-demon-remove-handler): Use it. + + * nnregistry.el: Update docs to mention manual. + + * gnus-registry.el: Update docs to mention nnregistry.el. + (gnus-registry-initialize): Don't install nnregistry refer method + automatically. + (gnus-registry-install-nnregistry): Remove it. + +2010-10-08 Lars Magne Ingebrigtsen + + * shr.el (shr-insert): Don't insert double spaces. + 2010-10-08 Katsumi Yamaoka * gnus-gravatar.el (gnus-treat-from-gravatar) === modified file 'lisp/gnus/gnus-demon.el' --- lisp/gnus/gnus-demon.el 2010-09-26 04:03:19 +0000 +++ lisp/gnus/gnus-demon.el 2010-10-08 23:55:33 +0000 @@ -92,7 +92,7 @@ (defun gnus-demon-remove-handler (function &optional no-init) "Remove the handler FUNCTION from the list of handlers." - (gnus-pull function gnus-demon-handlers) + (gnus-alist-pull function gnus-demon-handlers) (unless no-init (gnus-demon-init))) === modified file 'lisp/gnus/gnus-group.el' --- lisp/gnus/gnus-group.el 2010-10-07 22:26:11 +0000 +++ lisp/gnus/gnus-group.el 2010-10-08 23:55:33 +0000 @@ -3027,7 +3027,7 @@ (nnweb-ephemeral-p t)))) (if solid (progn - (gnus-pull 'nnweb-ephemeral-p method) + (gnus-alist-pull 'nnweb-ephemeral-p method) (gnus-group-make-group group method)) (gnus-group-read-ephemeral-group group method t === modified file 'lisp/gnus/gnus-msg.el' --- lisp/gnus/gnus-msg.el 2010-10-01 23:08:25 +0000 +++ lisp/gnus/gnus-msg.el 2010-10-08 23:55:33 +0000 @@ -420,7 +420,7 @@ ;; There may be an old " *gnus article copy*" buffer. (let (gnus-article-copy) (gnus-configure-posting-styles ,group))))) - (gnus-pull ',(intern gnus-draft-meta-information-header) + (gnus-alist-pull ',(intern gnus-draft-meta-information-header) message-required-headers) (when (and ,group (not (string= ,group ""))) === modified file 'lisp/gnus/gnus-registry.el' --- lisp/gnus/gnus-registry.el 2010-10-05 06:36:32 +0000 +++ lisp/gnus/gnus-registry.el 2010-10-08 23:55:33 +0000 @@ -36,17 +36,18 @@ ;; Put this in your startup file (~/.gnus.el for instance) -;; (require 'nnregistry) ;; optional, or see below (automatically calls `gnus-registry-install-nnregistry' when `gnus-registry-initialize' is called) ;; (setq gnus-registry-max-entries 2500 ;; gnus-registry-use-long-group-names t) ;; (gnus-registry-initialize) -;; (gnus-registry-install-nnregistry) ;; optional, or see above (loading nnregistry makes it unnecessary) ;; Then use this in your fancy-split: ;; (: gnus-registry-split-fancy-with-parent) +;; You should also consider using the nnregistry backend to look up +;; articles. See the Gnus manual for more information. + ;; TODO: ;; - get the correct group on spool actions @@ -1131,8 +1132,6 @@ (setq gnus-registry-install t) ; in case it was 'ask or nil (gnus-registry-install-hooks) (gnus-registry-install-shortcuts) - (when (featurep 'nnregistry) - (gnus-registry-install-nnregistry)) (gnus-registry-read)) ;;;###autoload @@ -1149,21 +1148,6 @@ (add-hook 'gnus-summary-prepare-hook 'gnus-registry-register-message-ids)) -;;;###autoload -(defun gnus-registry-install-nnregistry () - "Install the nnregistry refer method in `gnus-refer-article-method'." - (interactive) - (cond ((eq 'nnregistry gnus-refer-article-method)) - ((null gnus-refer-article-method) - (setq gnus-refer-article-method 'nnregistry)) - ((consp gnus-refer-article-method) - (unless (memq 'nnregistry gnus-refer-article-method) - (setq gnus-refer-article-method - (append gnus-refer-article-method '(nnregistry))))) - (t - (setq gnus-refer-article-method - (list gnus-refer-article-method 'nnregistry))))) - (defun gnus-registry-unload-hook () "Uninstall the registry hooks." (interactive) === modified file 'lisp/gnus/gnus-sum.el' --- lisp/gnus/gnus-sum.el 2010-10-07 22:26:11 +0000 +++ lisp/gnus/gnus-sum.el 2010-10-08 23:55:33 +0000 @@ -10528,7 +10528,7 @@ (not (equal gnus-newsgroup-name (car gnus-article-current)))) (error "No current article selected")) ;; Remove old bookmark, if one exists. - (gnus-pull article gnus-newsgroup-bookmarks) + (gnus-alist-pull article gnus-newsgroup-bookmarks) ;; Set the new bookmark, which is on the form ;; (article-number . line-number-in-body). (push @@ -10549,7 +10549,7 @@ ;; Remove old bookmark, if one exists. (if (not (assq article gnus-newsgroup-bookmarks)) (gnus-message 6 "No bookmark in current article.") - (gnus-pull article gnus-newsgroup-bookmarks) + (gnus-alist-pull article gnus-newsgroup-bookmarks) (gnus-message 6 "Removed bookmark."))) ;; Suggested by Daniel Quinlan . @@ -10675,7 +10675,7 @@ (setq gnus-newsgroup-unreads (gnus-add-to-sorted-list gnus-newsgroup-unreads article)))) - (gnus-pull article gnus-newsgroup-reads) + (gnus-alist-pull article gnus-newsgroup-reads) ;; See whether the article is to be put in the cache. (and gnus-use-cache @@ -10849,7 +10849,7 @@ (t (setq gnus-newsgroup-unreads (gnus-add-to-sorted-list gnus-newsgroup-unreads article)))) - (gnus-pull article gnus-newsgroup-reads) + (gnus-alist-pull article gnus-newsgroup-reads) t))) (defalias 'gnus-summary-mark-as-unread-forward === modified file 'lisp/gnus/gnus-util.el' --- lisp/gnus/gnus-util.el 2010-10-07 22:26:11 +0000 +++ lisp/gnus/gnus-util.el 2010-10-08 23:55:33 +0000 @@ -1366,7 +1366,7 @@ (when (string-match r word) (throw 'found r)))))) -(defmacro gnus-pull (key alist &optional assoc-p) +(defmacro gnus-alist-pull (key alist &optional assoc-p) "Modify ALIST to be without KEY." (unless (symbolp alist) (error "Not a symbol: %s" alist)) === modified file 'lisp/gnus/gnus.el' --- lisp/gnus/gnus.el 2010-10-08 12:16:05 +0000 +++ lisp/gnus/gnus.el 2010-10-08 23:55:33 +0000 @@ -3944,7 +3944,7 @@ (when params (setq params (delq name params)) (while (assq name params) - (gnus-pull name params)) + (gnus-alist-pull name params)) (gnus-info-set-params info params)))))) (defun gnus-group-add-score (group &optional score) === modified file 'lisp/gnus/mm-decode.el' --- lisp/gnus/mm-decode.el 2010-10-07 22:26:11 +0000 +++ lisp/gnus/mm-decode.el 2010-10-08 23:55:33 +0000 @@ -115,6 +115,7 @@ "Render of HTML contents. It is one of defined renderer types, or a rendering function. The defined renderer types are: +`mm-shr': use Gnus simple HTML renderer; `gnus-article-html' : use Gnus renderer based on w3m; `w3m' : use emacs-w3m; `w3m-standalone': use w3m; @@ -124,7 +125,8 @@ `html2text' : use html2text; nil : use external viewer (default web browser)." :version "24.1" - :type '(choice (const gnus-article-html) + :type '(choice (const mm-shr) + (const gnus-article-html) (const w3) (const w3m :tag "emacs-w3m") (const w3m-standalone :tag "standalone w3m" ) === modified file 'lisp/gnus/nndoc.el' --- lisp/gnus/nndoc.el 2010-10-01 23:08:25 +0000 +++ lisp/gnus/nndoc.el 2010-10-08 23:55:33 +0000 @@ -1038,7 +1038,7 @@ first definition, and if any other symbol, add after that symbol in the alist." ;; First remove any old instances. - (gnus-pull (car definition) nndoc-type-alist) + (gnus-alist-pull (car definition) nndoc-type-alist) ;; Then enter the new definition in the proper place. (cond ((or (null position) (eq position 'last)) === modified file 'lisp/gnus/nnregistry.el' --- lisp/gnus/nnregistry.el 2010-10-02 10:35:45 +0000 +++ lisp/gnus/nnregistry.el 2010-10-08 23:55:33 +0000 @@ -25,7 +25,8 @@ ;; This file provides the `nnregistry' Gnus back-end. It can be used ;; in `gnus-refer-article-method' to quickly search for a message by -;; id, regardless of the back-end that stores it. +;; id, regardless of the back-end that stores it. See the Gnus manual +;; for usage examples and more information. ;;; Code: === modified file 'lisp/gnus/nnweb.el' --- lisp/gnus/nnweb.el 2010-09-23 23:14:02 +0000 +++ lisp/gnus/nnweb.el 2010-10-08 23:55:33 +0000 @@ -207,7 +207,7 @@ (deffoo nnweb-request-delete-group (group &optional force server) (nnweb-possibly-change-server group server) - (gnus-pull group nnweb-group-alist t) + (gnus-alist-pull group nnweb-group-alist t) (nnweb-write-active) (gnus-delete-file (nnweb-overview-file group)) t) === modified file 'lisp/gnus/shr.el' --- lisp/gnus/shr.el 2010-10-08 01:51:08 +0000 +++ lisp/gnus/shr.el 2010-10-08 23:55:33 +0000 @@ -188,7 +188,8 @@ (let ((first t) column) (when (and (string-match "\\`[ \t\n]" text) - (not (bolp))) + (not (bolp)) + (not (eq (char-after (1- (point))) ? ))) (insert " ")) (dolist (elem (split-string text)) (when (and (bolp) ------------------------------------------------------------ revno: 101852 committer: Andreas Schwab branch nick: emacs timestamp: Fri 2010-10-08 19:32:14 +0200 message: * net/browse-url.el (browse-url-xdg-open): Remove use of /bin/sh. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-10-08 10:14:47 +0000 +++ lisp/ChangeLog 2010-10-08 17:32:14 +0000 @@ -1,3 +1,7 @@ +2010-10-08 Andreas Schwab + + * net/browse-url.el (browse-url-xdg-open): Remove use of /bin/sh. + 2010-10-08 Glenn Morris * emacs-lisp/cl-compat.el, emacs-lisp/lmenu.el: Move to obsolete/. === modified file 'lisp/net/browse-url.el' --- lisp/net/browse-url.el 2010-10-08 03:23:31 +0000 +++ lisp/net/browse-url.el 2010-10-08 17:32:14 +0000 @@ -937,10 +937,7 @@ ;;;###autoload (defun browse-url-xdg-open (url &optional new-window) (interactive (browse-url-interactive-arg "URL: ")) - (call-process "/bin/sh" nil nil nil - "-c" - (concat "nohup xdg-open " (shell-quote-argument url) - ">/dev/null 2>&1 branch nick: trunk timestamp: Fri 2010-10-08 14:41:49 +0200 message: * keyboard.c: Revert last change; it was not intended to be synchronized with the trunk. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2010-10-08 10:14:47 +0000 +++ src/ChangeLog 2010-10-08 12:41:49 +0000 @@ -1,3 +1,8 @@ +2010-10-08 Michael Albinus + + * keyboard.c: Revert last change; it was not intended to be + synchronized with the trunk. + 2010-10-08 Kenichi Handa * coding.c (complement_process_encoding_system): Fix previous change. === modified file 'src/keyboard.c' --- src/keyboard.c 2010-10-08 10:14:47 +0000 +++ src/keyboard.c 2010-10-08 12:41:49 +0000 @@ -3952,11 +3952,6 @@ /* One way or another, wait until input is available; then, if interrupt handlers have not read it, read it now. */ -#ifdef HAVE_DBUS - /* Read D-Bus messages. */ - xd_read_queued_messages (); -#endif /* HAVE_DBUS */ - /* Note SIGIO has been undef'd if FIONREAD is missing. */ #ifdef SIGIO gobble_input (0); ------------------------------------------------------------ revno: 101850 author: Julien Danjou committer: Katsumi Yamaoka branch nick: trunk timestamp: Fri 2010-10-08 12:16:05 +0000 message: gnus.el (gnus-expand-group-parameter): Only return and act on what was matched. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2010-10-08 07:35:21 +0000 +++ lisp/gnus/ChangeLog 2010-10-08 12:16:05 +0000 @@ -81,6 +81,9 @@ 2010-10-06 Julien Danjou + * gnus.el (gnus-expand-group-parameter): Only return and act on what + was matched. + * sieve-manage.el: Update example in `Commentary'. * sieve.el (sieve-open-server): Use sieve-manage-authenticate. === modified file 'lisp/gnus/gnus.el' --- lisp/gnus/gnus.el 2010-10-07 22:26:11 +0000 +++ lisp/gnus/gnus.el 2010-10-08 12:16:05 +0000 @@ -3815,12 +3815,13 @@ (defun gnus-expand-group-parameter (match value group) "Use MATCH to expand VALUE in GROUP." - (with-temp-buffer - (insert group) - (goto-char (point-min)) - (while (re-search-forward match nil t) - (replace-match value)) - (buffer-string))) + (let ((start (string-match match group))) + (if start + (let ((matched-string (substring group start (match-end 0)))) + ;; Build match groups + (string-match match matched-string) + (replace-match value nil nil matched-string)) + group))) (defun gnus-expand-group-parameters (match parameters group) "Go through PARAMETERS and expand them according to the match data." ------------------------------------------------------------ revno: 101849 [merge] committer: Juanma Barranquero branch nick: trunk timestamp: Fri 2010-10-08 12:14:47 +0200 message: Merge changes from emacs-23 branch. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2010-10-07 02:23:28 +0000 +++ doc/lispref/ChangeLog 2010-10-08 10:14:47 +0000 @@ -2458,6 +2458,12 @@ * display.texi (Images): Delete redundant @findex. +2007-08-16 Stefan Monnier + + * text.texi (Change Hooks): (after|before)-change-functions are no + longer bound to nil while running; rather inhibit-modification-hooks + is t. + 2007-08-16 Richard Stallman * processes.texi (Asynchronous Processes): Clarify === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2010-10-07 12:31:39 +0000 +++ doc/misc/ChangeLog 2010-10-08 10:14:47 +0000 @@ -1,3 +1,11 @@ +2010-10-08 Glenn Morris + + * cl.texi (Organization, Installation, Old CL Compatibility): + Deprecate cl-compat for new code. + (Usage, Installation): Remove outdated information. + + * eudc.texi (CCSO PH/QI, LDAP Requirements): Remove old information. + 2010-10-07 Katsumi Yamaoka * gnus.texi (Gravatars): Document gnus-gravatar-too-ugly. === modified file 'doc/misc/cl.texi' --- doc/misc/cl.texi 2010-09-02 10:17:02 +0000 +++ doc/misc/cl.texi 2010-10-08 10:14:47 +0000 @@ -163,19 +163,6 @@ @end example @noindent -If you want to ensure that the new (Gillespie) version of @dfn{CL} -is the one that is present, add an additional @code{(require 'cl-19)} -call: - -@example -(require 'cl) -(require 'cl-19) -@end example - -@noindent -The second call will fail (with ``@file{cl-19.el} not found'') if -the old @file{cl.el} package was in use. - It is safe to arrange to load @dfn{CL} at all times, e.g., in your @file{.emacs} file. But it's a good idea, for portability, to @code{(require 'cl)} in your code even if you do this. @@ -219,39 +206,26 @@ needed. There is another file, @file{cl-compat.el}, which defines some -routines from the older @file{cl.el} package that are no longer +routines from the older @file{cl.el} package that are not otherwise present in the new package. This includes internal routines like @code{setelt} and @code{zip-lists}, deprecated features like @code{defkeyword}, and an emulation of the old-style -multiple-values feature. @xref{Old CL Compatibility}. +multiple-values feature. This file is obsolete and should not be used +in new code. @xref{Old CL Compatibility}. @node Installation, Naming Conventions, Organization, Overview @section Installation @noindent -Installation of the @dfn{CL} package is simple: Just put the -byte-compiled files @file{cl.elc}, @file{cl-extra.elc}, -@file{cl-seq.elc}, @file{cl-macs.elc}, and @file{cl-compat.elc} -into a directory on your @code{load-path}. - -There are no special requirements to compile this package: -The files do not have to be loaded before they are compiled, -nor do they need to be compiled in any particular order. - -You may choose to put the files into your main @file{lisp/} -directory, replacing the original @file{cl.el} file there. Or, -you could put them into a directory that comes before @file{lisp/} -on your @code{load-path} so that the old @file{cl.el} is -effectively hidden. - -Also, format the @file{cl.texinfo} file and put the resulting -Info files in the @file{info/} directory or another suitable place. - -You may instead wish to leave this package's components all in -their own directory, and then add this directory to your -@code{load-path} and @code{Info-directory-list}. -Add the directory to the front of the list so the old @dfn{CL} -package and its documentation are hidden. +The @dfn{CL} package is distributed with Emacs, so there is no need +to install anything. + +If you do need to install it, just put the byte-compiled files +@file{cl.elc}, @file{cl-extra.elc}, @file{cl-seq.elc}, +@file{cl-macs.elc}, and (if necessary) @file{cl-compat.elc} into a +directory on your @code{load-path}. Also, format the @file{cl.texi} +file and put the resulting Info files into a directory in your +@code{Info-directory-list}. @node Naming Conventions, , Installation, Overview @section Naming Conventions @@ -5076,8 +5050,8 @@ @noindent The @dfn{CL} package includes emulations of some features of the old @file{cl.el}, in the form of a compatibility package -@code{cl-compat}. To use it, put @code{(require 'cl-compat)} in -your program. +@code{cl-compat}. This file is obsolete and may be removed in future, +so it should not be used in new code. The old package defined a number of internal routines without @code{cl-} prefixes or other annotations. Call to these routines === modified file 'doc/misc/eudc.texi' --- doc/misc/eudc.texi 2010-06-24 07:10:51 +0000 +++ doc/misc/eudc.texi 2010-10-07 02:16:02 +0000 @@ -137,7 +137,7 @@ LDAP servers usually store (but are not limited to) information about people such as their name, phone number, email address, office location, etc@enddots{} More information about LDAP can be found at -@url{http://www.openldap.org/} +@url{http://www.openldap.org/}. EUDC requires external support to access LDAP directory servers (@pxref{LDAP Requirements}) @@ -148,17 +148,15 @@ @section CCSO PH/QI The Central Computing Services Office (CCSO) of the University of -Illinois at Urbana Champaign (UIUC) created and freely distributes a -directory system that is currently in use in more than 300 organizations -around the world. The system records information about people such as -their address, phone number, email, academic information or any other -details it was configured to. +Illinois at Urbana Champaign created and freely distributed a +directory system that was used by many organizations in the 1990s. +The system records information about people such as their address, +phone number, email, academic information or any other details it was +configured to. Nowadays this system is not widely used. The system consists of two parts: a database server traditionally called -@samp{qi} and a command-line client called @samp{ph}. -@url{ftp://uiarchive.cso.uiuc.edu/pub/packages/ph} is the main -distribution site. @url{http://www.uiuc.edu/cgi-bin/ph/lookup?Query=.} -provides a listing of the active @samp{qi} servers. +@samp{qi} and a command-line client called @samp{ph}. As of 2010, the +code can still be downloaded from @url{http://www-dev.cites.uiuc.edu/ph/}. The original command-line @samp{ph} client that comes with the @samp{ph/qi} distribution provides additional features like the @@ -225,18 +223,10 @@ @comment node-name, next, previous, up @section LDAP Requirements -LDAP support is added by means of @file{ldap.el} which is part of Emacs. +LDAP support is added by means of @file{ldap.el}, which is part of Emacs. @file{ldap.el} needs an external command line utility named -@file{ldapsearch} which is available as part of LDAP toolkits: - -@itemize @bullet -@item -Open LDAP Libraries -(@url{http://www.openldap.org/}) -@item -University of Michigan's LDAP Client software -(@url{http://www.umich.edu/~dirsvcs/ldap/}) -@end itemize +@file{ldapsearch}, available as part of Open LDAP +(@url{http://www.openldap.org/}). @node Usage, Credits, Installation, Top @@ -968,7 +958,3 @@ @printindex vr @bye - -@ignore - arch-tag: 1b79460b-4ea1-441d-ab45-05ddd16ef241 -@end ignore === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2010-10-03 23:35:22 +0000 +++ lib-src/ChangeLog 2010-10-08 10:14:47 +0000 @@ -1,3 +1,8 @@ +2010-10-08 Glenn Morris + + * emacsclient.c (set_local_socket) [DARWIN_OS]: Try as a fall-back + DARWIN_USER_TEMP_DIR. (Bug#3992) + 2010-10-03 Dan Nicolaescu * test-distrib.c (cool_read): === modified file 'lib-src/emacsclient.c' --- lib-src/emacsclient.c 2010-10-03 23:35:22 +0000 +++ lib-src/emacsclient.c 2010-10-08 10:14:47 +0000 @@ -1223,7 +1223,18 @@ { tmpdir = egetenv ("TMPDIR"); if (!tmpdir) - tmpdir = "/tmp"; + { +#ifdef DARWIN_OS + size_t n = confstr (_CS_DARWIN_USER_TEMP_DIR, NULL, (size_t) 0); + if (n > 0) + { + tmpdir = alloca (n); + confstr (_CS_DARWIN_USER_TEMP_DIR, tmpdir, n); + } + else +#endif + tmpdir = "/tmp"; + } socket_name = alloca (strlen (tmpdir) + strlen (server_name) + EXTRA_SPACE); sprintf (socket_name, "%s/emacs%d/%s", === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-10-08 07:51:19 +0000 +++ lisp/ChangeLog 2010-10-08 10:14:47 +0000 @@ -1,5 +1,51 @@ 2010-10-08 Glenn Morris + * emacs-lisp/cl-compat.el, emacs-lisp/lmenu.el: Move to obsolete/. + + * emacs-lisp/shadow.el (lisp-shadow): Change prefix. + (shadows-compare-text-p): Make it an obsolete alias for... + (load-path-shadows-compare-text): ... new name. + (find-emacs-lisp-shadows): Update for above name change. + (load-path-shadows-same-file-or-nonexistent): New name for the old + shadow-same-file-or-nonexistent. + +2010-10-08 Chong Yidong + + * minibuffer.el (completion--some, completion--do-completion) + (minibuffer-complete-and-exit, minibuffer-completion-help) + (completion-basic-try-completion) + (completion-basic-all-completions) + (completion-pcm--find-all-completions): Use lexical-let to + avoid some false matches in variable completion (Bug#7056) + +2010-10-08 Olof Ohlsson Sax (tiny change) + + * vc-svn.el (vc-svn-merge-news): Use --non-interactive. (Bug#7152) + +2010-10-08 Leo + + * dnd.el (dnd-get-local-file-name): If MUST-EXIST is non-nil, only + return non-nil if the file exists (Bug#7090). + +2010-10-08 Stefan Monnier + + * minibuffer.el (completion--replace): + Better preserve markers (bug#7138). + +2010-10-08 Juanma Barranquero + + * server.el (server-process-filter): Doc fix. + +2010-10-08 Drew Adams + + * dired.el (dired-save-positions): Doc fix. (Bug#7119) + +2010-10-08 Andreas Schwab + + * Makefile.in (ELCFILES): Update. + +2010-10-08 Glenn Morris + * vc/ediff-wind.el (ediff-setup-control-frame): * vc/ediff-ptch.el (ediff-default-backup-extension): * vc/ediff-diff.el (ediff-shell, ediff-diff-options) === modified file 'lisp/cedet/ChangeLog' --- lisp/cedet/ChangeLog 2010-09-27 14:56:27 +0000 +++ lisp/cedet/ChangeLog 2010-10-08 10:14:47 +0000 @@ -1,3 +1,32 @@ +2010-09-30 Chong Yidong + + * semantic/bovine/el.el: + * semantic/mru-bookmark.el (global-semantic-mru-bookmark-mode): + Fix require statements. + +2010-09-29 Chong Yidong + + * semantic/tag.el (semantic-tag-version): Bump to 2.0. + + * semantic/db-typecache.el (semanticdb-typecache-find-default): + * semantic/imenu.el (semantic-create-imenu-index): + * semantic/grammar.el (semantic--grammar-macro-function-tag): + * semantic/fw.el (semanticdb-without-unloaded-file-searches): Fix + require. Suggested by David Engster. + + * semantic/bovine/c-by.el: Regenerate. + +2010-09-29 Eric Ludlam + + * semantic/lex-spp.el (semantic-lex-spp-debug-symbol): New var. + (semantic-lex-spp-enable-debug-symbol): New command + (semantic-lex-spp-value-valid-p) + (semantic-lex-spp-validate-value): New functions + (semantic-lex-spp-symbol-set) + (semantic-lex-spp-symbol-push): Add call to validate value. + (semantic-lex-spp-table-write-slot-value): Instead of erroring on + invalid values during save, just save a nil. + 2010-09-25 Chong Yidong * ede/linux.el (ede-project-class-files): @@ -465,11 +494,6 @@ (ede-dired-minor-mode): Use define-minor-mode and derived-mode-p. (ede-dired-add-to-target): Use dolist. -2010-04-18 Chong Yidong - - * ede/pmake.el (ede-proj-makefile-insert-variables): - Don't destroy list before using it. - 2010-04-29 Chong Yidong * semantic.el (semantic-completion-at-point-function): === modified file 'lisp/cedet/semantic/bovine/c-by.el' --- lisp/cedet/semantic/bovine/c-by.el 2010-01-13 08:35:10 +0000 +++ lisp/cedet/semantic/bovine/c-by.el 2010-09-29 16:09:21 +0000 @@ -1240,7 +1240,9 @@ (nth 7 vals)) (nth 0 vals) (nth 10 vals) - (nth 4 vals)) + (list + (nth 4 vals)) + (nth 9 vals)) ) (opt-stars opt-class @@ -1262,7 +1264,9 @@ (nth 6 vals)) (nth 0 vals) (nth 9 vals) - (nth 4 vals)) + (list + (nth 4 vals)) + (nth 8 vals)) ) ) ;; end func-decl @@ -1433,13 +1437,11 @@ namespace-symbol opt-bits opt-array - opt-assign ,(semantic-lambda (nth 2 vals) (nth 0 vals) (nth 3 vals) - (nth 4 vals) - (nth 5 vals)) + (nth 4 vals)) ) ) ;; end varname @@ -1484,19 +1486,28 @@ ) ) ;; end variablearg-opt-name + (varname-opt-initializer + (semantic-list) + (opt-assign) + ( ;;EMPTY + ) + ) ;; end varname-opt-initializer + (varnamelist (opt-ref varname + varname-opt-initializer punctuation "\\`[,]\\'" varnamelist ,(semantic-lambda (cons (nth 1 vals) - (nth 3 vals))) + (nth 4 vals))) ) (opt-ref varname + varname-opt-initializer ,(semantic-lambda (list (nth 1 vals))) @@ -2108,74 +2119,64 @@ "\\`[&]\\'") ) ;; end expr-start + (expr-binop + (punctuation + "\\`[-]\\'") + (punctuation + "\\`[+]\\'") + (punctuation + "\\`[*]\\'") + (punctuation + "\\`[/]\\'") + (punctuation + "\\`[&]\\'" + punctuation + "\\`[&]\\'") + (punctuation + "\\`[&]\\'") + (punctuation + "\\`[|]\\'" + punctuation + "\\`[|]\\'") + (punctuation + "\\`[|]\\'") + ) ;; end expr-binop + (expression - (number - ,(semantic-lambda - (list - (identity start) - (identity end))) - ) - (multi-stage-dereference - ,(semantic-lambda - (list - (identity start) - (identity end))) - ) + (unaryexpression + expr-binop + unaryexpression + ,(semantic-lambda + (list + (identity start) + (identity end))) + ) + (unaryexpression + ,(semantic-lambda + (list + (identity start) + (identity end))) + ) + ) ;; end expression + + (unaryexpression + (number) + (multi-stage-dereference) (NEW - multi-stage-dereference - ,(semantic-lambda - (list - (identity start) - (identity end))) - ) + multi-stage-dereference) (NEW builtintype-types - semantic-list - ,(semantic-lambda - (list - (identity start) - (identity end))) - ) - (namespace-symbol - ,(semantic-lambda - (list - (identity start) - (identity end))) - ) - (string-seq - ,(semantic-lambda - (list - (identity start) - (identity end))) - ) + semantic-list) + (namespace-symbol) + (string-seq) (type-cast - expression - ,(semantic-lambda - (list - (identity start) - (identity end))) - ) - (semantic-list - expression - ,(semantic-lambda - (list - (identity start) - (identity end))) - ) - (semantic-list - ,(semantic-lambda - (list - (identity start) - (identity end))) - ) + expression) + (semantic-list + expression) + (semantic-list) (expr-start - expression - ,(semantic-lambda - (list - (identity start) - (identity end))) - ) - ) ;; end expression + expression) + ) ;; end unaryexpression ) "Parser table.") === modified file 'lisp/cedet/semantic/bovine/el.el' --- lisp/cedet/semantic/bovine/el.el 2010-01-13 08:35:10 +0000 +++ lisp/cedet/semantic/bovine/el.el 2010-09-30 01:41:13 +0000 @@ -958,7 +958,7 @@ (add-hook 'lisp-mode-hook 'semantic-default-elisp-setup) (eval-after-load "semanticdb" - '(require 'semanticdb-el) + '(require 'semantic/db-el) ) (provide 'semantic/bovine/el) === modified file 'lisp/cedet/semantic/db-typecache.el' --- lisp/cedet/semantic/db-typecache.el 2010-09-19 02:49:54 +0000 +++ lisp/cedet/semantic/db-typecache.el 2010-09-29 16:09:21 +0000 @@ -403,7 +403,7 @@ PATH is the search path, which should be one table object. If FIND-FILE-MATCH is non-nil, then force the file belonging to the found tag to be loaded." - (if (not (and (featurep 'semanticdb) semanticdb-current-database)) + (if (not (and (featurep 'semantic/db) semanticdb-current-database)) nil ;; No DB, no search (save-excursion (semanticdb-typecache-find-method (or path semanticdb-current-table) === modified file 'lisp/cedet/semantic/fw.el' --- lisp/cedet/semantic/fw.el 2010-09-19 02:49:54 +0000 +++ lisp/cedet/semantic/fw.el 2010-09-29 16:09:21 +0000 @@ -315,7 +315,7 @@ (defmacro semanticdb-without-unloaded-file-searches (forms) "Execute FORMS with `unloaded' removed from the current throttle." `(let ((semanticdb-find-default-throttle - (if (featurep 'semanticdb-find) + (if (featurep 'semantic/db-find) (remq 'unloaded semanticdb-find-default-throttle) nil))) ,forms)) === modified file 'lisp/cedet/semantic/grammar.el' --- lisp/cedet/semantic/grammar.el 2010-09-19 02:49:54 +0000 +++ lisp/cedet/semantic/grammar.el 2010-09-29 16:09:21 +0000 @@ -1519,7 +1519,7 @@ (car (semantic-find-tags-by-class 'function (or (semantic-find-tags-by-name name (current-buffer)) - (and (featurep 'semanticdb) + (and (featurep 'semantic/db) semanticdb-current-database (cdar (semanticdb-find-tags-by-name name nil t))))))) === modified file 'lisp/cedet/semantic/imenu.el' --- lisp/cedet/semantic/imenu.el 2010-09-19 02:49:54 +0000 +++ lisp/cedet/semantic/imenu.el 2010-09-29 16:09:21 +0000 @@ -235,7 +235,7 @@ (setq imenu-default-goto-function 'semantic-imenu-goto-function) (prog1 (if (and semantic-imenu-index-directory - (featurep 'semanticdb) + (featurep 'semantic/db) (semanticdb-minor-mode-p)) (semantic-create-imenu-directory-index (or stream (semantic-fetch-tags-fast))) === modified file 'lisp/cedet/semantic/lex-spp.el' --- lisp/cedet/semantic/lex-spp.el 2010-09-19 02:49:54 +0000 +++ lisp/cedet/semantic/lex-spp.el 2010-09-29 16:09:21 +0000 @@ -173,10 +173,42 @@ (setq semantic-lex-spp-dynamic-macro-symbol-obarray-stack (make-vector 13 0)))) +(defun semantic-lex-spp-value-valid-p (value) + "Return non-nil if VALUE is valid." + (or (null value) + (stringp value) + (and (consp value) + (or (semantic-lex-token-p (car value)) + (eq (car (car value)) 'spp-arg-list))))) + +(defvar semantic-lex-spp-debug-symbol nil + "A symbol to break on if it is being set somewhere.") + +(defun semantic-lex-spp-enable-debug-symbol (sym) + "Enable debugging for symbol SYM. +Disable debugging by entering nothing." + (interactive "sSymbol: ") + (if (string= sym "") + (setq semantic-lex-spp-debug-symbol nil) + (setq semantic-lex-spp-debug-symbol sym))) + +(defmacro semantic-lex-spp-validate-value (name value) + "Validate the NAME and VALUE of a macro before it is set." +; `(progn +; (when (not (semantic-lex-spp-value-valid-p ,value)) +; (error "Symbol \"%s\" with bogus value %S" ,name ,value)) +; (when (and semantic-lex-spp-debug-symbol +; (string= semantic-lex-spp-debug-symbol name)) +; (debug)) +; ) + nil + ) + (defun semantic-lex-spp-symbol-set (name value &optional obarray-in) "Set value of spp symbol with NAME to VALUE and return VALUE. If optional OBARRAY-IN is non-nil, then use that obarray instead of the dynamic map." + (semantic-lex-spp-validate-value name value) (if (and (stringp value) (string= value "")) (setq value nil)) (set (intern name (or obarray-in (semantic-lex-spp-dynamic-map))) @@ -192,6 +224,7 @@ (defun semantic-lex-spp-symbol-push (name value) "Push macro NAME with VALUE into the map. Reverse with `semantic-lex-spp-symbol-pop'." + (semantic-lex-spp-validate-value name value) (let* ((map (semantic-lex-spp-dynamic-map)) (stack (semantic-lex-spp-dynamic-map-stack)) (mapsym (intern name map)) === modified file 'lisp/cedet/semantic/mru-bookmark.el' --- lisp/cedet/semantic/mru-bookmark.el 2010-05-02 05:06:53 +0000 +++ lisp/cedet/semantic/mru-bookmark.el 2010-10-08 10:14:47 +0000 @@ -239,6 +239,18 @@ ;; ;; Tracking minor mode. +(defcustom global-semantic-mru-bookmark-mode nil + "If non-nil, enable `semantic-mru-bookmark-mode' globally. +When this mode is enabled, Emacs keeps track of which tags have +been edited, and you can re-visit them with \\[semantic-mrub-switch-tags]." + :group 'semantic + :group 'semantic-modes + :type 'boolean + :require 'semantic/util-modes + :initialize 'custom-initialize-default + :set (lambda (sym val) + (global-semantic-mru-bookmark-mode (if val 1 -1)))) + ;;;###autoload (define-minor-mode global-semantic-mru-bookmark-mode "Toggle global use of option `semantic-mru-bookmark-mode'. === modified file 'lisp/cedet/semantic/tag.el' --- lisp/cedet/semantic/tag.el 2010-09-19 02:49:54 +0000 +++ lisp/cedet/semantic/tag.el 2010-09-29 16:09:21 +0000 @@ -53,7 +53,7 @@ (declare-function semantic-fetch-tags "semantic") (declare-function semantic-clear-toplevel-cache "semantic") -(defconst semantic-tag-version "2.0pre7" +(defconst semantic-tag-version "2.0" "Version string of semantic tags made with this code.") (defconst semantic-tag-incompatible-version "1.0" @@ -221,6 +221,7 @@ ;; beginning of TAG. (or (and (>= (point) start) (< (point) end)) (goto-char start)) + (require 'semantic/ctxt) (semantic-ctxt-current-mode))))) (defsubst semantic--tag-attributes-cdr (tag) === modified file 'lisp/dired.el' --- lisp/dired.el 2010-09-05 21:28:50 +0000 +++ lisp/dired.el 2010-10-08 10:14:47 +0000 @@ -1178,7 +1178,7 @@ The positions have the form (BUFFER-POSITION WINDOW-POSITIONS). BUFFER-POSITION is the point position in the current dired buffer. -The buffer position have the form (BUFFER DIRED-FILENAME BUFFER-POINT). +It has the form (BUFFER DIRED-FILENAME BUFFER-POINT). WINDOW-POSITIONS are current positions in all windows displaying this dired buffer. The window positions have the form (WINDOW === modified file 'lisp/dnd.el' --- lisp/dnd.el 2010-08-29 16:17:13 +0000 +++ lisp/dnd.el 2010-10-08 10:14:47 +0000 @@ -155,10 +155,11 @@ (let* ((decoded-f (decode-coding-string f (or file-name-coding-system - default-file-name-coding-system))) - (try-f (if (file-readable-p decoded-f) decoded-f f))) - (when (file-readable-p try-f) try-f))))) - + default-file-name-coding-system)))) + (setq f (cond ((file-readable-p decoded-f) decoded-f) + ((file-readable-p f) f) + (t nil))))) + f)) (defun dnd-open-local-file (uri action) "Open a local file. === modified file 'lisp/emacs-lisp/shadow.el' --- lisp/emacs-lisp/shadow.el 2010-10-07 17:22:51 +0000 +++ lisp/emacs-lisp/shadow.el 2010-10-08 10:14:47 +0000 @@ -53,10 +53,13 @@ (defgroup lisp-shadow nil "Locate Emacs Lisp file shadowings." - :prefix "shadows-" + :prefix "load-path-shadows-" :group 'lisp) -(defcustom shadows-compare-text-p nil +(define-obsolete-variable-alias 'shadows-compare-text-p + 'load-path-shadows-compare-text "23.3") + +(defcustom load-path-shadows-compare-text nil "If non-nil, then shadowing files are reported only if their text differs. This is slower, but filters out some innocuous shadowing." :type 'boolean @@ -124,11 +127,11 @@ ;; Report it unless the files are identical. (let ((base1 (concat (cdr orig-dir) "/" file)) (base2 (concat dir "/" file))) - (if (not (and shadows-compare-text-p - (shadow-same-file-or-nonexistent + (if (not (and load-path-shadows-compare-text + (load-path-shadows-same-file-or-nonexistent (concat base1 ".el") (concat base2 ".el")) ;; This is a bit strict, but safe. - (shadow-same-file-or-nonexistent + (load-path-shadows-same-file-or-nonexistent (concat base1 ".elc") (concat base2 ".elc")))) (setq shadows (append shadows (list base1 base2))))) @@ -140,7 +143,7 @@ ;; Return true if neither file exists, or if both exist and have identical ;; contents. -(defun shadow-same-file-or-nonexistent (f1 f2) +(defun load-path-shadows-same-file-or-nonexistent (f1 f2) (let ((exists1 (file-exists-p f1)) (exists2 (file-exists-p f2))) (or (and (not exists1) (not exists2)) === modified file 'lisp/minibuffer.el' --- lisp/minibuffer.el 2010-08-29 16:17:13 +0000 +++ lisp/minibuffer.el 2010-10-08 10:14:47 +0000 @@ -133,8 +133,8 @@ "Apply FUN to each element of XS in turn. Return the first non-nil returned value. Like CL's `some'." - (let ((firsterror nil) - res) + (lexical-let ((firsterror nil) + res) (while (and (not res) xs) (condition-case err (setq res (funcall fun (pop xs))) @@ -485,10 +485,30 @@ (defun completion--replace (beg end newtext) "Replace the buffer text between BEG and END with NEWTEXT. Moves point to the end of the new text." - ;; This should be in subr.el. + ;; Maybe this should be in subr.el. ;; You'd think this is trivial to do, but details matter if you want ;; to keep markers "at the right place" and be robust in the face of ;; after-change-functions that may themselves modify the buffer. + (let ((prefix-len 0)) + ;; Don't touch markers in the shared prefix (if any). + (while (and (< prefix-len (length newtext)) + (< (+ beg prefix-len) end) + (eq (char-after (+ beg prefix-len)) + (aref newtext prefix-len))) + (setq prefix-len (1+ prefix-len))) + (unless (zerop prefix-len) + (setq beg (+ beg prefix-len)) + (setq newtext (substring newtext prefix-len)))) + (let ((suffix-len 0)) + ;; Don't touch markers in the shared suffix (if any). + (while (and (< suffix-len (length newtext)) + (< beg (- end suffix-len)) + (eq (char-before (- end suffix-len)) + (aref newtext (- (length newtext) suffix-len 1)))) + (setq suffix-len (1+ suffix-len))) + (unless (zerop suffix-len) + (setq end (- end suffix-len)) + (setq newtext (substring newtext 0 (- suffix-len))))) (goto-char beg) (insert newtext) (delete-region (point) (+ (point) (- end beg)))) @@ -520,15 +540,16 @@ 101 5 ??? impossible 110 6 some completion happened 111 7 completed to an exact completion" - (let* ((beg (field-beginning)) - (end (field-end)) - (string (buffer-substring beg end)) - (comp (funcall (or try-completion-function - 'completion-try-completion) - string - minibuffer-completion-table - minibuffer-completion-predicate - (- (point) beg)))) + (lexical-let* + ((beg (field-beginning)) + (end (field-end)) + (string (buffer-substring beg end)) + (comp (funcall (or try-completion-function + 'completion-try-completion) + string + minibuffer-completion-table + minibuffer-completion-predicate + (- (point) beg)))) (cond ((null comp) (minibuffer-hide-completions) @@ -541,14 +562,15 @@ ;; `completed' should be t if some completion was done, which doesn't ;; include simply changing the case of the entered string. However, ;; for appearance, the string is rewritten if the case changes. - (let* ((comp-pos (cdr comp)) - (completion (car comp)) - (completed (not (eq t (compare-strings completion nil nil - string nil nil t)))) - (unchanged (eq t (compare-strings completion nil nil - string nil nil nil)))) + (lexical-let* + ((comp-pos (cdr comp)) + (completion (car comp)) + (completed (not (eq t (compare-strings completion nil nil + string nil nil t)))) + (unchanged (eq t (compare-strings completion nil nil + string nil nil nil)))) (if unchanged - (goto-char end) + (goto-char end) ;; Insert in minibuffer the chars we got. (completion--replace beg end completion)) ;; Move point to its completion-mandated destination. @@ -729,8 +751,8 @@ `minibuffer-confirm-exit-commands', and accept the input otherwise." (interactive) - (let ((beg (field-beginning)) - (end (field-end))) + (lexical-let ((beg (field-beginning)) + (end (field-end))) (cond ;; Allow user to specify null string ((= beg end) (exit-minibuffer)) @@ -1107,14 +1129,13 @@ "Display a list of possible completions of the current minibuffer contents." (interactive) (message "Making completion list...") - (let* ((non-essential t) - (start (field-beginning)) - (string (field-string)) - (completions (completion-all-completions - string - minibuffer-completion-table - minibuffer-completion-predicate - (- (point) (field-beginning))))) + (lexical-let* ((start (field-beginning)) + (string (field-string)) + (completions (completion-all-completions + string + minibuffer-completion-table + minibuffer-completion-predicate + (- (point) (field-beginning))))) (message nil) (if (and completions (or (consp (cdr completions)) @@ -1767,9 +1788,10 @@ (substring afterpoint 0 (cdr bounds))))) (defun completion-basic-try-completion (string table pred point) - (let* ((beforepoint (substring string 0 point)) - (afterpoint (substring string point)) - (bounds (completion-boundaries beforepoint table pred afterpoint))) + (lexical-let* + ((beforepoint (substring string 0 point)) + (afterpoint (substring string point)) + (bounds (completion-boundaries beforepoint table pred afterpoint))) (if (zerop (cdr bounds)) ;; `try-completion' may return a subtly different result ;; than `all+merge', so try to use it whenever possible. @@ -1780,22 +1802,30 @@ (concat completion (completion--merge-suffix completion point afterpoint)) (length completion)))) - (let* ((suffix (substring afterpoint (cdr bounds))) - (prefix (substring beforepoint 0 (car bounds))) - (pattern (completion-basic--pattern - beforepoint afterpoint bounds)) - (all (completion-pcm--all-completions prefix pattern table pred))) + (lexical-let* + ((suffix (substring afterpoint (cdr bounds))) + (prefix (substring beforepoint 0 (car bounds))) + (pattern (delete + "" (list (substring beforepoint (car bounds)) + 'point + (substring afterpoint 0 (cdr bounds))))) + (all (completion-pcm--all-completions prefix pattern table pred))) (if minibuffer-completing-file-name (setq all (completion-pcm--filename-try-filter all))) (completion-pcm--merge-try pattern all prefix suffix))))) (defun completion-basic-all-completions (string table pred point) - (let* ((beforepoint (substring string 0 point)) - (afterpoint (substring string point)) - (bounds (completion-boundaries beforepoint table pred afterpoint)) - (prefix (substring beforepoint 0 (car bounds))) - (pattern (completion-basic--pattern beforepoint afterpoint bounds)) - (all (completion-pcm--all-completions prefix pattern table pred))) + (lexical-let* + ((beforepoint (substring string 0 point)) + (afterpoint (substring string point)) + (bounds (completion-boundaries beforepoint table pred afterpoint)) + (suffix (substring afterpoint (cdr bounds))) + (prefix (substring beforepoint 0 (car bounds))) + (pattern (delete + "" (list (substring beforepoint (car bounds)) + 'point + (substring afterpoint 0 (cdr bounds))))) + (all (completion-pcm--all-completions prefix pattern table pred))) (completion-hilit-commonality all point (car bounds)))) ;;; Partial-completion-mode style completion. @@ -1958,12 +1988,13 @@ FILTER is a function applied to the return value, that can be used, e.g. to filter out additional entries (because TABLE migth not obey PRED)." (unless filter (setq filter 'identity)) - (let* ((beforepoint (substring string 0 point)) - (afterpoint (substring string point)) - (bounds (completion-boundaries beforepoint table pred afterpoint)) - (prefix (substring beforepoint 0 (car bounds))) - (suffix (substring afterpoint (cdr bounds))) - firsterror) + (lexical-let* + ((beforepoint (substring string 0 point)) + (afterpoint (substring string point)) + (bounds (completion-boundaries beforepoint table pred afterpoint)) + (prefix (substring beforepoint 0 (car bounds))) + (suffix (substring afterpoint (cdr bounds))) + firsterror) (setq string (substring string (car bounds) (+ point (cdr bounds)))) (let* ((relpoint (- point (car bounds))) (pattern (completion-pcm--string->pattern string relpoint)) === renamed file 'lisp/emacs-lisp/cl-compat.el' => 'lisp/obsolete/cl-compat.el' --- lisp/emacs-lisp/cl-compat.el 2010-08-30 13:03:05 +0000 +++ lisp/obsolete/cl-compat.el 2010-10-08 10:14:47 +0000 @@ -1,12 +1,12 @@ ;;; cl-compat.el --- Common Lisp extensions for GNU Emacs Lisp (compatibility) -;; Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005, -;; 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, +;; 2009, 2010 Free Software Foundation, Inc. ;; Author: Dave Gillespie ;; Version: 2.02 ;; Keywords: extensions -;; Package: emacs +;; Obsolete-since: 23.3 ;; This file is part of GNU Emacs. @@ -25,6 +25,8 @@ ;;; Commentary: +;; This file has been obsolete since Emacs 23.3. + ;; These are extensions to Emacs Lisp that provide a degree of ;; Common Lisp compatibility, beyond what is already built-in ;; in Emacs Lisp. @@ -195,5 +197,4 @@ ;; byte-compile-warnings: (not cl-functions) ;; End: -;; arch-tag: 9996bb4f-aaf5-4592-b436-bf64759a3163 ;;; cl-compat.el ends here === renamed file 'lisp/emacs-lisp/lmenu.el' => 'lisp/obsolete/lmenu.el' --- lisp/emacs-lisp/lmenu.el 2010-01-13 08:35:10 +0000 +++ lisp/obsolete/lmenu.el 2010-10-08 03:12:43 +0000 @@ -1,9 +1,10 @@ ;;; lmenu.el --- emulate Lucid's menubar support -;; Copyright (C) 1992, 1993, 1994, 1997, 2001, 2002, 2003, 2004, -;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1993, 1994, 1997, 2001, 2002, 2003, 2004, 2005, +;; 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. ;; Keywords: emulations obsolete +;; Obsolete-since: 23.3 ;; This file is part of GNU Emacs. @@ -22,6 +23,8 @@ ;;; Commentary: +;; This file has been obsolete since Emacs 23.3. + ;;; Code: @@ -439,5 +442,4 @@ (provide 'lmenu) -;; arch-tag: 7051c396-2837-435a-ae11-b2d2e2af8fc1 ;;; lmenu.el ends here === modified file 'lisp/server.el' --- lisp/server.el 2010-10-03 00:03:44 +0000 +++ lisp/server.el 2010-10-08 10:14:47 +0000 @@ -859,7 +859,7 @@ returned by -eval. `-error DESCRIPTION' - Signal an error (but continue processing). + Signal an error and delete process PROC. `-suspend' Suspend this terminal, i.e., stop the client process. === modified file 'lisp/vc/vc-svn.el' --- lisp/vc/vc-svn.el 2010-10-03 21:05:47 +0000 +++ lisp/vc/vc-svn.el 2010-10-08 10:14:47 +0000 @@ -374,7 +374,7 @@ (message "Merging changes into %s..." file) ;; (vc-file-setprop file 'vc-working-revision nil) (vc-file-setprop file 'vc-checkout-time 0) - (vc-svn-command nil 0 file "update") + (vc-svn-command nil 0 file "--non-interactive" "update") ; see bug#7152 ;; Analyze the merge result reported by SVN, and set ;; file properties accordingly. (with-current-buffer (get-buffer "*vc*") === modified file 'src/ChangeLog' --- src/ChangeLog 2010-10-08 05:02:56 +0000 +++ src/ChangeLog 2010-10-08 10:14:47 +0000 @@ -1,3 +1,54 @@ +2010-10-08 Kenichi Handa + + * coding.c (complement_process_encoding_system): Fix previous change. + +2010-10-08 Michael Albinus + + * dbusbind.c (syms_of_dbusbind): Move putenv call ... + (Fdbus_init_bus): ... here. (Bug#7113) + +2010-10-08 Glenn Morris + + * buffer.c (before-change-functions, after-change-functions): + Three-year overdue doc fix following 2007-08-13 change. + +2010-10-08 Kenichi Handa + + * coding.c (coding_inherit_eol_type): If parent doesn't specify + eol-format, inherit from the system's default. + (complement_process_encoding_system): Make a new coding system + inherit the original eol-format. + +2010-10-08 Kenichi Handa + + * coding.c (complement_process_encoding_system): New function. + + * coding.h (complement_process_encoding_system): Extern it. + + * callproc.c (Fcall_process): Complement the coding system for + encoding arguments. + (Fcall_process_region): Complement the coding system for encoding + the input to the process. + + * process.c (Fstart_process): Complement the coding system for + encoding arguments. + (send_process): Complement the coding system for encoding what + sent to the process. + +2010-10-08 Kenichi Handa + + * xfont.c (xfont_open): Fix setting of font->average_width from + :avgwidth property (Bug#7123). + +2010-10-08 Michael Albinus + + * dbusbind.c (syms_of_dbusbind): Use putenv instead of setenv, it + is more portable. + + * keyboard.c (gobble_input): Move call of xd_read_queued_messages ... + (kbd_buffer_get_event): ... here. This is needed for cygwin, which + has not defined SIGIO. + 2010-10-08 Chong Yidong * xterm.c (x_draw_relief_rect): If box width is larger than 1, === modified file 'src/buffer.c' --- src/buffer.c 2010-09-24 19:30:13 +0000 +++ src/buffer.c 2010-10-08 10:14:47 +0000 @@ -5957,10 +5957,7 @@ Buffer changes made while executing the `before-change-functions' don't call any before-change or after-change functions. -That's because these variables are temporarily set to nil. -As a result, a hook function cannot straightforwardly alter the -value of these variables. See the Emacs Lisp manual for a way of -accomplishing an equivalent result by using other variables. +That's because `inhibit-modification-hooks' is temporarily set non-nil. If an unhandled error happens in running these functions, the variable's value remains nil. That prevents the error @@ -5978,10 +5975,7 @@ Buffer changes made while executing the `after-change-functions' don't call any before-change or after-change functions. -That's because these variables are temporarily set to nil. -As a result, a hook function cannot straightforwardly alter the -value of these variables. See the Emacs Lisp manual for a way of -accomplishing an equivalent result by using other variables. +That's because `inhibit-modification-hooks' is temporarily set non-nil. If an unhandled error happens in running these functions, the variable's value remains nil. That prevents the error === modified file 'src/callproc.c' --- src/callproc.c 2010-10-04 17:22:57 +0000 +++ src/callproc.c 2010-10-08 10:14:47 +0000 @@ -254,21 +254,16 @@ if (!NILP (Vcoding_system_for_write)) val = Vcoding_system_for_write; else if (! must_encode) - val = Qnil; + val = Qraw_text; else { args2 = (Lisp_Object *) alloca ((nargs + 1) * sizeof *args2); args2[0] = Qcall_process; for (i = 0; i < nargs; i++) args2[i + 1] = args[i]; coding_systems = Ffind_operation_coding_system (nargs + 1, args2); - if (CONSP (coding_systems)) - val = XCDR (coding_systems); - else if (CONSP (Vdefault_process_coding_system)) - val = XCDR (Vdefault_process_coding_system); - else - val = Qnil; + val = CONSP (coding_systems) ? XCDR (coding_systems) : Qnil; } - val = coding_inherit_eol_type (val, Qnil); + val = complement_process_encoding_system (val); setup_coding_system (Fcheck_coding_system (val), &argument_coding); coding_attrs = CODING_ID_ATTRS (argument_coding.id); if (NILP (CODING_ATTR_ASCII_COMPAT (coding_attrs))) @@ -912,20 +907,16 @@ if (!NILP (Vcoding_system_for_write)) val = Vcoding_system_for_write; else if (NILP (current_buffer->enable_multibyte_characters)) - val = Qnil; + val = Qraw_text; else { args2 = (Lisp_Object *) alloca ((nargs + 1) * sizeof *args2); args2[0] = Qcall_process_region; for (i = 0; i < nargs; i++) args2[i + 1] = args[i]; coding_systems = Ffind_operation_coding_system (nargs + 1, args2); - if (CONSP (coding_systems)) - val = XCDR (coding_systems); - else if (CONSP (Vdefault_process_coding_system)) - val = XCDR (Vdefault_process_coding_system); - else - val = Qnil; + val = CONSP (coding_systems) ? XCDR (coding_systems) : Qnil; } + val = complement_process_encoding_system (val); { int count1 = SPECPDL_INDEX (); === modified file 'src/coding.c' --- src/coding.c 2010-09-14 14:41:53 +0000 +++ src/coding.c 2010-10-08 10:14:47 +0000 @@ -6016,10 +6016,9 @@ } -/* If CODING_SYSTEM doesn't specify end-of-line format but PARENT - does, return one of the subsidiary that has the same eol-spec as - PARENT. Otherwise, return CODING_SYSTEM. If PARENT is nil, - inherit end-of-line format from the system's setting +/* If CODING_SYSTEM doesn't specify end-of-line format, return one of + the subsidiary that has the same eol-spec as PARENT (if it is not + nil and specifies end-of-line format) or the system's setting (system_eol_type). */ Lisp_Object @@ -6041,6 +6040,8 @@ parent_spec = CODING_SYSTEM_SPEC (parent); parent_eol_type = AREF (parent_spec, 2); + if (VECTORP (parent_eol_type)) + parent_eol_type = system_eol_type; } else parent_eol_type = system_eol_type; @@ -6054,6 +6055,45 @@ return coding_system; } + +/* Check if text-conversion and eol-conversion of CODING_SYSTEM are + decided for writing to a process. If not, complement them, and + return a new coding system. */ + +Lisp_Object +complement_process_encoding_system (Lisp_Object coding_system) +{ + Lisp_Object coding_base = Qnil, eol_base = Qnil; + Lisp_Object spec, attrs; + int i; + + for (i = 0; i < 3; i++) + { + if (i == 1) + coding_system = CDR_SAFE (Vdefault_process_coding_system); + else if (i == 2) + coding_system = preferred_coding_system (); + spec = CODING_SYSTEM_SPEC (coding_system); + if (NILP (spec)) + continue; + attrs = AREF (spec, 0); + if (NILP (coding_base) && ! EQ (CODING_ATTR_TYPE (attrs), Qundecided)) + coding_base = CODING_ATTR_BASE_NAME (attrs); + if (NILP (eol_base) && ! VECTORP (AREF (spec, 2))) + eol_base = coding_system; + if (! NILP (coding_base) && ! NILP (eol_base)) + break; + } + + if (i > 0) + /* The original CODING_SYSTEM didn't specify text-conversion or + eol-conversion. Be sure that we return a fully complemented + coding system. */ + coding_system = coding_inherit_eol_type (coding_base, eol_base); + return coding_system; +} + + /* Emacs has a mechanism to automatically detect a coding system if it is one of Emacs' internal format, ISO2022, SJIS, and BIG5. But, it's impossible to distinguish some coding systems accurately === modified file 'src/coding.h' --- src/coding.h 2010-07-29 05:48:06 +0000 +++ src/coding.h 2010-10-08 10:14:47 +0000 @@ -707,6 +707,7 @@ int); extern Lisp_Object raw_text_coding_system (Lisp_Object); extern Lisp_Object coding_inherit_eol_type (Lisp_Object, Lisp_Object); +extern Lisp_Object complement_process_encoding_system (Lisp_Object); extern int decode_coding_gap (struct coding_system *, EMACS_INT, EMACS_INT); === modified file 'src/dbusbind.c' --- src/dbusbind.c 2010-10-01 13:56:33 +0000 +++ src/dbusbind.c 2010-10-08 10:14:47 +0000 @@ -900,6 +900,9 @@ /* Add bus to list of registered buses. */ Vdbus_registered_buses = Fcons (bus, Vdbus_registered_buses); + /* We do not want to abort. */ + putenv ("DBUS_FATAL_WARNINGS=0"); + /* Return. */ return Qnil; } @@ -2160,12 +2163,11 @@ doc: /* If non-nil, debug messages of D-Bus bindings are raised. */); #ifdef DBUS_DEBUG Vdbus_debug = Qt; - /* We can also set environment DBUS_VERBOSE=1 in order to see more - traces. */ + /* We can also set environment variable DBUS_VERBOSE=1 in order to + see more traces. This requires libdbus-1 to be configured with + --enable-verbose-mode. */ #else Vdbus_debug = Qnil; - /* We do not want to abort. */ - setenv ("DBUS_FATAL_WARNINGS", "0", 1); #endif Fprovide (intern_c_string ("dbusbind"), Qnil); === modified file 'src/keyboard.c' --- src/keyboard.c 2010-10-04 18:16:22 +0000 +++ src/keyboard.c 2010-10-08 10:14:47 +0000 @@ -3952,6 +3952,11 @@ /* One way or another, wait until input is available; then, if interrupt handlers have not read it, read it now. */ +#ifdef HAVE_DBUS + /* Read D-Bus messages. */ + xd_read_queued_messages (); +#endif /* HAVE_DBUS */ + /* Note SIGIO has been undef'd if FIONREAD is missing. */ #ifdef SIGIO gobble_input (0); === modified file 'src/process.c' --- src/process.c 2010-10-03 14:48:21 +0000 +++ src/process.c 2010-10-08 10:14:47 +0000 @@ -1670,6 +1670,11 @@ val = XCDR (Vdefault_process_coding_system); } XPROCESS (proc)->encode_coding_system = val; + /* Note: At this momemnt, the above coding system may leave + text-conversion or eol-conversion unspecified. They will be + decided after we read output from the process and decode it by + some coding system, or just before we actually send a text to + the process. */ } @@ -1712,6 +1717,7 @@ tem = Fsubstring (tem, make_number (2), Qnil); { + Lisp_Object arg_encoding = Qnil; struct gcpro gcpro1; GCPRO1 (tem); @@ -1729,9 +1735,14 @@ tem = Fcons (args[i], tem); CHECK_STRING (XCAR (tem)); if (STRING_MULTIBYTE (XCAR (tem))) - XSETCAR (tem, - code_convert_string_norecord - (XCAR (tem), XPROCESS (proc)->encode_coding_system, 1)); + { + if (NILP (arg_encoding)) + arg_encoding = (complement_process_encoding_system + (XPROCESS (proc)->encode_coding_system)); + XSETCAR (tem, + code_convert_string_norecord + (XCAR (tem), arg_encoding, 1)); + } } UNGCPRO; @@ -5529,12 +5540,21 @@ && !NILP (XBUFFER (object)->enable_multibyte_characters)) || EQ (object, Qt)) { + p->encode_coding_system + = complement_process_encoding_system (p->encode_coding_system); if (!EQ (Vlast_coding_system_used, p->encode_coding_system)) - /* The coding system for encoding was changed to raw-text - because we sent a unibyte text previously. Now we are - sending a multibyte text, thus we must encode it by the - original coding system specified for the current process. */ - setup_coding_system (p->encode_coding_system, coding); + { + /* The coding system for encoding was changed to raw-text + because we sent a unibyte text previously. Now we are + sending a multibyte text, thus we must encode it by the + original coding system specified for the current process. + + Another reason we comming here is that the coding system + was just complemented and new one was returned by + complement_process_encoding_system. */ + setup_coding_system (p->encode_coding_system, coding); + Vlast_coding_system_used = p->encode_coding_system; + } coding->src_multibyte = 1; } else === modified file 'src/xfont.c' --- src/xfont.c 2010-10-01 13:56:33 +0000 +++ src/xfont.c 2010-10-08 10:14:47 +0000 @@ -841,7 +841,7 @@ val = Ffont_get (font_object, QCavgwidth); if (INTEGERP (val)) - font->average_width = XINT (val); + font->average_width = XINT (val) / 10; if (font->average_width < 0) font->average_width = - font->average_width; if (font->average_width == 0 ------------------------------------------------------------ revno: 101848 committer: Glenn Morris branch nick: trunk timestamp: Fri 2010-10-08 00:51:19 -0700 message: Remove some tests for defunct system-types. * lisp/vc/ediff-wind.el (ediff-setup-control-frame): * lisp/vc/ediff-ptch.el (ediff-default-backup-extension): * lisp/vc/ediff-diff.el (ediff-shell, ediff-diff-options) (ediff-exec-process): Remove system-types emx, windows-95. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-10-08 03:27:49 +0000 +++ lisp/ChangeLog 2010-10-08 07:51:19 +0000 @@ -1,5 +1,10 @@ 2010-10-08 Glenn Morris + * vc/ediff-wind.el (ediff-setup-control-frame): + * vc/ediff-ptch.el (ediff-default-backup-extension): + * vc/ediff-diff.el (ediff-shell, ediff-diff-options) + (ediff-exec-process): Remove system-types emx, windows-95. + * net/browse-url.el (browse-url-xdg-open): Shell-quote url. (Bug#7166) 2010-10-07 Chong Yidong === modified file 'lisp/vc/ediff-diff.el' --- lisp/vc/ediff-diff.el 2010-08-29 16:17:13 +0000 +++ lisp/vc/ediff-diff.el 2010-10-08 07:51:19 +0000 @@ -1,7 +1,8 @@ ;;; ediff-diff.el --- diff-related utilities -;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -;; 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +;; 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +;; Free Software Foundation, Inc. ;; Author: Michael Kifer ;; Package: ediff @@ -54,8 +55,7 @@ (fset 'ediff-set-actual-diff-options '(lambda () nil)) (defcustom ediff-shell - (cond ((eq system-type 'emx) "cmd") ; OS/2 - ((memq system-type '(ms-dos windows-nt windows-95)) + (cond ((memq system-type '(ms-dos windows-nt)) shell-file-name) ; no standard name on MS-DOS (t "sh")) ; UNIX "The shell used to run diff and patch. @@ -85,7 +85,7 @@ (ediff-set-actual-diff-options)) (defcustom ediff-diff-options - (if (memq system-type '(ms-dos windows-nt windows-95)) "--binary" "") + (if (memq system-type '(ms-dos windows-nt)) "--binary" "") "Options to pass to `ediff-diff-program'. If Unix diff is used as `ediff-diff-program', then a useful option is `-w', to ignore space. @@ -1229,15 +1229,14 @@ (with-current-buffer buffer (erase-buffer) (setq default-directory directory) - (if (or (memq system-type '(emx ms-dos windows-nt windows-95)) + (if (or (memq system-type '(ms-dos windows-nt)) synch) - ;; In OS/2 (emx) do it synchronously, since OS/2 doesn't let us + ;; In Windows do it synchronously, since Windows doesn't let us ;; delete files used by other processes. Thus, in ediff-buffers ;; and similar functions, we can't delete temp files because ;; they might be used by the asynch process that computes ;; custom diffs. So, we have to wait till custom diff ;; subprocess is done. - ;; Similarly for Windows-* ;; In DOS, must synchronize because DOS doesn't have ;; asynchronous processes. (apply 'call-process program nil buffer nil args) @@ -1533,5 +1532,4 @@ ;; eval: (put 'ediff-with-current-buffer 'edebug-form-spec '(form body)) ;; End: -;; arch-tag: a86d448e-58d7-4572-a1d9-fdedfa22f648 ;;; ediff-diff.el ends here === modified file 'lisp/vc/ediff-ptch.el' --- lisp/vc/ediff-ptch.el 2010-08-29 16:17:13 +0000 +++ lisp/vc/ediff-ptch.el 2010-10-08 07:51:19 +0000 @@ -1,7 +1,8 @@ ;;; ediff-ptch.el --- Ediff's patch support -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, -;; 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005, 2006, 2007, 2008, 2009, 2010 +;; Free Software Foundation, Inc. ;; Author: Michael Kifer ;; Package: ediff @@ -62,7 +63,7 @@ ;; the default backup extension (defconst ediff-default-backup-extension - (if (memq system-type '(emx ms-dos)) + (if (eq system-type 'ms-dos) "_orig" ".orig")) @@ -841,5 +842,4 @@ ;; eval: (put 'ediff-with-current-buffer 'edebug-form-spec '(form body)) ;; End: -;; arch-tag: 2fe2161e-e116-469b-90fa-5cbb44c1bd1b ;;; ediff-ptch.el ends here === modified file 'lisp/vc/ediff-wind.el' --- lisp/vc/ediff-wind.el 2010-08-29 16:17:13 +0000 +++ lisp/vc/ediff-wind.el 2010-10-08 07:51:19 +0000 @@ -1,7 +1,8 @@ ;;; ediff-wind.el --- window manipulation utilities -;; Copyright (C) 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003, -;; 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004, +;; 2005, 2006, 2007, 2008, 2009, 2010 +;; Free Software Foundation, Inc. ;; Author: Michael Kifer ;; Package: ediff @@ -978,12 +979,11 @@ (set-specifier left-toolbar-width (list ctl-frame 0)) (set-specifier right-toolbar-width (list ctl-frame 0)))) - ;; Under OS/2 (emx) we have to call modify frame parameters twice, in order - ;; to make sure that at least once we do it for non-iconified frame. If - ;; appears that in the OS/2 port of Emacs, one can't modify frame - ;; parameters of iconified frames. As a precaution, we do likewise for - ;; windows-nt. - (if (memq system-type '(emx windows-nt windows-95)) + ;; As a precaution, we call modify frame parameters twice, in + ;; order to make sure that at least once we do it for + ;; a non-iconified frame. (It appears that in the Windows port of + ;; Emacs, one can't modify frame parameters of iconified frames.) + (if (eq system-type 'windows-nt) (modify-frame-parameters ctl-frame adjusted-parameters)) ;; make or zap toolbar (if not requested) @@ -1310,5 +1310,4 @@ ;; eval: (put 'ediff-with-current-buffer 'edebug-form-spec '(form body)) ;; End: -;; arch-tag: 73d9a5d7-eed7-4d9c-8b4b-21d5d78eb597 ;;; ediff-wind.el ends here ------------------------------------------------------------ revno: 101847 committer: Glenn Morris branch nick: trunk timestamp: Fri 2010-10-08 00:42:51 -0700 message: * lisp/htmlfontify.el: Add utf-8 coding cookie (eg for ellipsis at l1686). diff: === modified file 'lisp/htmlfontify.el' --- lisp/htmlfontify.el 2010-09-01 10:03:08 +0000 +++ lisp/htmlfontify.el 2010-10-08 07:42:51 +0000 @@ -1,6 +1,7 @@ ;;; htmlfontify.el --- htmlise a buffer/source tree with optional hyperlinks -;; Copyright (C) 2002, 2003, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2009, 2010 +;; Free Software Foundation, Inc. ;; Emacs Lisp Archive Entry ;; Package: htmlfontify @@ -2370,5 +2371,8 @@ (provide 'htmlfontify) -;; arch-tag: 944e5e63-c81d-4baa-a82a-0275f9c30e61 +;; Local Variables: +;; coding: utf-8 +;; End: + ;;; htmlfontify.el ends here ------------------------------------------------------------ revno: 101846 committer: Katsumi Yamaoka branch nick: trunk timestamp: Fri 2010-10-08 07:35:21 +0000 message: gnus-gravatar.el (gnus-treat-from-gravatar, gnus-treat-mail-gravatar): Bind gnus-gravatar-too-ugly to nil when called interactively. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2010-10-08 02:12:56 +0000 +++ lisp/gnus/ChangeLog 2010-10-08 07:35:21 +0000 @@ -1,5 +1,9 @@ 2010-10-08 Katsumi Yamaoka + * gnus-gravatar.el (gnus-treat-from-gravatar) + (gnus-treat-mail-gravatar): Bind gnus-gravatar-too-ugly to nil when + called interactively. + * gnus-art.el (gnus-mime-view-part-externally) (gnus-mime-view-part-internally): Make predicate function passed to gnus-mime-view-part-as-type assume argument is a mime type, not a list === modified file 'lisp/gnus/gnus-gravatar.el' --- lisp/gnus/gnus-gravatar.el 2010-10-07 12:31:39 +0000 +++ lisp/gnus/gnus-gravatar.el 2010-10-08 07:35:21 +0000 @@ -113,7 +113,10 @@ (gnus-with-article-buffer (if (memq 'from-gravatar gnus-article-wash-types) (gnus-delete-images 'from-gravatar) - (gnus-gravatar-transform-address "from" 'from-gravatar)))) + (let ((gnus-gravatar-too-ugly + (unless buffer-read-only ;; When type `W D g' + gnus-gravatar-too-ugly))) + (gnus-gravatar-transform-address "from" 'from-gravatar))))) ;;;###autoload (defun gnus-treat-mail-gravatar () @@ -123,8 +126,11 @@ (gnus-with-article-buffer (if (memq 'mail-gravatar gnus-article-wash-types) (gnus-delete-images 'mail-gravatar) - (gnus-gravatar-transform-address "cc" 'mail-gravatar) - (gnus-gravatar-transform-address "to" 'mail-gravatar)))) + (let ((gnus-gravatar-too-ugly + (unless buffer-read-only ;; When type `W D h' + gnus-gravatar-too-ugly))) + (gnus-gravatar-transform-address "cc" 'mail-gravatar) + (gnus-gravatar-transform-address "to" 'mail-gravatar))))) (provide 'gnus-gravatar) ------------------------------------------------------------ revno: 101845 committer: Chong Yidong branch nick: trunk timestamp: Fri 2010-10-08 01:02:56 -0400 message: * xterm.c (x_draw_relief_rect): If box width is larger than 1, draw the outermost line using the black relief, for legibility. Omit drawing the four corner pixels. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2010-10-04 18:16:22 +0000 +++ src/ChangeLog 2010-10-08 05:02:56 +0000 @@ -1,3 +1,9 @@ +2010-10-08 Chong Yidong + + * xterm.c (x_draw_relief_rect): If box width is larger than 1, + draw the outermost line using the black relief, for legibility. + Omit drawing the four corner pixels. + 2010-10-04 Chong Yidong * keyboard.c (echo_prompt): Function moved into read_key_sequence. === modified file 'src/xterm.c' --- src/xterm.c 2010-10-03 15:39:21 +0000 +++ src/xterm.c 2010-10-08 05:02:56 +0000 @@ -1942,18 +1942,35 @@ gc = f->output_data.x->black_relief.gc; XSetClipRectangles (dpy, gc, 0, 0, clip_rect, 1, Unsorted); + /* This code is more complicated than it has to be, because of two + minor hacks to make the boxes look nicer: (i) if width > 1, draw + the outermost line using the black relief. (ii) Omit the four + corner pixels. */ + /* Top. */ if (top_p) - for (i = 0; i < width; ++i) - XDrawLine (dpy, window, gc, - left_x + i * left_p, top_y + i, - right_x + 1 - i * right_p, top_y + i); + { + if (width == 1) + XDrawLine (dpy, window, gc, + left_x + (left_p ? 1 : 0), top_y, + right_x + (right_p ? 0 : 1), top_y); + + for (i = 1; i < width; ++i) + XDrawLine (dpy, window, gc, + left_x + i * left_p, top_y + i, + right_x + 1 - i * right_p, top_y + i); + } /* Left. */ if (left_p) - for (i = 0; i < width; ++i) - XDrawLine (dpy, window, gc, - left_x + i, top_y + i, left_x + i, bottom_y - i + 1); + { + if (width == 1) + XDrawLine (dpy, window, gc, left_x, top_y + 1, left_x, bottom_y); + + for (i = (width > 1 ? 1 : 0); i < width; ++i) + XDrawLine (dpy, window, gc, + left_x + i, top_y + i, left_x + i, bottom_y - i + 1); + } XSetClipMask (dpy, gc, None); if (raised_p) @@ -1962,12 +1979,30 @@ gc = f->output_data.x->white_relief.gc; XSetClipRectangles (dpy, gc, 0, 0, clip_rect, 1, Unsorted); + if (width > 1) + { + /* Outermost top line. */ + if (top_p) + XDrawLine (dpy, window, gc, + left_x + (left_p ? 1 : 0), top_y, + right_x + (right_p ? 0 : 1), top_y); + + /* Outermost left line. */ + if (left_p) + XDrawLine (dpy, window, gc, left_x, top_y + 1, left_x, bottom_y); + } + /* Bottom. */ if (bot_p) - for (i = 0; i < width; ++i) + { XDrawLine (dpy, window, gc, - left_x + i * left_p, bottom_y - i, - right_x + 1 - i * right_p, bottom_y - i); + left_x + (left_p ? 1 : 0), bottom_y, + right_x + (right_p ? 0 : 1), bottom_y); + for (i = 1; i < width; ++i) + XDrawLine (dpy, window, gc, + left_x + i * left_p, bottom_y - i, + right_x + 1 - i * right_p, bottom_y - i); + } /* Right. */ if (right_p) ------------------------------------------------------------ Use --include-merges or -n0 to see merged revisions.