diff options
| author | John Wiegley | 2016-02-15 14:07:46 -0800 |
|---|---|---|
| committer | John Wiegley | 2016-02-15 14:07:46 -0800 |
| commit | 33bb679af9e323408c8089f0b5675a54776d60d5 (patch) | |
| tree | 597ee645c54d54e3d77bd3394a72d67b7293f262 | |
| parent | ab7583a2b00d13207ab1c325c25c520a33859eee (diff) | |
| parent | 10b8ed27ec91ff52f93eb0297dcc3abb214931aa (diff) | |
| download | emacs-33bb679af9e323408c8089f0b5675a54776d60d5.tar.gz emacs-33bb679af9e323408c8089f0b5675a54776d60d5.zip | |
Merge from origin/emacs-25
10b8ed2 Document EXIF image rotation
0f60049 Support integer image rotation and respect EXIF rotations
7dd45b6 Quote table names for postgres listings (sql-mode)
6bac035 * lisp/replace.el (replace-match-maybe-edit): Make arg
`backward' optional.
ee909aa * lisp/simple.el (next-line-or-history-element): Reset
temporary-goal-column.
0a289d3 Suppress ACL ops if configured with --disable-acl
1a9dbf5 Mention web bugs
fa55da2 Make mm-html-blocked-images default to "" again
| -rw-r--r-- | doc/misc/emacs-mime.texi | 7 | ||||
| -rw-r--r-- | lisp/gnus/mm-decode.el | 2 | ||||
| -rw-r--r-- | lisp/replace.el | 10 | ||||
| -rw-r--r-- | lisp/simple.el | 18 | ||||
| -rw-r--r-- | src/fileio.c | 20 |
5 files changed, 42 insertions, 15 deletions
diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi index b7c58d7ebeb..c9c4b7c2a2f 100644 --- a/doc/misc/emacs-mime.texi +++ b/doc/misc/emacs-mime.texi | |||
| @@ -436,7 +436,12 @@ It is effective when @code{mm-text-html-renderer} (@pxref{Display | |||
| 436 | Customization}) is @code{shr}. In Gnus, this is overridden by the value | 436 | Customization}) is @code{shr}. In Gnus, this is overridden by the value |
| 437 | of @code{gnus-blocked-images} or the return value of the function that | 437 | of @code{gnus-blocked-images} or the return value of the function that |
| 438 | @code{gnus-blocked-images} is set to (@pxref{HTML, ,HTML, gnus, Gnus | 438 | @code{gnus-blocked-images} is set to (@pxref{HTML, ,HTML, gnus, Gnus |
| 439 | manual}). The default is @code{nil}. | 439 | manual}). |
| 440 | |||
| 441 | Some @acronym{HTML} mails might have the trick of spammers using | ||
| 442 | @samp{<img>} tags. It is likely to be intended to verify whether you | ||
| 443 | have read the mail. You can prevent your personal information from | ||
| 444 | leaking by setting this option to @code{""} (which is the default). | ||
| 440 | 445 | ||
| 441 | @item mm-w3m-safe-url-regexp | 446 | @item mm-w3m-safe-url-regexp |
| 442 | @vindex mm-w3m-safe-url-regexp | 447 | @vindex mm-w3m-safe-url-regexp |
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 89dc608cc88..f45337dc042 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el | |||
| @@ -149,7 +149,7 @@ nil : use external viewer (default web browser)." | |||
| 149 | :type 'boolean | 149 | :type 'boolean |
| 150 | :group 'mime-display) | 150 | :group 'mime-display) |
| 151 | 151 | ||
| 152 | (defcustom mm-html-blocked-images nil | 152 | (defcustom mm-html-blocked-images "" |
| 153 | "Regexp matching image URLs to be blocked, or nil meaning not to block. | 153 | "Regexp matching image URLs to be blocked, or nil meaning not to block. |
| 154 | Note that cid images that are embedded in a message won't be blocked." | 154 | Note that cid images that are embedded in a message won't be blocked." |
| 155 | :version "25.1" | 155 | :version "25.1" |
diff --git a/lisp/replace.el b/lisp/replace.el index dfe8cd739a2..488eff7928a 100644 --- a/lisp/replace.el +++ b/lisp/replace.el | |||
| @@ -1980,13 +1980,15 @@ but coerced to the correct value of INTEGERS." | |||
| 1980 | new))) | 1980 | new))) |
| 1981 | (match-data integers reuse t))) | 1981 | (match-data integers reuse t))) |
| 1982 | 1982 | ||
| 1983 | (defun replace-match-maybe-edit (newtext fixedcase literal noedit match-data backward) | 1983 | (defun replace-match-maybe-edit (newtext fixedcase literal noedit match-data |
| 1984 | &optional backward) | ||
| 1984 | "Make a replacement with `replace-match', editing `\\?'. | 1985 | "Make a replacement with `replace-match', editing `\\?'. |
| 1985 | FIXEDCASE, LITERAL are passed to `replace-match' (which see). | 1986 | FIXEDCASE, LITERAL are passed to `replace-match' (which see). |
| 1986 | After possibly editing it (if `\\?' is present), NEWTEXT is also | 1987 | After possibly editing it (if `\\?' is present), NEWTEXT is also |
| 1987 | passed to `replace-match'. If NOEDIT is true, no check for `\\?' | 1988 | passed to `replace-match'. If NOEDIT is true, no check for `\\?' |
| 1988 | is made (to save time). MATCH-DATA is used for the replacement. | 1989 | is made (to save time). MATCH-DATA is used for the replacement. |
| 1989 | In case editing is done, it is changed to use markers. | 1990 | In case editing is done, it is changed to use markers. BACKWARD is |
| 1991 | used to reverse the replacement direction. | ||
| 1990 | 1992 | ||
| 1991 | The return value is non-nil if there has been no `\\?' or NOEDIT was | 1993 | The return value is non-nil if there has been no `\\?' or NOEDIT was |
| 1992 | passed in. If LITERAL is set, no checking is done, anyway." | 1994 | passed in. If LITERAL is set, no checking is done, anyway." |
| @@ -2027,7 +2029,7 @@ It is called with three arguments, as if it were | |||
| 2027 | `re-search-forward'.") | 2029 | `re-search-forward'.") |
| 2028 | 2030 | ||
| 2029 | (defun replace-search (search-string limit regexp-flag delimited-flag | 2031 | (defun replace-search (search-string limit regexp-flag delimited-flag |
| 2030 | case-fold-search backward) | 2032 | case-fold-search &optional backward) |
| 2031 | "Search for the next occurrence of SEARCH-STRING to replace." | 2033 | "Search for the next occurrence of SEARCH-STRING to replace." |
| 2032 | ;; Let-bind global isearch-* variables to values used | 2034 | ;; Let-bind global isearch-* variables to values used |
| 2033 | ;; to search the next replacement. These let-bindings | 2035 | ;; to search the next replacement. These let-bindings |
| @@ -2061,7 +2063,7 @@ It is called with three arguments, as if it were | |||
| 2061 | 2063 | ||
| 2062 | (defun replace-highlight (match-beg match-end range-beg range-end | 2064 | (defun replace-highlight (match-beg match-end range-beg range-end |
| 2063 | search-string regexp-flag delimited-flag | 2065 | search-string regexp-flag delimited-flag |
| 2064 | case-fold-search backward) | 2066 | case-fold-search &optional backward) |
| 2065 | (if query-replace-highlight | 2067 | (if query-replace-highlight |
| 2066 | (if replace-overlay | 2068 | (if replace-overlay |
| 2067 | (move-overlay replace-overlay match-beg match-end (current-buffer)) | 2069 | (move-overlay replace-overlay match-beg match-end (current-buffer)) |
diff --git a/lisp/simple.el b/lisp/simple.el index 72e87a410fc..cce62c2b301 100644 --- a/lisp/simple.el +++ b/lisp/simple.el | |||
| @@ -2041,6 +2041,10 @@ next element of the minibuffer history in the minibuffer." | |||
| 2041 | ;; the end of the line when it fails to go to the next line. | 2041 | ;; the end of the line when it fails to go to the next line. |
| 2042 | (goto-char old-point) | 2042 | (goto-char old-point) |
| 2043 | (next-history-element arg) | 2043 | (next-history-element arg) |
| 2044 | ;; Reset `temporary-goal-column' because a correct value is not | ||
| 2045 | ;; calculated when `next-line' above fails by bumping against | ||
| 2046 | ;; the bottom of the minibuffer (bug#22544). | ||
| 2047 | (setq temporary-goal-column 0) | ||
| 2044 | ;; Restore the original goal column on the last line | 2048 | ;; Restore the original goal column on the last line |
| 2045 | ;; of possibly multi-line input. | 2049 | ;; of possibly multi-line input. |
| 2046 | (goto-char (point-max)) | 2050 | (goto-char (point-max)) |
| @@ -2071,6 +2075,10 @@ previous element of the minibuffer history in the minibuffer." | |||
| 2071 | ;; the beginning of the line when it fails to go to the previous line. | 2075 | ;; the beginning of the line when it fails to go to the previous line. |
| 2072 | (goto-char old-point) | 2076 | (goto-char old-point) |
| 2073 | (previous-history-element arg) | 2077 | (previous-history-element arg) |
| 2078 | ;; Reset `temporary-goal-column' because a correct value is not | ||
| 2079 | ;; calculated when `previous-line' above fails by bumping against | ||
| 2080 | ;; the top of the minibuffer (bug#22544). | ||
| 2081 | (setq temporary-goal-column 0) | ||
| 2074 | ;; Restore the original goal column on the first line | 2082 | ;; Restore the original goal column on the first line |
| 2075 | ;; of possibly multi-line input. | 2083 | ;; of possibly multi-line input. |
| 2076 | (goto-char (minibuffer-prompt-end)) | 2084 | (goto-char (minibuffer-prompt-end)) |
| @@ -2078,7 +2086,15 @@ previous element of the minibuffer history in the minibuffer." | |||
| 2078 | (if (= (line-number-at-pos) 1) | 2086 | (if (= (line-number-at-pos) 1) |
| 2079 | (move-to-column (+ old-column (1- (minibuffer-prompt-end)))) | 2087 | (move-to-column (+ old-column (1- (minibuffer-prompt-end)))) |
| 2080 | (move-to-column old-column)) | 2088 | (move-to-column old-column)) |
| 2081 | (goto-char (line-end-position))))))) | 2089 | ;; Put the cursor at the end of the visual line instead of the |
| 2090 | ;; logical line, so the next `previous-line-or-history-element' | ||
| 2091 | ;; would move to the previous history element, not to a possible upper | ||
| 2092 | ;; visual line from the end of logical line in `line-move-visual' mode. | ||
| 2093 | (end-of-visual-line) | ||
| 2094 | ;; Since `end-of-visual-line' puts the cursor at the beginning | ||
| 2095 | ;; of the next visual line, move it one char back to the end | ||
| 2096 | ;; of the first visual line (bug#22544). | ||
| 2097 | (unless (eolp) (backward-char 1))))))) | ||
| 2082 | 2098 | ||
| 2083 | (defun next-complete-history-element (n) | 2099 | (defun next-complete-history-element (n) |
| 2084 | "Get next history element which completes the minibuffer before the point. | 2100 | "Get next history element which completes the minibuffer before the point. |
diff --git a/src/fileio.c b/src/fileio.c index f185f38bd01..0372f46cd55 100644 --- a/src/fileio.c +++ b/src/fileio.c | |||
| @@ -36,7 +36,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 36 | #include <selinux/context.h> | 36 | #include <selinux/context.h> |
| 37 | #endif | 37 | #endif |
| 38 | 38 | ||
| 39 | #ifdef HAVE_ACL_SET_FILE | 39 | #if USE_ACL && defined HAVE_ACL_SET_FILE |
| 40 | #include <sys/acl.h> | 40 | #include <sys/acl.h> |
| 41 | #endif | 41 | #endif |
| 42 | 42 | ||
| @@ -2937,16 +2937,17 @@ Return nil if file does not exist or is not accessible, or if Emacs | |||
| 2937 | was unable to determine the ACL entries. */) | 2937 | was unable to determine the ACL entries. */) |
| 2938 | (Lisp_Object filename) | 2938 | (Lisp_Object filename) |
| 2939 | { | 2939 | { |
| 2940 | #if USE_ACL | ||
| 2940 | Lisp_Object absname; | 2941 | Lisp_Object absname; |
| 2941 | Lisp_Object handler; | 2942 | Lisp_Object handler; |
| 2942 | #ifdef HAVE_ACL_SET_FILE | 2943 | # ifdef HAVE_ACL_SET_FILE |
| 2943 | acl_t acl; | 2944 | acl_t acl; |
| 2944 | Lisp_Object acl_string; | 2945 | Lisp_Object acl_string; |
| 2945 | char *str; | 2946 | char *str; |
| 2946 | # ifndef HAVE_ACL_TYPE_EXTENDED | 2947 | # ifndef HAVE_ACL_TYPE_EXTENDED |
| 2947 | acl_type_t ACL_TYPE_EXTENDED = ACL_TYPE_ACCESS; | 2948 | acl_type_t ACL_TYPE_EXTENDED = ACL_TYPE_ACCESS; |
| 2949 | # endif | ||
| 2948 | # endif | 2950 | # endif |
| 2949 | #endif | ||
| 2950 | 2951 | ||
| 2951 | absname = expand_and_dir_to_file (filename, | 2952 | absname = expand_and_dir_to_file (filename, |
| 2952 | BVAR (current_buffer, directory)); | 2953 | BVAR (current_buffer, directory)); |
| @@ -2957,7 +2958,7 @@ was unable to determine the ACL entries. */) | |||
| 2957 | if (!NILP (handler)) | 2958 | if (!NILP (handler)) |
| 2958 | return call2 (handler, Qfile_acl, absname); | 2959 | return call2 (handler, Qfile_acl, absname); |
| 2959 | 2960 | ||
| 2960 | #ifdef HAVE_ACL_SET_FILE | 2961 | # ifdef HAVE_ACL_SET_FILE |
| 2961 | absname = ENCODE_FILE (absname); | 2962 | absname = ENCODE_FILE (absname); |
| 2962 | 2963 | ||
| 2963 | acl = acl_get_file (SSDATA (absname), ACL_TYPE_EXTENDED); | 2964 | acl = acl_get_file (SSDATA (absname), ACL_TYPE_EXTENDED); |
| @@ -2976,6 +2977,7 @@ was unable to determine the ACL entries. */) | |||
| 2976 | acl_free (acl); | 2977 | acl_free (acl); |
| 2977 | 2978 | ||
| 2978 | return acl_string; | 2979 | return acl_string; |
| 2980 | # endif | ||
| 2979 | #endif | 2981 | #endif |
| 2980 | 2982 | ||
| 2981 | return Qnil; | 2983 | return Qnil; |
| @@ -2993,13 +2995,14 @@ Setting ACL for local files requires Emacs to be built with ACL | |||
| 2993 | support. */) | 2995 | support. */) |
| 2994 | (Lisp_Object filename, Lisp_Object acl_string) | 2996 | (Lisp_Object filename, Lisp_Object acl_string) |
| 2995 | { | 2997 | { |
| 2998 | #if USE_ACL | ||
| 2996 | Lisp_Object absname; | 2999 | Lisp_Object absname; |
| 2997 | Lisp_Object handler; | 3000 | Lisp_Object handler; |
| 2998 | #ifdef HAVE_ACL_SET_FILE | 3001 | # ifdef HAVE_ACL_SET_FILE |
| 2999 | Lisp_Object encoded_absname; | 3002 | Lisp_Object encoded_absname; |
| 3000 | acl_t acl; | 3003 | acl_t acl; |
| 3001 | bool fail; | 3004 | bool fail; |
| 3002 | #endif | 3005 | # endif |
| 3003 | 3006 | ||
| 3004 | absname = Fexpand_file_name (filename, BVAR (current_buffer, directory)); | 3007 | absname = Fexpand_file_name (filename, BVAR (current_buffer, directory)); |
| 3005 | 3008 | ||
| @@ -3009,7 +3012,7 @@ support. */) | |||
| 3009 | if (!NILP (handler)) | 3012 | if (!NILP (handler)) |
| 3010 | return call3 (handler, Qset_file_acl, absname, acl_string); | 3013 | return call3 (handler, Qset_file_acl, absname, acl_string); |
| 3011 | 3014 | ||
| 3012 | #ifdef HAVE_ACL_SET_FILE | 3015 | # ifdef HAVE_ACL_SET_FILE |
| 3013 | if (STRINGP (acl_string)) | 3016 | if (STRINGP (acl_string)) |
| 3014 | { | 3017 | { |
| 3015 | acl = acl_from_text (SSDATA (acl_string)); | 3018 | acl = acl_from_text (SSDATA (acl_string)); |
| @@ -3030,6 +3033,7 @@ support. */) | |||
| 3030 | acl_free (acl); | 3033 | acl_free (acl); |
| 3031 | return fail ? Qnil : Qt; | 3034 | return fail ? Qnil : Qt; |
| 3032 | } | 3035 | } |
| 3036 | # endif | ||
| 3033 | #endif | 3037 | #endif |
| 3034 | 3038 | ||
| 3035 | return Qnil; | 3039 | return Qnil; |