commit 0b8117ed1abfc17bb0bc1690a8997736f1e8f98c (HEAD, refs/remotes/origin/master) Author: Alexander Gramiak Date: Sun Apr 7 19:17:48 2019 -0600 ; * src/frame.h (MonitorInfo): Remove const modifier This removes a compiler warning with xfree. diff --git a/src/frame.h b/src/frame.h index b1eedf36a3..ed62e7ace0 100644 --- a/src/frame.h +++ b/src/frame.h @@ -1648,7 +1648,7 @@ flush_frame (struct frame *f) struct MonitorInfo { XRectangle geom, work; int mm_width, mm_height; - const char *name; + char *name; }; extern void free_monitors (struct MonitorInfo *monitors, int n_monitors); commit 7b78857c0ba69eafd780484641b858ae8a167044 Author: Alexander Gramiak Date: Sun Apr 7 12:53:41 2019 -0600 ; * src/xfns.c (x-display-monitor-attributes-list) Fix typo. diff --git a/src/xfns.c b/src/xfns.c index 9a25b00b20..13f66f0718 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -5044,7 +5044,7 @@ Internal use only, use `display-monitor-attributes-list' instead. */) #if GTK_CHECK_VERSION (2, 14, 0) free_monitors (monitors, n_monitors); #else - xfree (monitors) + xfree (monitors); #endif unblock_input (); #else /* not USE_GTK */ commit 6dfe231c3197971fc0cdddcc1299200da80f3729 Author: Mattias Engdegård Date: Sun Apr 7 20:50:40 2019 +0200 Rename variable for clarity * lisp/progmodes/verilog-mode.el (verilog-sk-define-signal): Rename sig-re to sig-chars, to make it clear that it isn't a regexp. diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el index 916594bdde..9226291ffb 100644 --- a/lisp/progmodes/verilog-mode.el +++ b/lisp/progmodes/verilog-mode.el @@ -14263,13 +14263,13 @@ and the case items." (defun verilog-sk-define-signal () "Insert a definition of signal under point at top of module." (interactive "*") - (let* ((sig-re "a-zA-Z0-9_") + (let* ((sig-chars "a-zA-Z0-9_") (v1 (buffer-substring (save-excursion - (skip-chars-backward sig-re) + (skip-chars-backward sig-chars) (point)) (save-excursion - (skip-chars-forward sig-re) + (skip-chars-forward sig-chars) (point))))) (if (not (member v1 verilog-keywords)) (save-excursion commit a35e06bbe27c5907f56c5aeb48182d7be00d1dec Author: Alexander Gramiak Date: Sat Apr 6 23:02:24 2019 -0600 Plug memory leak in GTK x-display-monitor-attributes-list * src/frame.c (free_monitors) [USE_GTK]: Define in the GTK case as well. * src/xfns.c (x-display-monitor-attributes-list) [USE_GTK]: Plug memory leak. * src/frame.h (MonitorInfo): Declare name as pointing to const char. diff --git a/src/frame.c b/src/frame.c index d0c77149ba..6fdb7d0cbb 100644 --- a/src/frame.c +++ b/src/frame.c @@ -5662,8 +5662,8 @@ selected frame. This is useful when `make-pointer-invisible' is set. */) #ifdef HAVE_WINDOW_SYSTEM -# if (defined HAVE_NS \ - || (!defined USE_GTK && (defined HAVE_XINERAMA || defined HAVE_XRANDR))) +# if (defined USE_GTK || defined HAVE_NS || defined HAVE_XINERAMA \ + || defined HAVE_XRANDR) void free_monitors (struct MonitorInfo *monitors, int n_monitors) { diff --git a/src/frame.h b/src/frame.h index ed62e7ace0..b1eedf36a3 100644 --- a/src/frame.h +++ b/src/frame.h @@ -1648,7 +1648,7 @@ flush_frame (struct frame *f) struct MonitorInfo { XRectangle geom, work; int mm_width, mm_height; - char *name; + const char *name; }; extern void free_monitors (struct MonitorInfo *monitors, int n_monitors); diff --git a/src/xfns.c b/src/xfns.c index f238a3daa1..9a25b00b20 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -5030,7 +5030,7 @@ Internal use only, use `display-monitor-attributes-list' instead. */) mi->mm_height = height_mm; #if GTK_CHECK_VERSION (3, 22, 0) - mi->name = g_strdup (gdk_monitor_get_model (monitor)); + mi->name = xstrdup (gdk_monitor_get_model (monitor)); #elif GTK_CHECK_VERSION (2, 14, 0) mi->name = gdk_screen_get_monitor_plug_name (gscreen, i); #endif @@ -5041,6 +5041,11 @@ Internal use only, use `display-monitor-attributes-list' instead. */) primary_monitor, monitor_frames, source); +#if GTK_CHECK_VERSION (2, 14, 0) + free_monitors (monitors, n_monitors); +#else + xfree (monitors) +#endif unblock_input (); #else /* not USE_GTK */ commit 404a5470cf1b1ae5bd464aaf8fe909b86faa2e61 Author: Paul Eggert Date: Sun Apr 7 11:43:17 2019 -0700 Simplify fill_gstring_header * src/composite.c (fill_gstring_header): Omit first argument HEADER, since in practice it is always nil. Change caller to match. Help the compiler by telling it LEN is nonnegative. Problem found with --enable-gcc-warnings and gcc -O2 -Og. diff --git a/src/composite.c b/src/composite.c index c426cbb124..88f1235f11 100644 --- a/src/composite.c +++ b/src/composite.c @@ -787,28 +787,19 @@ static Lisp_Object gstring_work; static Lisp_Object gstring_work_headers; static Lisp_Object -fill_gstring_header (Lisp_Object header, ptrdiff_t from, ptrdiff_t from_byte, +fill_gstring_header (ptrdiff_t from, ptrdiff_t from_byte, ptrdiff_t to, Lisp_Object font_object, Lisp_Object string) { - ptrdiff_t len = to - from, i; - + ptrdiff_t len = to - from; if (len == 0) error ("Attempt to shape zero-length text"); - if (VECTORP (header)) - { - if (ASIZE (header) != len + 1) - args_out_of_range (header, make_fixnum (len + 1)); - } - else - { - if (len <= 8) - header = AREF (gstring_work_headers, len - 1); - else - header = make_uninit_vector (len + 1); - } + eassume (0 < len); + Lisp_Object header = (len <= 8 + ? AREF (gstring_work_headers, len - 1) + : make_uninit_vector (len + 1)); ASET (header, 0, font_object); - for (i = 0; i < len; i++) + for (ptrdiff_t i = 0; i < len; i++) { int c; @@ -1748,7 +1739,7 @@ should be ignored. */) frombyte = string_char_to_byte (string, frompos); } - header = fill_gstring_header (Qnil, frompos, frombyte, + header = fill_gstring_header (frompos, frombyte, topos, font_object, string); gstring = gstring_lookup_cache (header); if (! NILP (gstring)) commit 74732c541228ebb9f0a15b0a22132a85b32de89b Author: Paul Eggert Date: Sun Apr 7 11:36:50 2019 -0700 Help the compiler with byte order * src/xsettings.c (parse_settings): Help the compiler by letting it deduce the native endianness at compile-time. diff --git a/src/xsettings.c b/src/xsettings.c index 0c5e36d9d6..947d5cfb7b 100644 --- a/src/xsettings.c +++ b/src/xsettings.c @@ -393,8 +393,8 @@ parse_settings (unsigned char *prop, unsigned long bytes, struct xsettings *settings) { - Lisp_Object byteorder = Fbyteorder (); - int my_bo = XFIXNAT (byteorder) == 'B' ? MSBFirst : LSBFirst; + int int1 = 1; + int my_bo = *(char *) &int1 == 1 ? LSBFirst : MSBFirst; int that_bo = prop[0]; CARD32 n_settings; int bytes_parsed = 0; commit e71f1dda1f80feb319d4ce5a69e14d36ec59adfd Author: Paul Eggert Date: Sun Apr 7 02:44:37 2019 -0700 Fix more regexp oddities Problems reported by Mattias Engdegård in: https://lists.gnu.org/archive/html/emacs-devel/2019-04/msg00178.html * lisp/progmodes/sh-script.el (sh-get-indent-info): Reorder skip-chars-forward arg so that it does not look like a regexp. * lisp/progmodes/verilog-mode.el (verilog-sk-define-signal): Fix typo: the string is not a regexp. * lisp/vc/log-edit.el (log-edit-goto-eoh): Fix typo: stray ‘:’. * lisp/xml.el (xml-parse-dtd): Avoid ‘-’ right after char class. diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index dd3a6fa411..853a3500ee 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el @@ -2905,8 +2905,7 @@ STRING This is ignored for the purposes of calculating (setq align-point (point)))) (or (bobp) (forward-char -1)) - ;; FIXME: This charset looks too much like a regexp. --Stef - (skip-chars-forward "[a-z0-9]*?") + (skip-chars-forward "*0-9?[]a-z") ) ((string-match "[])}]" x) (setq x (sh-safe-forward-sexp -1)) diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el index 7b9c3921fb..916594bdde 100644 --- a/lisp/progmodes/verilog-mode.el +++ b/lisp/progmodes/verilog-mode.el @@ -14263,7 +14263,7 @@ and the case items." (defun verilog-sk-define-signal () "Insert a definition of signal under point at top of module." (interactive "*") - (let* ((sig-re "[a-zA-Z0-9_]*") + (let* ((sig-re "a-zA-Z0-9_") (v1 (buffer-substring (save-excursion (skip-chars-backward sig-re) diff --git a/lisp/vc/log-edit.el b/lisp/vc/log-edit.el index 8bd1bbddb7..42710dd8dc 100644 --- a/lisp/vc/log-edit.el +++ b/lisp/vc/log-edit.el @@ -350,7 +350,7 @@ The first subexpression is the actual text of the field.") (defun log-edit-goto-eoh () ;FIXME: Almost rfc822-goto-eoh! (goto-char (point-min)) (when (re-search-forward - "^\\([^[:alpha:]]\\|[[:alnum:]-]+[^[:alnum:]-:]\\)" nil 'move) + "^\\([^[:alpha:]]\\|[[:alnum:]-]+[^[:alnum:]-]\\)" nil 'move) (goto-char (match-beginning 0)))) (defun log-edit--match-first-line (limit) diff --git a/lisp/xml.el b/lisp/xml.el index 2337952f06..b5b923f863 100644 --- a/lisp/xml.el +++ b/lisp/xml.el @@ -718,10 +718,10 @@ This follows the rule [28] in the XML specifications." (cond ((looking-at "PUBLIC\\s-+") (goto-char (match-end 0)) (unless (or (re-search-forward - "\\=\"\\([[:space:][:alnum:]-'()+,./:=?;!*#@$_%]*\\)\"" + "\\=\"\\([[:space:][:alnum:]'()+,./:=?;!*#@$_%-]*\\)\"" nil t) (re-search-forward - "\\='\\([[:space:][:alnum:]-()+,./:=?;!*#@$_%]*\\)'" + "\\='\\([[:space:][:alnum:]()+,./:=?;!*#@$_%-]*\\)'" nil t)) (error "XML: Missing Public ID")) (let ((pubid (match-string-no-properties 1)))