diff options
| author | Joakim Verona | 2011-08-08 17:08:48 +0200 |
|---|---|---|
| committer | Joakim Verona | 2011-08-08 17:08:48 +0200 |
| commit | 1e3f7bd2cdb85abfbf572cc1a13e615e5c4299de (patch) | |
| tree | cf8b108fccada9dca76dc616e5333739d8825728 | |
| parent | 23e9910c1fc51657f08b4ab125c0c44e5860d942 (diff) | |
| parent | d56176114c8c9226a43db4bf68df562486e454ed (diff) | |
| download | emacs-1e3f7bd2cdb85abfbf572cc1a13e615e5c4299de.tar.gz emacs-1e3f7bd2cdb85abfbf572cc1a13e615e5c4299de.zip | |
merge upstream
| -rw-r--r-- | doc/emacs/ChangeLog | 5 | ||||
| -rw-r--r-- | doc/emacs/dired.texi | 4 | ||||
| -rw-r--r-- | lisp/ChangeLog | 25 | ||||
| -rw-r--r-- | lisp/ChangeLog.15 | 2 | ||||
| -rw-r--r-- | lisp/epg.el | 227 | ||||
| -rw-r--r-- | lisp/faces.el | 2 | ||||
| -rw-r--r-- | lisp/info.el | 2 | ||||
| -rw-r--r-- | lisp/longlines.el | 4 | ||||
| -rw-r--r-- | lisp/url/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/url/url-http.el | 12 | ||||
| -rw-r--r-- | src/ChangeLog | 15 | ||||
| -rw-r--r-- | src/composite.c | 2 | ||||
| -rw-r--r-- | src/editfns.c | 4 | ||||
| -rw-r--r-- | src/ftfont.c | 4 |
14 files changed, 220 insertions, 93 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 8e5efc4f87d..6874ef75ef8 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2011-08-07 Juri Linkov <juri@jurta.org> | ||
| 2 | |||
| 3 | * dired.texi (Operating on Files): Rewrite according to the fact | ||
| 4 | that `dired-do-chmod' doesn't use the `chmod' program anymore. | ||
| 5 | |||
| 1 | 2011-07-30 Michael Albinus <michael.albinus@gmx.de> | 6 | 2011-07-30 Michael Albinus <michael.albinus@gmx.de> |
| 2 | 7 | ||
| 3 | * mini.texi (Minibuffer File): Insert a reference to Tramp for | 8 | * mini.texi (Minibuffer File): Insert a reference to Tramp for |
diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi index 501c4152e6a..80ccd1d10f9 100644 --- a/doc/emacs/dired.texi +++ b/doc/emacs/dired.texi | |||
| @@ -645,8 +645,8 @@ link. | |||
| 645 | @cindex changing file permissions (in Dired) | 645 | @cindex changing file permissions (in Dired) |
| 646 | @item M @var{modespec} @key{RET} | 646 | @item M @var{modespec} @key{RET} |
| 647 | Change the mode (also called ``permission bits'') of the specified files | 647 | Change the mode (also called ``permission bits'') of the specified files |
| 648 | (@code{dired-do-chmod}). This uses the @code{chmod} program, so | 648 | (@code{dired-do-chmod}). @var{modespec} can be in octal or symbolic |
| 649 | @var{modespec} can be any argument that @code{chmod} can handle. | 649 | notation like arguments handled by the @code{chmod} program. |
| 650 | 650 | ||
| 651 | @findex dired-do-chgrp | 651 | @findex dired-do-chgrp |
| 652 | @kindex G @r{(Dired)} | 652 | @kindex G @r{(Dired)} |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7c1fa3a656b..d2ea294d2d0 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,25 @@ | |||
| 1 | 2011-08-08 Daiki Ueno <ueno@unixuser.org> | ||
| 2 | |||
| 3 | * epg.el (epg--status-KEYEXPIRED, epg--status-KEYREVOKED): Fix typo. | ||
| 4 | (epg-error-to-string, epg-errors-to-string): New function. | ||
| 5 | (epg-wait-for-completion): Reverse errors list. | ||
| 6 | (epg--check-error-for-decrypt, epg-sign-file, epg-sign-string) | ||
| 7 | (epg-encrypt-file, epg-encrypt-string, epg-export-keys-to-file) | ||
| 8 | (epg--import-keys-1, epg-receive-keys, epg-delete-keys) | ||
| 9 | (epg-sign-keys, epg-generate-key-from-file) | ||
| 10 | (epg-generate-key-from-string): Format errors by using | ||
| 11 | epg-errors-to-string (bug#9255). | ||
| 12 | (epg--status-INV_SGNR, epg--status-NO_SGNR): New status handler. | ||
| 13 | |||
| 14 | 2011-08-07 Juri Linkov <juri@jurta.org> | ||
| 15 | |||
| 16 | * faces.el (list-faces-display): Remove extra angle bracket | ||
| 17 | from `help-mode-map'. | ||
| 18 | |||
| 19 | * info.el (Info-history-toc-nodes): Doc fix. | ||
| 20 | |||
| 21 | * longlines.el (longlines-mode): Doc fix. | ||
| 22 | |||
| 1 | 2011-08-05 Stefan Monnier <monnier@iro.umontreal.ca> | 23 | 2011-08-05 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 24 | ||
| 3 | * progmodes/js.el (js--regexp-literal): Accept regexps at the beginning | 25 | * progmodes/js.el (js--regexp-literal): Accept regexps at the beginning |
| @@ -346,9 +368,6 @@ | |||
| 346 | (string-rectangle): Go to the point after the last operation | 368 | (string-rectangle): Go to the point after the last operation |
| 347 | (bug#7522). | 369 | (bug#7522). |
| 348 | 370 | ||
| 349 | * simple.el (current-kill): Clarify what | ||
| 350 | `interprogram-paste-function' does (bug#7500). | ||
| 351 | |||
| 352 | * printing.el (pr-toggle-region): Clarify the documentation | 371 | * printing.el (pr-toggle-region): Clarify the documentation |
| 353 | slightly (bug#7493). | 372 | slightly (bug#7493). |
| 354 | 373 | ||
diff --git a/lisp/ChangeLog.15 b/lisp/ChangeLog.15 index 190be56dd09..2acf847cddc 100644 --- a/lisp/ChangeLog.15 +++ b/lisp/ChangeLog.15 | |||
| @@ -3573,7 +3573,7 @@ | |||
| 3573 | * locate.el (locate-default-make-command-line): Don't consider | 3573 | * locate.el (locate-default-make-command-line): Don't consider |
| 3574 | drive letter and root directory part of | 3574 | drive letter and root directory part of |
| 3575 | `directory-listing-before-filename-regexp'. (Bug#7308) | 3575 | `directory-listing-before-filename-regexp'. (Bug#7308) |
| 3576 | (locate-post-command-hook, locate-post-command-hook): New defcustoms. | 3576 | (locate-post-command-hook, locate-mode-hook): New defcustoms. |
| 3577 | 3577 | ||
| 3578 | 2010-11-27 Stefan Monnier <monnier@iro.umontreal.ca> | 3578 | 2010-11-27 Stefan Monnier <monnier@iro.umontreal.ca> |
| 3579 | 3579 | ||
diff --git a/lisp/epg.el b/lisp/epg.el index 348ad970b14..9ca07e213b4 100644 --- a/lisp/epg.el +++ b/lisp/epg.el | |||
| @@ -1069,6 +1069,59 @@ This function is for internal use only." | |||
| 1069 | (format " secret keys unchanged: %d\n" | 1069 | (format " secret keys unchanged: %d\n" |
| 1070 | (epg-import-result-secret-unchanged import-result))))) | 1070 | (epg-import-result-secret-unchanged import-result))))) |
| 1071 | 1071 | ||
| 1072 | (defun epg-error-to-string (error) | ||
| 1073 | (cond | ||
| 1074 | ((eq (car error) 'exit) | ||
| 1075 | "Exit") | ||
| 1076 | ((eq (car error) 'quit) | ||
| 1077 | "Cancelled") | ||
| 1078 | ((eq (car error) 'no-data) | ||
| 1079 | (let ((entry (assq (cdr error) epg-no-data-reason-alist))) | ||
| 1080 | (if entry | ||
| 1081 | (format "No data (%s)" (downcase (cdr entry))) | ||
| 1082 | "No data"))) | ||
| 1083 | ((eq (car error) 'unexpected) | ||
| 1084 | (let ((entry (assq (cdr error) epg-unexpected-reason-alist))) | ||
| 1085 | (if entry | ||
| 1086 | (format "Unexpected (%s)" (downcase (cdr entry))) | ||
| 1087 | "Unexpected"))) | ||
| 1088 | ((eq (car error) 'bad-armor) | ||
| 1089 | "Bad armor") | ||
| 1090 | ((memq (car error) '(invalid-recipient invalid-signer)) | ||
| 1091 | (concat | ||
| 1092 | (if (eq (car error) 'invalid-recipient) | ||
| 1093 | "Unusable public key" | ||
| 1094 | "Unusable secret key") | ||
| 1095 | (let ((entry (assq 'requested (cdr error)))) | ||
| 1096 | (if entry | ||
| 1097 | (format ": %s" (cdr entry)) | ||
| 1098 | ": <unknown>")) | ||
| 1099 | (let ((entry (assq 'reason (cdr error)))) | ||
| 1100 | (if (and entry | ||
| 1101 | (> (cdr entry) 0) ;no specific reason given | ||
| 1102 | (setq entry (assq (cdr entry) | ||
| 1103 | epg-invalid-recipients-reason-alist))) | ||
| 1104 | (format " (%s)" (downcase (cdr entry))) | ||
| 1105 | "")))) | ||
| 1106 | ((eq (car error) 'no-pubkey) | ||
| 1107 | (format "No public key: %s" (cdr error))) | ||
| 1108 | ((eq (car error) 'no-seckey) | ||
| 1109 | (format "No secret key: %s" (cdr error))) | ||
| 1110 | ((eq (car error) 'no-recipients) | ||
| 1111 | "No recipients") | ||
| 1112 | ((eq (car error) 'no-signers) | ||
| 1113 | "No signers") | ||
| 1114 | ((eq (car error) 'delete-problem) | ||
| 1115 | (let ((entry (assq (cdr error) epg-delete-problem-reason-alist))) | ||
| 1116 | (if entry | ||
| 1117 | (format "Delete problem (%s)" (downcase (cdr entry))) | ||
| 1118 | "Delete problem"))) | ||
| 1119 | ((eq (car error) 'key-not-created) | ||
| 1120 | "Key not created"))) | ||
| 1121 | |||
| 1122 | (defun epg-errors-to-string (errors) | ||
| 1123 | (mapconcat #'epg-error-to-string errors "; ")) | ||
| 1124 | |||
| 1072 | (defun epg--start (context args) | 1125 | (defun epg--start (context args) |
| 1073 | "Start `epg-gpg-program' in a subprocess with given ARGS." | 1126 | "Start `epg-gpg-program' in a subprocess with given ARGS." |
| 1074 | (if (and (epg-context-process context) | 1127 | (if (and (epg-context-process context) |
| @@ -1195,7 +1248,7 @@ This function is for internal use only." | |||
| 1195 | (if epg-pending-status-list | 1248 | (if epg-pending-status-list |
| 1196 | (epg-context-set-result-for | 1249 | (epg-context-set-result-for |
| 1197 | context 'error | 1250 | context 'error |
| 1198 | (cons (list 'exit) | 1251 | (cons '(exit) |
| 1199 | (epg-context-result-for context 'error)))))) | 1252 | (epg-context-result-for context 'error)))))) |
| 1200 | 1253 | ||
| 1201 | (defun epg-wait-for-completion (context) | 1254 | (defun epg-wait-for-completion (context) |
| @@ -1203,7 +1256,10 @@ This function is for internal use only." | |||
| 1203 | (while (eq (process-status (epg-context-process context)) 'run) | 1256 | (while (eq (process-status (epg-context-process context)) 'run) |
| 1204 | (accept-process-output (epg-context-process context) 1)) | 1257 | (accept-process-output (epg-context-process context) 1)) |
| 1205 | ;; This line is needed to run the process-filter right now. | 1258 | ;; This line is needed to run the process-filter right now. |
| 1206 | (sleep-for 0.1)) | 1259 | (sleep-for 0.1) |
| 1260 | (epg-context-set-result-for | ||
| 1261 | context 'error | ||
| 1262 | (nreverse (epg-context-result-for context 'error)))) | ||
| 1207 | 1263 | ||
| 1208 | (defun epg-reset (context) | 1264 | (defun epg-reset (context) |
| 1209 | "Reset the CONTEXT." | 1265 | "Reset the CONTEXT." |
| @@ -1399,11 +1455,22 @@ This function is for internal use only." | |||
| 1399 | (epg--status-*SIG context 'bad string)) | 1455 | (epg--status-*SIG context 'bad string)) |
| 1400 | 1456 | ||
| 1401 | (defun epg--status-NO_PUBKEY (context string) | 1457 | (defun epg--status-NO_PUBKEY (context string) |
| 1402 | (let ((signature (car (epg-context-result-for context 'verify)))) | 1458 | (if (eq (epg-context-operation context) 'verify) |
| 1403 | (if (and signature | 1459 | (let ((signature (car (epg-context-result-for context 'verify)))) |
| 1404 | (eq (epg-signature-status signature) 'error) | 1460 | (if (and signature |
| 1405 | (equal (epg-signature-key-id signature) string)) | 1461 | (eq (epg-signature-status signature) 'error) |
| 1406 | (epg-signature-set-status signature 'no-pubkey)))) | 1462 | (equal (epg-signature-key-id signature) string)) |
| 1463 | (epg-signature-set-status signature 'no-pubkey))) | ||
| 1464 | (epg-context-set-result-for | ||
| 1465 | context 'error | ||
| 1466 | (cons (cons 'no-pubkey string) | ||
| 1467 | (epg-context-result-for context 'error))))) | ||
| 1468 | |||
| 1469 | (defun epg--status-NO_SECKEY (context string) | ||
| 1470 | (epg-context-set-result-for | ||
| 1471 | context 'error | ||
| 1472 | (cons (cons 'no-seckey string) | ||
| 1473 | (epg-context-result-for context 'error)))) | ||
| 1407 | 1474 | ||
| 1408 | (defun epg--time-from-seconds (seconds) | 1475 | (defun epg--time-from-seconds (seconds) |
| 1409 | (let ((number-seconds (string-to-number (concat seconds ".0")))) | 1476 | (let ((number-seconds (string-to-number (concat seconds ".0")))) |
| @@ -1564,13 +1631,13 @@ This function is for internal use only." | |||
| 1564 | context 'key | 1631 | context 'key |
| 1565 | (cons (list 'key-expired (cons 'expiration-time | 1632 | (cons (list 'key-expired (cons 'expiration-time |
| 1566 | (epg--time-from-seconds string))) | 1633 | (epg--time-from-seconds string))) |
| 1567 | (epg-context-result-for context 'error)))) | 1634 | (epg-context-result-for context 'key)))) |
| 1568 | 1635 | ||
| 1569 | (defun epg--status-KEYREVOKED (context _string) | 1636 | (defun epg--status-KEYREVOKED (context _string) |
| 1570 | (epg-context-set-result-for | 1637 | (epg-context-set-result-for |
| 1571 | context 'key | 1638 | context 'key |
| 1572 | (cons '(key-revoked) | 1639 | (cons '(key-revoked) |
| 1573 | (epg-context-result-for context 'error)))) | 1640 | (epg-context-result-for context 'key)))) |
| 1574 | 1641 | ||
| 1575 | (defun epg--status-BADARMOR (context _string) | 1642 | (defun epg--status-BADARMOR (context _string) |
| 1576 | (epg-context-set-result-for | 1643 | (epg-context-set-result-for |
| @@ -1585,7 +1652,18 @@ This function is for internal use only." | |||
| 1585 | (cons (list 'invalid-recipient | 1652 | (cons (list 'invalid-recipient |
| 1586 | (cons 'reason | 1653 | (cons 'reason |
| 1587 | (string-to-number (match-string 1 string))) | 1654 | (string-to-number (match-string 1 string))) |
| 1588 | (cons 'requested-recipient | 1655 | (cons 'requested |
| 1656 | (match-string 2 string))) | ||
| 1657 | (epg-context-result-for context 'error))))) | ||
| 1658 | |||
| 1659 | (defun epg--status-INV_SGNR (context string) | ||
| 1660 | (if (string-match "\\`\\([0-9]+\\) \\(.*\\)" string) | ||
| 1661 | (epg-context-set-result-for | ||
| 1662 | context 'error | ||
| 1663 | (cons (list 'invalid-signer | ||
| 1664 | (cons 'reason | ||
| 1665 | (string-to-number (match-string 1 string))) | ||
| 1666 | (cons 'requested | ||
| 1589 | (match-string 2 string))) | 1667 | (match-string 2 string))) |
| 1590 | (epg-context-result-for context 'error))))) | 1668 | (epg-context-result-for context 'error))))) |
| 1591 | 1669 | ||
| @@ -1595,6 +1673,12 @@ This function is for internal use only." | |||
| 1595 | (cons '(no-recipients) | 1673 | (cons '(no-recipients) |
| 1596 | (epg-context-result-for context 'error)))) | 1674 | (epg-context-result-for context 'error)))) |
| 1597 | 1675 | ||
| 1676 | (defun epg--status-NO_SGNR (context _string) | ||
| 1677 | (epg-context-set-result-for | ||
| 1678 | context 'error | ||
| 1679 | (cons '(no-signers) | ||
| 1680 | (epg-context-result-for context 'error)))) | ||
| 1681 | |||
| 1598 | (defun epg--status-DELETE_PROBLEM (context string) | 1682 | (defun epg--status-DELETE_PROBLEM (context string) |
| 1599 | (if (string-match "\\`\\([0-9]+\\)" string) | 1683 | (if (string-match "\\`\\([0-9]+\\)" string) |
| 1600 | (epg-context-set-result-for | 1684 | (epg-context-set-result-for |
| @@ -1960,17 +2044,13 @@ If you are unsure, use synchronous version of this function | |||
| 1960 | (epg-wait-for-status context '("BEGIN_DECRYPTION")))) | 2044 | (epg-wait-for-status context '("BEGIN_DECRYPTION")))) |
| 1961 | 2045 | ||
| 1962 | (defun epg--check-error-for-decrypt (context) | 2046 | (defun epg--check-error-for-decrypt (context) |
| 1963 | (if (epg-context-result-for context 'decryption-failed) | 2047 | (let ((errors (epg-context-result-for context 'error))) |
| 1964 | (signal 'epg-error (list "Decryption failed"))) | 2048 | (if (epg-context-result-for context 'decryption-failed) |
| 1965 | (if (epg-context-result-for context 'no-secret-key) | 2049 | (signal 'epg-error |
| 1966 | (signal 'epg-error | 2050 | (list "Decryption failed" (epg-errors-to-string errors)))) |
| 1967 | (list "No secret key" | ||
| 1968 | (epg-context-result-for context 'no-secret-key)))) | ||
| 1969 | (unless (epg-context-result-for context 'decryption-okay) | 2051 | (unless (epg-context-result-for context 'decryption-okay) |
| 1970 | (let* ((error (epg-context-result-for context 'error))) | 2052 | (signal 'epg-error |
| 1971 | (if (assq 'no-data error) | 2053 | (list "Can't decrypt" (epg-errors-to-string errors)))))) |
| 1972 | (signal 'epg-error (list "No data"))) | ||
| 1973 | (signal 'epg-error (list "Can't decrypt" error))))) | ||
| 1974 | 2054 | ||
| 1975 | (defun epg-decrypt-file (context cipher plain) | 2055 | (defun epg-decrypt-file (context cipher plain) |
| 1976 | "Decrypt a file CIPHER and store the result to a file PLAIN. | 2056 | "Decrypt a file CIPHER and store the result to a file PLAIN. |
| @@ -2165,10 +2245,9 @@ Otherwise, it makes a cleartext signature." | |||
| 2165 | (epg-start-sign context (epg-make-data-from-file plain) mode) | 2245 | (epg-start-sign context (epg-make-data-from-file plain) mode) |
| 2166 | (epg-wait-for-completion context) | 2246 | (epg-wait-for-completion context) |
| 2167 | (unless (epg-context-result-for context 'sign) | 2247 | (unless (epg-context-result-for context 'sign) |
| 2168 | (if (epg-context-result-for context 'error) | 2248 | (let ((errors (epg-context-result-for context 'error))) |
| 2169 | (error "Sign failed: %S" | 2249 | (signal 'epg-error |
| 2170 | (epg-context-result-for context 'error)) | 2250 | (list "Sign failed" (epg-errors-to-string errors))))) |
| 2171 | (error "Sign failed"))) | ||
| 2172 | (unless signature | 2251 | (unless signature |
| 2173 | (epg-read-output context))) | 2252 | (epg-read-output context))) |
| 2174 | (unless signature | 2253 | (unless signature |
| @@ -2203,9 +2282,9 @@ Otherwise, it makes a cleartext signature." | |||
| 2203 | (epg-wait-for-completion context) | 2282 | (epg-wait-for-completion context) |
| 2204 | (unless (epg-context-result-for context 'sign) | 2283 | (unless (epg-context-result-for context 'sign) |
| 2205 | (if (epg-context-result-for context 'error) | 2284 | (if (epg-context-result-for context 'error) |
| 2206 | (error "Sign failed: %S" | 2285 | (let ((errors (epg-context-result-for context 'error))) |
| 2207 | (epg-context-result-for context 'error)) | 2286 | (signal 'epg-error |
| 2208 | (error "Sign failed"))) | 2287 | (list "Sign failed" (epg-errors-to-string errors)))))) |
| 2209 | (epg-read-output context)) | 2288 | (epg-read-output context)) |
| 2210 | (epg-delete-output-file context) | 2289 | (epg-delete-output-file context) |
| 2211 | (if input-file | 2290 | (if input-file |
| @@ -2276,15 +2355,14 @@ If RECIPIENTS is nil, it performs symmetric encryption." | |||
| 2276 | (epg-start-encrypt context (epg-make-data-from-file plain) | 2355 | (epg-start-encrypt context (epg-make-data-from-file plain) |
| 2277 | recipients sign always-trust) | 2356 | recipients sign always-trust) |
| 2278 | (epg-wait-for-completion context) | 2357 | (epg-wait-for-completion context) |
| 2279 | (if (and sign | 2358 | (let ((errors (epg-context-result-for context 'error))) |
| 2280 | (not (epg-context-result-for context 'sign))) | 2359 | (if (and sign |
| 2281 | (if (epg-context-result-for context 'error) | 2360 | (not (epg-context-result-for context 'sign))) |
| 2282 | (error "Sign failed: %S" | 2361 | (signal 'epg-error |
| 2283 | (epg-context-result-for context 'error)) | 2362 | (list "Sign failed" (epg-errors-to-string errors)))) |
| 2284 | (error "Sign failed"))) | 2363 | (if errors |
| 2285 | (if (epg-context-result-for context 'error) | 2364 | (signal 'epg-error |
| 2286 | (error "Encrypt failed: %S" | 2365 | (list "Encrypt failed" (epg-errors-to-string errors))))) |
| 2287 | (epg-context-result-for context 'error))) | ||
| 2288 | (unless cipher | 2366 | (unless cipher |
| 2289 | (epg-read-output context))) | 2367 | (epg-read-output context))) |
| 2290 | (unless cipher | 2368 | (unless cipher |
| @@ -2317,15 +2395,14 @@ If RECIPIENTS is nil, it performs symmetric encryption." | |||
| 2317 | (epg-make-data-from-string plain)) | 2395 | (epg-make-data-from-string plain)) |
| 2318 | recipients sign always-trust) | 2396 | recipients sign always-trust) |
| 2319 | (epg-wait-for-completion context) | 2397 | (epg-wait-for-completion context) |
| 2320 | (if (and sign | 2398 | (let ((errors (epg-context-result-for context 'error))) |
| 2321 | (not (epg-context-result-for context 'sign))) | 2399 | (if (and sign |
| 2322 | (if (epg-context-result-for context 'error) | 2400 | (not (epg-context-result-for context 'sign))) |
| 2323 | (error "Sign failed: %S" | 2401 | (signal 'epg-error |
| 2324 | (epg-context-result-for context 'error)) | 2402 | (list "Sign failed" (epg-errors-to-string errors)))) |
| 2325 | (error "Sign failed"))) | 2403 | (if errors |
| 2326 | (if (epg-context-result-for context 'error) | 2404 | (signal 'epg-error |
| 2327 | (error "Encrypt failed: %S" | 2405 | (list "Encrypt failed" (epg-errors-to-string errors))))) |
| 2328 | (epg-context-result-for context 'error))) | ||
| 2329 | (epg-read-output context)) | 2406 | (epg-read-output context)) |
| 2330 | (epg-delete-output-file context) | 2407 | (epg-delete-output-file context) |
| 2331 | (if input-file | 2408 | (if input-file |
| @@ -2359,9 +2436,11 @@ If you are unsure, use synchronous version of this function | |||
| 2359 | (epg--make-temp-file "epg-output"))) | 2436 | (epg--make-temp-file "epg-output"))) |
| 2360 | (epg-start-export-keys context keys) | 2437 | (epg-start-export-keys context keys) |
| 2361 | (epg-wait-for-completion context) | 2438 | (epg-wait-for-completion context) |
| 2362 | (if (epg-context-result-for context 'error) | 2439 | (let ((errors (epg-context-result-for context 'error))) |
| 2363 | (error "Export keys failed: %S" | 2440 | (if errors |
| 2364 | (epg-context-result-for context 'error))) | 2441 | (signal 'epg-error |
| 2442 | (list "Export keys failed" | ||
| 2443 | (epg-errors-to-string errors))))) | ||
| 2365 | (unless file | 2444 | (unless file |
| 2366 | (epg-read-output context))) | 2445 | (epg-read-output context))) |
| 2367 | (unless file | 2446 | (unless file |
| @@ -2398,9 +2477,11 @@ If you are unsure, use synchronous version of this function | |||
| 2398 | (progn | 2477 | (progn |
| 2399 | (epg-start-import-keys context keys) | 2478 | (epg-start-import-keys context keys) |
| 2400 | (epg-wait-for-completion context) | 2479 | (epg-wait-for-completion context) |
| 2401 | (if (epg-context-result-for context 'error) | 2480 | (let ((errors (epg-context-result-for context 'error))) |
| 2402 | (error "Import keys failed: %S" | 2481 | (if errors |
| 2403 | (epg-context-result-for context 'error)))) | 2482 | (signal 'epg-error |
| 2483 | (list "Import keys failed" | ||
| 2484 | (epg-errors-to-string errors)))))) | ||
| 2404 | (epg-reset context))) | 2485 | (epg-reset context))) |
| 2405 | 2486 | ||
| 2406 | (defun epg-import-keys-from-file (context keys) | 2487 | (defun epg-import-keys-from-file (context keys) |
| @@ -2431,9 +2512,11 @@ KEYS is a list of key IDs" | |||
| 2431 | (progn | 2512 | (progn |
| 2432 | (epg-start-receive-keys context keys) | 2513 | (epg-start-receive-keys context keys) |
| 2433 | (epg-wait-for-completion context) | 2514 | (epg-wait-for-completion context) |
| 2434 | (if (epg-context-result-for context 'error) | 2515 | (let ((errors (epg-context-result-for context 'error))) |
| 2435 | (error "Receive keys failed: %S" | 2516 | (if errors |
| 2436 | (epg-context-result-for context 'error)))) | 2517 | (signal 'epg-error |
| 2518 | (list "Receive keys failed" | ||
| 2519 | (epg-errors-to-string errors)))))) | ||
| 2437 | (epg-reset context))) | 2520 | (epg-reset context))) |
| 2438 | 2521 | ||
| 2439 | (defalias 'epg-import-keys-from-server 'epg-receive-keys) | 2522 | (defalias 'epg-import-keys-from-server 'epg-receive-keys) |
| @@ -2463,13 +2546,11 @@ If you are unsure, use synchronous version of this function | |||
| 2463 | (progn | 2546 | (progn |
| 2464 | (epg-start-delete-keys context keys allow-secret) | 2547 | (epg-start-delete-keys context keys allow-secret) |
| 2465 | (epg-wait-for-completion context) | 2548 | (epg-wait-for-completion context) |
| 2466 | (let ((entry (assq 'delete-problem | 2549 | (let ((errors (epg-context-result-for context 'error))) |
| 2467 | (epg-context-result-for context 'error)))) | 2550 | (if errors |
| 2468 | (if entry | 2551 | (signal 'epg-error |
| 2469 | (if (setq entry (assq (cdr entry) | 2552 | (list "Delete keys failed" |
| 2470 | epg-delete-problem-reason-alist)) | 2553 | (epg-errors-to-string errors)))))) |
| 2471 | (error "Delete keys failed: %s" (cdr entry)) | ||
| 2472 | (error "Delete keys failed"))))) | ||
| 2473 | (epg-reset context))) | 2554 | (epg-reset context))) |
| 2474 | 2555 | ||
| 2475 | (defun epg-start-sign-keys (context keys &optional local) | 2556 | (defun epg-start-sign-keys (context keys &optional local) |
| @@ -2498,9 +2579,11 @@ If you are unsure, use synchronous version of this function | |||
| 2498 | (progn | 2579 | (progn |
| 2499 | (epg-start-sign-keys context keys local) | 2580 | (epg-start-sign-keys context keys local) |
| 2500 | (epg-wait-for-completion context) | 2581 | (epg-wait-for-completion context) |
| 2501 | (if (epg-context-result-for context 'error) | 2582 | (let ((errors (epg-context-result-for context 'error))) |
| 2502 | (error "Sign keys failed: %S" | 2583 | (if errors |
| 2503 | (epg-context-result-for context 'error)))) | 2584 | (signal 'epg-error |
| 2585 | (list "Sign keys failed" | ||
| 2586 | (epg-errors-to-string errors)))))) | ||
| 2504 | (epg-reset context))) | 2587 | (epg-reset context))) |
| 2505 | (make-obsolete 'epg-sign-keys "do not use." "23.1") | 2588 | (make-obsolete 'epg-sign-keys "do not use." "23.1") |
| 2506 | 2589 | ||
| @@ -2532,9 +2615,11 @@ PARAMETERS is a file which tells how to create the key." | |||
| 2532 | (progn | 2615 | (progn |
| 2533 | (epg-start-generate-key context (epg-make-data-from-file parameters)) | 2616 | (epg-start-generate-key context (epg-make-data-from-file parameters)) |
| 2534 | (epg-wait-for-completion context) | 2617 | (epg-wait-for-completion context) |
| 2535 | (if (epg-context-result-for context 'error) | 2618 | (let ((errors (epg-context-result-for context 'error))) |
| 2536 | (error "Generate key failed: %S" | 2619 | (if errors |
| 2537 | (epg-context-result-for context 'error)))) | 2620 | (signal 'epg-error |
| 2621 | (list "Generate key failed" | ||
| 2622 | (epg-errors-to-string errors)))))) | ||
| 2538 | (epg-reset context))) | 2623 | (epg-reset context))) |
| 2539 | 2624 | ||
| 2540 | (defun epg-generate-key-from-string (context parameters) | 2625 | (defun epg-generate-key-from-string (context parameters) |
| @@ -2544,9 +2629,11 @@ PARAMETERS is a string which tells how to create the key." | |||
| 2544 | (progn | 2629 | (progn |
| 2545 | (epg-start-generate-key context (epg-make-data-from-string parameters)) | 2630 | (epg-start-generate-key context (epg-make-data-from-string parameters)) |
| 2546 | (epg-wait-for-completion context) | 2631 | (epg-wait-for-completion context) |
| 2547 | (if (epg-context-result-for context 'error) | 2632 | (let ((errors (epg-context-result-for context 'error))) |
| 2548 | (error "Generate key failed: %S" | 2633 | (if errors |
| 2549 | (epg-context-result-for context 'error)))) | 2634 | (signal 'epg-error |
| 2635 | (list "Generate key failed" | ||
| 2636 | (epg-errors-to-string errors)))))) | ||
| 2550 | (epg-reset context))) | 2637 | (epg-reset context))) |
| 2551 | 2638 | ||
| 2552 | (defun epg--decode-percent-escape (string) | 2639 | (defun epg--decode-percent-escape (string) |
diff --git a/lisp/faces.el b/lisp/faces.el index 302f8af35ac..9a78ab69caa 100644 --- a/lisp/faces.el +++ b/lisp/faces.el | |||
| @@ -1255,7 +1255,7 @@ arg, prompt for a regular expression." | |||
| 1255 | (insert | 1255 | (insert |
| 1256 | (substitute-command-keys | 1256 | (substitute-command-keys |
| 1257 | (concat | 1257 | (concat |
| 1258 | "\\<help-mode-map>>Use " | 1258 | "\\<help-mode-map>Use " |
| 1259 | (if (display-mouse-p) "\\[help-follow-mouse] or ") | 1259 | (if (display-mouse-p) "\\[help-follow-mouse] or ") |
| 1260 | "\\[help-follow] on a face name to customize it\n" | 1260 | "\\[help-follow] on a face name to customize it\n" |
| 1261 | "or on its sample text for a description of the face.\n\n"))) | 1261 | "or on its sample text for a description of the face.\n\n"))) |
diff --git a/lisp/info.el b/lisp/info.el index 447c86b3e9e..191e75f9750 100644 --- a/lisp/info.el +++ b/lisp/info.el | |||
| @@ -2128,7 +2128,7 @@ If SAME-FILE is non-nil, do not move to a different Info file." | |||
| 2128 | )) | 2128 | )) |
| 2129 | 2129 | ||
| 2130 | (defun Info-history-toc-nodes (filename) | 2130 | (defun Info-history-toc-nodes (filename) |
| 2131 | "History-specific implementation of `Info-history-toc-nodes'." | 2131 | "History-specific implementation of `Info-toc-nodes'." |
| 2132 | `(,filename | 2132 | `(,filename |
| 2133 | ("Top" nil nil nil))) | 2133 | ("Top" nil nil nil))) |
| 2134 | 2134 | ||
diff --git a/lisp/longlines.el b/lisp/longlines.el index e81a235a17b..f625d8fcac7 100644 --- a/lisp/longlines.el +++ b/lisp/longlines.el | |||
| @@ -100,8 +100,8 @@ In Long Lines mode, long lines are wrapped if they extend beyond | |||
| 100 | `fill-column'. The soft newlines used for line wrapping will not | 100 | `fill-column'. The soft newlines used for line wrapping will not |
| 101 | show up when the text is yanked or saved to disk. | 101 | show up when the text is yanked or saved to disk. |
| 102 | 102 | ||
| 103 | With no argument, this command toggles Flyspell mode. | 103 | With no argument, this command toggles Long Lines mode. |
| 104 | With a prefix argument ARG, turn Flyspell minor mode on if ARG is positive, | 104 | With a prefix argument ARG, turn Long Lines minor mode on if ARG is positive, |
| 105 | otherwise turn it off. | 105 | otherwise turn it off. |
| 106 | 106 | ||
| 107 | If the variable `longlines-auto-wrap' is non-nil, lines are automatically | 107 | If the variable `longlines-auto-wrap' is non-nil, lines are automatically |
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index 6a3638c4232..5714179fcfe 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2011-08-07 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * url-http.el (url-http-parse-headers): For HTTP 301/302/307, | ||
| 4 | don't convert to a GET request (Bug#701). | ||
| 5 | |||
| 1 | 2011-07-13 Chris Newton <redshodan@gmail.com> (tiny change) | 6 | 2011-07-13 Chris Newton <redshodan@gmail.com> (tiny change) |
| 2 | 7 | ||
| 3 | * url-http.el (url-http): Copy over `url-show-status' to the async | 8 | * url-http.el (url-http): Copy over `url-show-status' to the async |
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index def35449397..a21aed21436 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el | |||
| @@ -563,16 +563,8 @@ should be shown to the user." | |||
| 563 | ;; automatically redirect the request unless it can be | 563 | ;; automatically redirect the request unless it can be |
| 564 | ;; confirmed by the user, since this might change the | 564 | ;; confirmed by the user, since this might change the |
| 565 | ;; conditions under which the request was issued. | 565 | ;; conditions under which the request was issued. |
| 566 | (if (member url-http-method '("HEAD" "GET")) | 566 | (unless (member url-http-method '("HEAD" "GET")) |
| 567 | ;; Automatic redirection is ok | 567 | (setq redirect-uri nil))) |
| 568 | nil | ||
| 569 | ;; It is just too big of a pain in the ass to get this | ||
| 570 | ;; prompt all the time. We will just silently lose our | ||
| 571 | ;; data and convert to a GET method. | ||
| 572 | (url-http-debug "Converting `%s' request to `GET' because of REDIRECT(%d)" | ||
| 573 | url-http-method url-http-response-status) | ||
| 574 | (setq url-http-method "GET" | ||
| 575 | url-http-data nil))) | ||
| 576 | (see-other ; 303 | 568 | (see-other ; 303 |
| 577 | ;; The response to the request can be found under a different | 569 | ;; The response to the request can be found under a different |
| 578 | ;; URI and SHOULD be retrieved using a GET method on that | 570 | ;; URI and SHOULD be retrieved using a GET method on that |
diff --git a/src/ChangeLog b/src/ChangeLog index 039c225c1f6..4df4455e862 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,18 @@ | |||
| 1 | 2011-08-08 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * ftfont.c (ftfont_pattern_entity): Copy the extras argument to | ||
| 4 | the font entity extracted from the cache (Bug#8109). | ||
| 5 | |||
| 6 | 2011-08-07 Chong Yidong <cyd@stupidchicken.com> | ||
| 7 | |||
| 8 | * composite.c (autocmp_chars): Don't reset point. That is done by | ||
| 9 | restore_point_unwind (Bug#5984). | ||
| 10 | |||
| 11 | 2011-08-07 Juri Linkov <juri@jurta.org> | ||
| 12 | |||
| 13 | * editfns.c (Fformat_time_string): Doc fix, add tag `usage:' | ||
| 14 | to show the arg `TIME' instead of `TIMEVAL'. | ||
| 15 | |||
| 1 | 2011-08-06 Eli Zaretskii <eliz@gnu.org> | 16 | 2011-08-06 Eli Zaretskii <eliz@gnu.org> |
| 2 | 17 | ||
| 3 | * xdisp.c (set_cursor_from_row): Fix cursor positioning when a | 18 | * xdisp.c (set_cursor_from_row): Fix cursor positioning when a |
diff --git a/src/composite.c b/src/composite.c index d402d5ad0c4..3308a028042 100644 --- a/src/composite.c +++ b/src/composite.c | |||
| @@ -960,8 +960,6 @@ autocmp_chars (Lisp_Object rule, EMACS_INT charpos, EMACS_INT bytepos, EMACS_INT | |||
| 960 | args[4] = font_object; | 960 | args[4] = font_object; |
| 961 | args[5] = string; | 961 | args[5] = string; |
| 962 | lgstring = safe_call (6, args); | 962 | lgstring = safe_call (6, args); |
| 963 | if (NILP (string)) | ||
| 964 | TEMP_SET_PT_BOTH (pt, pt_byte); | ||
| 965 | } | 963 | } |
| 966 | return unbind_to (count, lgstring); | 964 | return unbind_to (count, lgstring); |
| 967 | } | 965 | } |
diff --git a/src/editfns.c b/src/editfns.c index 577263c5aea..5eed386afb7 100644 --- a/src/editfns.c +++ b/src/editfns.c | |||
| @@ -1695,7 +1695,9 @@ The modifiers are `E' and `O'. For certain characters X, | |||
| 1695 | %EX is a locale's alternative version of %X; | 1695 | %EX is a locale's alternative version of %X; |
| 1696 | %OX is like %X, but uses the locale's number symbols. | 1696 | %OX is like %X, but uses the locale's number symbols. |
| 1697 | 1697 | ||
| 1698 | For example, to produce full ISO 8601 format, use "%Y-%m-%dT%T%z". */) | 1698 | For example, to produce full ISO 8601 format, use "%Y-%m-%dT%T%z". |
| 1699 | |||
| 1700 | usage: (format-time-string FORMAT-STRING &optional TIME UNIVERSAL) */) | ||
| 1699 | (Lisp_Object format_string, Lisp_Object timeval, Lisp_Object universal) | 1701 | (Lisp_Object format_string, Lisp_Object timeval, Lisp_Object universal) |
| 1700 | { | 1702 | { |
| 1701 | time_t value; | 1703 | time_t value; |
diff --git a/src/ftfont.c b/src/ftfont.c index 4e313a89021..5c98073057c 100644 --- a/src/ftfont.c +++ b/src/ftfont.c | |||
| @@ -214,6 +214,10 @@ ftfont_pattern_entity (FcPattern *p, Lisp_Object extra) | |||
| 214 | 214 | ||
| 215 | for (i = 0; i < FONT_OBJLIST_INDEX; i++) | 215 | for (i = 0; i < FONT_OBJLIST_INDEX; i++) |
| 216 | ASET (val, i, AREF (entity, i)); | 216 | ASET (val, i, AREF (entity, i)); |
| 217 | |||
| 218 | ASET (val, FONT_EXTRA_INDEX, Fcopy_sequence (extra)); | ||
| 219 | font_put_extra (val, QCfont_entity, key); | ||
| 220 | |||
| 217 | return val; | 221 | return val; |
| 218 | } | 222 | } |
| 219 | entity = font_make_entity (); | 223 | entity = font_make_entity (); |