Mercurial > emacs
changeset 83126:14e5707213a6
Merged in changes from CVS trunk.
Patches applied:
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-325
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-326
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-327
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-328
Update from CVS: src/.gdbinit (xsymbol): Fix last change.
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-329
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-166
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Sat, 22 May 2004 22:52:43 +0000 |
parents | b545019c77b0 (current diff) 269004c18108 (diff) |
children | 5182815e0ee1 |
files | lisp/ChangeLog lisp/emacs-lisp/bytecomp.el lisp/simple.el src/.gdbinit src/print.c src/w32term.h |
diffstat | 27 files changed, 464 insertions(+), 217 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Tue May 18 20:30:43 2004 +0000 +++ b/lisp/ChangeLog Sat May 22 22:52:43 2004 +0000 @@ -1,18 +1,61 @@ +2004-05-19 Stefan Monnier <monnier@iro.umontreal.ca> + + * simple.el (do-auto-fill): Remove unused vars `bol' and `opoint'. + (completion-setup-function): Use with-current-buffer. + Properly save excursion. Simplify. + Don't assume there is necessarily a `mouse-face' property somewhere. + + * progmodes/gud.el (gud-reset): Use unless & with-current-buffer. + + * progmodes/gdb-ui.el (gdb-reset): Use unless. Fix regexp. + + * emacs-lisp/bytecomp.el (byte-compile-log): Use backquotes. + (byte-compile-log-1): Don't call (byte-goto-log-buffer). + Use with-current-buffer. + (byte-goto-log-buffer): Delete. + (byte-compile-log-file): Call compilation-forget-errors. + +2004-05-19 Takaaki Ota <Takaaki.Ota@am.sony.com> (tiny change) + + * net/ldap.el (ldap-search-internal): Avoid mixing standard error + output messages into the search result. + +2004-05-19 Masatake YAMATO <jet@gyve.org> + + * wid-edit.el (widget-radio-button-notify): Revert my last + change. Reported by Katsumi Yamaoka <yamaoka@jpl.org>. + +2004-05-19 Kenichi Handa <handa@m17n.org> + + * international/characters.el: Fix syntax (open/close) of CJK chars. + +2004-05-18 Karl Chen <quarl@hkn.eecs.berkeley.edu> (tiny change) + + * help-mode.el (help-go-back): Don't depend on position of back button. + +2004-05-18 Stefan Monnier <monnier@iro.umontreal.ca> + + * files.el (auto-save-file-name-transforms): Make sure ange-ftp temp + files files don't contain an accidental additional /. + + * textmodes/tex-mode.el (tex-compilation-parse-errors): Save excursion + in source buffer. + 2004-05-18 Masatake YAMATO <jet@gyve.org> * wid-edit.el (widget-radio-button-notify): Don't pass `widget' - to widget-apply. :action method assumes 2 arguments, not 3. + to widget-apply. :action method assumes 2 arguments, not 3. 2004-05-17 Glenn Morris <gmorris@ast.cam.ac.uk> - * progmodes/f90.el (f90-end-block-re, f90-start-block-re): New - constants. + * progmodes/f90.el (f90-end-block-re, f90-start-block-re): + New constants. (hs-special-modes-alist): Add an f90-mode entry. 2004-05-17 Sam Steingold <sds@gnu.org> - * emacs-lisp/cl-indent.el (common-lisp-indent-function-1): Indent - "without-" forms just like "with-" and "do-". Use regexp-opt. + * emacs-lisp/cl-indent.el (common-lisp-indent-function-1): + Indent "without-" forms just like "with-" and "do-". Use regexp-opt. 2004-05-16 Kim F. Storm <storm@cua.dk> @@ -20,15 +63,14 @@ 2004-05-15 John Wiegley <johnw@newartisans.com> - * eshell/esh-io.el (eshell-get-target): whitespace changes. + * eshell/esh-io.el (eshell-get-target): Whitespace changes. (eshell-output-object-to-target): Improve output speed 20% by not - calling `eshell-stringify' if something is already known to be a - string. + calling `eshell-stringify' if something is already known to be a string. 2004-05-15 Alex Ott <ott@jet.msk.su> - * textmodes/ispell.el (ispell-local-dictionary-alist): Add - windows-1251 to the choice of coding systems. + * textmodes/ispell.el (ispell-local-dictionary-alist): + Add windows-1251 to the choice of coding systems. (ispell-dictionary-alist-6): Add support for "russianw.aff", encoded in cp1251. @@ -75,7 +117,7 @@ 2004-05-13 Marcelo Toledo <marcelo@marcelotoledo.org> - * language/european.el ("Brazilian Portuguese"): Added support for + * language/european.el ("Brazilian Portuguese"): Add support for Brazilian Portuguese. 2004-05-13 John Wiegley <johnw@newartisans.com> @@ -84,8 +126,7 @@ `recentf-mode' if this variable has been customized to t. * eshell/esh-test.el (eshell-test): Call the function - `emacs-version' rather than trying to build a custom version - string. + `emacs-version' rather than trying to build a custom version string. 2004-05-13 Stefan Monnier <monnier@iro.umontreal.ca> @@ -775,18 +816,17 @@ * progmodes/fortran.el (fortran-fill): Use local var `bol' rather than duplicate call to `line-beginning-position'. - * progmodes/f90.el (f90-get-present-comment-type): Return - whitespace, as well as comment chars, for consistent filling + * progmodes/f90.el (f90-get-present-comment-type): + Return whitespace, as well as comment chars, for consistent filling of comment blocks. Use `match-string-no-properties'. - (f90-break-line): Do not leave trailing whitespace when filling - comments. + (f90-break-line): Trim trailing whitespace when filling comments. 2004-04-30 Dave Love <fx@gnu.org> * calendar/diary-lib.el (diary-outlook-formats): New variable. (diary-from-outlook-internal, diary-from-outlook) - (diary-from-outlook-gnus, diary-from-outlook-rmail): New - functions to import diary entries from Outlook-format + (diary-from-outlook-gnus, diary-from-outlook-rmail): + New functions to import diary entries from Outlook-format appointments in mail messages. 2004-04-29 Stefan Monnier <monnier@iro.umontreal.ca> @@ -814,8 +854,7 @@ * progmodes/sql.el (sql-product-alist): Rename variable `sql-product-support'. Add Postgres login parameters. - (sql-set-product, sql-product-feature): Update with renamed - variable. + (sql-set-product, sql-product-feature): Update with renamed variable. (sql-connect-postgres): Add username prompt. (sql-imenu-generic-expression, sql-mode-font-lock-object-name): Make patterns less product specific. @@ -837,8 +876,7 @@ (sql-mode-sqlite-font-lock-keywords) (sql-mode-db2-font-lock-keywords): Default to nil. (sql-product-font-lock): Always highlight ANSI keywords. - (sql-add-product-keywords): Made similar to - `font-lock-add-keywords'. + (sql-add-product-keywords): Made similar to `font-lock-add-keywords'. (sql-send-string): Add function. 2004-04-29 Dave Love <fx@gnu.org> @@ -7391,7 +7429,7 @@ ;; coding: iso-2022-7bit ;; End: - Copyright (C) 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 2001, 02, 04 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved.
--- a/lisp/emacs-lisp/bytecomp.el Tue May 18 20:30:43 2004 +0000 +++ b/lisp/emacs-lisp/bytecomp.el Sat May 22 22:52:43 2004 +0000 @@ -832,24 +832,22 @@ ;; Log something that isn't a warning. (defmacro byte-compile-log (format-string &rest args) - (list 'and - 'byte-optimize - '(memq byte-optimize-log '(t source)) - (list 'let '((print-escape-newlines t) - (print-level 4) - (print-length 4)) - (list 'byte-compile-log-1 - (cons 'format - (cons format-string - (mapcar - (lambda (x) - (if (symbolp x) (list 'prin1-to-string x) x)) - args))))))) + `(and + byte-optimize + (memq byte-optimize-log '(t source)) + (let ((print-escape-newlines t) + (print-level 4) + (print-length 4)) + (byte-compile-log-1 + (format + ,format-string + ,@(mapcar + (lambda (x) (if (symbolp x) (list 'prin1-to-string x) x)) + args)))))) ;; Log something that isn't a warning. (defun byte-compile-log-1 (string) - (save-excursion - (byte-goto-log-buffer) + (with-current-buffer "*Compile-Log*" (goto-char (point-max)) (byte-compile-warning-prefix nil nil) (cond (noninteractive @@ -903,11 +901,6 @@ (defvar byte-compile-last-warned-form nil) (defvar byte-compile-last-logged-file nil) -(defun byte-goto-log-buffer () - (set-buffer (get-buffer-create "*Compile-Log*")) - (unless (eq major-mode 'compilation-mode) - (compilation-mode))) - ;; This is used as warning-prefix for the compiler. ;; It is always called with the warnings buffer current. (defun byte-compile-warning-prefix (level entry) @@ -983,6 +976,7 @@ ;; Do this after setting default-directory. (unless (eq major-mode 'compilation-mode) (compilation-mode)) + (compilation-forget-errors) pt)))) ;; Log a message STRING in *Compile-Log*.
--- a/lisp/files.el Tue May 18 20:30:43 2004 +0000 +++ b/lisp/files.el Sat May 22 22:52:43 2004 +0000 @@ -293,7 +293,7 @@ :group 'auto-save) (defcustom auto-save-file-name-transforms - `(("\\`/[^/]*:\\(.+/\\)*\\(.*\\)" + `(("\\`/[^/]*:\\([^/]*/\\)*\\([^/]*\\)\\'" ;; Don't put "\\2" inside expand-file-name, since it will be ;; transformed to "/2" on DOS/Windows. ,(concat temporary-file-directory "\\2") t))
--- a/lisp/gnus/ChangeLog Tue May 18 20:30:43 2004 +0000 +++ b/lisp/gnus/ChangeLog Sat May 22 22:52:43 2004 +0000 @@ -1,5 +1,7 @@ 2004-05-18 Stefan Monnier <monnier@iro.umontreal.ca> + * mm-view.el (mm-insert-inline): Make it work in read-only buffer. + * gnus-win.el (gnus-all-windows-visible-p): Don't consider non-visible windows.
--- a/lisp/gnus/mm-view.el Tue May 18 20:30:43 2004 +0000 +++ b/lisp/gnus/mm-view.el Sat May 22 22:52:43 2004 +0000 @@ -1,5 +1,5 @@ ;;; mm-view.el --- functions for viewing MIME objects -;; Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 01, 2004 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; This file is part of GNU Emacs. @@ -197,7 +197,8 @@ (defun mm-insert-inline (handle text) "Insert TEXT inline from HANDLE." - (let ((b (point))) + (let ((b (point)) + (inhibit-read-only t)) (insert text) (mm-handle-set-undisplayer handle
--- a/lisp/help-mode.el Tue May 18 20:30:43 2004 +0000 +++ b/lisp/help-mode.el Sat May 22 22:52:43 2004 +0000 @@ -577,12 +577,11 @@ (goto-char position))))) (defun help-go-back () - "Invoke the [back] button (if any) in the Help mode buffer." + "Go back to previous topic in this help buffer." (interactive) - (let ((back-button (button-at (1- (point-max))))) - (if back-button - (button-activate back-button) - (error "No [back] button")))) + (if help-xref-stack + (help-xref-go-back (current-buffer)) + (error "No previous help buffer."))) (defun help-do-xref (pos function args) "Call the help cross-reference function FUNCTION with args ARGS.
--- a/lisp/international/characters.el Tue May 18 20:30:43 2004 +0000 +++ b/lisp/international/characters.el Sat May 22 22:52:43 2004 +0000 @@ -229,6 +229,14 @@ (modify-category-entry generic-char ?|) (setq cns-list (cdr cns-list)))) +(let ((parens "$(G!>!?!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_!`!a!b!c(B") + open close) + (dotimes (i (/ (length parens) 2)) + (setq open (aref parens (* i 2)) + close (aref parens (1+ (* i 2)))) + (modify-syntax-entry open (format "(%c" close)) + (modify-syntax-entry close (format ")%c" open)))) + ;; Cyrillic character set (ISO-8859-5) (modify-category-entry (make-char 'cyrillic-iso8859-5) ?y) @@ -584,16 +592,13 @@ (while chars (modify-syntax-entry (car chars) "w") (setq chars (cdr chars)))) -(modify-syntax-entry ?\$B!J(B "($B!K(B") -(modify-syntax-entry ?\$B!N(B "($B!O(B") -(modify-syntax-entry ?\$B!P(B "($B!Q(B") -(modify-syntax-entry ?\$B!V(B "($B!W(B") -(modify-syntax-entry ?\$B!X(B "($B!Y(B") -(modify-syntax-entry ?\$B!K(B ")$B!J(B") -(modify-syntax-entry ?\$B!O(B ")$B!N(B") -(modify-syntax-entry ?\$B!Q(B ")$B!P(B") -(modify-syntax-entry ?\$B!W(B ")$B!V(B") -(modify-syntax-entry ?\$B!Y(B ")$B!X(B") +(let ((parens "$B!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z![(B" ) + open close) + (dotimes (i (/ (length parens) 2)) + (setq open (aref parens (* i 2)) + close (aref parens (1+ (* i 2)))) + (modify-syntax-entry open (format "(%c" close)) + (modify-syntax-entry close (format ")%c" open)))) (modify-category-entry (make-char 'japanese-jisx0208 35) ?A) (modify-category-entry (make-char 'japanese-jisx0208 36) ?H) @@ -652,6 +657,14 @@ (modify-category-entry (make-char 'korean-ksc5601 43) ?K) (modify-category-entry (make-char 'korean-ksc5601 44) ?Y) +(let ((parens "$(C!2!3!4!5!6!7!8!9!:!;!<!=(B" ) + open close) + (dotimes (i (/ (length parens) 2)) + (setq open (aref parens (* i 2)) + close (aref parens (1+ (* i 2)))) + (modify-syntax-entry open (format "(%c" close)) + (modify-syntax-entry close (format ")%c" open)))) + ;; Latin character set (latin-1,2,3,4,5,8,9) (modify-category-entry (make-char 'latin-iso8859-1) ?l)
--- a/lisp/net/ldap.el Tue May 18 20:30:43 2004 +0000 +++ b/lisp/net/ldap.el Sat May 22 22:52:43 2004 +0000 @@ -554,7 +554,7 @@ (setq arglist (nconc arglist (list (format "-z%s" sizelimit))))) (eval `(call-process ldap-ldapsearch-prog nil - buf + `(,buf nil) nil ,@arglist ,@ldap-ldapsearch-args
--- a/lisp/pcvs.el Tue May 18 20:30:43 2004 +0000 +++ b/lisp/pcvs.el Sat May 22 22:52:43 2004 +0000 @@ -764,7 +764,7 @@ (interactive) (cvs-mode! ',fun-1))))) - (t (error "unknown style %s in `defun-cvs-mode'" style))))) + (t (error "Unknown style %s in `defun-cvs-mode'" style))))) (defun-cvs-mode cvs-mode-kill-process () "Kill the temporary buffer and associated process."
--- a/lisp/progmodes/gdb-ui.el Tue May 18 20:30:43 2004 +0000 +++ b/lisp/progmodes/gdb-ui.el Sat May 22 22:52:43 2004 +0000 @@ -1728,15 +1728,15 @@ "Exit a debugging session cleanly by killing the gdb buffers and resetting the source buffers." (dolist (buffer (buffer-list)) - (if (not (eq buffer gud-comint-buffer)) - (with-current-buffer buffer - (if (memq gud-minor-mode '(gdba pdb)) - (if (string-match "^\*.+*$" (buffer-name)) - (kill-buffer nil) - (gdb-remove-breakpoint-icons (point-min) (point-max) t) - (setq gud-minor-mode nil) - (kill-local-variable 'tool-bar-map) - (setq gud-running nil)))))) + (unless (eq buffer gud-comint-buffer) + (with-current-buffer buffer + (if (memq gud-minor-mode '(gdba pdb)) + (if (string-match "\\`\\*.+\\*\\'" (buffer-name)) + (kill-buffer nil) + (gdb-remove-breakpoint-icons (point-min) (point-max) t) + (setq gud-minor-mode nil) + (kill-local-variable 'tool-bar-map) + (setq gud-running nil)))))) (when (markerp gdb-overlay-arrow-position) (move-marker gdb-overlay-arrow-position nil) (setq gdb-overlay-arrow-position nil)) @@ -2013,5 +2013,5 @@ (provide 'gdb-ui) -;;; arch-tag: e9fb00c5-74ef-469f-a088-37384caae352 +;; arch-tag: e9fb00c5-74ef-469f-a088-37384caae352 ;;; gdb-ui.el ends here
--- a/lisp/progmodes/gud.el Tue May 18 20:30:43 2004 +0000 +++ b/lisp/progmodes/gud.el Sat May 22 22:52:43 2004 +0000 @@ -2554,12 +2554,11 @@ (defun gud-reset () (dolist (buffer (buffer-list)) - (if (not (eq buffer gud-comint-buffer)) - (save-excursion - (set-buffer buffer) - (when gud-minor-mode - (setq gud-minor-mode nil) - (kill-local-variable 'tool-bar-map)))))) + (unless (eq buffer gud-comint-buffer) + (with-current-buffer buffer + (when gud-minor-mode + (setq gud-minor-mode nil) + (kill-local-variable 'tool-bar-map)))))) (defun gud-display-frame () "Find and obey the last filename-and-line marker from the debugger.
--- a/lisp/simple.el Tue May 18 20:30:43 2004 +0000 +++ b/lisp/simple.el Sat May 22 22:52:43 2004 +0000 @@ -3396,15 +3396,14 @@ ;; (Actually some major modes use a different auto-fill function, ;; but this one is the default one.) (defun do-auto-fill () - (let (fc justify bol give-up + (let (fc justify give-up (fill-prefix fill-prefix)) (if (or (not (setq justify (current-justification))) (null (setq fc (current-fill-column))) (and (eq justify 'left) (<= (current-column) fc)) - (save-excursion (beginning-of-line) - (setq bol (point)) - (and auto-fill-inhibit-regexp + (and auto-fill-inhibit-regexp + (save-excursion (beginning-of-line) (looking-at auto-fill-inhibit-regexp)))) nil ;; Auto-filling not required (if (memq justify '(full center right)) @@ -3427,16 +3426,15 @@ ;; Determine where to split the line. (let* (after-prefix (fill-point - (let ((opoint (point))) - (save-excursion - (beginning-of-line) - (setq after-prefix (point)) - (and fill-prefix - (looking-at (regexp-quote fill-prefix)) - (setq after-prefix (match-end 0))) - (move-to-column (1+ fc)) - (fill-move-to-break-point after-prefix) - (point))))) + (save-excursion + (beginning-of-line) + (setq after-prefix (point)) + (and fill-prefix + (looking-at (regexp-quote fill-prefix)) + (setq after-prefix (match-end 0))) + (move-to-column (1+ fc)) + (fill-move-to-break-point after-prefix) + (point)))) ;; See whether the place we found is any good. (if (save-excursion @@ -4269,16 +4267,15 @@ :group 'completion) (defun completion-setup-function () - (save-excursion - (let ((mainbuf (current-buffer)) - (mbuf-contents (minibuffer-contents))) - ;; When reading a file name in the minibuffer, - ;; set default-directory in the minibuffer - ;; so it will get copied into the completion list buffer. - (if minibuffer-completing-file-name - (with-current-buffer mainbuf - (setq default-directory (file-name-directory mbuf-contents)))) - (set-buffer standard-output) + (let ((mainbuf (current-buffer)) + (mbuf-contents (minibuffer-contents))) + ;; When reading a file name in the minibuffer, + ;; set default-directory in the minibuffer + ;; so it will get copied into the completion list buffer. + (if minibuffer-completing-file-name + (with-current-buffer mainbuf + (setq default-directory (file-name-directory mbuf-contents)))) + (with-current-buffer standard-output (completion-list-mode) (make-local-variable 'completion-reference-buffer) (setq completion-reference-buffer mainbuf) @@ -4287,24 +4284,23 @@ ;; use the number of chars before the start of the ;; last file name component. (setq completion-base-size - (save-excursion - (set-buffer mainbuf) - (goto-char (point-max)) - (skip-chars-backward "^/") - (- (point) (minibuffer-prompt-end)))) + (with-current-buffer mainbuf + (save-excursion + (goto-char (point-max)) + (skip-chars-backward "^/") + (- (point) (minibuffer-prompt-end))))) ;; Otherwise, in minibuffer, the whole input is being completed. - (save-match-data - (if (minibufferp mainbuf) - (setq completion-base-size 0)))) - ;; Put faces on first uncommon characters and common parts. + (if (minibufferp mainbuf) + (setq completion-base-size 0))) + ;; Put faces on first uncommon characters and common parts. (when completion-base-size - (let* ((common-string-length (length - (substring mbuf-contents - completion-base-size))) + (let* ((common-string-length + (- (length mbuf-contents) completion-base-size)) (element-start (next-single-property-change (point-min) 'mouse-face)) - (element-common-end (+ element-start common-string-length)) + (element-common-end + (+ (or element-start nil) common-string-length)) (maxp (point-max))) (while (and element-start (< element-common-end maxp)) (when (and (get-char-property element-start 'mouse-face) @@ -4768,5 +4764,5 @@ (provide 'simple) -;;; arch-tag: 24af67c0-2a49-44f6-b3b1-312d8b570dfd +;; arch-tag: 24af67c0-2a49-44f6-b3b1-312d8b570dfd ;;; simple.el ends here
--- a/lisp/textmodes/tex-mode.el Tue May 18 20:30:43 2004 +0000 +++ b/lisp/textmodes/tex-mode.el Sat May 22 22:52:43 2004 +0000 @@ -1944,21 +1944,22 @@ (or (null last-filename) (not (string-equal last-filename filename)))) (error-location - (save-excursion - (if (equal filename (concat tex-zap-file ".tex")) - (set-buffer tex-last-buffer-texed) - (set-buffer (find-file-noselect filename))) - (if new-file - (progn (goto-line linenum) (setq last-position nil)) - (goto-char last-position) - (forward-line (- linenum last-linenum))) - ;; first try a forward search for the error text, - ;; then a backward search limited by the last error. - (let ((starting-point (point))) - (or (re-search-forward error-text nil t) - (re-search-backward error-text last-position t) - (goto-char starting-point))) - (point-marker)))) + (with-current-buffer + (if (equal filename (concat tex-zap-file ".tex")) + tex-last-buffer-texed + (find-file-noselect filename)) + (save-excursion + (if new-file + (progn (goto-line linenum) (setq last-position nil)) + (goto-char last-position) + (forward-line (- linenum last-linenum))) + ;; first try a forward search for the error text, + ;; then a backward search limited by the last error. + (let ((starting-point (point))) + (or (re-search-forward error-text nil t) + (re-search-backward error-text last-position t) + (goto-char starting-point))) + (point-marker))))) (goto-char this-error) (if (and compilation-error-list (or (and find-at-least
--- a/lisp/wid-edit.el Tue May 18 20:30:43 2004 +0000 +++ b/lisp/wid-edit.el Sat May 22 22:52:43 2004 +0000 @@ -2294,7 +2294,7 @@ (defun widget-radio-button-notify (widget child &optional event) ;; Tell daddy. - (widget-apply (widget-get widget :parent) :action event)) + (widget-apply (widget-get widget :parent) :action widget event)) ;;; The `radio-button-choice' Widget.
--- a/lispref/ChangeLog Tue May 18 20:30:43 2004 +0000 +++ b/lispref/ChangeLog Sat May 22 22:52:43 2004 +0000 @@ -1,3 +1,7 @@ +2004-05-19 Thien-Thi Nguyen <ttn@gnu.org> + + * modes.texi (Search-based Fontification): Fix typo. + 2004-05-10 Juanma Barranquero <lektu@terra.es> * modes.texi (Mode Line Variables): Fix description of
--- a/lispref/modes.texi Tue May 18 20:30:43 2004 +0000 +++ b/lispref/modes.texi Sat May 22 22:52:43 2004 +0000 @@ -2001,7 +2001,7 @@ it finds using @code{font-lock-keyword-face}. When @var{function} is called, it receives one argument, the limit of -the search; it should searching at point, and not search beyond the +the search; it should begin searching at point, and not search beyond the limit. It should return non-@code{nil} if it succeeds, and set the match data to describe the match that was found. Returning @code{nil} indicates failure of the search.
--- a/man/search.texi Tue May 18 20:30:43 2004 +0000 +++ b/man/search.texi Sat May 22 22:52:43 2004 +0000 @@ -724,6 +724,18 @@ @item \W matches any character that is not a word-constituent. +@item \_< +matches the empty string, but only at the beginning of a symbol. A +symbol is a sequence of one or more word or symbol constituent +characters. @samp{\_<} matches at the beginning of the buffer only if +a symbol-constituent character follows. + +@item \_> +matches the empty string, but only at the end of a symbol. A symbol +is a sequence of one or more word or symbol constituent characters. +@samp{\_>} matches at the end of the buffer only if the contents end +with a symbol-constituent character. + @item \s@var{c} matches any character whose syntax is @var{c}. Here @var{c} is a character that designates a particular syntax class: thus, @samp{w}
--- a/src/.gdbinit Tue May 18 20:30:43 2004 +0000 +++ b/src/.gdbinit Sat May 22 22:52:43 2004 +0000 @@ -186,9 +186,10 @@ end define xsymbol - xgetptr $ + set $sym = $ + xgetptr $sym print (struct Lisp_Symbol *) $ptr - xprintsym $ + xprintsym $sym echo \n end document xsymbol @@ -199,7 +200,7 @@ define xstring xgetptr $ print (struct Lisp_String *) $ptr - output ($->size > 1000) ? 0 : ($->data[0])@($->size_byte < 0 ? $->size & ~gdb_array_mark_flag : $->size_byte) + xprintstr $ echo \n end document xstring @@ -372,12 +373,17 @@ Print $ as a scrollbar pointer. end +define xprintstr + set $data = $arg0->data + output ($arg0->size > 1000) ? 0 : ($data[0])@($arg0->size_byte < 0 ? $arg0->size & ~gdb_array_mark_flag : $arg0->size_byte) +end + define xprintsym xgetptr $arg0 set $sym = (struct Lisp_Symbol *) $ptr xgetptr $sym->xname set $sym_name = (struct Lisp_String *) $ptr - output ($sym_name->data[0])@($sym_name->size_byte < 0 ? $sym_name->size & ~gdb_array_mark_flag : $sym_name->size_byte) + xprintstr $sym_name end document xprintsym Print argument as a symbol.
--- a/src/ChangeLog Tue May 18 20:30:43 2004 +0000 +++ b/src/ChangeLog Sat May 22 22:52:43 2004 +0000 @@ -1,3 +1,47 @@ +2004-05-19 Jim Blandy <jimb@redhat.com> + + Add support for new '\_<' and '\_>' regexp operators, matching the + beginning and ends of symbols. + * regex.c (enum syntaxcode): Add Ssymbol. + (init_syntax_once): Set the syntax for '_' to Ssymbol, not Sword. + (re_opcode_t): New opcodes `symbeg' and `symend'. + (print_partial_compiled_pattern): Print the new opcodes properly. + (regex_compile): Parse the new operators. + (analyse_first): Skip symbeg and symend (they match only the empty string). + (mutually_exclusive_p): `symend' is mutually exclusive with \s_ and + \sw; `symbeg' is mutually exclusive with \S_ and \Sw. + (re_match_2_internal): Match symbeg and symend. + + * search.c (trivial_regexp_p): \_ is no longer a trivial regexp. + +2004-05-19 Kim F. Storm <storm@cua.dk> + + * .gdbinit (xsymbol): Fix last change. + +2004-05-18 Stefan Monnier <monnier@iro.umontreal.ca> + + * .gdbinit (xprintstr): New fun. + (xstring, xprintsym): Use it. + + * w32proc.c (create_child): Use INTMASK. + + * alloc.c (Fgarbage_collect): Do all the marking before flushing + unmarked elements of the undo list. + +2004-05-18 David Ponce <david@dponce.com> + + * print.c (print): Reset print_depth before to call print_object. + +2004-05-18 Jason Rumney <jasonr@gnu.org> + + * w32console.c: Prefix RIF functions with w32con_ to avoid + namespace clash with functions in term.c and w32term.c. + + * w32menu.c (add_menu_item, w32_menu_display_help) + [USE_LISP_UNION_TYPE]: Cast from Lisp_Object using i member. + + * w32term.h (display_x_get_resource, vga_stdcolor_name): Add prototype. + 2004-05-18 Eli Zaretskii <eliz@gnu.org> * lisp.h (DECL_ALIGN): Remove restriction on MS-DOS systems. @@ -97,12 +141,16 @@ section to frame.c section. (Fxw_display_color_p, Fx_file_dialog): Declare if HAVE_WINDOW_SYSTEM defined. + * macfns.c (Fx_create_frame): Fix int/Lisp_Object mixup. + * macmenu.c (set_frame_menubar): Use NILP to test a lisp value. + * macterm.c (mac_get_emulated_btn, mac_event_to_emacs_modifiers) (mac_get_mouse_btn): Use NILP and EQ to test/compare lisp values. (XTread_socket): Fix int/Lisp_Object mixup. (mac_check_for_quit_char): Fix pointer/Lisp_Object mixup. + * macterm.h (struct frame, struct face, struct image) (display_x_get_resource, Fx_display_color_p) (Fx_display_grayscale_p, Fx_display_planes, x_free_gcs): @@ -246,6 +294,7 @@ around call to ReceiveEvent to avoid certain crashes. 2004-05-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + * macterm.c (mac_draw_line_to_pixmap, XCreatePixmapFromBitmapData) (mac_fill_rectangle_to_pixmap, mac_draw_rectangle_to_pixmap) (mac_copy_area_to_pixmap, mac_copy_area_with_mask_to_pixmap):
--- a/src/print.c Tue May 18 20:30:43 2004 +0000 +++ b/src/print.c Sat May 22 22:52:43 2004 +0000 @@ -1220,7 +1220,6 @@ register Lisp_Object printcharfun; int escapeflag; { - print_depth = 0; old_backquote_output = 0; /* Reset print_number_index and Vprint_number_table only when @@ -1240,6 +1239,7 @@ start = index = print_number_index; /* Construct Vprint_number_table. This increments print_number_index for the objects added. */ + print_depth = 0; print_preprocess (obj); /* Remove unnecessary objects, which appear only once in OBJ; @@ -1264,6 +1264,7 @@ print_number_index = index; } + print_depth = 0; print_object (obj, printcharfun, escapeflag); }
--- a/src/regex.c Tue May 18 20:30:43 2004 +0000 +++ b/src/regex.c Sat May 22 22:52:43 2004 +0000 @@ -2,7 +2,7 @@ 0.12. (Implements POSIX draft P1003.2/D11.2, except for some of the internationalization features.) - Copyright (C) 1993,94,95,96,97,98,99,2000 Free Software Foundation, Inc. + Copyright (C) 1993,94,95,96,97,98,99,2000,04 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -217,7 +217,7 @@ /* Define the syntax stuff for \<, \>, etc. */ /* Sword must be nonzero for the wordchar pattern commands in re_match_2. */ -enum syntaxcode { Swhitespace = 0, Sword = 1 }; +enum syntaxcode { Swhitespace = 0, Sword = 1, Ssymbol = 2 }; # ifdef SWITCH_ENUM_BUG # define SWITCH_ENUM_CAST(x) ((int)(x)) @@ -398,7 +398,7 @@ if (ISALNUM (c)) re_syntax_table[c] = Sword; - re_syntax_table['_'] = Sword; + re_syntax_table['_'] = Ssymbol; done = 1; } @@ -655,6 +655,9 @@ wordbound, /* Succeeds if at a word boundary. */ notwordbound, /* Succeeds if not at a word boundary. */ + symbeg, /* Succeeds if at symbol beginning. */ + symend, /* Succeeds if at symbol end. */ + /* Matches any character whose syntax is specified. Followed by a byte which contains a syntax code, e.g., Sword. */ syntaxspec, @@ -1094,6 +1097,14 @@ case wordend: fprintf (stderr, "/wordend"); + case symbeg: + printf ("/symbeg"); + break; + + case symend: + printf ("/symend"); + break; + case syntaxspec: fprintf (stderr, "/syntaxspec"); mcnt = *p++; @@ -3398,6 +3409,19 @@ BUF_PUSH (wordend); break; + case '_': + if (syntax & RE_NO_GNU_OPS) + goto normal_char; + laststart = b; + PATFETCH (c); + if (c == '<') + BUF_PUSH (symbeg); + else if (c == '>') + BUF_PUSH (symend); + else + FREE_STACK_RETURN (REG_BADPAT); + break; + case 'b': if (syntax & RE_NO_GNU_OPS) goto normal_char; @@ -3890,6 +3914,8 @@ case notwordbound: case wordbeg: case wordend: + case symbeg: + case symend: continue; @@ -4654,14 +4680,20 @@ break; case wordend: - case notsyntaxspec: + return ((re_opcode_t) *p1 == syntaxspec && p1[1] == Sword); + case symend: return ((re_opcode_t) *p1 == syntaxspec - && p1[1] == (op2 == wordend ? Sword : p2[1])); + && (p1[1] == Ssymbol || p1[1] == Sword)); + case notsyntaxspec: + return ((re_opcode_t) *p1 == syntaxspec && p1[1] == p2[1]); case wordbeg: - case syntaxspec: + return ((re_opcode_t) *p1 == notsyntaxspec && p1[1] == Sword); + case symbeg: return ((re_opcode_t) *p1 == notsyntaxspec - && p1[1] == (op2 == wordbeg ? Sword : p2[1])); + && (p1[1] == Ssymbol || p1[1] == Sword)); + case syntaxspec: + return ((re_opcode_t) *p1 == notsyntaxspec && p1[1] == p2[1]); case wordbound: return (((re_opcode_t) *p1 == notsyntaxspec @@ -5803,6 +5835,92 @@ } break; + case symbeg: + DEBUG_PRINT1 ("EXECUTING symbeg.\n"); + + /* We FAIL in one of the following cases: */ + + /* Case 1: D is at the end of string. */ + if (AT_STRINGS_END (d)) + goto fail; + else + { + /* C1 is the character before D, S1 is the syntax of C1, C2 + is the character at D, and S2 is the syntax of C2. */ + re_wchar_t c1, c2; + int s1, s2; +#ifdef emacs + int offset = PTR_TO_OFFSET (d); + int charpos = SYNTAX_TABLE_BYTE_TO_CHAR (offset); + UPDATE_SYNTAX_TABLE (charpos); +#endif + PREFETCH (); + c2 = RE_STRING_CHAR (d, dend - d); + s2 = SYNTAX (c2); + + /* Case 2: S2 is neither Sword nor Ssymbol. */ + if (s2 != Sword && s2 != Ssymbol) + goto fail; + + /* Case 3: D is not at the beginning of string ... */ + if (!AT_STRINGS_BEG (d)) + { + GET_CHAR_BEFORE_2 (c1, d, string1, end1, string2, end2); +#ifdef emacs + UPDATE_SYNTAX_TABLE_BACKWARD (charpos - 1); +#endif + s1 = SYNTAX (c1); + + /* ... and S1 is Sword or Ssymbol. */ + if (s1 == Sword || s1 == Ssymbol) + goto fail; + } + } + break; + + case symend: + DEBUG_PRINT1 ("EXECUTING symend.\n"); + + /* We FAIL in one of the following cases: */ + + /* Case 1: D is at the beginning of string. */ + if (AT_STRINGS_BEG (d)) + goto fail; + else + { + /* C1 is the character before D, S1 is the syntax of C1, C2 + is the character at D, and S2 is the syntax of C2. */ + re_wchar_t c1, c2; + int s1, s2; +#ifdef emacs + int offset = PTR_TO_OFFSET (d) - 1; + int charpos = SYNTAX_TABLE_BYTE_TO_CHAR (offset); + UPDATE_SYNTAX_TABLE (charpos); +#endif + GET_CHAR_BEFORE_2 (c1, d, string1, end1, string2, end2); + s1 = SYNTAX (c1); + + /* Case 2: S1 is neither Ssymbol nor Sword. */ + if (s1 != Sword && s1 != Ssymbol) + goto fail; + + /* Case 3: D is not at the end of string ... */ + if (!AT_STRINGS_END (d)) + { + PREFETCH_NOLIMIT (); + c2 = RE_STRING_CHAR (d, dend - d); +#ifdef emacs + UPDATE_SYNTAX_TABLE_FORWARD (charpos); +#endif + s2 = SYNTAX (c2); + + /* ... and S2 is Sword or Ssymbol. */ + if (s2 == Sword || s2 == Ssymbol) + goto fail; + } + } + break; + case syntaxspec: case notsyntaxspec: not = (re_opcode_t) *(p - 1) == notsyntaxspec;
--- a/src/search.c Tue May 18 20:30:43 2004 +0000 +++ b/src/search.c Sat May 22 22:52:43 2004 +0000 @@ -957,7 +957,7 @@ { case '|': case '(': case ')': case '`': case '\'': case 'b': case 'B': case '<': case '>': case 'w': case 'W': case 's': - case 'S': case '=': case '{': case '}': + case 'S': case '=': case '{': case '}': case '_': case 'c': case 'C': /* for categoryspec and notcategoryspec */ case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':
--- a/src/w32console.c Tue May 18 20:30:43 2004 +0000 +++ b/src/w32console.c Sat May 22 22:52:43 2004 +0000 @@ -53,20 +53,20 @@ extern struct frame * updating_frame; extern int meta_key; -static void move_cursor (int row, int col); -static void clear_to_end (void); -void clear_frame (void); -void clear_end_of_line (int); -static void ins_del_lines (int vpos, int n); -void insert_glyphs (struct glyph *start, int len); -void write_glyphs (struct glyph *string, int len); -void delete_glyphs (int n); +static void w32con_move_cursor (int row, int col); +static void w32con_clear_to_end (void); +static void w32con_clear_frame (void); +static void w32con_clear_end_of_line (int); +static void w32con_ins_del_lines (int vpos, int n); +static void w32con_insert_glyphs (struct glyph *start, int len); +static void w32con_write_glyphs (struct glyph *string, int len); +static void w32con_delete_glyphs (int n); void w32_sys_ring_bell (void); -void reset_terminal_modes (void); -void set_terminal_modes (void); -void set_terminal_window (int size); -void update_begin (struct frame * f); -void update_end (struct frame * f); +static void w32con_reset_terminal_modes (void); +static void w32con_set_terminal_modes (void); +static void w32con_set_terminal_window (int size); +static void w32con_update_begin (struct frame * f); +static void w32con_update_end (struct frame * f); static WORD w32_face_attributes (struct frame *f, int face_id); static COORD cursor_coords; @@ -104,7 +104,7 @@ /* Move the cursor to (row, col). */ static void -move_cursor (int row, int col) +w32con_move_cursor (int row, int col) { cursor_coords.X = col; cursor_coords.Y = row; @@ -117,17 +117,17 @@ /* Clear from cursor to end of screen. */ static void -clear_to_end (void) +w32con_clear_to_end (void) { struct frame * f = PICK_FRAME (); - clear_end_of_line (FRAME_COLS (f) - 1); - ins_del_lines (cursor_coords.Y, FRAME_LINES (f) - cursor_coords.Y - 1); + w32con_clear_end_of_line (FRAME_COLS (f) - 1); + w32con_ins_del_lines (cursor_coords.Y, FRAME_LINES (f) - cursor_coords.Y - 1); } /* Clear the frame. */ -void -clear_frame (void) +static void +w32con_clear_frame (void) { struct frame * f = PICK_FRAME (); COORD dest; @@ -144,7 +144,7 @@ FillConsoleOutputAttribute (cur_screen, char_attr_normal, n, dest, &r); FillConsoleOutputCharacter (cur_screen, ' ', n, dest, &r); - move_cursor (0, 0); + w32con_move_cursor (0, 0); } @@ -152,8 +152,8 @@ static BOOL ceol_initialized = FALSE; /* Clear from Cursor to end (what's "standout marker"?). */ -void -clear_end_of_line (int end) +static void +w32con_clear_end_of_line (int end) { if (!ceol_initialized) { @@ -164,12 +164,12 @@ } ceol_initialized = TRUE; } - write_glyphs (glyph_base, end - cursor_coords.X); /* fencepost ? */ + w32con_write_glyphs (glyph_base, end - cursor_coords.X); /* fencepost ? */ } /* Insert n lines at vpos. if n is negative delete -n lines. */ -void -ins_del_lines (int vpos, int n) +static void +w32con_ins_del_lines (int vpos, int n) { int i, nb; SMALL_RECT scroll; @@ -212,8 +212,8 @@ { for (i = scroll.Bottom; i < dest.Y; i++) { - move_cursor (i, 0); - clear_end_of_line (FRAME_COLS (f)); + w32con_move_cursor (i, 0); + w32con_clear_end_of_line (FRAME_COLS (f)); } } } @@ -225,8 +225,8 @@ { for (i = nb; i < scroll.Top; i++) { - move_cursor (i, 0); - clear_end_of_line (FRAME_COLS (f)); + w32con_move_cursor (i, 0); + w32con_clear_end_of_line (FRAME_COLS (f)); } } } @@ -275,8 +275,8 @@ /* If start is zero insert blanks instead of a string at start ?. */ -void -insert_glyphs (register struct glyph *start, register int len) +static void +w32con_insert_glyphs (register struct glyph *start, register int len) { scroll_line (len, RIGHT); @@ -286,16 +286,16 @@ /* Print the first len characters of start, cursor_coords.X adjusted by write_glyphs. */ - write_glyphs (start, len); + w32con_write_glyphs (start, len); } else { - clear_end_of_line (cursor_coords.X + len); + w32con_clear_end_of_line (cursor_coords.X + len); } } -void -write_glyphs (register struct glyph *string, register int len) +static void +w32con_write_glyphs (register struct glyph *string, register int len) { int produced, consumed; DWORD r; @@ -353,7 +353,7 @@ } cursor_coords.X += produced; - move_cursor (cursor_coords.Y, cursor_coords.X); + w32con_move_cursor (cursor_coords.Y, cursor_coords.X); } len -= consumed; n -= consumed; @@ -391,8 +391,8 @@ } -void -delete_glyphs (int n) +static void +w32con_delete_glyphs (int n) { /* delete chars means scroll chars from cursor_coords.X + n to cursor_coords.X, anything beyond the edge of the screen should @@ -450,8 +450,8 @@ return sound; } -void -reset_terminal_modes (void) +static void +w32con_reset_terminal_modes (void) { #ifdef USE_SEPARATE_SCREEN SetConsoleActiveScreenBuffer (prev_screen); @@ -461,8 +461,8 @@ SetConsoleMode (keyboard_handle, prev_console_mode); } -void -set_terminal_modes (void) +static void +w32con_set_terminal_modes (void) { CONSOLE_CURSOR_INFO cci; @@ -484,19 +484,19 @@ clumps rather than one-character-at-a-time... we'll start with not moving the cursor while an update is in progress. */ -void -update_begin (struct frame * f) +static void +w32con_update_begin (struct frame * f) { } -void -update_end (struct frame * f) +static void +w32con_update_end (struct frame * f) { SetConsoleCursorPosition (cur_screen, cursor_coords); } -void -set_terminal_window (int size) +static void +w32con_set_terminal_window (int size) { } @@ -574,21 +574,21 @@ { CONSOLE_SCREEN_BUFFER_INFO info; - cursor_to_hook = move_cursor; - raw_cursor_to_hook = move_cursor; - clear_to_end_hook = clear_to_end; - clear_frame_hook = clear_frame; - clear_end_of_line_hook = clear_end_of_line; - ins_del_lines_hook = ins_del_lines; - insert_glyphs_hook = insert_glyphs; - write_glyphs_hook = write_glyphs; - delete_glyphs_hook = delete_glyphs; + cursor_to_hook = w32con_move_cursor; + raw_cursor_to_hook = w32con_move_cursor; + clear_to_end_hook = w32con_clear_to_end; + clear_frame_hook = w32con_clear_frame; + clear_end_of_line_hook = w32con_clear_end_of_line; + ins_del_lines_hook = w32con_ins_del_lines; + insert_glyphs_hook = w32con_insert_glyphs; + write_glyphs_hook = w32con_write_glyphs; + delete_glyphs_hook = w32con_delete_glyphs; ring_bell_hook = w32_sys_ring_bell; - reset_terminal_modes_hook = reset_terminal_modes; - set_terminal_modes_hook = set_terminal_modes; - set_terminal_window_hook = set_terminal_window; - update_begin_hook = update_begin; - update_end_hook = update_end; + reset_terminal_modes_hook = w32con_reset_terminal_modes; + set_terminal_modes_hook = w32con_set_terminal_modes; + set_terminal_window_hook = w32con_set_terminal_window; + update_begin_hook = w32con_update_begin; + update_end_hook = w32con_update_end; read_socket_hook = w32_console_read_socket; mouse_position_hook = w32_console_mouse_position;
--- a/src/w32fns.c Tue May 18 20:30:43 2004 +0000 +++ b/src/w32fns.c Sat May 22 22:52:43 2004 +0000 @@ -8090,7 +8090,7 @@ (WPARAM) XINT (XCAR (item)), (LPARAM) item.i)) #else if (PostThreadMessage (dwWindowsThreadId, WM_EMACS_UNREGISTER_HOT_KEY, - (WPARAM) XINT (XCAR (item)), (LPARAM) item.i)) + (WPARAM) XINT (XCAR (item)), (LPARAM) item)) #endif { @@ -8170,7 +8170,7 @@ (WPARAM) vk_code, (LPARAM) new_state.i)) #else if (PostThreadMessage (dwWindowsThreadId, WM_EMACS_TOGGLE_LOCK_KEY, - (WPARAM) vk_code, (LPARAM) new_state.i)) + (WPARAM) vk_code, (LPARAM) new_state)) #endif { MSG msg;
--- a/src/w32menu.c Tue May 18 20:30:43 2004 +0000 +++ b/src/w32menu.c Sat May 22 22:52:43 2004 +0000 @@ -2225,9 +2225,12 @@ /* Set help string for menu item. Leave it as a Lisp_Object until it is ready to be displayed, since GC can happen while menus are active. */ - if (wv->help) - info.dwItemData = (DWORD) wv->help; - + if (!NILP (wv->help)) +#ifdef USE_LISP_UNION_TYPE + info.dwItemData = (DWORD) (wv->help).i; +#else + info.dwItemData = (DWORD) (wv->help); +#endif if (wv->button_type == BUTTON_TYPE_RADIO) { /* CheckMenuRadioItem allows us to differentiate TOGGLE and @@ -2307,7 +2310,12 @@ info.fMask = MIIM_DATA; get_menu_item_info (menu, item, FALSE, &info); +#ifdef USE_LISP_UNION_TYPE + help = info.dwItemData ? (Lisp_Object) ((EMACS_INT) info.dwItemData) + : Qnil; +#else help = info.dwItemData ? (Lisp_Object) info.dwItemData : Qnil; +#endif } /* Store the help echo in the keyboard buffer as the X toolkit
--- a/src/w32proc.c Tue May 18 20:30:43 2004 +0000 +++ b/src/w32proc.c Sat May 22 22:52:43 2004 +0000 @@ -1,5 +1,5 @@ /* Process support for GNU Emacs on the Microsoft W32 API. - Copyright (C) 1992, 1995, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1992, 95, 99, 2000, 01, 04 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -367,7 +367,7 @@ cp->pid = -cp->pid; /* pid must fit in a Lisp_Int */ - cp->pid = XUINT (make_number (cp->pid)); + cp->pid = cp->pid & INTMASK; *pPid = cp->pid;
--- a/src/w32term.h Tue May 18 20:30:43 2004 +0000 +++ b/src/w32term.h Sat May 22 22:52:43 2004 +0000 @@ -252,6 +252,10 @@ struct w32_display_info *x_display_info_for_name (); +Lisp_Object display_x_get_resource P_ ((struct w32_display_info *, + Lisp_Object, Lisp_Object, + Lisp_Object, Lisp_Object)); + extern struct w32_display_info *w32_term_init (); extern Lisp_Object w32_list_fonts P_ ((struct frame *, Lisp_Object, int, int)); @@ -717,6 +721,8 @@ XGCValues *XCreateGC (void *, Window, unsigned long, XGCValues *); struct frame * check_x_frame (Lisp_Object); +Lisp_Object vga_stdcolor_name (int); + EXFUN (Fx_display_color_p, 1); EXFUN (Fx_display_grayscale_p, 1);