XEmacs 21.2.16 "Sumida".
authortomo <tomo>
Sun, 13 Jun 1999 07:34:07 +0000 (07:34 +0000)
committertomo <tomo>
Sun, 13 Jun 1999 07:34:07 +0000 (07:34 +0000)
37 files changed:
CHANGES-beta
ChangeLog
dynodump/_dynodump.h
dynodump/dynodump.c
dynodump/i386/_relocate.c
dynodump/i386/machdep.h
dynodump/ppc/_relocate.c
dynodump/ppc/machdep.h
dynodump/sparc/_relocate.c
dynodump/sparc/machdep.h
dynodump/syms.c
lib-src/ChangeLog
lib-src/rcs2log
lisp/ChangeLog
lisp/coding.el
lisp/cus-edit.el
lisp/cus-face.el
lisp/faces.el
lisp/font-menu.el
lisp/ldap.el
lisp/lib-complete.el
lisp/mouse.el
lisp/mule/cyrillic.el
lisp/select.el
lisp/x-select.el
lwlib/ChangeLog
man/ChangeLog
man/info.texi
man/texinfo.tex
man/texinfo.texi
man/xemacs-faq.texi
nt/ChangeLog
src/ChangeLog
src/select-msw.c
src/unexsol2.c
tests/ChangeLog
version.sh

index e8dcf06..401605d 100644 (file)
@@ -1,4 +1,11 @@
                                                        -*- indented-text -*-
                                                        -*- indented-text -*-
+to 21.2.16 "Sumida"
+-- make selection more mswindows conformant.
+-- Make customize use specifiers from Jan Vroonhof
+-- Cyrillic CCL crash fix from MORIOKA Tomohiko
+-- DEC OSF Build fix and miscellaneous Lisp fix from Steve Baur
+-- raw-text coding system synch from MORIOKA Tomohiko
+
 to 21.2.15 "Sakuragawa"
 -- new self tests from Oscar Figueiredo and Hrvoje Niksic
 -- Miscellaneous bug fixes from Yoshiki Hayashi, Jerry James, Hirokazu FUKUI,
 to 21.2.15 "Sakuragawa"
 -- new self tests from Oscar Figueiredo and Hrvoje Niksic
 -- Miscellaneous bug fixes from Yoshiki Hayashi, Jerry James, Hirokazu FUKUI,
index b28efa0..daa3f1f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+1999-06-11  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.16 is released
+
 1999-06-04  SL Baur  <steve@steve1.m17n.org>
 
        * configure.in (CPP): Correct test for locating $site_prefix
 1999-06-04  SL Baur  <steve@steve1.m17n.org>
 
        * configure.in (CPP): Correct test for locating $site_prefix
index 847c4eb..c09bd7f 100644 (file)
@@ -32,7 +32,7 @@
  * Mountain View, California 94043
  */
 
  * Mountain View, California 94043
  */
 
-#pragma ident  "@(#) $Id: _dynodump.h,v 1.3 1997/05/29 04:22:29 steve Exp $ - SMI"
+#pragma ident  "@(#) $Id: _dynodump.h,v 1.5 1996/05/23 18:39:07 georgn Exp $ - SMI"
 
 #ifndef        _DYNODUMP_DOT_H
 #define        _DYNODUMP_DOT_H
 
 #ifndef        _DYNODUMP_DOT_H
 #define        _DYNODUMP_DOT_H
index ff4477d..b684813 100644 (file)
@@ -73,7 +73,7 @@
  * N.B. The above commentary is not quite correct in the flags have been hardwired
  *      to RTLD_SAVREL.
  */
  * N.B. The above commentary is not quite correct in the flags have been hardwired
  *      to RTLD_SAVREL.
  */
-#pragma ident  "@(#) $Id: dynodump.c,v 1.6 1998/03/31 20:10:55 steve Exp $ - SMI"
+#pragma ident  "@(#) $Id: dynodump.c,v 1.8 1996/05/23 18:39:21 georgn Exp $ - SMI"
 
 #define __EXTENSIONS__ 1
 
 
 #define __EXTENSIONS__ 1
 
index f97dd1b..d3ec59c 100644 (file)
@@ -32,7 +32,7 @@
  * Mountain View, California 94043
  */
 
  * Mountain View, California 94043
  */
 
-#pragma ident  "@(#) $Id: _relocate.c,v 1.3 1997/05/29 04:23:02 steve Exp $ - SMI"
+#pragma ident  "@(#) $Id: _relocate.c,v 1.4 1995/06/26 20:12:41 georgn Exp $ - SMI"
 
 /* LINTLIBRARY */
 
 
 /* LINTLIBRARY */
 
index 4dc66fe..c90e29c 100644 (file)
@@ -32,7 +32,7 @@
  * Mountain View, California 94043
  */
 
  * Mountain View, California 94043
  */
 
-#pragma ident  "@(#) $Id: machdep.h,v 1.3 1997/05/29 04:23:02 steve Exp $ - SMI"
+#pragma ident  "@(#) $Id: machdep.h,v 1.2 1995/02/16 22:58:43 georgn Exp $ - SMI"
 
 /*
  * Global include file for all sgs Intel machine dependent macros, constants
 
 /*
  * Global include file for all sgs Intel machine dependent macros, constants
index 754b417..feb5ca9 100644 (file)
@@ -32,7 +32,7 @@
  * Mountain View, California 94043
  */
 
  * Mountain View, California 94043
  */
 
-#pragma ident "@(#) $Id: _relocate.c,v 1.4 1998/03/31 20:10:55 steve Exp $ - SMI"
+#pragma ident "@(#) $Id: _relocate.c,v 1.3 1995/06/26 20:16:39 georgn Exp $ - SMI"
 
 /* LINTLIBRARY */
 
 
 /* LINTLIBRARY */
 
index a649a9c..2a3d1e6 100644 (file)
@@ -32,7 +32,7 @@
  * Mountain View, California 94043
  */
 
  * Mountain View, California 94043
  */
 
-#pragma ident "@(#) $Id: machdep.h,v 1.3 1997/05/29 04:23:20 steve Exp $ - SMI"
+#pragma ident "@(#) $Id: machdep.h,v 1.2 1995/02/16 22:58:49 georgn Exp $ - SMI"
 
 /*
  * Global include file for all sgs PowerPC machine dependent macros, constants
 
 /*
  * Global include file for all sgs PowerPC machine dependent macros, constants
index 14466f0..10b0fda 100644 (file)
@@ -35,7 +35,7 @@
 /*
  * Update the value of the `_edata' and `_end' symbols.
  */
 /*
  * Update the value of the `_edata' and `_end' symbols.
  */
-#pragma ident  "@(#) $Id: _relocate.c,v 1.4 1998/03/31 20:10:55 steve Exp $ - SMI"
+#pragma ident  "@(#) $Id: _relocate.c,v 1.4 1995/06/26 20:13:26 georgn Exp $ - SMI"
 
 #include       <libelf.h>
 #include       <string.h>
 
 #include       <libelf.h>
 #include       <string.h>
index b4b76d8..972081e 100644 (file)
@@ -32,7 +32,7 @@
  * Mountain View, California 94043
  */
 
  * Mountain View, California 94043
  */
 
-#pragma ident  "@(#) $Id: machdep.h,v 1.3 1997/05/29 04:23:26 steve Exp $ - SMI"
+#pragma ident  "@(#) $Id: machdep.h,v 1.2 1995/02/16 22:58:55 georgn Exp $ - SMI"
 
 /*
  * Global include file for all sgs SPARC machine dependent macros, constants
 
 /*
  * Global include file for all sgs SPARC machine dependent macros, constants
index 0ac5cb8..c060f33 100644 (file)
@@ -35,7 +35,7 @@
 /*
  * Update the value of the `_edata' and `_end' symbols.
  */
 /*
  * Update the value of the `_edata' and `_end' symbols.
  */
-#pragma ident  "@(#) $Id: syms.c,v 1.3 1997/05/29 04:22:30 steve Exp $ - SMI"
+#pragma ident  "@(#) $Id: syms.c,v 1.2 1995/03/06 22:39:22 georgn Exp $ - SMI"
 
 #include       <libelf.h>
 #include       <string.h>
 
 #include       <libelf.h>
 #include       <string.h>
index c8fe1c9..fa9d5e1 100644 (file)
@@ -1,3 +1,7 @@
+1999-06-11  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.16 is released
+
 1999-06-04  XEmacs Build Bot <builds@cvs.xemacs.org>
 
        * XEmacs 21.2.15 is released
 1999-06-04  XEmacs Build Bot <builds@cvs.xemacs.org>
 
        * XEmacs 21.2.15 is released
index 8fa12d9..2a9e7d1 100755 (executable)
@@ -28,7 +28,7 @@ Options:
 
 Report bugs to <bug-gnu-emacs@prep.ai.mit.edu>.'
 
 
 Report bugs to <bug-gnu-emacs@prep.ai.mit.edu>.'
 
-Id='$Id: rcs2log,v 1.2 1997/07/09 04:31:03 steve Exp $'
+Id='$Id: rcs2log,v 1.37 1997/03/21 22:19:30 eggert Exp $'
 
 # Copyright 1992, 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
 
 
 # Copyright 1992, 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
 
index 9e13006..d981215 100644 (file)
@@ -1,3 +1,46 @@
+1999-06-11  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.16 is released
+
+1999-06-09  MORIOKA Tomohiko  <tomo@etl.go.jp>
+
+       * mule/cyrillic.el (cyrillic-koi8-r-decode-table): Set 32 for
+       missing characters to avoid crash.
+
+1999-06-09  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * coding.el (set-terminal-coding-system): Only set the console
+       coding system on the selected console if it is a tty.
+
+1999-06-10  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * cus-face.el: 
+       * cus-edit.el: 
+       * faces.el: 
+       (custom): 
+       (face-spec-set): 
+       * faces.el (frob-face-property): 
+       * font-menu.el (font-menu-set-font): 
+                 Actually apply changes from 1999-03-17
+
+1999-06-10  Andy Piper  <andy@xemacs.org>
+
+       * select.el (get-selection): abstract out non error-signalling
+       part.
+       (get-selection-no-error): get-selection without signalling an
+       error.
+       (selection-is-clipboard-p): new variable. controls whether the
+       selection sets the clipboard.
+       (own-selection): use it.
+
+       * mouse.el (insert-selection): fallback to clipboard after trying
+       primary selection and cutbuffer.
+
+1999-06-05  Andy Piper  <andy@xemacs.org>
+
+       * x-select.el (xselect-kill-buffer-hook-1): use generalised
+       selection functions.
+
 1999-06-04  MORIOKA Tomohiko  <tomo@etl.go.jp>
 
        * code-files.el (buffer-file-coding-system): Use `raw-text' as
 1999-06-04  MORIOKA Tomohiko  <tomo@etl.go.jp>
 
        * code-files.el (buffer-file-coding-system): Use `raw-text' as
index 5a4a1c4..d47e0a3 100644 (file)
@@ -115,7 +115,9 @@ or a function symbol which, when called, returns such a cons cell."
   (interactive "zterminal-coding-system: ")
   (get-coding-system coding-system) ; correctness check
   (setq terminal-coding-system coding-system)
   (interactive "zterminal-coding-system: ")
   (get-coding-system coding-system) ; correctness check
   (setq terminal-coding-system coding-system)
-  (set-console-tty-coding-system (device-console) terminal-coding-system)
+  ; #### should this affect all current tty consoles ?
+  (if (eq (device-type) 'tty)
+      (set-console-tty-coding-system (device-console) terminal-coding-system))
   (redraw-modeline t))
 
 (defun set-pathname-coding-system (coding-system)
   (redraw-modeline t))
 
 (defun set-pathname-coding-system (coding-system)
index 339f262..efe6ffb 100644 (file)
@@ -2288,12 +2288,7 @@ Match frames with dark backgrounds")
             (unless (widget-get widget :custom-form)
                 (widget-put widget :custom-form custom-face-default-form))
             (let* ((symbol (widget-value widget))
             (unless (widget-get widget :custom-form)
                 (widget-put widget :custom-form custom-face-default-form))
             (let* ((symbol (widget-value widget))
-                   (spec (or (get symbol 'customized-face)
-                             (get symbol 'saved-face)
-                             (get symbol 'face-defface-spec)
-                             ;; Attempt to construct it.
-                             (list (list t (face-custom-attributes-get
-                                            symbol (selected-frame))))))
+                   (spec (custom-face-get-spec symbol))
                    (form (widget-get widget :custom-form))
                    (indent (widget-get widget :indent))
                    (edit (widget-create-child-and-convert
                    (form (widget-get widget :custom-form))
                    (indent (widget-get widget :indent))
                    (edit (widget-create-child-and-convert
@@ -2392,7 +2387,7 @@ Optional EVENT is the location for the menu."
         (child (car (widget-get widget :children)))
         (value (widget-value child)))
     (put symbol 'customized-face value)
         (child (car (widget-get widget :children)))
         (value (widget-value child)))
     (put symbol 'customized-face value)
-    (face-spec-set symbol value)
+    (face-spec-set symbol value nil '(custom))
     (custom-face-state-set widget)
     (custom-redraw-magic widget)))
 
     (custom-face-state-set widget)
     (custom-redraw-magic widget)))
 
@@ -2401,7 +2396,7 @@ Optional EVENT is the location for the menu."
   (let* ((symbol (widget-value widget))
         (child (car (widget-get widget :children)))
         (value (widget-value child)))
   (let* ((symbol (widget-value widget))
         (child (car (widget-get widget :children)))
         (value (widget-value child)))
-    (face-spec-set symbol value)
+    (face-spec-set symbol value nil '(custom))
     (put symbol 'saved-face value)
     (put symbol 'customized-face nil)
     (custom-save-all)
     (put symbol 'saved-face value)
     (put symbol 'customized-face nil)
     (custom-save-all)
@@ -2416,7 +2411,7 @@ Optional EVENT is the location for the menu."
     (unless value
       (signal 'error (list "No saved value for this face" symbol)))
     (put symbol 'customized-face nil)
     (unless value
       (signal 'error (list "No saved value for this face" symbol)))
     (put symbol 'customized-face nil)
-    (face-spec-set symbol value)
+    (face-spec-set symbol value nil '(custom))
     (widget-value-set child value)
     (custom-face-state-set widget)
     (custom-redraw-magic widget)))
     (widget-value-set child value)
     (custom-face-state-set widget)
     (custom-redraw-magic widget)))
@@ -2432,7 +2427,7 @@ Optional EVENT is the location for the menu."
     (when (get symbol 'saved-face)
       (put symbol 'saved-face nil)
       (custom-save-all))
     (when (get symbol 'saved-face)
       (put symbol 'saved-face nil)
       (custom-save-all))
-    (face-spec-set symbol value)
+    (face-spec-set symbol value nil '(custom))
     (widget-value-set child value)
     (custom-face-state-set widget)
     (custom-redraw-magic widget)))
     (widget-value-set child value)
     (custom-face-state-set widget)
     (custom-redraw-magic widget)))
index 6be65ba..ddc6c87 100644 (file)
            frame)
        ;; Create global face.
        (make-empty-face face)
            frame)
        ;; Create global face.
        (make-empty-face face)
-       (face-display-set face value)
+       (face-display-set face value nil '(custom))
        ;; Create frame local faces
        (while frames
          (setq frame (car frames)
                frames (cdr frames))
        ;; Create frame local faces
        (while frames
          (setq frame (car frames)
                frames (cdr frames))
-         (face-display-set face value frame))
+         (face-display-set face value frame '(custom)))
        (init-face-from-resources face)))
     (when (and doc (null (face-doc-string face)))
       (set-face-doc-string face doc))
        (init-face-from-resources face)))
     (when (and doc (null (face-doc-string face)))
       (set-face-doc-string face doc))
@@ -110,7 +110,7 @@ be changed.
 The GET function should take two arguments, the face to examine, and
 optonally the frame where the face should be examined.")
 
 The GET function should take two arguments, the face to examine, and
 optonally the frame where the face should be examined.")
 
-(defun face-custom-attributes-set (face frame &rest atts)
+(defun face-custom-attributes-set (face frame tags &rest atts)
   "For FACE on FRAME set the attributes [KEYWORD VALUE]....
 Each keyword should be listed in `custom-face-attributes'.
 
   "For FACE on FRAME set the attributes [KEYWORD VALUE]....
 Each keyword should be listed in `custom-face-attributes'.
 
@@ -121,7 +121,7 @@ If FRAME is nil, set the default face."
           (fun (nth 2 (assq name custom-face-attributes))))
       (setq atts (cdr (cdr atts)))
       (condition-case nil
           (fun (nth 2 (assq name custom-face-attributes))))
       (setq atts (cdr (cdr atts)))
       (condition-case nil
-         (funcall fun face value frame)
+         (funcall fun face value frame tags)
        (error nil)))))
 
 (defun face-custom-attributes-get (face frame)
        (error nil)))))
 
 (defun face-custom-attributes-get (face frame)
@@ -157,11 +157,11 @@ If FRAME is nil, use the default face."
       (list (list t (face-custom-attributes-get
                     symbol (selected-frame))))))
 
       (list (list t (face-custom-attributes-get
                     symbol (selected-frame))))))
 
-(defun custom-set-face-bold (face value &optional frame)
+(defun custom-set-face-bold (face value &optional frame tags)
   "Set the bold property of FACE to VALUE."
   (if value
   "Set the bold property of FACE to VALUE."
   (if value
-      (make-face-bold face frame)
-    (make-face-unbold face frame)))
+      (make-face-bold face frame tags)
+    (make-face-unbold face frame tags)))
 
 ;; Really, we should get rid of these font.el dependencies...  They
 ;; are still presenting a problem with dumping the faces (font.el is
 
 ;; Really, we should get rid of these font.el dependencies...  They
 ;; are still presenting a problem with dumping the faces (font.el is
@@ -176,15 +176,15 @@ If FRAME is nil, use the default face."
         (fontobj (font-create-object font)))
     (font-bold-p fontobj)))
 
         (fontobj (font-create-object font)))
     (font-bold-p fontobj)))
 
-(defun custom-set-face-italic (face value &optional frame)
+(defun custom-set-face-italic (face value &optional frame tags)
   "Set the italic property of FACE to VALUE."
   (if value
   "Set the italic property of FACE to VALUE."
   (if value
-      (make-face-italic face frame)
-    (make-face-unitalic face frame)))
+      (make-face-italic face frame tags)
+    (make-face-unitalic face frame tags)))
 
 (defun custom-face-italic (face &rest args)
   "Return non-nil if the font of FACE is italic."
 
 (defun custom-face-italic (face &rest args)
   "Return non-nil if the font of FACE is italic."
-  (let* ((font (apply 'face-font-name face args))
+  (let* ((font (apply 'face-font-name face))
         ;; Gag
         (fontobj (font-create-object font)))
     (font-italic-p fontobj)))
         ;; Gag
         (fontobj (font-create-object font)))
     (font-italic-p fontobj)))
@@ -196,13 +196,13 @@ If FRAME is nil, use the default face."
     (and image 
         (image-instance-file-name image))))
 
     (and image 
         (image-instance-file-name image))))
 
-(defun custom-set-face-font-size (face size &rest args)
+(defun custom-set-face-font-size (face size &optional locale tags)
   "Set the font of FACE to SIZE"
   "Set the font of FACE to SIZE"
-  (let* ((font (apply 'face-font-name face args))
+  (let* ((font (apply 'face-font-name face locale))
         ;; Gag
         (fontobj (font-create-object font)))
     (set-font-size fontobj size)
         ;; Gag
         (fontobj (font-create-object font)))
     (set-font-size fontobj size)
-    (apply 'font-set-face-font face fontobj args)))
+    (apply 'font-set-face-font face fontobj locale tags)))
 
 (defun custom-face-font-size (face &rest args)
   "Return the size of the font of FACE as a string."
 
 (defun custom-face-font-size (face &rest args)
   "Return the size of the font of FACE as a string."
@@ -211,13 +211,13 @@ If FRAME is nil, use the default face."
         (fontobj (font-create-object font)))
     (format "%s" (font-size fontobj))))
 
         (fontobj (font-create-object font)))
     (format "%s" (font-size fontobj))))
 
-(defun custom-set-face-font-family (face family &rest args)
+(defun custom-set-face-font-family (face family &optional locale tags)
   "Set the font of FACE to FAMILY."
   "Set the font of FACE to FAMILY."
-  (let* ((font (apply 'face-font-name face args))
+  (let* ((font (apply 'face-font-name face locale))
         ;; Gag
         (fontobj (font-create-object font)))
     (set-font-family fontobj family)
         ;; Gag
         (fontobj (font-create-object font)))
     (set-font-family fontobj family)
-    (apply 'font-set-face-font face fontobj args)))
+    (apply 'font-set-face-font face fontobj locale tags)))
 
 (defun custom-face-font-family (face &rest args)
   "Return the name of the font family of FACE."
 
 (defun custom-face-font-family (face &rest args)
   "Return the name of the font family of FACE."
@@ -233,7 +233,7 @@ If FRAME is nil, use the default face."
   (let ((spec (face-spec-update-all-matching (custom-face-get-spec face)
                                             display plist)))
     (put face 'customized-face spec)
   (let ((spec (face-spec-update-all-matching (custom-face-get-spec face)
                                             display plist)))
     (put face 'customized-face spec)
-    (face-spec-set face spec)))
+    (face-spec-set face spec nil '(custom))))
 
 ;;; Initializing.
 
 
 ;;; Initializing.
 
@@ -260,7 +260,7 @@ See `defface' for the format of SPEC."
            (when (or now (find-face face))
              (unless (find-face face)
                (make-empty-face face))
            (when (or now (find-face face))
              (unless (find-face face)
                (make-empty-face face))
-             (face-spec-set face spec))
+             (face-spec-set face spec nil '(custom)))
            (setq args (cdr args)))
        ;; Old format, a plist of FACE SPEC pairs.
        (let ((face (nth 0 args))
            (setq args (cdr args)))
        ;; Old format, a plist of FACE SPEC pairs.
        (let ((face (nth 0 args))
index 8231011..b9dc478 100644 (file)
@@ -794,7 +794,7 @@ See `face-property-instance' for the semantics of the DOMAIN argument."
 ;; WE DEMAND LEXICAL SCOPING!!!
 ;; WE DEMAND LEXICAL SCOPING!!!
 ;; WE DEMAND LEXICAL SCOPING!!!
 ;; WE DEMAND LEXICAL SCOPING!!!
 ;; WE DEMAND LEXICAL SCOPING!!!
 ;; WE DEMAND LEXICAL SCOPING!!!
-(defun frob-face-property (face property func &optional locale)
+(defun frob-face-property (face property func &optional locale tags)
   "Change the specifier for FACE's PROPERTY according to FUNC, in LOCALE.
 This function is ugly and messy and is primarily used as an internal
 helper function for `make-face-bold' et al., so you probably don't
   "Change the specifier for FACE's PROPERTY according to FUNC, in LOCALE.
 This function is ugly and messy and is primarily used as an internal
 helper function for `make-face-bold' et al., so you probably don't
@@ -814,13 +814,14 @@ first valid instantiator is used), and that result substituted for
 the specification; otherwise, the process just outlined is
 iterated over each existing device and the concatenated results
 substituted for the specification."
 the specification; otherwise, the process just outlined is
 iterated over each existing device and the concatenated results
 substituted for the specification."
-  (let ((sp (face-property face property)))
+  (let ((sp (face-property face property))
+       temp-sp)
     (if (valid-specifier-domain-p locale)
        ;; this is easy.
        (let* ((inst (face-property-instance face property locale))
               (name (and inst (funcall func inst (dfw-device locale)))))
          (when name
     (if (valid-specifier-domain-p locale)
        ;; this is easy.
        (let* ((inst (face-property-instance face property locale))
               (name (and inst (funcall func inst (dfw-device locale)))))
          (when name
-           (add-spec-to-specifier sp name locale)))
+           (add-spec-to-specifier sp name locale tags)))
       ;; otherwise, map over all specifications ...
       ;; but first, some further kludging:
       ;; (1) if we're frobbing the global property, make sure
       ;; otherwise, map over all specifications ...
       ;; but first, some further kludging:
       ;; (1) if we're frobbing the global property, make sure
@@ -832,33 +833,40 @@ substituted for the specification."
       ;; (2) if we're frobbing a particular locale, nothing would
       ;;     happen if that locale has no instantiators.  So signal
       ;;     an error to indicate this.
       ;; (2) if we're frobbing a particular locale, nothing would
       ;;     happen if that locale has no instantiators.  So signal
       ;;     an error to indicate this.
-      (if (and (or (eq locale 'global) (eq locale 'all) (not locale))
-              (not (face-property face property 'global)))
-         (copy-specifier (face-property 'default property)
-                         (face-property face property)
-                         'global))
+
+      (setq temp-sp
+           (if (and (or (eq locale 'global) (eq locale 'all) (not locale))
+                    (not (face-property face property 'global)))
+               (copy-specifier (face-property 'default property)
+                               nil 'global)
+             sp))
       (if (and (valid-specifier-locale-p locale)
       (if (and (valid-specifier-locale-p locale)
-              (not (face-property face property locale)))
+              (not (specifier-specs temp-sp locale)))
          (error "Property must have a specification in locale %S" locale))
       (map-specifier
          (error "Property must have a specification in locale %S" locale))
       (map-specifier
-       sp
-       (lambda (sp locale inst-list func)
+       temp-sp
+       (lambda (sp-arg locale inst-list func)
         (let* ((device (dfw-device locale))
                ;; if a device can be derived from the locale,
                ;; call frob-face-property-1 for that device.
                ;; Otherwise map frob-face-property-1 over each device.
                (result
                 (if device
         (let* ((device (dfw-device locale))
                ;; if a device can be derived from the locale,
                ;; call frob-face-property-1 for that device.
                ;; Otherwise map frob-face-property-1 over each device.
                (result
                 (if device
-                    (list (frob-face-property-1 sp device inst-list func))
+                    (list (frob-face-property-1 sp-arg device inst-list func))
                   (mapcar (lambda (device)
                   (mapcar (lambda (device)
-                            (frob-face-property-1 sp device
+                            (frob-face-property-1 sp-arg device
                                                   inst-list func))
                           (device-list))))
                new-result)
           ;; remove duplicates and nils from the obtained list of
                                                   inst-list func))
                           (device-list))))
                new-result)
           ;; remove duplicates and nils from the obtained list of
-          ;; instantiators.
+          ;; instantiators. Also add tags amd remove 'defaults'.
           (mapcar (lambda (arg)
           (mapcar (lambda (arg)
-                    (when (and arg (not (member arg new-result)))
+                    (when arg
+                      (if (not (consp arg))
+                          (setq arg (cons tags arg))
+                        (setcar arg (append tags (delete 'default
+                                                         (car arg))))))
+                    (when (and arg (not (member arg new-result)))                     
                       (setq new-result (cons arg new-result))))
                   result)
           ;; add back in.
                       (setq new-result (cons arg new-result))))
                   result)
           ;; add back in.
@@ -886,7 +894,7 @@ substituted for the specification."
       (setq inst-list (cdr inst-list)))
     (or result first-valid)))
 
       (setq inst-list (cdr inst-list)))
     (or result first-valid)))
 
-(defun frob-face-font-2 (face locale unfrobbed-face frobbed-face
+(defun frob-face-font-2 (face locale tags unfrobbed-face frobbed-face
                              tty-thunk x-thunk standard-face-mapping)
   ;; another kludge to make things more intuitive.  If we're
   ;; inheriting from a standard face in this locale, frob the
                              tty-thunk x-thunk standard-face-mapping)
   ;; another kludge to make things more intuitive.  If we're
   ;; inheriting from a standard face in this locale, frob the
@@ -934,9 +942,9 @@ substituted for the specification."
            (not (equal (face-property-instance face 'font domain)
                        (face-property-instance unfrobbed-face 'font domain)))
            (set-face-property face 'font (vector frobbed-face)
            (not (equal (face-property-instance face 'font domain)
                        (face-property-instance unfrobbed-face 'font domain)))
            (set-face-property face 'font (vector frobbed-face)
-                              the-locale))))))
+                              the-locale tags))))))
 
 
-(defun make-face-bold (face &optional locale)
+(defun make-face-bold (face &optional locale tags)
   "Make FACE bold in LOCALE, if possible.
 This will attempt to make the font bold for X locales and will set the
 highlight flag for TTY locales.
   "Make FACE bold in LOCALE, if possible.
 This will attempt to make the font bold for X locales and will set the
 highlight flag for TTY locales.
@@ -965,24 +973,24 @@ but it makes `make-face-bold' have more intuitive behavior in many
 circumstances."
   (interactive (list (read-face-name "Make which face bold: ")))
   (frob-face-font-2
 circumstances."
   (interactive (list (read-face-name "Make which face bold: ")))
   (frob-face-font-2
-   face locale 'default 'bold
+   face locale tags 'default 'bold
    (lambda ()
      ;; handle TTY specific entries
      (when (featurep 'tty)
    (lambda ()
      ;; handle TTY specific entries
      (when (featurep 'tty)
-       (set-face-highlight-p face t locale 'tty)))
+       (set-face-highlight-p face t locale (cons 'tty tags))))
    (lambda ()
      ;; handle X specific entries
      (when (featurep 'x)
    (lambda ()
      ;; handle X specific entries
      (when (featurep 'x)
-       (frob-face-property face 'font 'x-make-font-bold locale))
+       (frob-face-property face 'font 'x-make-font-bold locale tags))
      (when (featurep 'mswindows)
      (when (featurep 'mswindows)
-       (frob-face-property face 'font 'mswindows-make-font-bold locale))
+       (frob-face-property face 'font 'mswindows-make-font-bold locale tags))
      )
    '(([default] . [bold])
      ([bold] . t)
      ([italic] . [bold-italic])
      ([bold-italic] . t))))
 
      )
    '(([default] . [bold])
      ([bold] . t)
      ([italic] . [bold-italic])
      ([bold-italic] . t))))
 
-(defun make-face-italic (face &optional locale)
+(defun make-face-italic (face &optional locale tags)
   "Make FACE italic in LOCALE, if possible.
 This will attempt to make the font italic for X locales and will set
 the underline flag for TTY locales.
   "Make FACE italic in LOCALE, if possible.
 This will attempt to make the font italic for X locales and will set
 the underline flag for TTY locales.
@@ -990,24 +998,24 @@ See `make-face-bold' for the semantics of the LOCALE argument and
 for more specifics on exactly how this function works."
   (interactive (list (read-face-name "Make which face italic: ")))
   (frob-face-font-2
 for more specifics on exactly how this function works."
   (interactive (list (read-face-name "Make which face italic: ")))
   (frob-face-font-2
-   face locale 'default 'italic
+   face locale tags 'default 'italic
    (lambda ()
      ;; handle TTY specific entries
      (when (featurep 'tty)
    (lambda ()
      ;; handle TTY specific entries
      (when (featurep 'tty)
-       (set-face-underline-p face t locale 'tty)))
+       (set-face-underline-p face t locale (cons 'tty tags))))
    (lambda ()
      ;; handle X specific entries
      (when (featurep 'x)
    (lambda ()
      ;; handle X specific entries
      (when (featurep 'x)
-       (frob-face-property face 'font 'x-make-font-italic locale))
+       (frob-face-property face 'font 'x-make-font-italic locale tags))
      (when (featurep 'mswindows)
      (when (featurep 'mswindows)
-       (frob-face-property face 'font 'mswindows-make-font-italic locale))
+       (frob-face-property face 'font 'mswindows-make-font-italic locale tags))
      )
    '(([default] . [italic])
      ([bold] . [bold-italic])
      ([italic] . t)
      ([bold-italic] . t))))
 
      )
    '(([default] . [italic])
      ([bold] . [bold-italic])
      ([italic] . t)
      ([bold-italic] . t))))
 
-(defun make-face-bold-italic (face &optional locale)
+(defun make-face-bold-italic (face &optional locale tags)
   "Make FACE bold and italic in LOCALE, if possible.
 This will attempt to make the font bold-italic for X locales and will
 set the highlight and underline flags for TTY locales.
   "Make FACE bold and italic in LOCALE, if possible.
 This will attempt to make the font bold-italic for X locales and will
 set the highlight and underline flags for TTY locales.
@@ -1015,25 +1023,25 @@ See `make-face-bold' for the semantics of the LOCALE argument and
 for more specifics on exactly how this function works."
   (interactive (list (read-face-name "Make which face bold-italic: ")))
   (frob-face-font-2
 for more specifics on exactly how this function works."
   (interactive (list (read-face-name "Make which face bold-italic: ")))
   (frob-face-font-2
-   face locale 'default 'bold-italic
+   face locale tags 'default 'bold-italic
    (lambda ()
      ;; handle TTY specific entries
      (when (featurep 'tty)
    (lambda ()
      ;; handle TTY specific entries
      (when (featurep 'tty)
-       (set-face-highlight-p face t locale 'tty)
-       (set-face-underline-p face t locale 'tty)))
+       (set-face-highlight-p face t locale (cons 'tty tags))
+       (set-face-underline-p face t locale (cons 'tty tags))))
    (lambda ()
      ;; handle X specific entries
      (when (featurep 'x)
    (lambda ()
      ;; handle X specific entries
      (when (featurep 'x)
-       (frob-face-property face 'font 'x-make-font-bold-italic locale))
+       (frob-face-property face 'font 'x-make-font-bold-italic locale tags))
      (when (featurep 'mswindows)
      (when (featurep 'mswindows)
-       (frob-face-property face 'font 'mswindows-make-font-bold-italic locale))
+       (frob-face-property face 'font 'mswindows-make-font-bold-italic locale tags))
      )
    '(([default] . [italic])
      ([bold] . [bold-italic])
      ([italic] . [bold-italic])
      ([bold-italic] . t))))
 
      )
    '(([default] . [italic])
      ([bold] . [bold-italic])
      ([italic] . [bold-italic])
      ([bold-italic] . t))))
 
-(defun make-face-unbold (face &optional locale)
+(defun make-face-unbold (face &optional locale tags)
   "Make FACE non-bold in LOCALE, if possible.
 This will attempt to make the font non-bold for X locales and will
 unset the highlight flag for TTY locales.
   "Make FACE non-bold in LOCALE, if possible.
 This will attempt to make the font non-bold for X locales and will
 unset the highlight flag for TTY locales.
@@ -1041,24 +1049,24 @@ See `make-face-bold' for the semantics of the LOCALE argument and
 for more specifics on exactly how this function works."
   (interactive (list (read-face-name "Make which face non-bold: ")))
   (frob-face-font-2
 for more specifics on exactly how this function works."
   (interactive (list (read-face-name "Make which face non-bold: ")))
   (frob-face-font-2
-   face locale 'bold 'default
+   face locale tags 'bold 'default
    (lambda ()
      ;; handle TTY specific entries
      (when (featurep 'tty)
    (lambda ()
      ;; handle TTY specific entries
      (when (featurep 'tty)
-       (set-face-highlight-p face nil locale 'tty)))
+       (set-face-highlight-p face nil locale (cons 'tty tags))))
    (lambda ()
      ;; handle X specific entries
      (when (featurep 'x)
    (lambda ()
      ;; handle X specific entries
      (when (featurep 'x)
-       (frob-face-property face 'font 'x-make-font-unbold locale))
+       (frob-face-property face 'font 'x-make-font-unbold locale tags))
      (when (featurep 'mswindows)
      (when (featurep 'mswindows)
-       (frob-face-property face 'font 'mswindows-make-font-unbold locale))
+       (frob-face-property face 'font 'mswindows-make-font-unbold locale tags))
      )
    '(([default] . t)
      ([bold] . [default])
      ([italic] . t)
      ([bold-italic] . [italic]))))
 
      )
    '(([default] . t)
      ([bold] . [default])
      ([italic] . t)
      ([bold-italic] . [italic]))))
 
-(defun make-face-unitalic (face &optional locale)
+(defun make-face-unitalic (face &optional locale tags)
   "Make FACE non-italic in LOCALE, if possible.
 This will attempt to make the font non-italic for X locales and will
 unset the underline flag for TTY locales.
   "Make FACE non-italic in LOCALE, if possible.
 This will attempt to make the font non-italic for X locales and will
 unset the underline flag for TTY locales.
@@ -1066,17 +1074,17 @@ See `make-face-bold' for the semantics of the LOCALE argument and
 for more specifics on exactly how this function works."
   (interactive (list (read-face-name "Make which face non-italic: ")))
   (frob-face-font-2
 for more specifics on exactly how this function works."
   (interactive (list (read-face-name "Make which face non-italic: ")))
   (frob-face-font-2
-   face locale 'italic 'default
+   face locale tags 'italic 'default
    (lambda ()
      ;; handle TTY specific entries
      (when (featurep 'tty)
    (lambda ()
      ;; handle TTY specific entries
      (when (featurep 'tty)
-       (set-face-underline-p face nil locale 'tty)))
+       (set-face-underline-p face nil locale (cons 'tty tags))))
    (lambda ()
      ;; handle X specific entries
      (when (featurep 'x)
    (lambda ()
      ;; handle X specific entries
      (when (featurep 'x)
-       (frob-face-property face 'font 'x-make-font-unitalic locale))
+       (frob-face-property face 'font 'x-make-font-unitalic locale tags))
      (when (featurep 'mswindows)
      (when (featurep 'mswindows)
-       (frob-face-property face 'font 'mswindows-make-font-unitalic locale))
+       (frob-face-property face 'font 'mswindows-make-font-unitalic locale tags))
      )
    '(([default] . t)
      ([bold] . t)
      )
    '(([default] . t)
      ([bold] . t)
@@ -1197,27 +1205,32 @@ examine the brightness for you."
 ;; Old name, used by custom.  Also, FSFmacs name.
 (defvaralias 'initialize-face-resources 'init-face-from-resources)
 
 ;; Old name, used by custom.  Also, FSFmacs name.
 (defvaralias 'initialize-face-resources 'init-face-from-resources)
 
-(defun face-spec-set (face spec &optional frame)
+;; Make sure all custom setting are added with this tag so we can
+;; identify-them
+(define-specifier-tag 'custom)
+
+(defun face-spec-set (face spec &optional frame tags)
   "Set FACE's face attributes according to the first matching entry in SPEC.
 If optional FRAME is non-nil, set it for that frame only.
 If it is nil, then apply SPEC to each frame individually.
 See `defface' for information about SPEC."
   (if frame
       (progn
   "Set FACE's face attributes according to the first matching entry in SPEC.
 If optional FRAME is non-nil, set it for that frame only.
 If it is nil, then apply SPEC to each frame individually.
 See `defface' for information about SPEC."
   (if frame
       (progn
-       (reset-face face frame)
-       (face-display-set face spec frame)
+       (reset-face face frame tags)
+       (face-display-set face spec frame tags)
        (init-face-from-resources face frame))
     (let ((frames (relevant-custom-frames)))
        (init-face-from-resources face frame))
     (let ((frames (relevant-custom-frames)))
-      (reset-face face)
-      (if (and (eq 'default face) (featurep 'x))
-         (x-init-global-faces))
-      (face-display-set face spec)
+      (reset-face face nil tags)
+      ;; This should not be needed. We only remove our own specifiers
+      ;; (if (and (eq 'default face) (featurep 'x))
+      ;;         (x-init-global-faces))
+      (face-display-set face spec nil tags)
       (while frames
       (while frames
-       (face-display-set face spec (car frames))
+       (face-display-set face spec (car frames) tags)
        (pop frames))
       (init-face-from-resources face))))
 
        (pop frames))
       (init-face-from-resources face))))
 
-(defun face-display-set (face spec &optional frame)
+(defun face-display-set (face spec &optional frame tags)
   "Set FACE to the attributes to the first matching entry in SPEC.
 Iff optional FRAME is non-nil, set it for that frame only.
 See `defface' for information about SPEC."
   "Set FACE to the attributes to the first matching entry in SPEC.
 Iff optional FRAME is non-nil, set it for that frame only.
 See `defface' for information about SPEC."
@@ -1228,7 +1241,7 @@ See `defface' for information about SPEC."
       (when (face-spec-set-match-display display frame)
        ;; Avoid creating frame local duplicates of the global face.
        (unless (and frame (eq display (get face 'custom-face-display)))
       (when (face-spec-set-match-display display frame)
        ;; Avoid creating frame local duplicates of the global face.
        (unless (and frame (eq display (get face 'custom-face-display)))
-         (apply 'face-custom-attributes-set face frame atts))
+         (apply 'face-custom-attributes-set face frame tags atts))
        (unless frame
          (put face 'custom-face-display display))
        (setq spec nil)))))
        (unless frame
          (put face 'custom-face-display display))
        (setq spec nil)))))
index c406ddc..0103764 100644 (file)
@@ -395,14 +395,15 @@ or if you change your font path, you can call this to re-initialize the menus."
        (set-face-font 'default new-default-face-font
                       (and font-menu-this-frame-only-p (selected-frame)))
       ;; OK Let Customize do it.
        (set-face-font 'default new-default-face-font
                       (and font-menu-this-frame-only-p (selected-frame)))
       ;; OK Let Customize do it.
-      (when (and family (not (equal family from-family)))
-       (setq new-props (append (list :family family) new-props)))
-      (when (and size (not (equal size from-size)))
-       (setq new-props (append
-          (list :size (concat (int-to-string (/ size (specifier-instance
-                                                      font-menu-size-scaling
-                                                      (selected-device)))) "pt")) new-props)))
-      (custom-set-face-update-spec 'default '((type x)) new-props)
+      (custom-set-face-update-spec 'default
+               (list (list 'type (device-type)))
+               (list :family family
+                     :size (concat
+                            (int-to-string
+                             (/ size
+                                (specifier-instance font-menu-size-scaling
+                                     (selected-device))))
+                             "pt")))            
       (message "Font %s" (face-font-name 'default)))))
 
 
       (message "Font %s" (face-font-name 'default)))))
 
 
index bb31a83..4006514 100644 (file)
@@ -5,7 +5,7 @@
 ;; Author: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
 ;; Maintainer: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
 ;; Created: Jan 1998
 ;; Author: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
 ;; Maintainer: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
 ;; Created: Jan 1998
-;; Version: $Revision: 1.7.2.5 $
+;; Version: $Revision: 1.7.2.3 $
 ;; Keywords: help comm
 
 ;; This file is part of XEmacs
 ;; Keywords: help comm
 
 ;; This file is part of XEmacs
index 3713295..7ae20c3 100644 (file)
@@ -38,7 +38,7 @@
 ;; Last Modified By: Heiko M|nkel <muenkel@tnt.uni-hannover.de>
 ;; Additional XEmacs integration By: Chuck Thompson <cthomp@cs.uiuc.edu>
 ;; Last Modified On: Thu Jul 1 14:23:00 1994
 ;; Last Modified By: Heiko M|nkel <muenkel@tnt.uni-hannover.de>
 ;; Additional XEmacs integration By: Chuck Thompson <cthomp@cs.uiuc.edu>
 ;; Last Modified On: Thu Jul 1 14:23:00 1994
-;; RCS Info        : $Revision: 1.3.2.2 $ $Locker:  $
+;; RCS Info        : $Revision: 1.3.2.1 $ $Locker:  $
 ;; ========================================================================
 ;; NOTE: XEmacs must be redumped if this file is changed.
 ;;
 ;; ========================================================================
 ;; NOTE: XEmacs must be redumped if this file is changed.
 ;;
index c42c8aa..54dafc7 100644 (file)
@@ -114,11 +114,14 @@ A mark is pushed, so that the inserted text lies between point and mark."
 (defun insert-selection (&optional check-cutbuffer-p move-point-event)
   "Insert the current selection into buffer at point."
   (interactive "P")
 (defun insert-selection (&optional check-cutbuffer-p move-point-event)
   "Insert the current selection into buffer at point."
   (interactive "P")
+  ;; we fallback to the clipboard if the current selection is not existent
   (let ((text (if check-cutbuffer-p
   (let ((text (if check-cutbuffer-p
-                 (or (condition-case () (get-selection) (error ()))
+                 (or (get-selection-no-error) 
                      (get-cutbuffer)
                      (get-cutbuffer)
-                     (error "No selection or cut buffer available"))
-               (get-selection))))
+                     (get-selection-no-error 'CLIPBOARD)
+                     (error "No selection, clipboard or cut buffer available"))
+               (or (get-selection-no-error)
+                   (get-selection 'CLIPBOARD)))))
     (cond (move-point-event
           (mouse-set-point move-point-event)
           (push-mark (point)))
     (cond (move-point-event
           (mouse-set-point move-point-event)
           (push-mark (point)))
index 01eedc5..1c06e6c 100644 (file)
@@ -96,7 +96,7 @@
    96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
    112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
    ?\e$B(!\e(B ?\e$B("\e(B ?\e$B(#\e(B ?\e$B($\e(B ?\e$B(&\e(B ?\e$B(%\e(B ?\e$B('\e(B ?\e$B()\e(B ?\e$B((\e(B ?\e$B(*\e(B ?\e$B(+\e(B 32  ?\e$(G#'\e(B ?\e$(G#+\e(B ?\e$(G#/\e(B 32
    96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
    112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
    ?\e$B(!\e(B ?\e$B("\e(B ?\e$B(#\e(B ?\e$B($\e(B ?\e$B(&\e(B ?\e$B(%\e(B ?\e$B('\e(B ?\e$B()\e(B ?\e$B((\e(B ?\e$B(*\e(B ?\e$B(+\e(B 32  ?\e$(G#'\e(B ?\e$(G#+\e(B ?\e$(G#/\e(B 32
-   144 ?\e$(C"F\e(B 146 147 ?\e$B"#\e(B 149 ?\e$B"e\e(B ?\e$A!V\e(B ?\e$A!\\e(B ?\e$A!]\e(B ?\e.A\eN   32  ?\eN0  ?\eN2  ?\eN7  ?\eNw
+   32  ?\e$(C"F\e(B 32  32  ?\e$B"#\e(B 32  ?\e$B"e\e(B ?\e$A!V\e(B ?\e$A!\\e(B ?\e$A!]\e(B ?\e.A\eN   32  ?\eN0  ?\eN2  ?\eN7  ?\eNw
    ?\e$(G#D\e(B 32  32  ?\e.L\eNq  32  32  32  32  32  32  32  32  32  32  32  ?\e$(G#E\e(B
    32  32  ?\e$(G#G\e(B ?\e.L\eN!  32  32  32  32  32  32  32  32  ?\e$(G#F\e(B 32  32  ?\e.A\eN)
    ?\e.L\eNn  ?\eNP  ?\eNQ  ?\eNf  ?\eNT  ?\eNU  ?\eNd  ?\eNS  ?\eNe  ?\eNX  ?\eNY  ?\eNZ  ?\eN[  ?\eN\  ?\eN]  ?\eN^ 
    ?\e$(G#D\e(B 32  32  ?\e.L\eNq  32  32  32  32  32  32  32  32  32  32  32  ?\e$(G#E\e(B
    32  32  ?\e$(G#G\e(B ?\e.L\eN!  32  32  32  32  32  32  32  32  ?\e$(G#F\e(B 32  32  ?\e.A\eN)
    ?\e.L\eNn  ?\eNP  ?\eNQ  ?\eNf  ?\eNT  ?\eNU  ?\eNd  ?\eNS  ?\eNe  ?\eNX  ?\eNY  ?\eNZ  ?\eN[  ?\eN\  ?\eN]  ?\eN^ 
index db01d6a..338ea0c 100644 (file)
@@ -40,6 +40,11 @@ COMPOUND_TEXT and STRING are the most commonly used data types.
 If a list is provided, the types are tried in sequence until
 there is a successful conversion.")
 
 If a list is provided, the types are tried in sequence until
 there is a successful conversion.")
 
+(defvar selection-is-clipboard-p nil 
+  "Controls the selection's relationship to the clipboard.
+When non-nil, any operation that sets the primary selection will also
+set the clipboard.")
+
 (defun copy-primary-selection ()
   "Copy the selection to the Clipboard and the kill ring."
   (interactive)
 (defun copy-primary-selection ()
   "Copy the selection to the Clipboard and the kill ring."
   (interactive)
@@ -74,7 +79,17 @@ This will do nothing under anything other than X.")
   "Return the value of a Windows selection.
 The argument TYPE (default `PRIMARY') says which selection,
 and the argument DATA-TYPE (default `STRING', or `COMPOUND_TEXT' under Mule)
   "Return the value of a Windows selection.
 The argument TYPE (default `PRIMARY') says which selection,
 and the argument DATA-TYPE (default `STRING', or `COMPOUND_TEXT' under Mule)
-says how to convert the data."
+says how to convert the data. If there is no selection an error is signalled."
+  (let ((text (get-selection-no-error type data-type)))
+    (when (not (stringp text))
+      (error "Selection is not a string: %S" text))
+    text))
+
+(defun get-selection-no-error (&optional type data-type)
+  "Return the value of a Windows selection.
+The argument TYPE (default `PRIMARY') says which selection,
+and the argument DATA-TYPE (default `STRING', or `COMPOUND_TEXT' under Mule)
+says how to convert the data. Returns NIL if there is no selection"
   (or type (setq type 'PRIMARY))
   (or data-type (setq data-type selected-text-type))
   (let ((text
   (or type (setq type 'PRIMARY))
   (or data-type (setq data-type selected-text-type))
   (let ((text
@@ -88,8 +103,6 @@ says how to convert the data."
           (get-selection-internal type data-type))))
     (when (and (consp text) (symbolp (car text)))
       (setq text (cdr text)))
           (get-selection-internal type data-type))))
     (when (and (consp text) (symbolp (car text)))
       (setq text (cdr text)))
-    (when (not (stringp text))
-      (error "Selection is not a string: %S" text))
     text))
 
 ;; FSFmacs calls this `x-set-selection', and reverses the
     text))
 
 ;; FSFmacs calls this `x-set-selection', and reverses the
@@ -127,9 +140,12 @@ Interactively, the text of the region is used as the selection value."
             valid))
       (signal 'error (list "invalid selection" data)))
   (or type (setq type 'PRIMARY))
             valid))
       (signal 'error (list "invalid selection" data)))
   (or type (setq type 'PRIMARY))
-  (if data
-      (own-selection-internal type data)
-    (disown-selection-internal type))
+  (if (null data)
+      (disown-selection-internal type)
+    (own-selection-internal type data)
+    (when (and (eq type 'PRIMARY)
+              selection-is-clipboard-p)
+      (own-selection-internal 'CLIPBOARD data)))
   (cond ((eq type 'PRIMARY)
         (setq primary-selection-extent
               (select-make-extent-for-selection
   (cond ((eq type 'PRIMARY)
         (setq primary-selection-extent
               (select-make-extent-for-selection
index b3ee61c..adfec7f 100644 (file)
@@ -70,7 +70,7 @@ be the text between those markers)."
                 (list (cons ;; these need not be ordered.
                        (copy-marker (point-marker))
                        (copy-marker (mark-marker))))))
                 (list (cons ;; these need not be ordered.
                        (copy-marker (point-marker))
                        (copy-marker (mark-marker))))))
-  (x-own-selection selection 'SECONDARY))
+  (own-selection selection 'SECONDARY))
 
 (defun x-notice-selection-requests (selection type successful)
   "for possible use as the value of x-sent-selection-hooks."
 
 (defun x-notice-selection-requests (selection type successful)
   "for possible use as the value of x-sent-selection-hooks."
@@ -103,7 +103,7 @@ be the text between those markers)."
 
 (defun xselect-kill-buffer-hook-1 (selection)
   (let (value)
 
 (defun xselect-kill-buffer-hook-1 (selection)
   (let (value)
-    (if (and (x-selection-owner-p selection)
+    (if (and (selection-owner-p selection)
             (setq value (get-selection-internal selection '_EMACS_INTERNAL))
             ;; The _EMACS_INTERNAL selection type has a converter registered
             ;; for it that does no translation.  This only works if emacs is
             (setq value (get-selection-internal selection '_EMACS_INTERNAL))
             ;; The _EMACS_INTERNAL selection type has a converter registered
             ;; for it that does no translation.  This only works if emacs is
index c1d5322..9542e54 100644 (file)
@@ -1,3 +1,7 @@
+1999-06-11  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.16 is released
+
 1999-06-04  XEmacs Build Bot <builds@cvs.xemacs.org>
 
        * XEmacs 21.2.15 is released
 1999-06-04  XEmacs Build Bot <builds@cvs.xemacs.org>
 
        * XEmacs 21.2.15 is released
index 59df456..b1e0f36 100644 (file)
@@ -1,3 +1,7 @@
+1999-06-11  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.16 is released
+
 1999-06-04  XEmacs Build Bot <builds@cvs.xemacs.org>
 
        * XEmacs 21.2.15 is released
 1999-06-04  XEmacs Build Bot <builds@cvs.xemacs.org>
 
        * XEmacs 21.2.15 is released
index 1b6c0da..d2fda6f 100644 (file)
@@ -3,7 +3,7 @@
 @setfilename ../info/info.info
 @settitle Info 1.0
 @comment %**end of header 
 @setfilename ../info/info.info
 @settitle Info 1.0
 @comment %**end of header 
-@comment $Id: info.texi,v 1.4 1998/06/30 06:35:28 steve Exp $
+@comment $Id: info.texi,v 1.4 1997/07/10 21:58:11 karl Exp $
 
 @dircategory Texinfo documentation system
 @direntry
 
 @dircategory Texinfo documentation system
 @direntry
index 6057ffa..3ce4715 100644 (file)
@@ -1,5 +1,5 @@
 % texinfo.tex -- TeX macros to handle Texinfo files.
 % texinfo.tex -- TeX macros to handle Texinfo files.
-% $Id: texinfo.tex,v 1.5 1998/06/13 04:28:12 steve Exp $
+% $Id: texinfo.tex,v 2.227 1998/02/25 22:54:34 karl Exp $
 %
 % Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98
 % Free Software Foundation, Inc.
 %
 % Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98
 % Free Software Foundation, Inc.
@@ -44,7 +44,7 @@
 
 % This automatically updates the version number based on RCS.
 \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}}
 
 % This automatically updates the version number based on RCS.
 \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}}
-\deftexinfoversion$Revision: 1.5 $
+\deftexinfoversion$Revision: 2.227 $
 \message{Loading texinfo package [Version \texinfoversion]:}
 
 % If in a .fmt file, print the version number
 \message{Loading texinfo package [Version \texinfoversion]:}
 
 % If in a .fmt file, print the version number
index e5cd94d..0bc09a7 100644 (file)
@@ -1,5 +1,5 @@
 \input texinfo.tex    @c -*-texinfo-*-
 \input texinfo.tex    @c -*-texinfo-*-
-@c $Id: texinfo.texi,v 1.8.2.1 1999/03/04 15:48:24 steveb Exp $
+@c $Id: texinfo.txi,v 1.50 1998/02/27 21:21:34 karl Exp $
 @c %**start of header
 
 @c All text is ignored before the setfilename.
 @c %**start of header
 
 @c All text is ignored before the setfilename.
index 666e99b..76641d8 100644 (file)
@@ -7,7 +7,7 @@
 @finalout
 @titlepage
 @title XEmacs FAQ
 @finalout
 @titlepage
 @title XEmacs FAQ
-@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 1999/05/13 12:26:40 $
+@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 1999/03/04 15:48:25 $
 @sp 1
 @author Tony Rossini <arossini@@stat.sc.edu>
 @author Ben Wing <wing@@666.com>
 @sp 1
 @author Tony Rossini <arossini@@stat.sc.edu>
 @author Ben Wing <wing@@666.com>
index c5213bf..44c5788 100644 (file)
@@ -1,3 +1,7 @@
+1999-06-11  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.16 is released
+
 1999-05-14  Adrian Aichner  &lt;aichner@ecf.teradyne.com&gt;
 
        * xemacs.mak (GUNG_HO): Explicitly default to 0.
 1999-05-14  Adrian Aichner  &lt;aichner@ecf.teradyne.com&gt;
 
        * xemacs.mak (GUNG_HO): Explicitly default to 0.
index 302d479..1f925fa 100644 (file)
@@ -1,3 +1,15 @@
+1999-06-11  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.16 is released
+
+1999-06-10  Andy Piper  <andy@xemacs.org>
+
+       * select-msw.c (mswindows_own_selection): only set the clipboard
+       if asked.
+       (mswindows_get_foreign_selection): only get the clipboard if
+       asked.
+       (mswindows_disown_selection): only disown the clipboard if asked.
+
 1999-06-03  MORIOKA Tomohiko  <tomo@etl.go.jp>
 
        * file-coding.c (coding_system_from_mask): Use `raw-text' instead
 1999-06-03  MORIOKA Tomohiko  <tomo@etl.go.jp>
 
        * file-coding.c (coding_system_from_mask): Use `raw-text' instead
index 2e4a127..616f0d6 100644 (file)
@@ -101,7 +101,10 @@ mswindows_own_selection (Lisp_Object selection_name, Lisp_Object selection_value
   Lisp_Object converted_value = get_local_selection (selection_name, QSTRING);
   if (!NILP (converted_value) &&
       CONSP (converted_value) &&
   Lisp_Object converted_value = get_local_selection (selection_name, QSTRING);
   if (!NILP (converted_value) &&
       CONSP (converted_value) &&
-      EQ (XCAR (converted_value), QSTRING))
+      EQ (XCAR (converted_value), QSTRING) &&
+      /* pure mswindows behaviour only says we can own the selection 
+        if it is the clipboard */
+      EQ (selection_name, QCLIPBOARD))
     Fmswindows_set_clipboard (XCDR (converted_value));
 
   return Qnil;
     Fmswindows_set_clipboard (XCDR (converted_value));
 
   return Qnil;
@@ -162,7 +165,10 @@ Return the contents of the mswindows clipboard.
 static Lisp_Object
 mswindows_get_foreign_selection (Lisp_Object selection_symbol, Lisp_Object target_type)
 {
 static Lisp_Object
 mswindows_get_foreign_selection (Lisp_Object selection_symbol, Lisp_Object target_type)
 {
-  return Fmswindows_get_clipboard ();
+  if (EQ (selection_symbol, QCLIPBOARD))
+    return Fmswindows_get_clipboard ();
+  else
+    return Qnil;
 }
 
 DEFUN ("mswindows-selection-exists-p", Fmswindows_selection_exists_p, 0, 0, 0, /*
 }
 
 DEFUN ("mswindows-selection-exists-p", Fmswindows_selection_exists_p, 0, 0, 0, /*
@@ -184,7 +190,8 @@ Remove the current MS-Windows selection from the clipboard.
 static void
 mswindows_disown_selection (Lisp_Object selection, Lisp_Object timeval)
 {
 static void
 mswindows_disown_selection (Lisp_Object selection, Lisp_Object timeval)
 {
-  Fmswindows_delete_selection ();
+  if (EQ (selection, QCLIPBOARD))
+    Fmswindows_delete_selection ();
 }
 
 \f
 }
 
 \f
index 06e71e7..d9de182 100644 (file)
@@ -20,7 +20,7 @@ Boston, MA 02111-1307, USA.  */
 
 /* Synched up with: Not in FSF. */
 
 
 /* Synched up with: Not in FSF. */
 
-/* #pragma ident "@(#) $Id: unexsol2.c,v 1.3 1997/10/13 03:35:33 steve Exp $" */
+/* #pragma ident "@(#) $Id: unexsol2.c,v 1.2 1995/01/25 20:39:16 georgn Exp $" */
 
 #include <stdlib.h>
 #include <stdio.h>
 
 #include <stdlib.h>
 #include <stdio.h>
index cd75893..080e89a 100644 (file)
@@ -1,3 +1,7 @@
+1999-06-11  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.16 is released
+
 1999-06-07  Hrvoje Niksic  <hniksic@srce.hr>
 
        * automated/base64-tests.el: Check for error instead for nil where 
 1999-06-07  Hrvoje Niksic  <hniksic@srce.hr>
 
        * automated/base64-tests.el: Check for error instead for nil where 
index bd96260..6c03494 100644 (file)
@@ -2,8 +2,8 @@
 emacs_is_beta=t
 emacs_major_version=21
 emacs_minor_version=2
 emacs_is_beta=t
 emacs_major_version=21
 emacs_minor_version=2
-emacs_beta_version=15
-xemacs_codename="Sakuragawa"
+emacs_beta_version=16
+xemacs_codename="Sumida"
 infodock_major_version=4
 infodock_minor_version=0
 infodock_build_version=7
 infodock_major_version=4
 infodock_minor_version=0
 infodock_build_version=7