aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Wiegley2016-02-15 14:07:46 -0800
committerJohn Wiegley2016-02-15 14:07:46 -0800
commit33bb679af9e323408c8089f0b5675a54776d60d5 (patch)
tree597ee645c54d54e3d77bd3394a72d67b7293f262
parentab7583a2b00d13207ab1c325c25c520a33859eee (diff)
parent10b8ed27ec91ff52f93eb0297dcc3abb214931aa (diff)
downloademacs-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.texi7
-rw-r--r--lisp/gnus/mm-decode.el2
-rw-r--r--lisp/replace.el10
-rw-r--r--lisp/simple.el18
-rw-r--r--src/fileio.c20
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
436Customization}) is @code{shr}. In Gnus, this is overridden by the value 436Customization}) is @code{shr}. In Gnus, this is overridden by the value
437of @code{gnus-blocked-images} or the return value of the function that 437of @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
439manual}). The default is @code{nil}. 439manual}).
440
441Some @acronym{HTML} mails might have the trick of spammers using
442@samp{<img>} tags. It is likely to be intended to verify whether you
443have read the mail. You can prevent your personal information from
444leaking 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.
154Note that cid images that are embedded in a message won't be blocked." 154Note 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 `\\?'.
1985FIXEDCASE, LITERAL are passed to `replace-match' (which see). 1986FIXEDCASE, LITERAL are passed to `replace-match' (which see).
1986After possibly editing it (if `\\?' is present), NEWTEXT is also 1987After possibly editing it (if `\\?' is present), NEWTEXT is also
1987passed to `replace-match'. If NOEDIT is true, no check for `\\?' 1988passed to `replace-match'. If NOEDIT is true, no check for `\\?'
1988is made (to save time). MATCH-DATA is used for the replacement. 1989is made (to save time). MATCH-DATA is used for the replacement.
1989In case editing is done, it is changed to use markers. 1990In case editing is done, it is changed to use markers. BACKWARD is
1991used to reverse the replacement direction.
1990 1992
1991The return value is non-nil if there has been no `\\?' or NOEDIT was 1993The return value is non-nil if there has been no `\\?' or NOEDIT was
1992passed in. If LITERAL is set, no checking is done, anyway." 1994passed 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
2937was unable to determine the ACL entries. */) 2937was 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
2993support. */) 2995support. */)
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;