(if (not (eq window-system 'x))
(error "%s: Loading x-win.el but not compiled for X" (invocation-name)))
(require 'frame)
(require 'mouse)
(require 'scroll-bar)
(require 'faces)
(require 'select)
(require 'menu-bar)
(if (fboundp 'new-fontset)
(require 'fontset))
(defvar x-invocation-args)
(defvar x-command-line-resources nil)
(defun x-handle-switch (switch)
(let ((aelt (assoc switch command-line-x-option-alist)))
(if aelt
(let ((param (nth 3 aelt))
(value (nth 4 aelt)))
(if value
(setq default-frame-alist
(cons (cons param value)
default-frame-alist))
(setq default-frame-alist
(cons (cons param
(car x-invocation-args))
default-frame-alist)
x-invocation-args (cdr x-invocation-args)))))))
(defun x-handle-numeric-switch (switch)
(let ((aelt (assoc switch command-line-x-option-alist)))
(if aelt
(let ((param (nth 3 aelt)))
(setq default-frame-alist
(cons (cons param
(string-to-int (car x-invocation-args)))
default-frame-alist)
x-invocation-args
(cdr x-invocation-args))))))
(defun x-handle-iconic (switch)
(setq initial-frame-alist
(cons '(visibility . icon) initial-frame-alist)))
(defun x-handle-xrm-switch (switch)
(unless (consp x-invocation-args)
(error "%s: missing argument to `%s' option" (invocation-name) switch))
(setq x-command-line-resources
(if (null x-command-line-resources)
(car x-invocation-args)
(concat x-command-line-resources "\n" (car x-invocation-args))))
(setq x-invocation-args (cdr x-invocation-args)))
(defun x-handle-geometry (switch)
(let ((geo (x-parse-geometry (car x-invocation-args))))
(setq initial-frame-alist
(append initial-frame-alist
(if (or (assq 'left geo) (assq 'top geo))
'((user-position . t)))
(if (or (assq 'height geo) (assq 'width geo))
'((user-size . t)))
geo)
x-invocation-args (cdr x-invocation-args))))
(defun x-handle-name-switch (switch)
(or (consp x-invocation-args)
(error "%s: missing argument to `%s' option" (invocation-name) switch))
(setq x-resource-name (car x-invocation-args)
x-invocation-args (cdr x-invocation-args))
(setq initial-frame-alist (cons (cons 'name x-resource-name)
initial-frame-alist)))
(defvar x-display-name nil
"The X display name specifying server and X frame.")
(defun x-handle-display (switch)
(setq x-display-name (car x-invocation-args)
x-invocation-args (cdr x-invocation-args))
(setenv "DISPLAY" x-display-name))
(defun x-handle-args (args)
"Process the X-related command line options in ARGS.
This is done before the user's startup file is loaded. They are copied to
`x-invocation-args', from which the X-related things are extracted, first
the switch (e.g., \"-fg\") in the following code, and possible values
\(e.g., \"black\") in the option handler code (e.g., x-handle-switch).
This function returns ARGS minus the arguments that have been processed."
(setq x-invocation-args args
args nil)
(while (and x-invocation-args
(not (equal (car x-invocation-args) "--")))
(let* ((this-switch (car x-invocation-args))
(orig-this-switch this-switch)
completion argval aelt handler)
(setq x-invocation-args (cdr x-invocation-args))
(if (string-match "^--[^=]*=" this-switch)
(setq argval (substring this-switch (match-end 0))
this-switch (substring this-switch 0 (1- (match-end 0)))))
(if (string-match "^--" this-switch)
(progn
(setq completion (try-completion this-switch command-line-x-option-alist))
(if (eq completion t)
nil
(if (stringp completion)
(let ((elt (assoc completion command-line-x-option-alist)))
(or elt
(error "Option `%s' is ambiguous" this-switch))
(setq this-switch completion))))))
(setq aelt (assoc this-switch command-line-x-option-alist))
(if aelt (setq handler (nth 2 aelt)))
(if handler
(if argval
(let ((x-invocation-args
(cons argval x-invocation-args)))
(funcall handler this-switch))
(funcall handler this-switch))
(setq args (cons orig-this-switch args)))))
(nconc (nreverse args) x-invocation-args))
(defconst x-pointer-X-cursor 0)
(defconst x-pointer-arrow 2)
(defconst x-pointer-based-arrow-down 4)
(defconst x-pointer-based-arrow-up 6)
(defconst x-pointer-boat 8)
(defconst x-pointer-bogosity 10)
(defconst x-pointer-bottom-left-corner 12)
(defconst x-pointer-bottom-right-corner 14)
(defconst x-pointer-bottom-side 16)
(defconst x-pointer-bottom-tee 18)
(defconst x-pointer-box-spiral 20)
(defconst x-pointer-center-ptr 22)
(defconst x-pointer-circle 24)
(defconst x-pointer-clock 26)
(defconst x-pointer-coffee-mug 28)
(defconst x-pointer-cross 30)
(defconst x-pointer-cross-reverse 32)
(defconst x-pointer-crosshair 34)
(defconst x-pointer-diamond-cross 36)
(defconst x-pointer-dot 38)
(defconst x-pointer-dotbox 40)
(defconst x-pointer-double-arrow 42)
(defconst x-pointer-draft-large 44)
(defconst x-pointer-draft-small 46)
(defconst x-pointer-draped-box 48)
(defconst x-pointer-exchange 50)
(defconst x-pointer-fleur 52)
(defconst x-pointer-gobbler 54)
(defconst x-pointer-gumby 56)
(defconst x-pointer-hand1 58)
(defconst x-pointer-hand2 60)
(defconst x-pointer-heart 62)
(defconst x-pointer-icon 64)
(defconst x-pointer-iron-cross 66)
(defconst x-pointer-left-ptr 68)
(defconst x-pointer-left-side 70)
(defconst x-pointer-left-tee 72)
(defconst x-pointer-leftbutton 74)
(defconst x-pointer-ll-angle 76)
(defconst x-pointer-lr-angle 78)
(defconst x-pointer-man 80)
(defconst x-pointer-middlebutton 82)
(defconst x-pointer-mouse 84)
(defconst x-pointer-pencil 86)
(defconst x-pointer-pirate 88)
(defconst x-pointer-plus 90)
(defconst x-pointer-question-arrow 92)
(defconst x-pointer-right-ptr 94)
(defconst x-pointer-right-side 96)
(defconst x-pointer-right-tee 98)
(defconst x-pointer-rightbutton 100)
(defconst x-pointer-rtl-logo 102)
(defconst x-pointer-sailboat 104)
(defconst x-pointer-sb-down-arrow 106)
(defconst x-pointer-sb-h-double-arrow 108)
(defconst x-pointer-sb-left-arrow 110)
(defconst x-pointer-sb-right-arrow 112)
(defconst x-pointer-sb-up-arrow 114)
(defconst x-pointer-sb-v-double-arrow 116)
(defconst x-pointer-shuttle 118)
(defconst x-pointer-sizing 120)
(defconst x-pointer-spider 122)
(defconst x-pointer-spraycan 124)
(defconst x-pointer-star 126)
(defconst x-pointer-target 128)
(defconst x-pointer-tcross 130)
(defconst x-pointer-top-left-arrow 132)
(defconst x-pointer-top-left-corner 134)
(defconst x-pointer-top-right-corner 136)
(defconst x-pointer-top-side 138)
(defconst x-pointer-top-tee 140)
(defconst x-pointer-trek 142)
(defconst x-pointer-ul-angle 144)
(defconst x-pointer-umbrella 146)
(defconst x-pointer-ur-angle 148)
(defconst x-pointer-watch 150)
(defconst x-pointer-xterm 152)
(defvar x-colors '("LightGreen"
"light green"
"DarkRed"
"dark red"
"DarkMagenta"
"dark magenta"
"DarkCyan"
"dark cyan"
"DarkBlue"
"dark blue"
"DarkGray"
"dark gray"
"DarkGrey"
"dark grey"
"grey100"
"gray100"
"grey99"
"gray99"
"grey98"
"gray98"
"grey97"
"gray97"
"grey96"
"gray96"
"grey95"
"gray95"
"grey94"
"gray94"
"grey93"
"gray93"
"grey92"
"gray92"
"grey91"
"gray91"
"grey90"
"gray90"
"grey89"
"gray89"
"grey88"
"gray88"
"grey87"
"gray87"
"grey86"
"gray86"
"grey85"
"gray85"
"grey84"
"gray84"
"grey83"
"gray83"
"grey82"
"gray82"
"grey81"
"gray81"
"grey80"
"gray80"
"grey79"
"gray79"
"grey78"
"gray78"
"grey77"
"gray77"
"grey76"
"gray76"
"grey75"
"gray75"
"grey74"
"gray74"
"grey73"
"gray73"
"grey72"
"gray72"
"grey71"
"gray71"
"grey70"
"gray70"
"grey69"
"gray69"
"grey68"
"gray68"
"grey67"
"gray67"
"grey66"
"gray66"
"grey65"
"gray65"
"grey64"
"gray64"
"grey63"
"gray63"
"grey62"
"gray62"
"grey61"
"gray61"
"grey60"
"gray60"
"grey59"
"gray59"
"grey58"
"gray58"
"grey57"
"gray57"
"grey56"
"gray56"
"grey55"
"gray55"
"grey54"
"gray54"
"grey53"
"gray53"
"grey52"
"gray52"
"grey51"
"gray51"
"grey50"
"gray50"
"grey49"
"gray49"
"grey48"
"gray48"
"grey47"
"gray47"
"grey46"
"gray46"
"grey45"
"gray45"
"grey44"
"gray44"
"grey43"
"gray43"
"grey42"
"gray42"
"grey41"
"gray41"
"grey40"
"gray40"
"grey39"
"gray39"
"grey38"
"gray38"
"grey37"
"gray37"
"grey36"
"gray36"
"grey35"
"gray35"
"grey34"
"gray34"
"grey33"
"gray33"
"grey32"
"gray32"
"grey31"
"gray31"
"grey30"
"gray30"
"grey29"
"gray29"
"grey28"
"gray28"
"grey27"
"gray27"
"grey26"
"gray26"
"grey25"
"gray25"
"grey24"
"gray24"
"grey23"
"gray23"
"grey22"
"gray22"
"grey21"
"gray21"
"grey20"
"gray20"
"grey19"
"gray19"
"grey18"
"gray18"
"grey17"
"gray17"
"grey16"
"gray16"
"grey15"
"gray15"
"grey14"
"gray14"
"grey13"
"gray13"
"grey12"
"gray12"
"grey11"
"gray11"
"grey10"
"gray10"
"grey9"
"gray9"
"grey8"
"gray8"
"grey7"
"gray7"
"grey6"
"gray6"
"grey5"
"gray5"
"grey4"
"gray4"
"grey3"
"gray3"
"grey2"
"gray2"
"grey1"
"gray1"
"grey0"
"gray0"
"thistle4"
"thistle3"
"thistle2"
"thistle1"
"MediumPurple4"
"MediumPurple3"
"MediumPurple2"
"MediumPurple1"
"purple4"
"purple3"
"purple2"
"purple1"
"DarkOrchid4"
"DarkOrchid3"
"DarkOrchid2"
"DarkOrchid1"
"MediumOrchid4"
"MediumOrchid3"
"MediumOrchid2"
"MediumOrchid1"
"plum4"
"plum3"
"plum2"
"plum1"
"orchid4"
"orchid3"
"orchid2"
"orchid1"
"magenta4"
"magenta3"
"magenta2"
"magenta1"
"VioletRed4"
"VioletRed3"
"VioletRed2"
"VioletRed1"
"maroon4"
"maroon3"
"maroon2"
"maroon1"
"PaleVioletRed4"
"PaleVioletRed3"
"PaleVioletRed2"
"PaleVioletRed1"
"LightPink4"
"LightPink3"
"LightPink2"
"LightPink1"
"pink4"
"pink3"
"pink2"
"pink1"
"HotPink4"
"HotPink3"
"HotPink2"
"HotPink1"
"DeepPink4"
"DeepPink3"
"DeepPink2"
"DeepPink1"
"red4"
"red3"
"red2"
"red1"
"OrangeRed4"
"OrangeRed3"
"OrangeRed2"
"OrangeRed1"
"tomato4"
"tomato3"
"tomato2"
"tomato1"
"coral4"
"coral3"
"coral2"
"coral1"
"DarkOrange4"
"DarkOrange3"
"DarkOrange2"
"DarkOrange1"
"orange4"
"orange3"
"orange2"
"orange1"
"LightSalmon4"
"LightSalmon3"
"LightSalmon2"
"LightSalmon1"
"salmon4"
"salmon3"
"salmon2"
"salmon1"
"brown4"
"brown3"
"brown2"
"brown1"
"firebrick4"
"firebrick3"
"firebrick2"
"firebrick1"
"chocolate4"
"chocolate3"
"chocolate2"
"chocolate1"
"tan4"
"tan3"
"tan2"
"tan1"
"wheat4"
"wheat3"
"wheat2"
"wheat1"
"burlywood4"
"burlywood3"
"burlywood2"
"burlywood1"
"sienna4"
"sienna3"
"sienna2"
"sienna1"
"IndianRed4"
"IndianRed3"
"IndianRed2"
"IndianRed1"
"RosyBrown4"
"RosyBrown3"
"RosyBrown2"
"RosyBrown1"
"DarkGoldenrod4"
"DarkGoldenrod3"
"DarkGoldenrod2"
"DarkGoldenrod1"
"goldenrod4"
"goldenrod3"
"goldenrod2"
"goldenrod1"
"gold4"
"gold3"
"gold2"
"gold1"
"yellow4"
"yellow3"
"yellow2"
"yellow1"
"LightYellow4"
"LightYellow3"
"LightYellow2"
"LightYellow1"
"LightGoldenrod4"
"LightGoldenrod3"
"LightGoldenrod2"
"LightGoldenrod1"
"khaki4"
"khaki3"
"khaki2"
"khaki1"
"DarkOliveGreen4"
"DarkOliveGreen3"
"DarkOliveGreen2"
"DarkOliveGreen1"
"OliveDrab4"
"OliveDrab3"
"OliveDrab2"
"OliveDrab1"
"chartreuse4"
"chartreuse3"
"chartreuse2"
"chartreuse1"
"green4"
"green3"
"green2"
"green1"
"SpringGreen4"
"SpringGreen3"
"SpringGreen2"
"SpringGreen1"
"PaleGreen4"
"PaleGreen3"
"PaleGreen2"
"PaleGreen1"
"SeaGreen4"
"SeaGreen3"
"SeaGreen2"
"SeaGreen1"
"DarkSeaGreen4"
"DarkSeaGreen3"
"DarkSeaGreen2"
"DarkSeaGreen1"
"aquamarine4"
"aquamarine3"
"aquamarine2"
"aquamarine1"
"DarkSlateGray4"
"DarkSlateGray3"
"DarkSlateGray2"
"DarkSlateGray1"
"cyan4"
"cyan3"
"cyan2"
"cyan1"
"turquoise4"
"turquoise3"
"turquoise2"
"turquoise1"
"CadetBlue4"
"CadetBlue3"
"CadetBlue2"
"CadetBlue1"
"PaleTurquoise4"
"PaleTurquoise3"
"PaleTurquoise2"
"PaleTurquoise1"
"LightCyan4"
"LightCyan3"
"LightCyan2"
"LightCyan1"
"LightBlue4"
"LightBlue3"
"LightBlue2"
"LightBlue1"
"LightSteelBlue4"
"LightSteelBlue3"
"LightSteelBlue2"
"LightSteelBlue1"
"SlateGray4"
"SlateGray3"
"SlateGray2"
"SlateGray1"
"LightSkyBlue4"
"LightSkyBlue3"
"LightSkyBlue2"
"LightSkyBlue1"
"SkyBlue4"
"SkyBlue3"
"SkyBlue2"
"SkyBlue1"
"DeepSkyBlue4"
"DeepSkyBlue3"
"DeepSkyBlue2"
"DeepSkyBlue1"
"SteelBlue4"
"SteelBlue3"
"SteelBlue2"
"SteelBlue1"
"DodgerBlue4"
"DodgerBlue3"
"DodgerBlue2"
"DodgerBlue1"
"blue4"
"blue3"
"blue2"
"blue1"
"RoyalBlue4"
"RoyalBlue3"
"RoyalBlue2"
"RoyalBlue1"
"SlateBlue4"
"SlateBlue3"
"SlateBlue2"
"SlateBlue1"
"azure4"
"azure3"
"azure2"
"azure1"
"MistyRose4"
"MistyRose3"
"MistyRose2"
"MistyRose1"
"LavenderBlush4"
"LavenderBlush3"
"LavenderBlush2"
"LavenderBlush1"
"honeydew4"
"honeydew3"
"honeydew2"
"honeydew1"
"ivory4"
"ivory3"
"ivory2"
"ivory1"
"cornsilk4"
"cornsilk3"
"cornsilk2"
"cornsilk1"
"LemonChiffon4"
"LemonChiffon3"
"LemonChiffon2"
"LemonChiffon1"
"NavajoWhite4"
"NavajoWhite3"
"NavajoWhite2"
"NavajoWhite1"
"PeachPuff4"
"PeachPuff3"
"PeachPuff2"
"PeachPuff1"
"bisque4"
"bisque3"
"bisque2"
"bisque1"
"AntiqueWhite4"
"AntiqueWhite3"
"AntiqueWhite2"
"AntiqueWhite1"
"seashell4"
"seashell3"
"seashell2"
"seashell1"
"snow4"
"snow3"
"snow2"
"snow1"
"thistle"
"MediumPurple"
"medium purple"
"purple"
"BlueViolet"
"blue violet"
"DarkViolet"
"dark violet"
"DarkOrchid"
"dark orchid"
"MediumOrchid"
"medium orchid"
"orchid"
"plum"
"violet"
"magenta"
"VioletRed"
"violet red"
"MediumVioletRed"
"medium violet red"
"maroon"
"PaleVioletRed"
"pale violet red"
"LightPink"
"light pink"
"pink"
"DeepPink"
"deep pink"
"HotPink"
"hot pink"
"red"
"OrangeRed"
"orange red"
"tomato"
"LightCoral"
"light coral"
"coral"
"DarkOrange"
"dark orange"
"orange"
"LightSalmon"
"light salmon"
"salmon"
"DarkSalmon"
"dark salmon"
"brown"
"firebrick"
"chocolate"
"tan"
"SandyBrown"
"sandy brown"
"wheat"
"beige"
"burlywood"
"peru"
"sienna"
"SaddleBrown"
"saddle brown"
"IndianRed"
"indian red"
"RosyBrown"
"rosy brown"
"DarkGoldenrod"
"dark goldenrod"
"goldenrod"
"LightGoldenrod"
"light goldenrod"
"gold"
"yellow"
"LightYellow"
"light yellow"
"LightGoldenrodYellow"
"light goldenrod yellow"
"PaleGoldenrod"
"pale goldenrod"
"khaki"
"DarkKhaki"
"dark khaki"
"OliveDrab"
"olive drab"
"ForestGreen"
"forest green"
"YellowGreen"
"yellow green"
"LimeGreen"
"lime green"
"GreenYellow"
"green yellow"
"MediumSpringGreen"
"medium spring green"
"chartreuse"
"green"
"LawnGreen"
"lawn green"
"SpringGreen"
"spring green"
"PaleGreen"
"pale green"
"LightSeaGreen"
"light sea green"
"MediumSeaGreen"
"medium sea green"
"SeaGreen"
"sea green"
"DarkSeaGreen"
"dark sea green"
"DarkOliveGreen"
"dark olive green"
"DarkGreen"
"dark green"
"aquamarine"
"MediumAquamarine"
"medium aquamarine"
"CadetBlue"
"cadet blue"
"LightCyan"
"light cyan"
"cyan"
"turquoise"
"MediumTurquoise"
"medium turquoise"
"DarkTurquoise"
"dark turquoise"
"PaleTurquoise"
"pale turquoise"
"PowderBlue"
"powder blue"
"LightBlue"
"light blue"
"LightSteelBlue"
"light steel blue"
"SteelBlue"
"steel blue"
"LightSkyBlue"
"light sky blue"
"SkyBlue"
"sky blue"
"DeepSkyBlue"
"deep sky blue"
"DodgerBlue"
"dodger blue"
"blue"
"RoyalBlue"
"royal blue"
"MediumBlue"
"medium blue"
"LightSlateBlue"
"light slate blue"
"MediumSlateBlue"
"medium slate blue"
"SlateBlue"
"slate blue"
"DarkSlateBlue"
"dark slate blue"
"CornflowerBlue"
"cornflower blue"
"NavyBlue"
"navy blue"
"navy"
"MidnightBlue"
"midnight blue"
"LightGray"
"light gray"
"LightGrey"
"light grey"
"grey"
"gray"
"LightSlateGrey"
"light slate grey"
"LightSlateGray"
"light slate gray"
"SlateGrey"
"slate grey"
"SlateGray"
"slate gray"
"DimGrey"
"dim grey"
"DimGray"
"dim gray"
"DarkSlateGrey"
"dark slate grey"
"DarkSlateGray"
"dark slate gray"
"black"
"white"
"MistyRose"
"misty rose"
"LavenderBlush"
"lavender blush"
"lavender"
"AliceBlue"
"alice blue"
"azure"
"MintCream"
"mint cream"
"honeydew"
"seashell"
"LemonChiffon"
"lemon chiffon"
"ivory"
"cornsilk"
"moccasin"
"NavajoWhite"
"navajo white"
"PeachPuff"
"peach puff"
"bisque"
"BlanchedAlmond"
"blanched almond"
"PapayaWhip"
"papaya whip"
"AntiqueWhite"
"antique white"
"linen"
"OldLace"
"old lace"
"FloralWhite"
"floral white"
"gainsboro"
"WhiteSmoke"
"white smoke"
"GhostWhite"
"ghost white"
"snow")
"The list of X colors from the `rgb.txt' file.
XConsortium: rgb.txt,v 10.41 94/02/20 18:39:36 rws Exp")
(defun xw-defined-colors (&optional frame)
"Internal function called by `defined-colors', which see."
(or frame (setq frame (selected-frame)))
(let ((all-colors x-colors)
(this-color nil)
(defined-colors nil))
(while all-colors
(setq this-color (car all-colors)
all-colors (cdr all-colors))
(and (color-supported-p this-color frame t)
(setq defined-colors (cons this-color defined-colors))))
defined-colors))
(defun iconify-or-deiconify-frame ()
"Iconify the selected frame, or deiconify if it's currently an icon."
(interactive)
(if (eq (cdr (assq 'visibility (frame-parameters))) t)
(iconify-frame)
(make-frame-visible)))
(substitute-key-definition 'suspend-emacs 'iconify-or-deiconify-frame
global-map)
(define-key function-key-map [backspace] [127])
(define-key function-key-map [delete] [127])
(define-key function-key-map [tab] [?\t])
(define-key function-key-map [linefeed] [?\n])
(define-key function-key-map [clear] [?\C-l])
(define-key function-key-map [return] [?\C-m])
(define-key function-key-map [escape] [?\e])
(define-key function-key-map [M-backspace] [?\M-\d])
(define-key function-key-map [M-delete] [?\M-\d])
(define-key function-key-map [M-tab] [?\M-\t])
(define-key function-key-map [M-linefeed] [?\M-\n])
(define-key function-key-map [M-clear] [?\M-\C-l])
(define-key function-key-map [M-return] [?\M-\C-m])
(define-key function-key-map [M-escape] [?\M-\e])
(define-key function-key-map [iso-lefttab] [backtab])
(put 'backspace 'ascii-character 127)
(put 'delete 'ascii-character 127)
(put 'tab 'ascii-character ?\t)
(put 'linefeed 'ascii-character ?\n)
(put 'clear 'ascii-character 12)
(put 'return 'ascii-character 13)
(put 'escape 'ascii-character ?\e)
(defun vendor-specific-keysyms (vendor)
"Return the appropriate value of system-key-alist for VENDOR.
VENDOR is a string containing the name of the X Server's vendor,
as returned by (x-server-vendor)."
(cond ((string-equal vendor "Apollo Computer Inc.")
'((65280 . linedel)
(65281 . chardel)
(65282 . copy)
(65283 . cut)
(65284 . paste)
(65285 . move)
(65286 . grow)
(65287 . cmd)
(65288 . shell)
(65289 . leftbar)
(65290 . rightbar)
(65291 . leftbox)
(65292 . rightbox)
(65293 . upbox)
(65294 . downbox)
(65295 . pop)
(65296 . read)
(65297 . edit)
(65298 . save)
(65299 . exit)
(65300 . repeat)))
((or (string-equal vendor "Hewlett-Packard Incorporated")
(string-equal vendor "Hewlett-Packard Company"))
'(( 168 . mute-acute)
( 169 . mute-grave)
( 170 . mute-asciicircum)
( 171 . mute-diaeresis)
( 172 . mute-asciitilde)
( 175 . lira)
( 190 . guilder)
( 252 . block)
( 256 . longminus)
(65388 . reset)
(65389 . system)
(65390 . user)
(65391 . clearline)
(65392 . insertline)
(65393 . deleteline)
(65394 . insertchar)
(65395 . deletechar)
(65396 . backtab)
(65397 . kp-backtab)))
((or (string-equal vendor "X11/NeWS - Sun Microsystems Inc.")
(string-equal vendor "X Consortium"))
'((392976 . f36)
(392977 . f37)
(393056 . req)
(393072 . props)
(393073 . front)
(393074 . copy)
(393075 . open)
(393076 . paste)
(393077 . cut)))
(t
'((65280 . remove)))))
(defvar x-last-selected-text nil)
(defvar x-cut-buffer-max 20000
"Max number of characters to put in the cut buffer.")
(defcustom x-select-enable-clipboard nil
"Non-nil means cutting and pasting uses the clipboard.
This is in addition to, but in preference to, the primary selection."
:type 'boolean
:group 'killing)
(defun x-select-text (text &optional push)
(if (< (length text) x-cut-buffer-max)
(x-set-cut-buffer text push)
(x-set-cut-buffer "" push))
(x-set-selection 'PRIMARY text)
(if x-select-enable-clipboard
(x-set-selection 'CLIPBOARD text))
(setq x-last-selected-text text))
(defun x-cut-buffer-or-selection-value ()
(let (text)
(when x-select-enable-clipboard
(if (null text)
(condition-case c
(setq text (x-get-selection 'CLIPBOARD 'COMPOUND_TEXT))
(error nil)))
(if (null text)
(condition-case c
(setq text (x-get-selection 'CLIPBOARD 'STRING))
(error nil)))
(if (string= text "") (setq text nil)))
(if (null text)
(condition-case c
(setq text (x-get-selection 'PRIMARY 'COMPOUND_TEXT))
(error nil)))
(if (null text)
(condition-case c
(setq text (x-get-selection 'PRIMARY 'STRING))
(error nil)))
(if (string= text "") (setq text nil))
(or text (setq text (x-get-cut-buffer 0)))
(if (string= text "") (setq text nil))
(cond
((not text) nil)
((eq text x-last-selected-text) nil)
((string= text x-last-selected-text)
(setq x-last-selected-text text)
nil)
(t
(setq x-last-selected-text text)))))
(setq command-line-args (x-handle-args command-line-args))
(or (stringp x-resource-name)
(let (i)
(setq x-resource-name (invocation-name))
(while (setq i (string-match "[.*]" x-resource-name))
(aset x-resource-name i ?-))))
(if (fboundp 'x-close-connection)
(x-open-connection (or x-display-name
(setq x-display-name (getenv "DISPLAY")))
x-command-line-resources
t)
(x-open-connection (or x-display-name
(setq x-display-name (getenv "DISPLAY")))
x-command-line-resources))
(setq frame-creation-function 'x-create-frame-with-faces)
(setq x-cut-buffer-max (min (- (/ (x-server-max-request-size) 2) 100)
x-cut-buffer-max))
(if (fboundp 'new-fontset)
(progn
(create-fontset-from-fontset-spec standard-fontset-spec t)
(create-fontset-from-x-resource)
(let ((font (or (cdr (assq 'font initial-frame-alist))
(cdr (assq 'font default-frame-alist))
(x-get-resource "font" "Font")))
xlfd-fields resolved-name)
(if (and font
(not (query-fontset font))
(setq resolved-name (x-resolve-font-name font))
(setq xlfd-fields (x-decompose-font-name font)))
(if (string= "fontset"
(aref xlfd-fields xlfd-regexp-registry-subnum))
(new-fontset font (x-complement-fontset-spec xlfd-fields nil))
(create-fontset-from-ascii-font font
resolved-name "startup"))))))
(if (string-match "Sun Microsystems,? Inc\\."
(x-server-vendor))
(menu-bar-enable-clipboard))
(let* ((res-geometry (x-get-resource "geometry" "Geometry"))
parsed)
(if res-geometry
(progn
(setq parsed (x-parse-geometry res-geometry))
(if (or (assq 'top parsed) (assq 'left parsed))
(setq parsed (cons '(user-position . t)
(cons '(user-size . t) parsed))))
(setq initial-frame-alist (append initial-frame-alist parsed))
(if (assq 'height parsed)
(setq default-frame-alist
(cons (cons 'height (cdr (assq 'height parsed)))
default-frame-alist)))
(if (assq 'width parsed)
(setq default-frame-alist
(cons (cons 'width (cdr (assq 'width parsed)))
default-frame-alist))))))
(let ((case-fold-search t))
(let ((rv (x-get-resource "reverseVideo" "ReverseVideo")))
(if (and rv
(string-match "^\\(true\\|yes\\|on\\)$" rv))
(setq default-frame-alist
(cons '(reverse . t) default-frame-alist)))))
(let ((res-selection-timeout
(x-get-resource "selectionTimeout" "SelectionTimeout")))
(setq x-selection-timeout 20000)
(if res-selection-timeout
(setq x-selection-timeout (string-to-number res-selection-timeout))))
(defun x-win-suspend-error ()
(error "Suspending an emacs running under X makes no sense"))
(add-hook 'suspend-hook 'x-win-suspend-error)
(setq interprogram-cut-function 'x-select-text)
(setq interprogram-paste-function 'x-cut-buffer-or-selection-value)
(setq split-window-keep-point t)
(setq-default mode-line-frame-identification " ")