From: Miles Bader Date: Sat, 5 Apr 2008 23:01:26 +0000 (+0000) Subject: Merge from emacs--rel--22 X-Git-Tag: emacs-pretest-23.0.90~6503 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/5bc6ddff00c50acf546530ef0e08a27140614d27?hp=d8c852509f6218db43e5f2ca8baace02d4fa1294 Merge from emacs--rel--22 Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1107 --- diff --git a/admin/nt/README-ftp-server b/admin/nt/README-ftp-server index a2f6cb9ede..93f8682b13 100644 --- a/admin/nt/README-ftp-server +++ b/admin/nt/README-ftp-server @@ -7,7 +7,7 @@ See the end of the file for license conditions. Version 22.2 - May 22, 2007 + March 26, 2008 This directory contains source and precompiled distributions for GNU Emacs on Windows NT/2000/XP and Windows 95/98/Me. This port is a diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index a94c43e1af..1a3bb605ef 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -11,6 +11,15 @@ * calendar.texi: Update for `calendar-date-style' replacing `european-calendar'. +2008-03-28 Jason Rumney + + * display.texi (Display Custom): Mention overlay-margin in text. + +2008-03-12 Reiner Steib + + * custom.texi, dired.texi, mini.texi, mule.texi: Add `referenced in the + tutorial' comments. + 2008-03-28 Chong Yidong * mark.texi (Mark): Rearrange nodes. diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index 1d0d6668d6..e270f86325 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi @@ -1592,6 +1592,8 @@ command is less work to invoke when you really want to. @node Init Rebinding @subsection Rebinding Keys in Your Init File +@c This node is referenced in the tutorial. When renaming or deleting +@c it, the tutorial needs to be adjusted. (TUTORIAL.de) If you have a set of key bindings that you like to use all the time, you can specify them in your @file{.emacs} file by using their Lisp diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi index 81d2a00461..72cc04dfcd 100644 --- a/doc/emacs/dired.texi +++ b/doc/emacs/dired.texi @@ -4,6 +4,8 @@ @c See file emacs.texi for copying conditions. @node Dired, Calendar/Diary, Rmail, Top @chapter Dired, the Directory Editor +@c This node is referenced in the tutorial. When renaming or deleting +@c it, the tutorial needs to be adjusted. @cindex Dired @cindex file management diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index bb84610d74..5ef7e7fa78 100644 --- a/doc/emacs/display.texi +++ b/doc/emacs/display.texi @@ -1217,7 +1217,7 @@ amount of time Emacs must remain busy before the busy indicator is displayed, by setting the variable @code{hourglass-delay}. @vindex overline-margin - On graphical display, this variables specifies the vertical position + On graphical display, the variable @code{overline-margin} specifies the vertical position of an overline above the text, including the height of the overline itself (1 pixel). The default value is 2 pixels. diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi index cbc3930203..8510fea9b9 100644 --- a/doc/emacs/mini.texi +++ b/doc/emacs/mini.texi @@ -175,6 +175,8 @@ minibuffer, set the variable @code{enable-recursive-minibuffers} to @node Completion @section Completion +@c This node is referenced in the tutorial. When renaming or deleting +@c it, the tutorial needs to be adjusted. @cindex completion Some arguments allow @dfn{completion} to enter their value. This diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi index 504e28acc8..a5d4e46200 100644 --- a/doc/emacs/mule.texi +++ b/doc/emacs/mule.texi @@ -4,6 +4,8 @@ @c See file emacs.texi for copying conditions. @node International, Major Modes, Frames, Top @chapter International Character Set Support +@c This node is referenced in the tutorial. When renaming or deleting +@c it, the tutorial needs to be adjusted. (TUTORIAL.de) @cindex MULE @cindex international scripts @cindex multibyte characters diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 20fc1bf4ac..7d480e3689 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -27,6 +27,14 @@ * trampver.texi: Update release number. +2008-03-29 Chong Yidong + + * org.texi: Update to new org-mode website. + +2008-03-29 Stefan Monnier + + * cl.texi (For Clauses): Fix loop over key-seq to match code. + 2008-03-22 Reiner Steib * gnus.texi (Foreign Groups): Add gnus-read-ephemeral-gmane-group, diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi index c16821ba3c..7c6cd1d0c4 100644 --- a/doc/misc/cl.texi +++ b/doc/misc/cl.texi @@ -2471,7 +2471,8 @@ hash table entry. @item for @var{var} being the key-codes of @var{keymap} This clause iterates over the entries in @var{keymap}. -The iteration does not enter nested keymaps or inherited (parent) keymaps. +The iteration does not enter nested keymaps but does enter inherited +(parent) keymaps. You can use @samp{the key-bindings} to access the commands bound to the keys rather than the key codes, and you can add a @code{using} clause to access both the codes and the bindings together. diff --git a/doc/misc/org.texi b/doc/misc/org.texi index 9c36b39208..a94728b1b4 100644 --- a/doc/misc/org.texi +++ b/doc/misc/org.texi @@ -2310,7 +2310,7 @@ identifying string followed by a colon. There can be no space after the colon. The following list shows examples for each link type. @example -http://www.astro.uva.nl/~dominik @r{on the web} +http://orgmode.org/ @r{on the web} file:/home/dominik/images/jupiter.jpg @r{file, absolute path} file:papers/last.pdf @r{file, relative path} news:comp.emacs @r{Usenet link} diff --git a/etc/AUTHORS b/etc/AUTHORS index 69273d8087..33e68941ae 100644 --- a/etc/AUTHORS +++ b/etc/AUTHORS @@ -132,7 +132,7 @@ Andreas Luik: changed xfns.c xterm.c Andreas Schwab: changed Makefile.in files.el lisp.h alloc.c xdisp.c configure.in editfns.c fns.c print.c coding.c dired.el fileio.c info.el eval.c process.c simple.el buffer.c minibuf.c window.c xterm.c emacs.c - and 451 other files + and 452 other files Andreas Seltenreich: changed nnweb.el gnus.texi nnslashdot.el gnus-util.el mm-uu.el url-http.el battery.el comint.el easy-mmode.el @@ -344,10 +344,10 @@ Charlie Martin: wrote autoinsert.el Cheng Gao: changed MORE.STUFF flymake.el tips.texi url-dired.el url-file.el url-handlers.el url-http.el url-nfs.el -Chong Yidong: changed files.el cus-edit.el simple.el xdisp.c longlines.el +Chong Yidong: changed files.el simple.el cus-edit.el xdisp.c longlines.el display.texi custom.el files.texi image-mode.el keyboard.c info.el compile.el custom.texi text.texi xterm.c frames.texi image.c mouse.el - misc.texi startup.el wid-edit.el and 302 other files + misc.texi startup.el wid-edit.el and 322 other files Chris Hanson: changed xscheme.el scheme.el xterm.c hpux.h x11term.c hp9000s300.h keyboard.c process.c texinfmt.el emacsclient.c sort.el @@ -429,9 +429,9 @@ Dan Christensen: changed gnus-sum.el nnfolder.el gnus-art.el Dan Nicolaescu: wrote iris-ansi.el romanian.el and changed xterm.el term.el hideshow.el vc-hg.el verilog-mode.el - files.el isearch.el sh-script.el icon.el lisp.h vc.el cus-edit.el - faces.el font-lock.el grep.el diff-mode.el eterm-color.ti ibuffer.el - replace.el rxvt.el term.c and 191 other files + files.el isearch.el sh-script.el font-lock.el icon.el lisp.h vc.el + cus-edit.el faces.el grep.el diff-mode.el eterm-color.ti ibuffer.el + replace.el rxvt.el term.c and 192 other files Daniel Brockman: changed cus-start.el format-spec.el ibuffer.el rcirc.el @@ -876,7 +876,7 @@ Glenn Morris: changed f90.el diary-lib.el calendar.el fortran.el calendar.texi COPYING appt.el Makefile.in files.el sh-script.el timeclock.el cal-menu.el configure.in simple.el tex-mode.el calc.texi complete.el fr-refcard.tex orgcard.tex programs.texi startup.el - and 249 other files + and 250 other files Glynn Clements: wrote gamegrid.el snake.el tetris.el @@ -1205,10 +1205,12 @@ Joel Ray Holveck: changed gnus-sum.el info.el Joev Dubach: changed nntp.el +Johan Bockg$: changed info.el + Johan Bockg,Ae(Brd: changed erc.el erc-backend.el cl-macs.el erc-match.el custom.el erc-nickserv.el erc-ring.el erc-speak.el erc-track.el - simple.el xterm.el align.el browse-url.el bytecomp.el calendar.el - cl.texi dired-aux.el dired-x.el display.texi erc-bbdb.el erc-button.el + simple.el subr.el xterm.el align.el browse-url.el bytecomp.el + calendar.el cl.texi dired-aux.el dired-x.el display.texi erc-bbdb.el and 23 other files Johan Vromans: wrote forms-d2.el forms.el iso-acc.el @@ -1315,7 +1317,7 @@ and changed files.el perl-mode.el Juanma Barranquero: changed makefile.w32-in subr.el faces.el files.el help-fns.el bs.el w32fns.c buffer.c simple.el desktop.el emacsclient.c replace.el eval.c org.el idlwave.el ido.el process.c vhdl-mode.el - window.c xdisp.c allout.el and 660 other files + window.c xdisp.c allout.el and 661 other files Juergen Hoetzel: changed url-handlers.el @@ -1330,8 +1332,8 @@ Junio Hamano: changed window.el Jure Cuhalev: changed ispell.el Juri Linkov: changed info.el simple.el isearch.el replace.el compile.el - faces.el display.texi grep.el descr-text.el cus-edit.el startup.el - dired.el dired-aux.el edebug.el compare-w.el desktop.el files.el + faces.el display.texi grep.el descr-text.el cus-edit.el dired.el + startup.el dired-aux.el edebug.el compare-w.el desktop.el files.el lisp-mode.el lisp.el man.el menu-bar.el and 224 other files Justin Sheehy: changed gnus-sum.el nntp.el @@ -1394,9 +1396,9 @@ Katsuhiro Hermit Endo: changed gnus-group.el gnus-spec.el Katsumi Yamaoka: wrote canlock.el and changed gnus-art.el message.el gnus-sum.el gnus.texi mm-decode.el - mm-view.el gnus-util.el gnus.el mm-util.el gnus-msg.el gnus-agent.el - gnus-start.el lpath.el nntp.el rfc2047.el gnus-group.el dgnushack.el - mm-uu.el mml.el nnrss.el message.texi and 76 other files + mm-view.el gnus-util.el gnus.el mm-util.el gnus-msg.el nntp.el + gnus-agent.el gnus-start.el lpath.el rfc2047.el gnus-group.el + dgnushack.el mm-uu.el mml.el nnrss.el message.texi and 76 other files Kaveh R. Ghazi: changed delta88k.h xterm.c @@ -1986,6 +1988,8 @@ Niklas Morberg: changed nnweb.el gnus-art.el nnimap.el spam.el Nikolaj Schumacher: changed compile.el rx.el +Nils Ackermann: changed message.el nnmh.el + Noah Friedman: wrote eldoc.el rlogin.el rsz-mini.el type-break.el and changed comint.el emacs-buffer.gdb files.el mailabbrev.el sendmail.el subr.el timer.el yow.el battery.el complete.el config.in configure.in @@ -2224,11 +2228,11 @@ and changed gnus-art.el gnus-msg.el gnus.texi message.el nnmail.el pgg-gpg.el Reiner Steib: wrote gmm-utils.el -and changed gnus-art.el gnus.texi message.el gnus-sum.el gnus.el +and changed gnus.texi gnus-art.el message.el gnus-sum.el gnus.el gnus-group.el gnus-faq.texi mm-util.el gnus-start.el gnus-util.el message.texi mml.el gnus-score.el gnus-agent.el gnus-msg.el spam.el - files.el nnmail.el spam-report.el mm-decode.el nnweb.el - and 168 other files + files.el nnmail.el spam-report.el mail-source.el mm-decode.el + and 170 other files Remek Trzaska: changed gnus-ems.el @@ -2474,7 +2478,7 @@ Stefan Monnier: wrote bibtex-style.el bibtex.el css-mode.el cvs-status.el and changed vc.el font-lock.el pcvs.el newcomment.el subr.el lisp.h keyboard.c fill.el tex-mode.el keymap.c vc-hooks.el compile.el simple.el files.el alloc.c easy-mmode.el regex.c syntax.c info.el - xdisp.c sh-script.el and 528 other files + xdisp.c sh-script.el and 529 other files Steinar Bang: changed imap.el diff --git a/etc/ChangeLog b/etc/ChangeLog index de3b0fef5f..7ca037679c 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,14 +1,26 @@ +2008-03-22 Reiner Steib + + * GNUS-NEWS (incoming mail files): Add version. + +2008-03-12 Reiner Steib + + * tutorials/TUTORIAL.de: Remove even more discussion of flow + control. Refer to node name `Init Rebinding' instead of title. + 2008-03-13 Carsten Dominik * refcards/orgcard.tex: Minor fixes. 2008-03-12 Chong Yidong - * TUTORIAL, TUTORIAL.fr, TUTORIAL.ro, TUTORIAL.bg, TUTORIAL.it: - * TUTORIAL.ru, TUTORIAL.cn, TUTORIAL.ja, TUTORIAL.sk: - * TUTORIAL.cs, TUTORIAL.ko, TUTORIAL.sl, TUTORIAL.de: - * TUTORIAL.nl, TUTORIAL.sv, TUTORIAL.eo, TUTORIAL.pl, TUTORIAL.th: - * TUTORIAL.es, TUTORIAL.pt_BR: Remove discussion of flow control. + * tutorials/TUTORIAL, tutorials/TUTORIAL.fr, tutorials/TUTORIAL.ro: + * tutorials/TUTORIAL.bg, tutorials/TUTORIAL.it, tutorials/TUTORIAL.ru: + * tutorials/TUTORIAL.cn, tutorials/TUTORIAL.ja, tutorials/TUTORIAL.sk: + * tutorials/TUTORIAL.cs, tutorials/TUTORIAL.ko, tutorials/TUTORIAL.sl: + * tutorials/TUTORIAL.de, tutorials/TUTORIAL.nl, tutorials/TUTORIAL.sv: + * tutorials/TUTORIAL.eo, tutorials/TUTORIAL.pl, tutorials/TUTORIAL.th: + * tutorials/TUTORIAL.es, tutorials/TUTORIAL.pt_BR: + Remove discussion of flow control. 2008-03-12 Juanma Barranquero diff --git a/etc/GNUS-NEWS b/etc/GNUS-NEWS index 3562069dad..e0c8808ec7 100644 --- a/etc/GNUS-NEWS +++ b/etc/GNUS-NEWS @@ -62,6 +62,7 @@ querying the user about whether to do so. ** Old intermediate incoming mail files (`Incoming*') are deleted after a couple of days, not immediately. *Note Mail Source Customization::. +(New in Gnus 5.10.10 / Emacs 22.2) * Changes in summary and article mode diff --git a/etc/NEWS.22 b/etc/NEWS.22 index 5d54528988..3fa234723d 100644 --- a/etc/NEWS.22 +++ b/etc/NEWS.22 @@ -122,12 +122,18 @@ was mistakenly scrolled on compiles after the first. Customize `compilation-scroll-output' if you want to retain the scrolling. ** `font-lock-comment-face' no longer differs from the default on -displays with fewer than 16 colors (e.g. older xterms and the Linux console). -On such displays, only the comment delimiters will appear to be fontified -(in the new face `font-lock-comment-delimiter-face'). To restore the -old appearance, customize `font-lock-comment-face', or use a newer terminal -emulator that supports more colors (256 is now common). (This was new -in Emacs 22.1, but was not described.) +displays with fewer than 16 colors and dark background (e.g. older +xterms and the Linux console). On such displays, only the comment +delimiters will appear to be fontified (in the new face +`font-lock-comment-delimiter-face'). To restore the old appearance, +customize `font-lock-comment-face'. Another alternative is to use a +newer terminal emulator that supports more colors (256 is now common). +For example, for xterm compatible emulators that support 256 colors, +you can run emacs like this: +env TERM=xterm-256color emacs -nw +(This was new in Emacs 22.1, but was not described. In Emacs 22.1 +this also happened for terminals with a light background, that is not +the case anymore). * New Modes and Packages in Emacs 22.2 diff --git a/etc/PROBLEMS b/etc/PROBLEMS index 4f39fa0d3c..93b90b99a1 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS @@ -2139,6 +2139,10 @@ problem. ** Known problems with the MS-Windows port of Emacs 22.1 +M-x term does not work on MS-Windows. TTY emulation on Windows is +undocumented, and programs such as stty which are used on posix platforms +to control tty emulation do not exist for native windows terminals. + Using create-fontset-from-ascii-font or the --font startup parameter with a Chinese, Japanese or Korean font leads to display problems. Use a Latin-only font as your default font. If you want control over diff --git a/etc/tutorials/TUTORIAL.de b/etc/tutorials/TUTORIAL.de index b3d3e6eb75..f11f5180b6 100644 --- a/etc/tutorials/TUTORIAL.de +++ b/etc/tutorials/TUTORIAL.de @@ -390,9 +390,9 @@ Allgemein gesprochen l aktuellen Cursorposition. [Beachten Sie, daß ein logischer Befehlsname ist, der auf die -jeweilige Tastatur abgebildet wird. Lesen Sie im Abschnitt `Rebinding -Keys in Your Init File' des Emacs-Handbuches nach, wie Sie -gegebenenfalls die Tastaturbelegung verändern können.] +jeweilige Tastatur abgebildet wird. Lesen Sie im Abschnitt `Init +Rebinding' des Emacs-Handbuches nach, wie Sie gegebenenfalls die +Tastaturbelegung verändern können.] >> Probieren Sie das jetzt aus: Geben Sie ein paar Zeichen ein und löschen Sie sie wieder mit . Sie brauchen sich keine @@ -1037,16 +1037,6 @@ bet kurzer Ton, und Emacs sagt Ihnen, daß die Suche im Augenblick fehlschlägt (`failing'). C-g beendet ebenfalls einen Suchvorgang. -Anmerkung: Wie weiter oben schon einmal erwähnt, scheint es bei -einigen Systemen, als ob das Ausführen von C-s Emacs abstürzen läßt -(Emacs reagiert mit keinen Meldungen mehr; der Bildschirm wirkt -eingefroren). Dieser Effekt tritt auf, wenn das Betriebssystem das -Zeichen C-s abfängt (es wird für `flow control' verwendet) und nicht -an Emacs weiterreicht. Um den Bildschirm wieder zum Leben zu -erwecken, geben Sie C-q ein, und lesen Sie dann den Abschnitt -`Spontaneous Entry to Incremental Search' im Emacs-Handbuch, was man -am besten tun kann. - Wenn Sie sich mitten in einer inkrementellen Suche befinden und drücken, wird das letzte Zeichen im Suchstring gelöscht, und der Cursor springt zurück auf die letzte Suchposition. Angenommen, diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1c0601493c..914ce9003a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,31 @@ +2008-04-05 Stefan Monnier + + * vc-bzr.el (vc-bzr-log-view-mode, vc-bzr-annotate-command) + (vc-bzr-annotate-time, vc-bzr-annotate-extract-revision-at-line): + Revision numbers can include ".". + + * diff-mode.el (diff-end-of-hunk): Be careful not to overlook trailing + "+" lines not accounted for by counting "-" and context lines. + +2008-04-05 YAMAMOTO Mitsuharu + + * term/mac-win.el (mac-service-open-file): Use file URL instead of + file name string. + +2008-04-05 Stefan Monnier + + * vc-bzr.el (vc-bzr-annotate-command): Preserve line alignment. + (vc-bzr-annotate-time): Accept space used to preserve alignment. + +2008-04-05 Richard Stallman + + * emacs-lisp/advice.el (defadvice): Add usage pattern. + +2008-04-05 Nick Roberts + + * progmodes/gdb-ui.el: Add advice about using Cygwin GDB (from a + thread in [h-e-w]). + 2008-04-05 Juanma Barranquero * files.el (abort-if-file-too-large): Fix typo in docstring. diff --git a/lisp/diff-mode.el b/lisp/diff-mode.el index 151811c037..970df74da6 100644 --- a/lisp/diff-mode.el +++ b/lisp/diff-mode.el @@ -438,12 +438,23 @@ See http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg01990.html") (setq style (diff-hunk-style style)) (goto-char (match-end 0)) (when (and (not donttrustheader) (match-end 2)) + (let* ((nold (string-to-number (match-string 2))) + (nnew (string-to-number (match-string 4))) + (endold (save-excursion (re-search-forward (if diff-valid-unified-empty-line "^[- \n]" "^[- ]") - nil t - (string-to-number (match-string 2))) - (setq end (line-beginning-position 2))))) + nil t nold) + (line-beginning-position 2))) + (endnew + ;; The hunk may end with a bunch of "+" lines, so the `end' is + ;; then further than computed above. + (save-excursion + (re-search-forward (if diff-valid-unified-empty-line + "^[+ \n]" "^[+ ]") + nil t nnew) + (line-beginning-position 2)))) + (setq end (max endold endnew))))) ;; We may have a first evaluation of `end' thanks to the hunk header. (unless end (setq end (and (re-search-forward diff --git a/lisp/dired.el b/lisp/dired.el index 70ce1718ea..4efb091f27 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -346,6 +346,8 @@ Subexpression 2 must end right before the \\n or \\r.") (defface dired-perm-write '((((type w32 pc)) :inherit default) ;; These default to rw-rw-rw. + ;; Inherit from font-lock-comment-delimiter-face since with min-colors 8 + ;; font-lock-comment-face is not colored any more. (t (:inherit font-lock-comment-delimiter-face))) "Face used to highlight permissions of group- and world-writable files." :group 'dired-faces diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el index ca3a062198..e675361447 100644 --- a/lisp/emacs-lisp/advice.el +++ b/lisp/emacs-lisp/advice.el @@ -3792,7 +3792,10 @@ the advised function. `freeze' implies `activate' and `preactivate'. The documentation of the advised function can be dumped onto the `DOC' file during preloading. -See Info node `(elisp)Advising Functions' for comprehensive documentation." +See Info node `(elisp)Advising Functions' for comprehensive documentation. +usage: (defadvice FUNCTION (CLASS NAME [POSITION] [ARGLIST] FLAG...) + [DOCSTRING] [INTERACTIVE-FORM] + BODY...)" (declare (doc-string 3)) (if (not (ad-name-p function)) (error "defadvice: Invalid function name: %s" function)) diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index 08c5df7b72..19710341f7 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el @@ -77,6 +77,14 @@ ;; and compiling with -DUNBUFFERED while debugging. +;; If you are using Cygwin GDB and find that the source is not being displayed +;; in Emacs when you step through it, possible solutions are to: + +;; 1) Use Cygwin X Windows and Cygwin Emacs. +;; (Since 22.1 Emacs builds under Cygwin.) +;; 2) Use MinGW GDB instead. +;; 3) Use cygwin-mount.el + ;;; Known Bugs: ;; 1) Cannot handle multiple debug sessions. diff --git a/lisp/term/mac-win.el b/lisp/term/mac-win.el index c8f26edff3..60f2705289 100644 --- a/lisp/term/mac-win.el +++ b/lisp/term/mac-win.el @@ -2197,7 +2197,9 @@ either in the current buffer or in the echo area." (defun mac-service-open-file () "Open the file specified by the selection value for Services." (interactive) - (find-file-existing (x-selection-value mac-service-selection))) + ;; The selection seems not to contain the file name as + ;; public.utf16-plain-text data on Mac OS X 10.4. + (dnd-open-file (x-get-selection mac-service-selection 'public.file-url) nil)) (defun mac-service-open-selection () "Create a new buffer containing the selection value for Services." diff --git a/lisp/vc-bzr.el b/lisp/vc-bzr.el index 47abf98c32..ff17ee4e9b 100644 --- a/lisp/vc-bzr.el +++ b/lisp/vc-bzr.el @@ -519,7 +519,7 @@ property containing author and date information." ;; to allow saving space by sharing the text properties. (setq vc-bzr-annotation-table (make-hash-table :test 'equal)) (goto-char (point-min)) - (while (re-search-forward "^\\( *[0-9]+\\) +\\(.+\\) +\\([0-9]\\{8\\}\\) |" + (while (re-search-forward "^\\( *[0-9.]+ *\\) \\([^\n ]+\\) +\\([0-9]\\{8\\}\\) |" nil t) (let* ((rev (match-string 1)) (author (match-string 2)) @@ -535,7 +535,7 @@ property containing author and date information." (insert tag " |"))))) (defun vc-bzr-annotate-time () - (when (re-search-forward "^ *[0-9]+ |" nil t) + (when (re-search-forward "^ *[0-9.]+ +|" nil t) (let ((prop (get-text-property (line-beginning-position) 'help-echo))) (string-match "[0-9]+\\'" prop) (vc-annotate-convert-time @@ -550,7 +550,7 @@ property containing author and date information." Return nil if current line isn't annotated." (save-excursion (beginning-of-line) - (if (looking-at " *\\([0-9]+\\) | ") + (if (looking-at " *\\([0-9.]+\\) | ") (match-string-no-properties 1)))) (defun vc-bzr-command-discarding-stderr (command &rest args) diff --git a/src/ChangeLog b/src/ChangeLog index 0071dc3b22..c683d77ad1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,29 @@ +2008-04-05 YAMAMOTO Mitsuharu + + * macmenu.c (fill_menu) [TARGET_API_MAC_CARBON]: Use + SetMenuItemHierarchicalMenu. + +2008-04-05 Jason Rumney + + * image.c (pbm_load): Allow color values up to 65535. + Throw an error if max_color_idx is outside the supported range. + Report an error when image size is invalid. + Read two bytes at a time when raw images have max_color_idx above 255. + +2008-04-05 Eli Zaretskii + + * w32.c (readdir): If FindFirstFile/FindNextFile return in + cFileName a file name that includes `?' characters, use the 8+3 + alias in cAlternateFileName instead. + +2008-04-05 Kenichi Handa + + * ccl.c (ccl_driver): If ccl->quit_silently is nonzero, don't + append "CCL: Quitted" when the CCL program is quitted. + (setup_ccl_program): Initialize ccl->quit_silently to zero. + + * ccl.h (struct ccl_program): New member quit_silently. + 2008-04-05 Chong Yidong * search.c (compile_pattern_1): Treat non-nil and non-string of diff --git a/src/ccl.c b/src/ccl.c index 6fc6f29d42..380403c6ec 100644 --- a/src/ccl.c +++ b/src/ccl.c @@ -1745,7 +1745,8 @@ ccl_driver (ccl, source, destination, src_size, dst_size, charset_list) break; case CCL_STAT_QUIT: - sprintf(msg, "\nCCL: Quited."); + if (! ccl->quit_silently) + sprintf(msg, "\nCCL: Quited."); break; default: @@ -1948,6 +1949,7 @@ setup_ccl_program (ccl, ccl_prog) ccl->stack_idx = 0; ccl->suppress_error = 0; ccl->eight_bit_control = 0; + ccl->quit_silently = 0; return 0; } diff --git a/src/ccl.h b/src/ccl.h index 4ac8b990fe..18c6ae1ebc 100644 --- a/src/ccl.h +++ b/src/ccl.h @@ -77,6 +77,9 @@ struct ccl_program { CCL_WRITE_CHAR. After execution, if no such byte is written, set this value to zero. */ + int quit_silently; /* If nonzero, don't append "CCL: + Quitted" to the generated text when + CCL program is quitted. */ }; /* This data type is used for the spec field of the structure diff --git a/src/image.c b/src/image.c index 81754ca68d..fbf6a15cef 100644 --- a/src/image.c +++ b/src/image.c @@ -5801,13 +5801,18 @@ pbm_load (f, img) if (type != PBM_MONO) { max_color_idx = pbm_scan_number (&p, end); - if (raw_p && max_color_idx > 255) - max_color_idx = 255; + if (max_color_idx > 65535 || max_color_idx < 0) + { + image_error ("Unsupported maximum PBM color value", Qnil, Qnil); + goto error; + } } - if (!check_image_size (f, width, height) - || (type != PBM_MONO && max_color_idx < 0)) - goto error; + if (!check_image_size (f, width, height)) + { + image_error ("Invalid image size", Qnil, Qnil); + goto error; + } if (!x_create_x_image_and_pixmap (f, width, height, 0, &ximg, &img->pixmap)) @@ -5867,10 +5872,13 @@ pbm_load (f, img) } else { - if (raw_p - && ((type == PBM_GRAY) - ? (p + height * width > end) - : (p + 3 * height * width > end))) + int expected_size = height * width; + if (max_color_idx > 255) + expected_size *= 2; + if (type == PBM_COLOR) + expected_size *= 3; + + if (raw_p && p + expected_size > end) { x_destroy_x_image (ximg); x_clear_image (f, img); @@ -5884,13 +5892,25 @@ pbm_load (f, img) { int r, g, b; - if (type == PBM_GRAY) - r = g = b = raw_p ? *p++ : pbm_scan_number (&p, end); + if (type == PBM_GRAY && raw_p) + { + r = g = b = *p++; + if (max_color_idx > 255) + r = g = b = r * 256 + *p++; + } + else if (type == PBM_GRAY) + r = g = b = pbm_scan_number (&p, end); else if (raw_p) { r = *p++; + if (max_color_idx > 255) + r = r * 256 + *p++; g = *p++; + if (max_color_idx > 255) + g = g * 256 + *p++; b = *p++; + if (max_color_idx > 255) + b = b * 256 + *p++; } else { diff --git a/src/mac.c b/src/mac.c index 5a8c8823ec..74cfeb2486 100644 --- a/src/mac.c +++ b/src/mac.c @@ -79,7 +79,7 @@ static ComponentInstance as_scripting_component; /* The single script context used for all script executions. */ static OSAID as_script_context; -#ifndef MAC_OS_X +#ifndef MAC_OSX #if TARGET_API_MAC_CARBON static int wakeup_from_rne_enabled_p = 0; #define ENABLE_WAKEUP_FROM_RNE (wakeup_from_rne_enabled_p = 1) diff --git a/src/macmenu.c b/src/macmenu.c index 1d2e89ddd2..ddc6e3c2b8 100644 --- a/src/macmenu.c +++ b/src/macmenu.c @@ -39,7 +39,7 @@ Boston, MA 02110-1301, USA. */ #if !TARGET_API_MAC_CARBON #include #include -#include +#include #include #include #include @@ -2752,7 +2752,7 @@ create_and_show_dialog (f, first_wv) SendEventToEventTarget (event, toolbox_dispatcher); ReleaseEvent (event); } -#ifdef MAC_OSX +#if 0 /* defined (MAC_OSX) */ else if (err != eventLoopTimedOutErr) { if (err == eventLoopQuitErr) @@ -3194,7 +3194,11 @@ fill_menu (menu, wv, kind, submenu_id) MenuRef submenu = NewMenu (submenu_id, "\pX"); InsertMenu (submenu, -1); +#if TARGET_API_MAC_CARBON + SetMenuItemHierarchicalMenu (menu, pos, submenu); +#else SetMenuItemHierarchicalID (menu, pos, submenu_id); +#endif submenu_id = fill_menu (submenu, wv->contents, kind, submenu_id + 1); } } @@ -3256,7 +3260,23 @@ fill_menubar (wv, deep_p) if (err == noErr) { if (CFStringCompare (title, old_title, 0) != kCFCompareEqualTo) - err = SetMenuTitleWithCFString (menu, title); + { +#ifdef MAC_OSX + if (id + 1 == min_menu_id[MAC_MENU_MENU_BAR + 1] + || GetMenuRef (id + 1) == NULL) + { + /* This is a workaround for Mac OS X 10.5 where + just calling SetMenuTitleWithCFString fails + to change the title of the last (Help) menu + in the menu bar. */ + DeleteMenu (id); + DisposeMenu (menu); + menu = NULL; + } + else +#endif /* MAC_OSX */ + err = SetMenuTitleWithCFString (menu, title); + } CFRelease (old_title); } else diff --git a/src/macselect.c b/src/macselect.c index 55466d4a54..51a30e3a6b 100644 --- a/src/macselect.c +++ b/src/macselect.c @@ -468,7 +468,11 @@ x_own_selection (selection_name, selection_value) selection_time = long_to_cons (last_event_timestamp); if (sel) - ownership_info = mac_get_selection_ownership_info (sel); + { + BLOCK_INPUT; + ownership_info = mac_get_selection_ownership_info (sel); + UNBLOCK_INPUT; + } else ownership_info = Qnil; /* dummy value for local-only selection */ selection_data = Fcons (selection_name, diff --git a/src/macterm.h b/src/macterm.h index ddbf0f0418..1e0ffbab26 100644 --- a/src/macterm.h +++ b/src/macterm.h @@ -631,6 +631,7 @@ extern void x_free_frame_resources P_ ((struct frame *)); extern void x_destroy_window P_ ((struct frame *)); extern void x_wm_set_size_hint P_ ((struct frame *, long, int)); extern void x_delete_display P_ ((struct x_display_info *)); +extern void mac_initialize P_ ((void)); extern Pixmap XCreatePixmap P_ ((Display *, WindowRef, unsigned int, unsigned int, unsigned int)); extern Pixmap XCreatePixmapFromBitmapData P_ ((Display *, WindowRef, char *, diff --git a/src/w32.c b/src/w32.c index 1108f22b11..af7de20bc3 100644 --- a/src/w32.c +++ b/src/w32.c @@ -1935,6 +1935,21 @@ readdir (DIR *dirp) dir_static.d_namlen = strlen (dir_static.d_name); dir_static.d_reclen = sizeof (struct direct) - MAXNAMLEN + 3 + dir_static.d_namlen - dir_static.d_namlen % 4; + + /* If the file name in cFileName[] includes `?' characters, it means + the original file name used characters that cannot be represented + by the current ANSI codepage. To avoid total lossage, retrieve + the short 8+3 alias of the long file name. */ + if (_mbspbrk (dir_find_data.cFileName, "?")) + { + strcpy (dir_static.d_name, dir_find_data.cAlternateFileName); + /* 8+3 aliases are returned in all caps, which could break + various alists that look at filenames' extensions. */ + downcase = 1; + } + else + strcpy (dir_static.d_name, dir_find_data.cFileName); + dir_static.d_namlen = strlen (dir_static.d_name); if (dir_is_fat) _strlwr (dir_static.d_name); else if (downcase)