No revisions to pull. ------------------------------------------------------------ revno: 105419 committer: Daiki Ueno branch nick: trunk timestamp: Mon 2011-08-08 16:11:25 +0900 message: Format GPG errors (bug#9255). * epg.el (epg--status-KEYEXPIRED, epg--status-KEYREVOKED): Fix typo. (epg-error-to-string, epg-errors-to-string): New function. (epg-wait-for-completion): Reverse errors list. (epg--check-error-for-decrypt, epg-sign-file, epg-sign-string) (epg-encrypt-file, epg-encrypt-string, epg-export-keys-to-file) (epg--import-keys-1, epg-receive-keys, epg-delete-keys) (epg-sign-keys, epg-generate-key-from-file) (epg-generate-key-from-string): Format errors by using epg-errors-to-string (bug#9255). (epg--status-INV_SGNR, epg--status-NO_SGNR): New status handler. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-08-07 14:14:54 +0000 +++ lisp/ChangeLog 2011-08-08 07:11:25 +0000 @@ -1,3 +1,16 @@ +2011-08-08 Daiki Ueno + + * epg.el (epg--status-KEYEXPIRED, epg--status-KEYREVOKED): Fix typo. + (epg-error-to-string, epg-errors-to-string): New function. + (epg-wait-for-completion): Reverse errors list. + (epg--check-error-for-decrypt, epg-sign-file, epg-sign-string) + (epg-encrypt-file, epg-encrypt-string, epg-export-keys-to-file) + (epg--import-keys-1, epg-receive-keys, epg-delete-keys) + (epg-sign-keys, epg-generate-key-from-file) + (epg-generate-key-from-string): Format errors by using + epg-errors-to-string (bug#9255). + (epg--status-INV_SGNR, epg--status-NO_SGNR): New status handler. + 2011-08-07 Juri Linkov * faces.el (list-faces-display): Remove extra angle bracket === modified file 'lisp/epg.el' --- lisp/epg.el 2011-04-04 06:16:23 +0000 +++ lisp/epg.el 2011-08-08 07:11:25 +0000 @@ -1069,6 +1069,59 @@ (format " secret keys unchanged: %d\n" (epg-import-result-secret-unchanged import-result))))) +(defun epg-error-to-string (error) + (cond + ((eq (car error) 'exit) + "Exit") + ((eq (car error) 'quit) + "Cancelled") + ((eq (car error) 'no-data) + (let ((entry (assq (cdr error) epg-no-data-reason-alist))) + (if entry + (format "No data (%s)" (downcase (cdr entry))) + "No data"))) + ((eq (car error) 'unexpected) + (let ((entry (assq (cdr error) epg-unexpected-reason-alist))) + (if entry + (format "Unexpected (%s)" (downcase (cdr entry))) + "Unexpected"))) + ((eq (car error) 'bad-armor) + "Bad armor") + ((memq (car error) '(invalid-recipient invalid-signer)) + (concat + (if (eq (car error) 'invalid-recipient) + "Unusable public key" + "Unusable secret key") + (let ((entry (assq 'requested (cdr error)))) + (if entry + (format ": %s" (cdr entry)) + ": ")) + (let ((entry (assq 'reason (cdr error)))) + (if (and entry + (> (cdr entry) 0) ;no specific reason given + (setq entry (assq (cdr entry) + epg-invalid-recipients-reason-alist))) + (format " (%s)" (downcase (cdr entry))) + "")))) + ((eq (car error) 'no-pubkey) + (format "No public key: %s" (cdr error))) + ((eq (car error) 'no-seckey) + (format "No secret key: %s" (cdr error))) + ((eq (car error) 'no-recipients) + "No recipients") + ((eq (car error) 'no-signers) + "No signers") + ((eq (car error) 'delete-problem) + (let ((entry (assq (cdr error) epg-delete-problem-reason-alist))) + (if entry + (format "Delete problem (%s)" (downcase (cdr entry))) + "Delete problem"))) + ((eq (car error) 'key-not-created) + "Key not created"))) + +(defun epg-errors-to-string (errors) + (mapconcat #'epg-error-to-string errors "; ")) + (defun epg--start (context args) "Start `epg-gpg-program' in a subprocess with given ARGS." (if (and (epg-context-process context) @@ -1195,7 +1248,7 @@ (if epg-pending-status-list (epg-context-set-result-for context 'error - (cons (list 'exit) + (cons '(exit) (epg-context-result-for context 'error)))))) (defun epg-wait-for-completion (context) @@ -1203,7 +1256,10 @@ (while (eq (process-status (epg-context-process context)) 'run) (accept-process-output (epg-context-process context) 1)) ;; This line is needed to run the process-filter right now. - (sleep-for 0.1)) + (sleep-for 0.1) + (epg-context-set-result-for + context 'error + (nreverse (epg-context-result-for context 'error)))) (defun epg-reset (context) "Reset the CONTEXT." @@ -1399,11 +1455,22 @@ (epg--status-*SIG context 'bad string)) (defun epg--status-NO_PUBKEY (context string) - (let ((signature (car (epg-context-result-for context 'verify)))) - (if (and signature - (eq (epg-signature-status signature) 'error) - (equal (epg-signature-key-id signature) string)) - (epg-signature-set-status signature 'no-pubkey)))) + (if (eq (epg-context-operation context) 'verify) + (let ((signature (car (epg-context-result-for context 'verify)))) + (if (and signature + (eq (epg-signature-status signature) 'error) + (equal (epg-signature-key-id signature) string)) + (epg-signature-set-status signature 'no-pubkey))) + (epg-context-set-result-for + context 'error + (cons (cons 'no-pubkey string) + (epg-context-result-for context 'error))))) + +(defun epg--status-NO_SECKEY (context string) + (epg-context-set-result-for + context 'error + (cons (cons 'no-seckey string) + (epg-context-result-for context 'error)))) (defun epg--time-from-seconds (seconds) (let ((number-seconds (string-to-number (concat seconds ".0")))) @@ -1564,13 +1631,13 @@ context 'key (cons (list 'key-expired (cons 'expiration-time (epg--time-from-seconds string))) - (epg-context-result-for context 'error)))) + (epg-context-result-for context 'key)))) (defun epg--status-KEYREVOKED (context _string) (epg-context-set-result-for context 'key (cons '(key-revoked) - (epg-context-result-for context 'error)))) + (epg-context-result-for context 'key)))) (defun epg--status-BADARMOR (context _string) (epg-context-set-result-for @@ -1585,7 +1652,18 @@ (cons (list 'invalid-recipient (cons 'reason (string-to-number (match-string 1 string))) - (cons 'requested-recipient + (cons 'requested + (match-string 2 string))) + (epg-context-result-for context 'error))))) + +(defun epg--status-INV_SGNR (context string) + (if (string-match "\\`\\([0-9]+\\) \\(.*\\)" string) + (epg-context-set-result-for + context 'error + (cons (list 'invalid-signer + (cons 'reason + (string-to-number (match-string 1 string))) + (cons 'requested (match-string 2 string))) (epg-context-result-for context 'error))))) @@ -1595,6 +1673,12 @@ (cons '(no-recipients) (epg-context-result-for context 'error)))) +(defun epg--status-NO_SGNR (context _string) + (epg-context-set-result-for + context 'error + (cons '(no-signers) + (epg-context-result-for context 'error)))) + (defun epg--status-DELETE_PROBLEM (context string) (if (string-match "\\`\\([0-9]+\\)" string) (epg-context-set-result-for @@ -1960,17 +2044,13 @@ (epg-wait-for-status context '("BEGIN_DECRYPTION")))) (defun epg--check-error-for-decrypt (context) - (if (epg-context-result-for context 'decryption-failed) - (signal 'epg-error (list "Decryption failed"))) - (if (epg-context-result-for context 'no-secret-key) + (let ((errors (epg-context-result-for context 'error))) + (if (epg-context-result-for context 'decryption-failed) + (signal 'epg-error + (list "Decryption failed" (epg-errors-to-string errors)))) + (unless (epg-context-result-for context 'decryption-okay) (signal 'epg-error - (list "No secret key" - (epg-context-result-for context 'no-secret-key)))) - (unless (epg-context-result-for context 'decryption-okay) - (let* ((error (epg-context-result-for context 'error))) - (if (assq 'no-data error) - (signal 'epg-error (list "No data"))) - (signal 'epg-error (list "Can't decrypt" error))))) + (list "Can't decrypt" (epg-errors-to-string errors)))))) (defun epg-decrypt-file (context cipher plain) "Decrypt a file CIPHER and store the result to a file PLAIN. @@ -2165,10 +2245,9 @@ (epg-start-sign context (epg-make-data-from-file plain) mode) (epg-wait-for-completion context) (unless (epg-context-result-for context 'sign) - (if (epg-context-result-for context 'error) - (error "Sign failed: %S" - (epg-context-result-for context 'error)) - (error "Sign failed"))) + (let ((errors (epg-context-result-for context 'error))) + (signal 'epg-error + (list "Sign failed" (epg-errors-to-string errors))))) (unless signature (epg-read-output context))) (unless signature @@ -2203,9 +2282,9 @@ (epg-wait-for-completion context) (unless (epg-context-result-for context 'sign) (if (epg-context-result-for context 'error) - (error "Sign failed: %S" - (epg-context-result-for context 'error)) - (error "Sign failed"))) + (let ((errors (epg-context-result-for context 'error))) + (signal 'epg-error + (list "Sign failed" (epg-errors-to-string errors)))))) (epg-read-output context)) (epg-delete-output-file context) (if input-file @@ -2276,15 +2355,14 @@ (epg-start-encrypt context (epg-make-data-from-file plain) recipients sign always-trust) (epg-wait-for-completion context) - (if (and sign - (not (epg-context-result-for context 'sign))) - (if (epg-context-result-for context 'error) - (error "Sign failed: %S" - (epg-context-result-for context 'error)) - (error "Sign failed"))) - (if (epg-context-result-for context 'error) - (error "Encrypt failed: %S" - (epg-context-result-for context 'error))) + (let ((errors (epg-context-result-for context 'error))) + (if (and sign + (not (epg-context-result-for context 'sign))) + (signal 'epg-error + (list "Sign failed" (epg-errors-to-string errors)))) + (if errors + (signal 'epg-error + (list "Encrypt failed" (epg-errors-to-string errors))))) (unless cipher (epg-read-output context))) (unless cipher @@ -2317,15 +2395,14 @@ (epg-make-data-from-string plain)) recipients sign always-trust) (epg-wait-for-completion context) - (if (and sign - (not (epg-context-result-for context 'sign))) - (if (epg-context-result-for context 'error) - (error "Sign failed: %S" - (epg-context-result-for context 'error)) - (error "Sign failed"))) - (if (epg-context-result-for context 'error) - (error "Encrypt failed: %S" - (epg-context-result-for context 'error))) + (let ((errors (epg-context-result-for context 'error))) + (if (and sign + (not (epg-context-result-for context 'sign))) + (signal 'epg-error + (list "Sign failed" (epg-errors-to-string errors)))) + (if errors + (signal 'epg-error + (list "Encrypt failed" (epg-errors-to-string errors))))) (epg-read-output context)) (epg-delete-output-file context) (if input-file @@ -2359,9 +2436,11 @@ (epg--make-temp-file "epg-output"))) (epg-start-export-keys context keys) (epg-wait-for-completion context) - (if (epg-context-result-for context 'error) - (error "Export keys failed: %S" - (epg-context-result-for context 'error))) + (let ((errors (epg-context-result-for context 'error))) + (if errors + (signal 'epg-error + (list "Export keys failed" + (epg-errors-to-string errors))))) (unless file (epg-read-output context))) (unless file @@ -2398,9 +2477,11 @@ (progn (epg-start-import-keys context keys) (epg-wait-for-completion context) - (if (epg-context-result-for context 'error) - (error "Import keys failed: %S" - (epg-context-result-for context 'error)))) + (let ((errors (epg-context-result-for context 'error))) + (if errors + (signal 'epg-error + (list "Import keys failed" + (epg-errors-to-string errors)))))) (epg-reset context))) (defun epg-import-keys-from-file (context keys) @@ -2431,9 +2512,11 @@ (progn (epg-start-receive-keys context keys) (epg-wait-for-completion context) - (if (epg-context-result-for context 'error) - (error "Receive keys failed: %S" - (epg-context-result-for context 'error)))) + (let ((errors (epg-context-result-for context 'error))) + (if errors + (signal 'epg-error + (list "Receive keys failed" + (epg-errors-to-string errors)))))) (epg-reset context))) (defalias 'epg-import-keys-from-server 'epg-receive-keys) @@ -2463,13 +2546,11 @@ (progn (epg-start-delete-keys context keys allow-secret) (epg-wait-for-completion context) - (let ((entry (assq 'delete-problem - (epg-context-result-for context 'error)))) - (if entry - (if (setq entry (assq (cdr entry) - epg-delete-problem-reason-alist)) - (error "Delete keys failed: %s" (cdr entry)) - (error "Delete keys failed"))))) + (let ((errors (epg-context-result-for context 'error))) + (if errors + (signal 'epg-error + (list "Delete keys failed" + (epg-errors-to-string errors)))))) (epg-reset context))) (defun epg-start-sign-keys (context keys &optional local) @@ -2498,9 +2579,11 @@ (progn (epg-start-sign-keys context keys local) (epg-wait-for-completion context) - (if (epg-context-result-for context 'error) - (error "Sign keys failed: %S" - (epg-context-result-for context 'error)))) + (let ((errors (epg-context-result-for context 'error))) + (if errors + (signal 'epg-error + (list "Sign keys failed" + (epg-errors-to-string errors)))))) (epg-reset context))) (make-obsolete 'epg-sign-keys "do not use." "23.1") @@ -2532,9 +2615,11 @@ (progn (epg-start-generate-key context (epg-make-data-from-file parameters)) (epg-wait-for-completion context) - (if (epg-context-result-for context 'error) - (error "Generate key failed: %S" - (epg-context-result-for context 'error)))) + (let ((errors (epg-context-result-for context 'error))) + (if errors + (signal 'epg-error + (list "Generate key failed" + (epg-errors-to-string errors)))))) (epg-reset context))) (defun epg-generate-key-from-string (context parameters) @@ -2544,9 +2629,11 @@ (progn (epg-start-generate-key context (epg-make-data-from-string parameters)) (epg-wait-for-completion context) - (if (epg-context-result-for context 'error) - (error "Generate key failed: %S" - (epg-context-result-for context 'error)))) + (let ((errors (epg-context-result-for context 'error))) + (if errors + (signal 'epg-error + (list "Generate key failed" + (epg-errors-to-string errors)))))) (epg-reset context))) (defun epg--decode-percent-escape (string) ------------------------------------------------------------ revno: 105418 committer: Chong Yidong branch nick: trunk timestamp: Sun 2011-08-07 15:40:08 -0400 message: * composite.c (autocmp_chars): Don't reset point. That is done by restore_point_unwind (Bug#5984). diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2011-08-07 14:14:54 +0000 +++ src/ChangeLog 2011-08-07 19:40:08 +0000 @@ -1,3 +1,8 @@ +2011-08-07 Chong Yidong + + * composite.c (autocmp_chars): Don't reset point. That is done by + restore_point_unwind (Bug#5984). + 2011-08-07 Juri Linkov * editfns.c (Fformat_time_string): Doc fix, add tag `usage:' === modified file 'src/composite.c' --- src/composite.c 2011-07-09 06:28:40 +0000 +++ src/composite.c 2011-08-07 19:40:08 +0000 @@ -960,8 +960,6 @@ args[4] = font_object; args[5] = string; lgstring = safe_call (6, args); - if (NILP (string)) - TEMP_SET_PT_BOTH (pt, pt_byte); } return unbind_to (count, lgstring); } ------------------------------------------------------------ revno: 105417 fixes bug(s): http://debbugs.gnu.org/701 committer: Chong Yidong branch nick: trunk timestamp: Sun 2011-08-07 13:48:11 -0400 message: * url-http.el (url-http-parse-headers): For HTTP 301/302/307, don't convert to a GET request. diff: === modified file 'lisp/url/ChangeLog' --- lisp/url/ChangeLog 2011-07-13 14:12:06 +0000 +++ lisp/url/ChangeLog 2011-08-07 17:48:11 +0000 @@ -1,3 +1,8 @@ +2011-08-07 Chong Yidong + + * url-http.el (url-http-parse-headers): For HTTP 301/302/307, + don't convert to a GET request (Bug#701). + 2011-07-13 Chris Newton (tiny change) * url-http.el (url-http): Copy over `url-show-status' to the async === modified file 'lisp/url/url-http.el' --- lisp/url/url-http.el 2011-07-13 14:12:06 +0000 +++ lisp/url/url-http.el 2011-08-07 17:48:11 +0000 @@ -563,16 +563,8 @@ ;; automatically redirect the request unless it can be ;; confirmed by the user, since this might change the ;; conditions under which the request was issued. - (if (member url-http-method '("HEAD" "GET")) - ;; Automatic redirection is ok - nil - ;; It is just too big of a pain in the ass to get this - ;; prompt all the time. We will just silently lose our - ;; data and convert to a GET method. - (url-http-debug "Converting `%s' request to `GET' because of REDIRECT(%d)" - url-http-method url-http-response-status) - (setq url-http-method "GET" - url-http-data nil))) + (unless (member url-http-method '("HEAD" "GET")) + (setq redirect-uri nil))) (see-other ; 303 ;; The response to the request can be found under a different ;; URI and SHOULD be retrieved using a GET method on that ------------------------------------------------------------ revno: 105416 committer: Juri Linkov branch nick: trunk timestamp: Sun 2011-08-07 17:14:54 +0300 message: Minor doc fixes. Remove duplicate ChangeLog entries. * doc/emacs/dired.texi (Operating on Files): Rewrite according to the fact that `dired-do-chmod' doesn't use the `chmod' program anymore. * lisp/faces.el (list-faces-display): Remove extra angle bracket from `help-mode-map'. * lisp/info.el (Info-history-toc-nodes): Doc fix. * lisp/longlines.el (longlines-mode): Doc fix. * src/editfns.c (Fformat_time_string): Doc fix, add tag `usage:' to show the arg `TIME' instead of `TIMEVAL'. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2011-07-30 15:50:56 +0000 +++ doc/emacs/ChangeLog 2011-08-07 14:14:54 +0000 @@ -1,3 +1,8 @@ +2011-08-07 Juri Linkov + + * dired.texi (Operating on Files): Rewrite according to the fact + that `dired-do-chmod' doesn't use the `chmod' program anymore. + 2011-07-30 Michael Albinus * mini.texi (Minibuffer File): Insert a reference to Tramp for === modified file 'doc/emacs/dired.texi' --- doc/emacs/dired.texi 2011-07-13 17:55:04 +0000 +++ doc/emacs/dired.texi 2011-08-07 14:14:54 +0000 @@ -645,8 +645,8 @@ @cindex changing file permissions (in Dired) @item M @var{modespec} @key{RET} Change the mode (also called ``permission bits'') of the specified files -(@code{dired-do-chmod}). This uses the @code{chmod} program, so -@var{modespec} can be any argument that @code{chmod} can handle. +(@code{dired-do-chmod}). @var{modespec} can be in octal or symbolic +notation like arguments handled by the @code{chmod} program. @findex dired-do-chgrp @kindex G @r{(Dired)} === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-08-05 19:53:46 +0000 +++ lisp/ChangeLog 2011-08-07 14:14:54 +0000 @@ -1,3 +1,12 @@ +2011-08-07 Juri Linkov + + * faces.el (list-faces-display): Remove extra angle bracket + from `help-mode-map'. + + * info.el (Info-history-toc-nodes): Doc fix. + + * longlines.el (longlines-mode): Doc fix. + 2011-08-05 Stefan Monnier * progmodes/js.el (js--regexp-literal): Accept regexps at the beginning @@ -346,9 +355,6 @@ (string-rectangle): Go to the point after the last operation (bug#7522). - * simple.el (current-kill): Clarify what - `interprogram-paste-function' does (bug#7500). - * printing.el (pr-toggle-region): Clarify the documentation slightly (bug#7493). === modified file 'lisp/ChangeLog.15' --- lisp/ChangeLog.15 2011-07-04 20:00:56 +0000 +++ lisp/ChangeLog.15 2011-08-07 14:14:54 +0000 @@ -3573,7 +3573,7 @@ * locate.el (locate-default-make-command-line): Don't consider drive letter and root directory part of `directory-listing-before-filename-regexp'. (Bug#7308) - (locate-post-command-hook, locate-post-command-hook): New defcustoms. + (locate-post-command-hook, locate-mode-hook): New defcustoms. 2010-11-27 Stefan Monnier === modified file 'lisp/faces.el' --- lisp/faces.el 2011-07-10 02:04:45 +0000 +++ lisp/faces.el 2011-08-07 14:14:54 +0000 @@ -1255,7 +1255,7 @@ (insert (substitute-command-keys (concat - "\\>Use " + "\\Use " (if (display-mouse-p) "\\[help-follow-mouse] or ") "\\[help-follow] on a face name to customize it\n" "or on its sample text for a description of the face.\n\n"))) === modified file 'lisp/info.el' --- lisp/info.el 2011-08-02 15:21:07 +0000 +++ lisp/info.el 2011-08-07 14:14:54 +0000 @@ -2128,7 +2128,7 @@ )) (defun Info-history-toc-nodes (filename) - "History-specific implementation of `Info-history-toc-nodes'." + "History-specific implementation of `Info-toc-nodes'." `(,filename ("Top" nil nil nil))) === modified file 'lisp/longlines.el' --- lisp/longlines.el 2011-07-03 00:59:01 +0000 +++ lisp/longlines.el 2011-08-07 14:14:54 +0000 @@ -100,8 +100,8 @@ `fill-column'. The soft newlines used for line wrapping will not show up when the text is yanked or saved to disk. -With no argument, this command toggles Flyspell mode. -With a prefix argument ARG, turn Flyspell minor mode on if ARG is positive, +With no argument, this command toggles Long Lines mode. +With a prefix argument ARG, turn Long Lines minor mode on if ARG is positive, otherwise turn it off. If the variable `longlines-auto-wrap' is non-nil, lines are automatically === modified file 'src/ChangeLog' --- src/ChangeLog 2011-08-06 11:49:35 +0000 +++ src/ChangeLog 2011-08-07 14:14:54 +0000 @@ -1,3 +1,8 @@ +2011-08-07 Juri Linkov + + * editfns.c (Fformat_time_string): Doc fix, add tag `usage:' + to show the arg `TIME' instead of `TIMEVAL'. + 2011-08-06 Eli Zaretskii * xdisp.c (set_cursor_from_row): Fix cursor positioning when a === modified file 'src/editfns.c' --- src/editfns.c 2011-07-28 00:15:43 +0000 +++ src/editfns.c 2011-08-07 14:14:54 +0000 @@ -1695,7 +1695,9 @@ %EX is a locale's alternative version of %X; %OX is like %X, but uses the locale's number symbols. -For example, to produce full ISO 8601 format, use "%Y-%m-%dT%T%z". */) +For example, to produce full ISO 8601 format, use "%Y-%m-%dT%T%z". + +usage: (format-time-string FORMAT-STRING &optional TIME UNIVERSAL) */) (Lisp_Object format_string, Lisp_Object timeval, Lisp_Object universal) { time_t value; ------------------------------------------------------------ revno: 105415 committer: Glenn Morris branch nick: trunk timestamp: Sat 2011-08-06 14:23:50 -0700 message: Fix copyrights, licenses, etc in new Org files. diff: === modified file 'lisp/org/ob-awk.el' --- lisp/org/ob-awk.el 2011-07-28 15:13:49 +0000 +++ lisp/org/ob-awk.el 2011-08-06 21:23:50 +0000 @@ -24,8 +24,6 @@ ;;; Commentary: -;;; Commentary: - ;; Babel's awk can use special header argument: ;; ;; - :in-file takes a path to a file of data to be processed by awk === modified file 'lisp/org/ob-lilypond.el' --- lisp/org/ob-lilypond.el 2011-07-28 15:13:49 +0000 +++ lisp/org/ob-lilypond.el 2011-08-06 21:23:50 +0000 @@ -1,6 +1,6 @@ ;;; ob-lilypond.el --- org-babel functions for lilypond evaluation -;; Copyright (C) 2010 Free Software Foundation, Inc. +;; Copyright (C) 2010-2011 Free Software Foundation, Inc. ;; Author: Martyn Jago ;; Keywords: babel language, literate programming === modified file 'lisp/org/ob-maxima.el' --- lisp/org/ob-maxima.el 2011-07-28 15:13:49 +0000 +++ lisp/org/ob-maxima.el 2011-08-06 21:23:50 +0000 @@ -1,28 +1,27 @@ ;;; ob-maxima.el --- org-babel functions for maxima evaluation -;; Copyright (c) 2009, 2010, 2011 Eric S Fraga, Eric Schulte +;; Copyright (C) 2009-2011 Free Software Foundation, Inc. -;; Author: Eric S Fraga, Eric Schulte +;; Author: Eric S Fraga +;; Eric Schulte ;; Keywords: literate programming, reproducible research, maxima ;; Homepage: http://orgmode.org ;; Version: 7.7 -;;; License: +;; This file is part of GNU Emacs. -;; This program is free software; you can redistribute it and/or modify +;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. -;; -;; This program is distributed in the hope that it will be useful, +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. -;; + ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. +;; along with GNU Emacs. If not, see . ;;; Commentary: === modified file 'lisp/org/org-pcomplete.el' --- lisp/org/org-pcomplete.el 2011-08-02 00:37:49 +0000 +++ lisp/org/org-pcomplete.el 2011-08-06 21:23:50 +0000 @@ -1,7 +1,6 @@ ;;; org-pcomplete.el --- In-buffer completion code -;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 -;; Free Software Foundation, Inc. +;; Copyright (C) 2004-2011 Free Software Foundation, Inc. ;; ;; Author: Carsten Dominik ;; John Wiegley === modified file 'lisp/org/org-special-blocks.el' --- lisp/org/org-special-blocks.el 2011-07-28 15:13:49 +0000 +++ lisp/org/org-special-blocks.el 2011-08-06 21:23:50 +0000 @@ -1,25 +1,23 @@ ;;; org-special-blocks.el --- Turn blocks into LaTeX envs and HTML divs -;; Copyright (C) 2009 Chris Gray +;; Copyright (C) 2009, 2011 Free Software Foundation, Inc. ;; Author: Chris Gray ;; This file is part of GNU Emacs. -;; 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 2, or (at -;; your option) any later version. +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. -;; 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. +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with this program ; see the file COPYING. If not, write to -;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; along with GNU Emacs. If not, see . ;;; Commentary: ;; ------------------------------------------------------------ revno: 105414 fixes bug(s): http://debbugs.gnu.org/9224 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2011-08-06 14:49:35 +0300 message: Really fix bug #9224 with vertical-motion under word-wrap. src/xdisp.c (move_it_in_display_line_to): Fix vertical-motion in a buffer with word-wrap under bidirectional display. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2011-08-06 10:59:36 +0000 +++ src/ChangeLog 2011-08-06 11:49:35 +0000 @@ -3,6 +3,8 @@ * xdisp.c (set_cursor_from_row): Fix cursor positioning when a display property strides EOL and includes a newline, as in longlines-mode. (Bug#9254) + (move_it_in_display_line_to): Fix vertical-motion in a buffer with + word-wrap under bidirectional display. (Bug#9224) * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE is non-zero, even if the data buffer is NULL. Fixes a crash in === modified file 'src/xdisp.c' --- src/xdisp.c 2011-08-06 10:59:36 +0000 +++ src/xdisp.c 2011-08-06 11:49:35 +0000 @@ -8009,13 +8009,19 @@ positions smaller than TO_CHARPOS, return MOVE_POS_MATCH_OR_ZV, like the unidirectional display did. */ - if (it->bidi_p && (op & MOVE_TO_POS) != 0 - && !saw_smaller_pos - && IT_CHARPOS (*it) > to_charpos) + if (it->bidi_p && (op & MOVE_TO_POS) != 0) { - if (IT_CHARPOS (ppos_it) < ZV) - RESTORE_IT (it, &ppos_it, ppos_data); - goto buffer_pos_reached; + if (!saw_smaller_pos && IT_CHARPOS (*it) > to_charpos) + { + if (IT_CHARPOS (ppos_it) < ZV) + RESTORE_IT (it, &ppos_it, ppos_data); + goto buffer_pos_reached; + } + else if (it->line_wrap == WORD_WRAP && atpos_it.sp >= 0 + && IT_CHARPOS (*it) > to_charpos) + goto buffer_pos_reached; + else + result = MOVE_NEWLINE_OR_CR; } else result = MOVE_NEWLINE_OR_CR; ;