aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Verona2013-04-02 08:27:06 +0200
committerJoakim Verona2013-04-02 08:27:06 +0200
commit39667649e3bcf9b9de7b70ee7dd2df7bfb9ac972 (patch)
tree3a4e52c3ada312618e94abd078e384e3a6223708
parent86dc02fe08b1a2d26d380ba67d6a165ead70bc79 (diff)
parent5584cae0be16d1188dbe4943e71b4954a9a028d0 (diff)
downloademacs-39667649e3bcf9b9de7b70ee7dd2df7bfb9ac972.tar.gz
emacs-39667649e3bcf9b9de7b70ee7dd2df7bfb9ac972.zip
upstream
-rw-r--r--ChangeLog5
-rw-r--r--admin/CPP-DEFINES1
-rw-r--r--autogen/config.in3
-rwxr-xr-xautogen/configure3
-rw-r--r--configure.ac1
-rw-r--r--etc/NEWS7
-rw-r--r--lisp/ChangeLog22
-rw-r--r--lisp/case-table.el40
-rw-r--r--lisp/facemenu.el15
-rw-r--r--lisp/gnus/ChangeLog9
-rw-r--r--lisp/gnus/gnus-msg.el18
-rw-r--r--lisp/gnus/nnir.el7
-rw-r--r--lisp/minibuffer.el21
-rw-r--r--lisp/progmodes/subword.el111
-rw-r--r--nt/ChangeLog19
-rw-r--r--nt/addpm.c7
-rw-r--r--nt/inc/ms-w32.h4
-rw-r--r--nt/makefile.w32-in24
-rw-r--r--src/ChangeLog17
-rw-r--r--src/casetab.c12
-rw-r--r--src/image.c36
-rw-r--r--src/w32.c3
-rw-r--r--src/xfns.c10
23 files changed, 281 insertions, 114 deletions
diff --git a/ChangeLog b/ChangeLog
index 500c85d2350..d245f6e2f9b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
12013-03-27 Paul Eggert <eggert@cs.ucla.edu>
2
3 * configure.ac (HAVE_XKBGETKEYBOARD): Remove.
4 Subsumed by HAVE_XKB. All uses changed.
5
12013-03-27 Aidan Gauland <aidalgol@no8wireless.co.nz 62013-03-27 Aidan Gauland <aidalgol@no8wireless.co.nz
2 7
3 * lisp/eshell/em-unix.el: Moved su and sudo to... 8 * lisp/eshell/em-unix.el: Moved su and sudo to...
diff --git a/admin/CPP-DEFINES b/admin/CPP-DEFINES
index c11c3c3b489..a89d1764f7b 100644
--- a/admin/CPP-DEFINES
+++ b/admin/CPP-DEFINES
@@ -377,7 +377,6 @@ HAVE_WS2TCPIP_H
377HAVE_XAW3D 377HAVE_XAW3D
378HAVE_XFT 378HAVE_XFT
379HAVE_XIM 379HAVE_XIM
380HAVE_XKBGETKEYBOARD
381HAVE_XPM 380HAVE_XPM
382HAVE_XRMSETDATABASE 381HAVE_XRMSETDATABASE
383HAVE_XSCREENNUMBEROFSCREEN 382HAVE_XSCREENNUMBEROFSCREEN
diff --git a/autogen/config.in b/autogen/config.in
index f68efed389a..25f060b9bb9 100644
--- a/autogen/config.in
+++ b/autogen/config.in
@@ -1109,9 +1109,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
1109/* Define to 1 if you have the Xkb extension. */ 1109/* Define to 1 if you have the Xkb extension. */
1110#undef HAVE_XKB 1110#undef HAVE_XKB
1111 1111
1112/* Define to 1 if you have the XkbGetKeyboard function. */
1113#undef HAVE_XKBGETKEYBOARD
1114
1115/* Define to 1 if you have the Xpm library (-lXpm). */ 1112/* Define to 1 if you have the Xpm library (-lXpm). */
1116#undef HAVE_XPM 1113#undef HAVE_XPM
1117 1114
diff --git a/autogen/configure b/autogen/configure
index e519edaa39d..126248beced 100755
--- a/autogen/configure
+++ b/autogen/configure
@@ -10634,9 +10634,6 @@ rm -f core conftest.err conftest.$ac_objext \
10634$as_echo "$emacs_xkb" >&6; } 10634$as_echo "$emacs_xkb" >&6; }
10635 if test $emacs_xkb = yes; then 10635 if test $emacs_xkb = yes; then
10636 10636
10637$as_echo "#define HAVE_XKBGETKEYBOARD 1" >>confdefs.h
10638
10639
10640$as_echo "#define HAVE_XKB 1" >>confdefs.h 10637$as_echo "#define HAVE_XKB 1" >>confdefs.h
10641 10638
10642 fi 10639 fi
diff --git a/configure.ac b/configure.ac
index 3feb6479271..4a27099ab4a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1823,7 +1823,6 @@ if test "${HAVE_X11}" = "yes"; then
1823 emacs_xkb=yes, emacs_xkb=no) 1823 emacs_xkb=yes, emacs_xkb=no)
1824 AC_MSG_RESULT($emacs_xkb) 1824 AC_MSG_RESULT($emacs_xkb)
1825 if test $emacs_xkb = yes; then 1825 if test $emacs_xkb = yes; then
1826 AC_DEFINE(HAVE_XKBGETKEYBOARD, 1, [Define to 1 if you have the XkbGetKeyboard function.])
1827 AC_DEFINE(HAVE_XKB, 1, [Define to 1 if you have the Xkb extension.]) 1826 AC_DEFINE(HAVE_XKB, 1, [Define to 1 if you have the Xkb extension.])
1828 fi 1827 fi
1829 1828
diff --git a/etc/NEWS b/etc/NEWS
index 1947797bd34..74badc6bbef 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -254,6 +254,11 @@ has not been relevant for some time.
254 254
255 255
256* New Modes and Packages in Emacs 24.4 256* New Modes and Packages in Emacs 24.4
257** New `superword-mode' in subword.el
258`superword-mode' overrides the default word motion commands to treat
259symbol_words as a single word, similar to what `subword-mode' does and
260using the same internal functions.
261
257** New nadvice.el package offering lighter-weight advice facilities. 262** New nadvice.el package offering lighter-weight advice facilities.
258It is layered as: 263It is layered as:
259- add-function/remove-function which can be used to add/remove code on any 264- add-function/remove-function which can be used to add/remove code on any
@@ -297,6 +302,8 @@ file using `set-file-extended-attributes'.
297 302
298** `dont-compile' is declared obsolete. 303** `dont-compile' is declared obsolete.
299 304
305** `get-upcase-table' is obsoleted by the new `case-table-get-table'.
306
300** Support for filesystem notifications. 307** Support for filesystem notifications.
301Emacs now supports notifications of filesystem changes, such as 308Emacs now supports notifications of filesystem changes, such as
302creation, modification, and deletion of files. This requires the 309creation, modification, and deletion of files. This requires the
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index e86bc7f0a96..00a105b5142 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,25 @@
12013-03-27 Eli Zaretskii <eliz@gnu.org>
2
3 * facemenu.el (list-colors-callback): New defvar.
4 (list-colors-redisplay): New function.
5 (list-colors-display): Install list-colors-redisplay as the
6 revert-buffer-function. (Bug#14063)
7
82013-03-27 Stefan Monnier <monnier@iro.umontreal.ca>
9
10 * minibuffer.el (completion-pcm--merge-completions): Make sure prefixes
11 and suffixes don't overlap (bug#14061).
12
13 * case-table.el: Use lexical-binding.
14 (case-table-get-table): New function.
15 (get-upcase-table): Use it. Mark as obsolete. Adjust callers.
16
172013-03-27 Teodor Zlatanov <tzz@lifelogs.com>
18
19 * progmodes/subword.el: Add `superword-mode' to do word motion
20 over symbol_words (parallels and leverages `subword-mode' which
21 does word motion inside MixedCaseWords).
22
12013-03-26 Stefan Monnier <monnier@iro.umontreal.ca> 232013-03-26 Stefan Monnier <monnier@iro.umontreal.ca>
2 24
3 * desktop.el (desktop--v2s): Rename from desktop-internal-v2s. 25 * desktop.el (desktop--v2s): Rename from desktop-internal-v2s.
diff --git a/lisp/case-table.el b/lisp/case-table.el
index 711d4e4ec8c..7d4aa27de1c 100644
--- a/lisp/case-table.el
+++ b/lisp/case-table.el
@@ -1,4 +1,4 @@
1;;; case-table.el --- code to extend the character set and support case tables 1;;; case-table.el --- code to extend the character set and support case tables -*- lexical-binding: t -*-
2 2
3;; Copyright (C) 1988, 1994, 2001-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1988, 1994, 2001-2013 Free Software Foundation, Inc.
4 4
@@ -65,18 +65,26 @@
65 (describe-vector description) 65 (describe-vector description)
66 (help-mode))))) 66 (help-mode)))))
67 67
68(defun case-table-get-table (case-table table)
69 "Return the TABLE of CASE-TABLE.
70TABLE can be `down', `up', `eqv' or `canon'."
71 (let ((slot-nb (cdr (assq table '((up . 0) (canon . 1) (eqv . 2))))))
72 (or (if (eq table 'down) case-table)
73 (char-table-extra-slot case-table slot-nb)
74 ;; Setup all extra slots of CASE-TABLE by temporarily selecting
75 ;; it as the standard case table.
76 (let ((old (standard-case-table)))
77 (unwind-protect
78 (progn
79 (set-standard-case-table case-table)
80 (char-table-extra-slot case-table slot-nb))
81 (or (eq case-table old)
82 (set-standard-case-table old)))))))
83
68(defun get-upcase-table (case-table) 84(defun get-upcase-table (case-table)
69 "Return the upcase table of CASE-TABLE." 85 "Return the upcase table of CASE-TABLE."
70 (or (char-table-extra-slot case-table 0) 86 (case-table-get-table case-table 'up))
71 ;; Setup all extra slots of CASE-TABLE by temporarily selecting 87(make-obsolete 'get-upcase-table 'case-table-get-table "24.4")
72 ;; it as the standard case table.
73 (let ((old (standard-case-table)))
74 (unwind-protect
75 (progn
76 (set-standard-case-table case-table)
77 (char-table-extra-slot case-table 0))
78 (or (eq case-table old)
79 (set-standard-case-table old))))))
80 88
81(defun copy-case-table (case-table) 89(defun copy-case-table (case-table)
82 (let ((copy (copy-sequence case-table)) 90 (let ((copy (copy-sequence case-table))
@@ -97,7 +105,7 @@ It also modifies `standard-syntax-table' to
97indicate left and right delimiters." 105indicate left and right delimiters."
98 (aset table l l) 106 (aset table l l)
99 (aset table r r) 107 (aset table r r)
100 (let ((up (get-upcase-table table))) 108 (let ((up (case-table-get-table table 'up)))
101 (aset up l l) 109 (aset up l l)
102 (aset up r r)) 110 (aset up r r))
103 ;; Clear out the extra slots so that they will be 111 ;; Clear out the extra slots so that they will be
@@ -117,7 +125,7 @@ It also modifies `standard-syntax-table' to give them the syntax of
117word constituents." 125word constituents."
118 (aset table uc lc) 126 (aset table uc lc)
119 (aset table lc lc) 127 (aset table lc lc)
120 (let ((up (get-upcase-table table))) 128 (let ((up (case-table-get-table table 'up)))
121 (aset up uc uc) 129 (aset up uc uc)
122 (aset up lc uc)) 130 (aset up lc uc))
123 ;; Clear out the extra slots so that they will be 131 ;; Clear out the extra slots so that they will be
@@ -132,7 +140,7 @@ word constituents."
132It also modifies `standard-syntax-table' to give them the syntax of 140It also modifies `standard-syntax-table' to give them the syntax of
133word constituents." 141word constituents."
134 (aset table lc lc) 142 (aset table lc lc)
135 (let ((up (get-upcase-table table))) 143 (let ((up (case-table-get-table table 'up)))
136 (aset up uc uc) 144 (aset up uc uc)
137 (aset up lc uc)) 145 (aset up lc uc))
138 ;; Clear out the extra slots so that they will be 146 ;; Clear out the extra slots so that they will be
@@ -148,7 +156,7 @@ It also modifies `standard-syntax-table' to give them the syntax of
148word constituents." 156word constituents."
149 (aset table uc lc) 157 (aset table uc lc)
150 (aset table lc lc) 158 (aset table lc lc)
151 (let ((up (get-upcase-table table))) 159 (let ((up (case-table-get-table table 'up)))
152 (aset up uc uc)) 160 (aset up uc uc))
153 ;; Clear out the extra slots so that they will be 161 ;; Clear out the extra slots so that they will be
154 ;; recomputed from the main (downcase) table and upcase table. 162 ;; recomputed from the main (downcase) table and upcase table.
@@ -164,7 +172,7 @@ that will be used as the downcase part of a case table.
164It also modifies `standard-syntax-table'. 172It also modifies `standard-syntax-table'.
165SYNTAX should be \" \", \"w\", \".\" or \"_\"." 173SYNTAX should be \" \", \"w\", \".\" or \"_\"."
166 (aset table c c) 174 (aset table c c)
167 (let ((up (get-upcase-table table))) 175 (let ((up (case-table-get-table table 'up)))
168 (aset up c c)) 176 (aset up c c))
169 ;; Clear out the extra slots so that they will be 177 ;; Clear out the extra slots so that they will be
170 ;; recomputed from the main (downcase) table and upcase table. 178 ;; recomputed from the main (downcase) table and upcase table.
diff --git a/lisp/facemenu.el b/lisp/facemenu.el
index e86c1c23d66..9a66edd28fc 100644
--- a/lisp/facemenu.el
+++ b/lisp/facemenu.el
@@ -513,12 +513,23 @@ filter out the color from the output."
513 (* (nth 1 c-rgb) 0.7151522) 513 (* (nth 1 c-rgb) 0.7151522)
514 (* (nth 2 c-rgb) 0.0721750)))))) 514 (* (nth 2 c-rgb) 0.0721750))))))
515 515
516(defvar list-colors-callback nil
517 "Value of CALLBACK arg passed to `list-colors-display'; internal use.")
518
519(defun list-colors-redisplay (_ignore-auto _noconfirm)
520 "Redisplay the colors using `list-colors-sort'.
521
522This is installed as a `revert-buffer-function' in the *Colors* buffer."
523 (list-colors-display nil (buffer-name) list-colors-callback))
524
516(defun list-colors-display (&optional list buffer-name callback) 525(defun list-colors-display (&optional list buffer-name callback)
517 "Display names of defined colors, and show what they look like. 526 "Display names of defined colors, and show what they look like.
518If the optional argument LIST is non-nil, it should be a list of 527If the optional argument LIST is non-nil, it should be a list of
519colors to display. Otherwise, this command computes a list of 528colors to display. Otherwise, this command computes a list of
520colors that the current display can handle. Customize 529colors that the current display can handle. Customize
521`list-colors-sort' to change the order in which colors are shown. 530`list-colors-sort' to change the order in which colors are shown.
531Type `g' or \\[revert-buffer] after customizing `list-colors-sort'
532to redisplay colors in the new order.
522 533
523If the optional argument BUFFER-NAME is nil, it defaults to *Colors*. 534If the optional argument BUFFER-NAME is nil, it defaults to *Colors*.
524 535
@@ -566,7 +577,9 @@ color. The function should accept a single argument, the color name."
566 (erase-buffer) 577 (erase-buffer)
567 (list-colors-print list callback) 578 (list-colors-print list callback)
568 (set-buffer-modified-p nil) 579 (set-buffer-modified-p nil)
569 (setq truncate-lines t))) 580 (setq truncate-lines t)
581 (setq-local list-colors-callback callback)
582 (setq revert-buffer-function 'list-colors-redisplay)))
570 (when callback 583 (when callback
571 (pop-to-buffer buffer-name) 584 (pop-to-buffer buffer-name)
572 (message "Click on a color to select it."))) 585 (message "Click on a color to select it.")))
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 9fffc4f1a45..cbfb0109aec 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,12 @@
12013-03-27 Andrew Cohen <cohen@bu.edu>
2
3 * gnus-msg.el (gnus-setup-message): When replying from an nnir summary
4 buffer use the posting-style and gcc of the original article group.
5 (gnus-inews-insert-gcc): Don't set gcc-self for virtual groups.
6
7 * nnir.el: Fix byte-compile warning. nnoo-define-skeleton should come
8 after other deffoos.
9
12013-03-26 Andrew Cohen <cohen@bu.edu> 102013-03-26 Andrew Cohen <cohen@bu.edu>
2 11
3 * nnir.el: Major rewrite. Cleaner separation between searches and group 12 * nnir.el: Major rewrite. Cleaner separation between searches and group
diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el
index f7b2d8b99d9..067465b0e6f 100644
--- a/lisp/gnus/gnus-msg.el
+++ b/lisp/gnus/gnus-msg.el
@@ -426,15 +426,24 @@ Thank you for your help in stamping out bugs.
426 `(let ((,winconf (current-window-configuration)) 426 `(let ((,winconf (current-window-configuration))
427 (,winconf-name gnus-current-window-configuration) 427 (,winconf-name gnus-current-window-configuration)
428 (,buffer (buffer-name (current-buffer))) 428 (,buffer (buffer-name (current-buffer)))
429 (,article gnus-article-reply) 429 (,article (or (when (and
430 (string-match "^nnir:" gnus-newsgroup-name)
431 gnus-article-reply)
432 (nnir-article-number gnus-article-reply))
433 gnus-article-reply))
430 (,yanked gnus-article-yanked-articles) 434 (,yanked gnus-article-yanked-articles)
431 (,group gnus-newsgroup-name) 435 (,group (or (when (and
436 (string-match "^nnir:" gnus-newsgroup-name)
437 gnus-article-reply)
438 (nnir-article-group gnus-article-reply))
439 gnus-newsgroup-name))
432 (message-header-setup-hook 440 (message-header-setup-hook
433 (copy-sequence message-header-setup-hook)) 441 (copy-sequence message-header-setup-hook))
434 (mbl mml-buffer-list) 442 (mbl mml-buffer-list)
435 (message-mode-hook (copy-sequence message-mode-hook))) 443 (message-mode-hook (copy-sequence message-mode-hook)))
436 (setq mml-buffer-list nil) 444 (setq mml-buffer-list nil)
437 (add-hook 'message-header-setup-hook 'gnus-inews-insert-gcc) 445 (add-hook 'message-header-setup-hook (lambda ()
446 (gnus-inews-insert-gcc ,group)))
438 ;; message-newsreader and message-mailer were formerly set in 447 ;; message-newsreader and message-mailer were formerly set in
439 ;; gnus-inews-add-send-actions, but this is too late when 448 ;; gnus-inews-add-send-actions, but this is too late when
440 ;; message-generate-headers-first is used. --ansel 449 ;; message-generate-headers-first is used. --ansel
@@ -1706,7 +1715,8 @@ this is a reply."
1706 (group (when group (gnus-group-decoded-name group))) 1715 (group (when group (gnus-group-decoded-name group)))
1707 (var (or gnus-outgoing-message-group gnus-message-archive-group)) 1716 (var (or gnus-outgoing-message-group gnus-message-archive-group))
1708 (gcc-self-val 1717 (gcc-self-val
1709 (and group (gnus-group-find-parameter group 'gcc-self))) 1718 (and group (gnus-group-find-parameter group 'gcc-self)
1719 (not (gnus-virtual-group-p group))))
1710 result 1720 result
1711 (groups 1721 (groups
1712 (cond 1722 (cond
diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el
index cabd08b0653..a48c6043e82 100644
--- a/lisp/gnus/nnir.el
+++ b/lisp/gnus/nnir.el
@@ -886,7 +886,7 @@ skips all prompting."
886;; (car (assoc '(nnir "nnir-ephemeral" (nnir-address "nnir")) 886;; (car (assoc '(nnir "nnir-ephemeral" (nnir-address "nnir"))
887;; gnus-opened-servers)))) 887;; gnus-opened-servers))))
888 888
889(nnoo-define-skeleton nnir) 889
890 890
891 891
892(defmacro nnir-add-result (dirnam artno score prefix server artlist) 892(defmacro nnir-add-result (dirnam artno score prefix server artlist)
@@ -1880,6 +1880,11 @@ article came from is also searched."
1880 (nnir-request-update-info pgroup (gnus-get-info pgroup))) 1880 (nnir-request-update-info pgroup (gnus-get-info pgroup)))
1881 t)) 1881 t))
1882 1882
1883(deffoo nnir-request-close ()
1884 t)
1885
1886
1887(nnoo-define-skeleton nnir)
1883 1888
1884;; The end. 1889;; The end.
1885(provide 'nnir) 1890(provide 'nnir)
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index ec237f0f664..016b16d0740 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -2997,12 +2997,21 @@ the same set of elements."
2997 ;; here any more. 2997 ;; here any more.
2998 (unless unique 2998 (unless unique
2999 (push elem res) 2999 (push elem res)
3000 (when (memq elem '(star point prefix)) 3000 ;; Extract common suffix additionally to common prefix.
3001 ;; Extract common suffix additionally to common prefix. 3001 ;; Don't do it for `any' since it could lead to a merged
3002 ;; Only do it for `point', `star', and `prefix' since for 3002 ;; completion that doesn't itself match the candidates.
3003 ;; `any' it could lead to a merged completion that 3003 (when (and (memq elem '(star point prefix))
3004 ;; doesn't itself match the candidates. 3004 ;; If prefix is one of the completions, there's no
3005 (let ((suffix (completion--common-suffix comps))) 3005 ;; suffix left to find.
3006 (not (assoc-string prefix comps t)))
3007 (let ((suffix
3008 (completion--common-suffix
3009 (if (zerop (length prefix)) comps
3010 ;; Ignore the chars in the common prefix, so we
3011 ;; don't merge '("abc" "abbc") as "ab*bc".
3012 (let ((skip (length prefix)))
3013 (mapcar (lambda (str) (substring str skip))
3014 comps))))))
3006 (cl-assert (stringp suffix)) 3015 (cl-assert (stringp suffix))
3007 (unless (equal suffix "") 3016 (unless (equal suffix "")
3008 (push suffix res))))) 3017 (push suffix res)))))
diff --git a/lisp/progmodes/subword.el b/lisp/progmodes/subword.el
index 80e632c6ef6..24abfa8a053 100644
--- a/lisp/progmodes/subword.el
+++ b/lisp/progmodes/subword.el
@@ -26,7 +26,8 @@
26 26
27;; This package provides `subword' oriented commands and a minor mode 27;; This package provides `subword' oriented commands and a minor mode
28;; (`subword-mode') that substitutes the common word handling 28;; (`subword-mode') that substitutes the common word handling
29;; functions with them. 29;; functions with them. It also provides the `superword-mode' minor
30;; mode that treats symbols as words, the opposite of `subword-mode'.
30 31
31;; In spite of GNU Coding Standards, it is popular to name a symbol by 32;; In spite of GNU Coding Standards, it is popular to name a symbol by
32;; mixing uppercase and lowercase letters, e.g. "GtkWidget", 33;; mixing uppercase and lowercase letters, e.g. "GtkWidget",
@@ -43,12 +44,13 @@
43 44
44;; The subword oriented commands defined in this package recognize 45;; The subword oriented commands defined in this package recognize
45;; subwords in a nomenclature to move between them and to edit them as 46;; subwords in a nomenclature to move between them and to edit them as
46;; words. 47;; words. You also get a mode to treat symbols as words instead,
48;; called `superword-mode' (the opposite of `subword-mode').
47 49
48;; In the minor mode, all common key bindings for word oriented 50;; In the minor mode, all common key bindings for word oriented
49;; commands are overridden by the subword oriented commands: 51;; commands are overridden by the subword oriented commands:
50 52
51;; Key Word oriented command Subword oriented command 53;; Key Word oriented command Subword oriented command (also superword)
52;; ============================================================ 54;; ============================================================
53;; M-f `forward-word' `subword-forward' 55;; M-f `forward-word' `subword-forward'
54;; M-b `backward-word' `subword-backward' 56;; M-b `backward-word' `subword-backward'
@@ -67,8 +69,13 @@
67;; To make the mode turn on automatically, put the following code in 69;; To make the mode turn on automatically, put the following code in
68;; your .emacs: 70;; your .emacs:
69;; 71;;
70;; (add-hook 'c-mode-common-hook 72;; (add-hook 'c-mode-common-hook 'subword-mode)
71;; (lambda () (subword-mode 1))) 73;;
74
75;; To make the mode turn `superword-mode' on automatically for
76;; only some modes, put the following code in your .emacs:
77;;
78;; (add-hook 'c-mode-common-hook 'superword-mode)
72;; 79;;
73 80
74;; Acknowledgment: 81;; Acknowledgment:
@@ -98,7 +105,8 @@
98 (let ((map (make-sparse-keymap))) 105 (let ((map (make-sparse-keymap)))
99 (dolist (cmd '(forward-word backward-word mark-word kill-word 106 (dolist (cmd '(forward-word backward-word mark-word kill-word
100 backward-kill-word transpose-words 107 backward-kill-word transpose-words
101 capitalize-word upcase-word downcase-word)) 108 capitalize-word upcase-word downcase-word
109 left-word right-word))
102 (let ((othercmd (let ((name (symbol-name cmd))) 110 (let ((othercmd (let ((name (symbol-name cmd)))
103 (string-match "\\([[:alpha:]-]+\\)-word[s]?" name) 111 (string-match "\\([[:alpha:]-]+\\)-word[s]?" name)
104 (intern (concat "subword-" (match-string 1 name)))))) 112 (intern (concat "subword-" (match-string 1 name))))))
@@ -133,9 +141,8 @@ subwords in a nomenclature to move between subwords and to edit them
133as words. 141as words.
134 142
135\\{subword-mode-map}" 143\\{subword-mode-map}"
136 nil 144 :lighter " ,"
137 nil 145 (when subword-mode (superword-mode -1)))
138 subword-mode-map)
139 146
140(define-obsolete-function-alias 'c-subword-mode 'subword-mode "23.2") 147(define-obsolete-function-alias 'c-subword-mode 'subword-mode "23.2")
141 148
@@ -161,6 +168,8 @@ Optional argument ARG is the same as for `forward-word'."
161 168
162(put 'subword-forward 'CUA 'move) 169(put 'subword-forward 'CUA 'move)
163 170
171(defalias 'subword-right 'subword-forward)
172
164(defun subword-backward (&optional arg) 173(defun subword-backward (&optional arg)
165 "Do the same as `backward-word' but on subwords. 174 "Do the same as `backward-word' but on subwords.
166See the command `subword-mode' for a description of subwords. 175See the command `subword-mode' for a description of subwords.
@@ -168,6 +177,8 @@ Optional argument ARG is the same as for `backward-word'."
168 (interactive "p") 177 (interactive "p")
169 (subword-forward (- (or arg 1)))) 178 (subword-forward (- (or arg 1))))
170 179
180(defalias 'subword-left 'subword-backward)
181
171(defun subword-mark (arg) 182(defun subword-mark (arg)
172 "Do the same as `mark-word' but on subwords. 183 "Do the same as `mark-word' but on subwords.
173See the command `subword-mode' for a description of subwords. 184See the command `subword-mode' for a description of subwords.
@@ -254,41 +265,73 @@ Optional argument ARG is the same as for `capitalize-word'."
254 (unless advance 265 (unless advance
255 (goto-char start)))) 266 (goto-char start))))
256 267
268
269
270(defvar superword-mode-map subword-mode-map
271 "Keymap used in `superword-mode' minor mode.")
272
273;;;###autoload
274(define-minor-mode superword-mode
275 "Toggle superword movement and editing (Superword mode).
276With a prefix argument ARG, enable Superword mode if ARG is
277positive, and disable it otherwise. If called from Lisp, enable
278the mode if ARG is omitted or nil.
279
280Superword mode is a buffer-local minor mode. Enabling it remaps
281word-based editing commands to superword-based commands that
282treat symbols as words, e.g. \"this_is_a_symbol\".
283
284The superword oriented commands activated in this minor mode
285recognize symbols as superwords to move between superwords and to
286edit them as words.
287
288\\{superword-mode-map}"
289 :lighter " ²"
290 (when superword-mode (subword-mode -1)))
291
292;;;###autoload
293(define-global-minor-mode global-superword-mode superword-mode
294 (lambda () (superword-mode 1)))
257 295
258 296
259;; 297;;
260;; Internal functions 298;; Internal functions
261;; 299;;
262(defun subword-forward-internal () 300(defun subword-forward-internal ()
263 (if (and 301 (if superword-mode
264 (save-excursion 302 (forward-symbol 1)
265 (let ((case-fold-search nil)) 303 (if (and
266 (re-search-forward subword-forward-regexp nil t))) 304 (save-excursion
267 (> (match-end 0) (point))) 305 (let ((case-fold-search nil))
268 (goto-char 306 (re-search-forward subword-forward-regexp nil t)))
269 (cond 307 (> (match-end 0) (point)))
270 ((< 1 (- (match-end 2) (match-beginning 2))) 308 (goto-char
271 (1- (match-end 2))) 309 (cond
272 (t 310 ((< 1 (- (match-end 2) (match-beginning 2)))
273 (match-end 0)))) 311 (1- (match-end 2)))
274 (forward-word 1))) 312 (t
275 313 (match-end 0))))
314 (forward-word 1))))
276 315
277(defun subword-backward-internal () 316(defun subword-backward-internal ()
278 (if (save-excursion 317 (if superword-mode
279 (let ((case-fold-search nil)) 318 (forward-symbol -1)
280 (re-search-backward subword-backward-regexp nil t))) 319 (if (save-excursion
281 (goto-char 320 (let ((case-fold-search nil))
282 (cond 321 (re-search-backward subword-backward-regexp nil t)))
283 ((and (match-end 3) 322 (goto-char
284 (< 1 (- (match-end 3) (match-beginning 3))) 323 (cond
285 (not (eq (point) (match-end 3)))) 324 ((and (match-end 3)
286 (1- (match-end 3))) 325 (< 1 (- (match-end 3) (match-beginning 3)))
287 (t 326 (not (eq (point) (match-end 3))))
288 (1+ (match-beginning 0))))) 327 (1- (match-end 3)))
289 (backward-word 1))) 328 (t
329 (1+ (match-beginning 0)))))
330 (backward-word 1))))
290 331
291 332
333
292(provide 'subword) 334(provide 'subword)
335(provide 'superword)
293 336
294;;; subword.el ends here 337;;; subword.el ends here
diff --git a/nt/ChangeLog b/nt/ChangeLog
index f851004f605..03bd86a3216 100644
--- a/nt/ChangeLog
+++ b/nt/ChangeLog
@@ -1,3 +1,22 @@
12013-03-27 Eli Zaretskii <eliz@gnu.org>
2
3 * makefile.w32-in (all-other-dirs-nmake, all-other-dirs-gmake)
4 (bootstrap, bootstrap-nmake, bootstrap-gmake, install-addpm):
5 Depend on .exe files.
6
7 * inc/ms-w32.h (sys_localtime) [_W64]: Provide a prototype, to
8 avoid MinGW64 compiler warnings in editfns.c.
9
10 Fix rules for parallel builds.
11 * makefile.w32-in (ALL): Depend on *.exe files, not on phony names
12 without the .exe suffix.
13 (addpm, ddeclient, cmdproxy, addsection, preprep): Remove phony
14 targets.
15 (.PHONY): Remove.
16
17 * addpm.c (_WIN32_IE) [_W64]: Move after inclusion of standard
18 headers, since that's where _W64 is declared by MinGW64.
19
12013-03-26 Eli Zaretskii <eliz@gnu.org> 202013-03-26 Eli Zaretskii <eliz@gnu.org>
2 21
3 * inc/ms-w32.h (USE_NO_MINGW_SETJMP_TWO_ARGS): Don't define. 22 * inc/ms-w32.h (USE_NO_MINGW_SETJMP_TWO_ARGS): Don't define.
diff --git a/nt/addpm.c b/nt/addpm.c
index 8079d51dd64..688e0167334 100644
--- a/nt/addpm.c
+++ b/nt/addpm.c
@@ -34,6 +34,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
34 installed, then the DDE fallback for creating icons the Windows 3.1 34 installed, then the DDE fallback for creating icons the Windows 3.1
35 progman way will be used instead, but that is prone to lockups 35 progman way will be used instead, but that is prone to lockups
36 caused by other applications not servicing their message queues. */ 36 caused by other applications not servicing their message queues. */
37#include <stdlib.h>
38#include <stdio.h>
39#include <malloc.h>
40
37/* MinGW64 defines _W64 and barfs if _WIN32_IE is defined to anything 41/* MinGW64 defines _W64 and barfs if _WIN32_IE is defined to anything
38 below 0x500. */ 42 below 0x500. */
39#ifndef _W64 43#ifndef _W64
@@ -45,9 +49,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
45#include <windows.h> 49#include <windows.h>
46#include <shlobj.h> 50#include <shlobj.h>
47#include <ddeml.h> 51#include <ddeml.h>
48#include <stdlib.h>
49#include <stdio.h>
50#include <malloc.h>
51 52
52HDDEDATA CALLBACK 53HDDEDATA CALLBACK
53DdeCallback (UINT uType, UINT uFmt, HCONV hconv, 54DdeCallback (UINT uType, UINT uFmt, HCONV hconv,
diff --git a/nt/inc/ms-w32.h b/nt/inc/ms-w32.h
index a2111da6f3e..cd183c917c4 100644
--- a/nt/inc/ms-w32.h
+++ b/nt/inc/ms-w32.h
@@ -161,6 +161,10 @@ extern char *getenv ();
161/* Make sure 'struct timespec' and 'struct timezone' are defined. */ 161/* Make sure 'struct timespec' and 'struct timezone' are defined. */
162#include <sys/types.h> 162#include <sys/types.h>
163#include <time.h> 163#include <time.h>
164/* This prototype avoids MinGW64 compiler warnings due to the fact
165 that time.h is included before localtime is redirected to
166 sys_localtime below. */
167extern struct tm * sys_localtime (const time_t *);
164/* MinGW64 uses a 2-argument _setjmp, and setjmp is a macro defined to 168/* MinGW64 uses a 2-argument _setjmp, and setjmp is a macro defined to
165 supply the 2nd arg correctly, so don't use _setjmp directly in that 169 supply the 2nd arg correctly, so don't use _setjmp directly in that
166 case. */ 170 case. */
diff --git a/nt/makefile.w32-in b/nt/makefile.w32-in
index 9336ddb5002..d3e1c8e2228 100644
--- a/nt/makefile.w32-in
+++ b/nt/makefile.w32-in
@@ -31,33 +31,26 @@ CLIENTRES = $(BLD)/emacsclient.res
31 31
32XMFLAGS = 32XMFLAGS =
33 33
34ALL = addpm ddeclient runemacs cmdproxy addsection preprep 34ALL = $(BLD)/addpm.exe $(BLD)/ddeclient.exe $(BLD)/runemacs.exe \
35 $(BLD)/cmdproxy.exe $(BLD)/addsection.exe $(BLD)/preprep.exe
35 36
36.PHONY: $(ALL)
37
38
39addpm: stamp_BLD $(BLD)/addpm.exe
40$(BLD)/addpm.exe: $(BLD)/addpm.$(O) 37$(BLD)/addpm.exe: $(BLD)/addpm.$(O)
41 $(LINK) $(LINK_OUT)$@ \ 38 $(LINK) $(LINK_OUT)$@ \
42 $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) \ 39 $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) \
43 $(USER32) $(OLE32) $(UUID) $(SHELL32) 40 $(USER32) $(OLE32) $(UUID) $(SHELL32)
44 41
45ddeclient: stamp_BLD $(BLD)/ddeclient.exe
46$(BLD)/ddeclient.exe: $(BLD)/ddeclient.$(O) 42$(BLD)/ddeclient.exe: $(BLD)/ddeclient.$(O)
47 $(LINK) $(LINK_OUT)$@ \ 43 $(LINK) $(LINK_OUT)$@ \
48 $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32) 44 $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32)
49 45
50cmdproxy: stamp_BLD $(BLD)/cmdproxy.exe
51$(BLD)/cmdproxy.exe: $(BLD)/cmdproxy.$(O) 46$(BLD)/cmdproxy.exe: $(BLD)/cmdproxy.$(O)
52 $(LINK) $(LINK_OUT)$@ \ 47 $(LINK) $(LINK_OUT)$@ \
53 $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(USER32) 48 $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(USER32)
54 49
55addsection: stamp_BLD $(BLD)/addsection.exe
56$(BLD)/addsection.exe: $(BLD)/addsection.$(O) 50$(BLD)/addsection.exe: $(BLD)/addsection.$(O)
57 $(LINK) $(LINK_OUT)$@ \ 51 $(LINK) $(LINK_OUT)$@ \
58 $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(USER32) 52 $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(USER32)
59 53
60preprep: stamp_BLD $(BLD)/preprep.exe
61$(BLD)/preprep.exe: $(BLD)/preprep.$(O) 54$(BLD)/preprep.exe: $(BLD)/preprep.$(O)
62 $(LINK) $(LINK_OUT)$@ \ 55 $(LINK) $(LINK_OUT)$@ \
63 $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) 56 $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS)
@@ -72,7 +65,6 @@ $(TRES): emacs.rc icons/emacs.ico $(EMACS_MANIFEST) stamp_BLD
72$(CLIENTRES): emacsclient.rc stamp_BLD 65$(CLIENTRES): emacsclient.rc stamp_BLD
73 $(RC) $(RC_OUT)$(CLIENTRES) emacsclient.rc 66 $(RC) $(RC_OUT)$(CLIENTRES) emacsclient.rc
74 67
75runemacs: stamp_BLD $(BLD)/runemacs.exe
76$(BLD)/runemacs.exe: $(BLD)/runemacs.$(O) $(TRES) 68$(BLD)/runemacs.exe: $(BLD)/runemacs.$(O) $(TRES)
77 $(LINK) $(LINK_OUT)$@ $(SUBSYSTEM_WINDOWS) \ 69 $(LINK) $(LINK_OUT)$@ $(SUBSYSTEM_WINDOWS) \
78 $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32) 70 $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32)
@@ -93,7 +85,7 @@ all: which-sh $(ALL) $(CLIENTRES) all-other-dirs-$(MAKETYPE)
93 85
94all-other-dirs-$(MAKETYPE): maybe-bootstrap 86all-other-dirs-$(MAKETYPE): maybe-bootstrap
95 87
96all-other-dirs-nmake: addsection 88all-other-dirs-nmake: $(BLD)/addsection.exe
97 cd ..\lib 89 cd ..\lib
98 $(MAKE) $(MFLAGS) all 90 $(MAKE) $(MFLAGS) all
99 cd ..\lib-src 91 cd ..\lib-src
@@ -106,7 +98,7 @@ all-other-dirs-nmake: addsection
106 $(MAKE) $(MFLAGS) all 98 $(MAKE) $(MFLAGS) all
107 cd ..\nt 99 cd ..\nt
108 100
109all-other-dirs-gmake: addsection 101all-other-dirs-gmake: $(BLD)/addsection.exe
110 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib all 102 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib all
111 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src all 103 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src all
112 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src all 104 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src all
@@ -153,10 +145,10 @@ maybe-bootstrap-SH: doit
153 145
154# Bootstrap depends on cmdproxy because some Lisp functions 146# Bootstrap depends on cmdproxy because some Lisp functions
155# loaded during bootstrap may need to run shell commands. 147# loaded during bootstrap may need to run shell commands.
156bootstrap: addsection cmdproxy bootstrap-$(MAKETYPE) 148bootstrap: $(BLD)/addsection.exe $(BLD)/cmdproxy.exe bootstrap-$(MAKETYPE)
157 $(MAKE) $(MFLAGS) $(XMFLAGS) all 149 $(MAKE) $(MFLAGS) $(XMFLAGS) all
158 150
159bootstrap-nmake: addsection cmdproxy 151bootstrap-nmake: $(BLD)/addsection.exe $(BLD)/cmdproxy.exe
160 cd ..\lisp 152 cd ..\lisp
161 $(MAKE) $(MFLAGS) bootstrap-clean 153 $(MAKE) $(MFLAGS) bootstrap-clean
162 cd ..\src 154 cd ..\src
@@ -176,7 +168,7 @@ bootstrap-nmake: addsection cmdproxy
176 $(MAKE) $(MFLAGS) DOC 168 $(MAKE) $(MFLAGS) DOC
177 cd ..\nt 169 cd ..\nt
178 170
179bootstrap-gmake: addsection cmdproxy 171bootstrap-gmake: $(BLD)/addsection.exe $(BLD)/cmdproxy.exe
180 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp bootstrap-clean 172 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp bootstrap-clean
181 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src clean 173 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src clean
182 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src clean 174 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src clean
@@ -257,7 +249,7 @@ install-other-dirs-gmake: all
257 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp install 249 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp install
258 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim install 250 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim install
259 251
260install-addpm: $(INSTALL_DIR)/bin addpm 252install-addpm: $(INSTALL_DIR)/bin $(BLD)/addpm.exe
261 - $(CP) $(BLD)/addpm.exe $(INSTALL_DIR)/bin 253 - $(CP) $(BLD)/addpm.exe $(INSTALL_DIR)/bin
262 254
263install-shortcuts: install-addpm 255install-shortcuts: install-addpm
diff --git a/src/ChangeLog b/src/ChangeLog
index 94eef08b5f8..6698cfe0fcf 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,20 @@
12013-03-27 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * casetab.c (init_casetab_once): Don't abuse the ascii eqv table for
4 the upcase table.
5
62013-03-27 rzl24ozi <rzl24ozi@gmail.com> (tiny changes)
7
8 * image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function.
9
102013-03-27 Eli Zaretskii <eliz@gnu.org>
11
12 * w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype,
13 since MinGW's w32api headers do. This avoids compiler warnings.
14
15 * w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define
16 if already defined.
17
12013-03-26 Eli Zaretskii <eliz@gnu.org> 182013-03-26 Eli Zaretskii <eliz@gnu.org>
2 19
3 * w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64. 20 * w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64.
diff --git a/src/casetab.c b/src/casetab.c
index 76f72b26db3..13bed64e4b2 100644
--- a/src/casetab.c
+++ b/src/casetab.c
@@ -246,7 +246,7 @@ void
246init_casetab_once (void) 246init_casetab_once (void)
247{ 247{
248 register int i; 248 register int i;
249 Lisp_Object down, up; 249 Lisp_Object down, up, eqv;
250 DEFSYM (Qcase_table, "case-table"); 250 DEFSYM (Qcase_table, "case-table");
251 251
252 /* Intern this now in case it isn't already done. 252 /* Intern this now in case it isn't already done.
@@ -275,13 +275,21 @@ init_casetab_once (void)
275 275
276 for (i = 0; i < 128; i++) 276 for (i = 0; i < 128; i++)
277 { 277 {
278 int c = (i >= 'a' && i <= 'z') ? i + ('A' - 'a') : i;
279 CHAR_TABLE_SET (up, i, make_number (c));
280 }
281
282 eqv = Fmake_char_table (Qcase_table, Qnil);
283
284 for (i = 0; i < 128; i++)
285 {
278 int c = ((i >= 'A' && i <= 'Z') ? i + ('a' - 'A') 286 int c = ((i >= 'A' && i <= 'Z') ? i + ('a' - 'A')
279 : ((i >= 'a' && i <= 'z') ? i + ('A' - 'a') 287 : ((i >= 'a' && i <= 'z') ? i + ('A' - 'a')
280 : i)); 288 : i));
281 CHAR_TABLE_SET (up, i, make_number (c)); 289 CHAR_TABLE_SET (up, i, make_number (c));
282 } 290 }
283 291
284 set_char_table_extras (down, 2, Fcopy_sequence (up)); 292 set_char_table_extras (down, 2, eqv);
285 293
286 /* Fill in what isn't filled in. */ 294 /* Fill in what isn't filled in. */
287 set_case_table (down, 1); 295 set_case_table (down, 1);
diff --git a/src/image.c b/src/image.c
index 21f486176df..6da430bee73 100644
--- a/src/image.c
+++ b/src/image.c
@@ -8120,24 +8120,24 @@ svg_image_p (Lisp_Object object)
8120#ifdef WINDOWSNT 8120#ifdef WINDOWSNT
8121 8121
8122/* SVG library functions. */ 8122/* SVG library functions. */
8123DEF_IMGLIB_FN (RsvgHandle *, rsvg_handle_new); 8123DEF_IMGLIB_FN (RsvgHandle *, rsvg_handle_new, (void));
8124DEF_IMGLIB_FN (void, rsvg_handle_get_dimensions); 8124DEF_IMGLIB_FN (void, rsvg_handle_get_dimensions, (RsvgHandle *, RsvgDimensionData *));
8125DEF_IMGLIB_FN (gboolean, rsvg_handle_write); 8125DEF_IMGLIB_FN (gboolean, rsvg_handle_write, (RsvgHandle *, const guchar *, gsize, GError **));
8126DEF_IMGLIB_FN (gboolean, rsvg_handle_close); 8126DEF_IMGLIB_FN (gboolean, rsvg_handle_close, (RsvgHandle *, GError **));
8127DEF_IMGLIB_FN (GdkPixbuf *, rsvg_handle_get_pixbuf); 8127DEF_IMGLIB_FN (GdkPixbuf *, rsvg_handle_get_pixbuf, (RsvgHandle *));
8128 8128DEF_IMGLIB_FN (void *, rsvg_handle_set_size_callback, (RsvgHandle *, RsvgSizeFunc, gpointer, GDestroyNotify));
8129DEF_IMGLIB_FN (int, gdk_pixbuf_get_width); 8129
8130DEF_IMGLIB_FN (int, gdk_pixbuf_get_height); 8130DEF_IMGLIB_FN (int, gdk_pixbuf_get_width, (const GdkPixbuf *));
8131DEF_IMGLIB_FN (guchar *, gdk_pixbuf_get_pixels); 8131DEF_IMGLIB_FN (int, gdk_pixbuf_get_height, (const GdkPixbuf *));
8132DEF_IMGLIB_FN (int, gdk_pixbuf_get_rowstride); 8132DEF_IMGLIB_FN (guchar *, gdk_pixbuf_get_pixels, (const GdkPixbuf *));
8133DEF_IMGLIB_FN (GdkColorspace, gdk_pixbuf_get_colorspace); 8133DEF_IMGLIB_FN (int, gdk_pixbuf_get_rowstride, (const GdkPixbuf *));
8134DEF_IMGLIB_FN (int, gdk_pixbuf_get_n_channels); 8134DEF_IMGLIB_FN (GdkColorspace, gdk_pixbuf_get_colorspace, (const GdkPixbuf *));
8135DEF_IMGLIB_FN (gboolean, gdk_pixbuf_get_has_alpha); 8135DEF_IMGLIB_FN (int, gdk_pixbuf_get_n_channels, (const GdkPixbuf *));
8136DEF_IMGLIB_FN (int, gdk_pixbuf_get_bits_per_sample); 8136DEF_IMGLIB_FN (gboolean, gdk_pixbuf_get_has_alpha, (const GdkPixbuf *));
8137 8137DEF_IMGLIB_FN (int, gdk_pixbuf_get_bits_per_sample, (const GdkPixbuf *));
8138DEF_IMGLIB_FN (void, g_type_init); 8138
8139DEF_IMGLIB_FN (void, g_object_unref); 8139DEF_IMGLIB_FN (void, g_type_init, (void));
8140DEF_IMGLIB_FN (void, g_error_free); 8140DEF_IMGLIB_FN (void, g_object_unref, (gpointer));
8141 8141
8142Lisp_Object Qgdk_pixbuf, Qglib, Qgobject; 8142Lisp_Object Qgdk_pixbuf, Qglib, Qgobject;
8143 8143
diff --git a/src/w32.c b/src/w32.c
index 93a4ce1a8c1..431826c4b82 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -174,9 +174,12 @@ typedef struct _REPARSE_DATA_BUFFER {
174#ifndef CTL_CODE 174#ifndef CTL_CODE
175#define CTL_CODE(t,f,m,a) (((t)<<16)|((a)<<14)|((f)<<2)|(m)) 175#define CTL_CODE(t,f,m,a) (((t)<<16)|((a)<<14)|((f)<<2)|(m))
176#endif 176#endif
177/* MinGW64 defines FSCTL_GET_REPARSE_POINT on winioctl.h. */
178#ifndef FSCTL_GET_REPARSE_POINT
177#define FSCTL_GET_REPARSE_POINT \ 179#define FSCTL_GET_REPARSE_POINT \
178 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS) 180 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS)
179#endif 181#endif
182#endif
180 183
181/* TCP connection support. */ 184/* TCP connection support. */
182#include <sys/socket.h> 185#include <sys/socket.h>
diff --git a/src/xfns.c b/src/xfns.c
index a6a179be97d..e24d3981a09 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -5591,7 +5591,7 @@ nil, it defaults to the selected frame. */)
5591 Keyboard 5591 Keyboard
5592 ***********************************************************************/ 5592 ***********************************************************************/
5593 5593
5594#ifdef HAVE_XKBGETKEYBOARD 5594#ifdef HAVE_XKB
5595#include <X11/XKBlib.h> 5595#include <X11/XKBlib.h>
5596#include <X11/keysym.h> 5596#include <X11/keysym.h>
5597#endif 5597#endif
@@ -5605,7 +5605,9 @@ usual X keysyms. Value is `lambda' if we cannot determine if both keys are
5605present and mapped to the usual X keysyms. */) 5605present and mapped to the usual X keysyms. */)
5606 (Lisp_Object frame) 5606 (Lisp_Object frame)
5607{ 5607{
5608#ifdef HAVE_XKBGETKEYBOARD 5608#ifndef HAVE_XKB
5609 return Qlambda;
5610#else
5609 XkbDescPtr kb; 5611 XkbDescPtr kb;
5610 struct frame *f = check_x_frame (frame); 5612 struct frame *f = check_x_frame (frame);
5611 Display *dpy = FRAME_X_DISPLAY (f); 5613 Display *dpy = FRAME_X_DISPLAY (f);
@@ -5683,9 +5685,7 @@ present and mapped to the usual X keysyms. */)
5683 } 5685 }
5684 unblock_input (); 5686 unblock_input ();
5685 return have_keys; 5687 return have_keys;
5686#else /* not HAVE_XKBGETKEYBOARD */ 5688#endif
5687 return Qlambda;
5688#endif /* not HAVE_XKBGETKEYBOARD */
5689} 5689}
5690 5690
5691 5691