summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2010-06-30 20:59:12 +0200
committerGravatar Tom Willemsen2010-06-30 20:59:12 +0200
commit722c13a8fc093bc67b9be444547571d544cb79a0 (patch)
tree67ac47a4ec267f56b754134efa2a5a3b51c07dcf
downloaddotfiles-722c13a8fc093bc67b9be444547571d544cb79a0.tar.gz
dotfiles-722c13a8fc093bc67b9be444547571d544cb79a0.zip
Switched over from dotemacs to doteverything
-rw-r--r--.emacs35
-rw-r--r--.emacs.d/ac-dict/c++-mode74
-rw-r--r--.emacs.d/ac-dict/c-mode37
-rw-r--r--.emacs.d/ac-dict/clojure-mode475
-rw-r--r--.emacs.d/ac-dict/css-mode747
-rw-r--r--.emacs.d/ac-dict/java-mode50
-rw-r--r--.emacs.d/ac-dict/javascript-mode148
-rw-r--r--.emacs.d/ac-dict/php-mode62
-rw-r--r--.emacs.d/ac-dict/python-mode104
-rw-r--r--.emacs.d/ac-dict/ruby-mode181
-rw-r--r--.emacs.d/ac-dict/scheme-mode216
-rw-r--r--.emacs.d/ac-dict/tcl-mode172
-rw-r--r--.emacs.d/auto-complete-config.el480
-rw-r--r--.emacs.d/auto-complete-config.elcbin0 -> 15943 bytes
-rw-r--r--.emacs.d/auto-complete.el1897
-rw-r--r--.emacs.d/auto-complete.elcbin0 -> 59995 bytes
-rw-r--r--.emacs.d/batch-mode.el156
-rw-r--r--.emacs.d/color-theme.el1668
-rw-r--r--.emacs.d/csharp-mode.el1977
-rw-r--r--.emacs.d/fuzzy.el255
-rw-r--r--.emacs.d/fuzzy.elcbin0 -> 7438 bytes
-rw-r--r--.emacs.d/include.el16
-rw-r--r--.emacs.d/javascript.el707
-rw-r--r--.emacs.d/linux/.emacs1
-rw-r--r--.emacs.d/popup.el1061
-rw-r--r--.emacs.d/popup.elcbin0 -> 64893 bytes
-rw-r--r--.emacs.d/slash_c.el15
-rw-r--r--.emacs.d/slash_functions.el5
-rw-r--r--.emacs.d/slash_python.el17
-rw-r--r--.emacs.d/slash_theme.el35
-rw-r--r--.emacs.d/sqlplus.el5151
-rw-r--r--.emacs.d/themes/color-theme-example.el22
-rw-r--r--.emacs.d/themes/color-theme-library.el13539
-rw-r--r--.emacs.d/tramp20
-rw-r--r--.emacs.d/vala-mode.el395
-rw-r--r--.gitignore4
-rw-r--r--README7
-rw-r--r--install.bat5
-rw-r--r--install.sh9
39 files changed, 29743 insertions, 0 deletions
diff --git a/.emacs b/.emacs
new file mode 100644
index 0000000..356e464
--- /dev/null
+++ b/.emacs
@@ -0,0 +1,35 @@
+(load-file "~/.emacs.d/include.el")
+
+(if (eq system-type 'gnu/linux) ; if we're running linux
+ (load-file "~/.emacs.d/linux/.emacs"))
+
+(setq inhibit-startup-message t) ; don't show welcome
+(setq-default indent-tabs-mode nil) ; spaces, no tabs
+(tool-bar-mode nil) ; no toolbar
+(menu-bar-mode nil) ; no menu
+(line-number-mode nil) ; don't show line numbers in splitter
+(global-linum-mode t) ; show line numbers in gutter
+(column-number-mode t) ; show column numbers in splitter
+(color-theme-weirdness) ; my theme
+(global-font-lock-mode t) ; always show syntax higlighting, this may
+ ; be old
+(fset 'yes-or-no-p 'y-or-n-p) ; don't want to have to type yes or no
+
+;; Vala Mode
+(add-to-list 'auto-mode-alist '("\\.vala$" . vala-mode))
+(add-to-list 'auto-mode-alist '("\\.vapi$" . vala-mode))
+(add-to-list 'file-coding-system-alist '("\\.vala$" . utf-8))
+(add-to-list 'file-coding-system-alist '("\\.vapi$" . utf-8))
+
+;; C# Mode
+(setq auto-mode-alist (cons `("\\.cs\\'" . csharp-mode) auto-mode-alist))
+
+;; Autosave location
+(setq backup-directory-alist
+ `((".*" . ,temporary-file-directory)))
+(setq auto-save-file-name-transforms
+ `((".*" ,temporary-file-directory t)))
+
+;; Autocomplete
+(add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict")
+(ac-config-default) \ No newline at end of file
diff --git a/.emacs.d/ac-dict/c++-mode b/.emacs.d/ac-dict/c++-mode
new file mode 100644
index 0000000..e3cd8ae
--- /dev/null
+++ b/.emacs.d/ac-dict/c++-mode
@@ -0,0 +1,74 @@
+and
+and_eq
+asm
+auto
+bitand
+bitor
+bool
+break
+case
+catch
+char
+class
+compl
+const
+const_cast
+continue
+default
+delete
+do
+double
+dynamic_cast
+else
+enum
+explicit
+export
+extern
+false
+float
+for
+friend
+goto
+if
+inline
+int
+long
+mutable
+namespace
+new
+not
+not_eq
+operator
+or
+or_eq
+private
+protected
+public
+register
+reinterpret_cast
+return
+short
+signed
+sizeof
+static
+static_cast
+struct
+switch
+template
+this
+throw
+true
+try
+typedef
+typeid
+typename
+union
+unsigned
+using
+virtual
+void
+volatile
+wchar_t
+while
+xor
+xor_eq
diff --git a/.emacs.d/ac-dict/c-mode b/.emacs.d/ac-dict/c-mode
new file mode 100644
index 0000000..496f904
--- /dev/null
+++ b/.emacs.d/ac-dict/c-mode
@@ -0,0 +1,37 @@
+auto
+_Bool
+break
+case
+char
+_Complex
+const
+continue
+default
+do
+double
+else
+enum
+extern
+float
+for
+goto
+if
+_Imaginary
+inline
+int
+long
+register
+restrict
+return
+short
+signed
+sizeof
+static
+struct
+switch
+typedef
+union
+unsigned
+void
+volatile
+while
diff --git a/.emacs.d/ac-dict/clojure-mode b/.emacs.d/ac-dict/clojure-mode
new file mode 100644
index 0000000..16348ed
--- /dev/null
+++ b/.emacs.d/ac-dict/clojure-mode
@@ -0,0 +1,475 @@
+*agent*
+*clojure-version*
+*command-line-args*
+*compile-files*
+*compile-path*
+*err*
+*file*
+*flush-on-newline*
+*in*
+*ns*
+*out*
+*print-dup*
+*print-length*
+*print-level*
+*print-meta*
+*print-readably*
+*read-eval*
+*warn-on-reflection*
+accessor
+aclone
+add-classpath
+add-watch
+agent
+agent-error
+agent-errors
+aget
+alength
+alias
+all-ns
+alter
+alter-meta!
+alter-var-root
+amap
+ancestors
+and
+apply
+areduce
+array-map
+aset
+aset-boolean
+aset-byte
+aset-char
+aset-double
+aset-float
+aset-int
+aset-long
+aset-short
+assert
+assoc
+assoc!
+assoc-in
+associative?
+atom
+await
+await-for
+bases
+bean
+bigdec
+bigint
+binding
+bit-and
+bit-and-not
+bit-clear
+bit-flip
+bit-not
+bit-or
+bit-set
+bit-shift-left
+bit-shift-right
+bit-test
+bit-xor
+boolean
+boolean-array
+booleans
+bound-fn
+bound-fn*
+butlast
+byte
+byte-array
+bytes
+case
+cast
+char
+char-array
+char-escape-string
+char-name-string
+char?
+chars
+class
+class?
+clear-agent-errors
+clojure-version
+coll?
+comment
+commute
+comp
+comparator
+compare
+compare-and-set!
+compile
+complement
+concat
+cond
+condp
+conj
+conj!
+cons
+constantly
+construct-proxy
+contains?
+count
+counted?
+create-ns
+create-struct
+cycle
+dec
+decimal?
+declare
+definline
+defmacro
+defmethod
+defmulti
+defn
+defn-
+defonce
+defprotocol
+defstruct
+deftype
+delay
+delay?
+deliver
+deref
+derive
+descendants
+disj
+disj!
+dissoc
+dissoc!
+distinct
+distinct?
+doall
+doc
+dorun
+doseq
+dosync
+dotimes
+doto
+double
+double-array
+doubles
+drop
+drop-last
+drop-while
+dtype
+empty
+empty?
+ensure
+enumeration-seq
+error-handler
+error-mode
+eval
+even?
+every?
+extend
+extend-class
+extend-protocol
+extend-type
+extenders
+extends?
+false?
+ffirst
+file-seq
+filter
+find
+find-doc
+find-ns
+find-var
+first
+float
+float-array
+float?
+floats
+flush
+fn
+fn?
+fnext
+for
+force
+format
+future
+future-call
+future-cancel
+future-cancelled?
+future-done?
+future?
+gen-class
+gen-interface
+gensym
+get
+get-in
+get-method
+get-proxy-class
+get-thread-bindings
+get-validator
+hash
+hash-map
+hash-set
+identical?
+identity
+if-let
+if-not
+ifn?
+import
+in-ns
+inc
+init-proxy
+instance?
+int
+int-array
+integer?
+interleave
+intern
+interpose
+into
+into-array
+ints
+io!
+isa?
+iterate
+iterator-seq
+juxt
+key
+keys
+keyword
+keyword?
+last
+lazy-cat
+lazy-seq
+let
+letfn
+line-seq
+list
+list*
+list?
+load
+load-file
+load-reader
+load-string
+loaded-libs
+locking
+long
+long-array
+longs
+loop
+macroexpand
+macroexpand-1
+make-array
+make-hierarchy
+map
+map?
+mapcat
+max
+max-key
+memfn
+memoize
+merge
+merge-with
+meta
+methods
+min
+min-key
+mod
+name
+namespace
+neg?
+newline
+next
+nfirst
+nil?
+nnext
+not
+not-any?
+not-empty
+not-every?
+not=
+ns
+ns-aliases
+ns-imports
+ns-interns
+ns-map
+ns-name
+ns-publics
+ns-refers
+ns-resolve
+ns-unalias
+ns-unmap
+nth
+nthnext
+num
+number?
+object-array
+odd?
+or
+parents
+partial
+partition
+pcalls
+peek
+persistent!
+pmap
+pop
+pop!
+pop-thread-bindings
+pos?
+pr
+pr-str
+prefer-method
+prefers
+print
+print-namespace-doc
+print-str
+printf
+println
+println-str
+prn
+prn-str
+promise
+proxy
+proxy-mappings
+proxy-super
+push-thread-bindings
+pvalues
+quot
+rand
+rand-int
+range
+ratio?
+rationalize
+re-find
+re-groups
+re-matcher
+re-matches
+re-pattern
+re-seq
+read
+read-line
+read-string
+reduce
+ref
+ref-history-count
+ref-max-history
+ref-min-history
+ref-set
+refer
+refer-clojure
+reify
+release-pending-sends
+rem
+remove
+remove-method
+remove-ns
+remove-watch
+repeat
+repeatedly
+replace
+replicate
+require
+reset!
+reset-meta!
+resolve
+rest
+restart-agent
+resultset-seq
+reverse
+reversible?
+rseq
+rsubseq
+satisfies?
+second
+select-keys
+send
+send-off
+seq
+seq?
+seque
+sequence
+sequential?
+set
+set-error-handler!
+set-error-mode!
+set-validator!
+set?
+short
+short-array
+shorts
+shutdown-agents
+slurp
+some
+sort
+sort-by
+sorted-map
+sorted-map-by
+sorted-set
+sorted-set-by
+sorted?
+special-form-anchor
+special-symbol?
+split-at
+split-with
+str
+stream?
+string?
+struct
+struct-map
+subs
+subseq
+subvec
+supers
+swap!
+symbol
+symbol?
+sync
+syntax-symbol-anchor
+take
+take-last
+take-nth
+take-while
+test
+the-ns
+time
+to-array
+to-array-2d
+trampoline
+transient
+tree-seq
+true?
+type
+unchecked-add
+unchecked-dec
+unchecked-divide
+unchecked-inc
+unchecked-multiply
+unchecked-negate
+unchecked-remainder
+unchecked-subtract
+underive
+update-in
+update-proxy
+use
+val
+vals
+var-get
+var-set
+var?
+vary-meta
+vec
+vector
+vector-of
+vector?
+when
+when-first
+when-let
+when-not
+while
+with-bindings
+with-bindings*
+with-in-str
+with-local-vars
+with-meta
+with-open
+with-out-str
+with-precision
+xml-seq
+zero?
+zipmap \ No newline at end of file
diff --git a/.emacs.d/ac-dict/css-mode b/.emacs.d/ac-dict/css-mode
new file mode 100644
index 0000000..4ec8f7d
--- /dev/null
+++ b/.emacs.d/ac-dict/css-mode
@@ -0,0 +1,747 @@
+!important
+ActiveBorder
+ActiveCaption
+Alpha
+AppWorkspace
+Background
+Barn
+BasicImage
+Blinds
+Blur
+ButtonFace
+ButtonHighlight
+ButtonShadow
+ButtonText
+CaptionText
+CheckerBoard
+Chroma
+Compositor
+CradientWipe
+DXImageTransform
+DropShadow
+Emboss
+Engrave
+Fade
+FlipH
+FlipV
+Glow
+Gray
+GrayText
+Highlight
+HighlightText
+Hz
+ICMFilter
+InactiveBorder
+InactiveCaption
+InactiveCaptionText
+InfoBackground
+InfoText
+Inset
+Invert
+Iris
+Light
+MaskFilter
+Matrix
+Menu
+MenuText
+Microsoft
+MotionBlur
+Pixelate
+RadialWipe
+RandomBars
+RandomDissolve
+RevealTrans
+Scrollbar
+Shadow
+Slide
+Spiral
+Stretch
+Strips
+ThreeDDarkShadow
+ThreeDFace
+ThreeDHighlight
+ThreeDLightShadow
+ThreeDShadow
+Wave
+Wheel
+Window
+WindowFrame
+WindowText
+Xray
+Zigzag
+_azimuth
+_background
+_background-position-x
+_background-position-y
+_border
+_bottom
+_caption
+_clear
+_clip
+_color
+_content
+_counter
+_cue
+_cursor
+_direction
+_display
+_elevation
+_empty
+_filter
+_filter:progid:DXImageTransform.Microsoft
+_float
+_font
+_height
+_ime
+_ime-mode
+_layout
+_layout-flow
+_layout-grid
+_layout-grid-char
+_layout-grid-line
+_layout-grid-mode
+_layout-grid-type
+_left
+_letter
+_line
+_line-break
+_list
+_margin
+_orphans
+_outline
+_overflow
+_overflow-x
+_overflow-y
+_padding
+_page
+_pause
+_pitch
+_play
+_position
+_quotes
+_richness
+_right
+_ruby
+_ruby-align
+_ruby-overhang
+_ruby-position
+_scrollbar
+_scrollbar-3dlight-color
+_scrollbar-arrow-color
+_scrollbar-base-color
+_scrollbar-darkshadow-color
+_scrollbar-face-color
+_scrollbar-highlight-color
+_scrollbar-track-color
+_speak
+_speech
+_stress
+_table
+_text
+_text-align-last
+_text-autospace
+_text-justify
+_text-kashida-space
+_text-overflow
+_text-underline-position
+_top
+_unicode
+_vertical
+_visibility
+_voice
+_volume
+_white
+_widows
+_width
+_word
+_word-break
+_word-wrap
+_writing
+_writing-mode
+_z
+_zoom
+above
+active
+adjust
+after
+aliceblue
+align
+always
+antiquewhite
+aqua
+aquamarine
+armenian
+arrow
+attachment
+auto
+autospace
+avoid
+azimuth
+azure
+background
+background-attachment
+background-color
+background-image
+background-position
+background-repeat
+bar
+base
+baseline
+before
+behind
+beige
+below
+bidi
+bidi-override
+bisque
+black
+blanchedalmond
+blink
+block
+blue
+blueviolet
+bold
+bolder
+border
+border-bottom
+border-bottom-color
+border-bottom-style
+border-bottom-width
+border-collapse
+border-color
+border-left
+border-left-color
+border-left-style
+border-left-width
+border-right
+border-right-color
+border-right-style
+border-right-width
+border-spacing
+border-style
+border-top
+border-top-color
+border-top-style
+border-top-width
+border-width
+both
+bottom
+box
+break
+brown
+burlwood
+cadetblue
+capitalize
+caps
+caption
+caption-side
+cell
+cells
+center
+center-left
+center-right
+char
+chartreuse
+chocolate
+circle
+cjk
+cjk-ideographic
+clear
+clip
+close
+close-quote
+cm
+code
+collapse
+color
+column
+compact
+condensed
+content
+continuous
+coral
+cornflowerblue
+cornsilk
+counter
+counter-increment
+counter-reset
+crimson
+crop
+cross
+crosshair
+cue
+cue-after
+cue-before
+cursive
+cursor
+cyan
+darkblue
+darkcyan
+darkgoldenrod
+darkgray
+darkgreen
+darkkhaki
+darkmagenta
+darkolivegreen
+darkorange
+darkorchid
+darkred
+darksalmon
+darkseagreen
+darkshadow
+darkslateblue
+darkslategray
+darkturquoise
+darkviolet
+dashed
+decimal
+decimal-leading-zero
+decoration
+deeppink
+deepskyblue
+default
+deg
+digits
+dimgray
+direction
+disc
+display
+dodgerblue
+dotted
+double
+during
+e
+e-resize
+elevation
+em
+embed
+empty
+empty-cells
+ex
+expanded
+extra
+extra-condensed
+extra-expanded
+face
+family
+fantasy
+far
+far-left
+far-right
+fast
+faster
+firebrick
+first
+first-child
+first-letter
+first-line
+fixed
+float
+floralwhite
+flow
+focus
+font
+font-family
+font-size
+font-size-adjust
+font-stretch
+font-style
+font-variant
+font-weight
+footer
+forestgreen
+fuchsia
+gainsboro
+georgian
+ghostwhite
+gold
+goldenrod
+gray
+greek
+green
+greenyellow
+grid
+groove
+group
+header
+hebrew
+height
+help
+hidden
+hide
+high
+higher
+hiragana
+hiragana-iroha
+honeydew
+hotpink
+hover
+icon
+ideographic
+image
+in
+increment
+indent
+index
+indianred
+indigo
+inherit
+inline
+inline-block
+inline-table
+inset
+inside
+iroha
+italic
+item
+ivory
+justify
+kHz
+kashida
+katakana
+katakana-iroha
+khaki
+landscape
+lang()
+large
+larger
+last
+latin
+lavender
+lavenderblush
+lawngreen
+layout
+leading
+left
+left-side
+leftwards
+lenonchiffon
+letter
+letter-spacing
+level
+lightblue
+lightcoral
+lightcyan
+lighter
+lightgoldenrodyellow
+lightgray
+lightgreen
+lightgrey
+lightpink
+lightsalmon
+lightseagreen
+lightskyblue
+lightslategray
+lightsteelblue
+lightyellow
+lime
+limegreen
+line
+line-height
+line-through
+linen
+link
+list
+list-item
+list-style
+list-style-image
+list-style-position
+list-style-type
+loud
+low
+lower
+lower-alpha
+lower-greek
+lower-latin
+lower-roman
+lowercase
+ltr
+magenta
+margin
+margin-bottom
+margin-left
+margin-right
+margin-top
+marker
+marker-offset
+marks
+maroon
+max
+max-height
+max-width
+medium
+mediumaquamarine
+mediumblue
+mediumorchid
+mediumpurple
+mediumseagreen
+mediumslateblue
+mediumspringgreen
+mediumturquoise
+mediumvioletred
+menu
+message
+message-box
+middle
+midnightblue
+min
+min-height
+min-width
+mintcream
+mistyrose
+mix
+mm
+moccasin
+mode
+monospace
+move
+ms
+n
+n-resize
+naby
+narrower
+navajowhite
+ne
+ne-resize
+no
+no-close-quote
+no-open-quote
+no-repeat
+none
+normal
+nowrap
+number
+numeral
+nw
+nw-resize
+oblique
+offset
+oldlace
+olive
+olivedrab
+once
+open
+open-quote
+orange
+orangered
+orchid
+orphans
+out
+outline
+outline-color
+outline-style
+outline-width
+outset
+outside
+overflow
+overhang
+overline
+override
+padding
+padding-bottom
+padding-left
+padding-right
+padding-top
+page
+page-break-after
+page-break-before
+page-break-inside
+palegoldenrod
+palegreen
+paleturquoise
+palevioletred
+papayawhip
+pause
+pause-after
+pause-before
+pc
+peachpuff
+peru
+pink
+pitch
+pitch-range
+play
+play-during
+plum
+pointer
+portarait
+position
+powderblue
+pre
+pre-line
+pre-wrap
+progid
+progress
+pt
+punctuation
+purple
+px
+quote
+quotes
+rad
+range
+rate
+red
+relative
+repeat
+repeat-x
+repeat-y
+reset
+resize
+richness
+ridge
+right
+right-side
+rightwards
+roman
+rosybrown
+row
+royalblue
+rtl
+run
+run-in
+s
+s-resize
+saddlebrown
+salmon
+sandybrown
+sans-serif
+scroll
+se
+se-resize
+seagreen
+seashell
+semi
+semi-condensed
+semi-expanded
+separate
+serif
+shadow
+show
+side
+sienna
+silent
+silever
+silver
+size
+skyblue
+slateblue
+slategray
+slow
+slower
+small
+small-caps
+small-caption
+smaller
+snow
+soft
+solid
+space
+spacing
+speak
+speak-header
+speak-numeral
+speak-punctuation
+specific
+specific-voice
+speech
+speech-rate
+spell
+spell-out
+springgreen
+square
+static
+status
+status-bar
+steelblue
+stress
+stretch
+style
+sub
+super
+sw
+sw-resize
+table
+table-caption
+table-cell
+table-column
+table-column-group
+table-footer-group
+table-header-group
+table-layout
+table-row
+table-row-group
+tan
+teal
+text
+text-align
+text-bottom
+text-decoration
+text-indent
+text-shadow
+text-top
+text-transform
+thick
+thin
+thistle
+through
+tomato
+top
+track
+transform
+transparent
+turquoise
+type
+ultra
+ultra-condensed
+ultra-expanded
+underline
+unicode
+unicode-bidi
+upper
+upper-alpha
+upper-latin
+upper-roman
+uppercase
+variant
+vertical
+vertical-align
+violet
+visibility
+visible
+visited
+voice
+voice-family
+volume
+w
+w-resize
+wait
+weight
+wheat
+white
+white-space
+whitesmoke
+wider
+widows
+width
+word
+word-spacing
+wrap
+x
+x-fast
+x-high
+x-large
+x-loud
+x-low
+x-slow
+x-small
+x-soft
+xx
+xx-large
+xx-small
+y
+yellow
+yellowgreen
+z
+z-index
+zero
diff --git a/.emacs.d/ac-dict/java-mode b/.emacs.d/ac-dict/java-mode
new file mode 100644
index 0000000..8ed3d04
--- /dev/null
+++ b/.emacs.d/ac-dict/java-mode
@@ -0,0 +1,50 @@
+abstract
+assert
+boolean
+break
+byte
+case
+catch
+char
+class
+const
+continue
+default
+do
+double
+else
+enum
+extends
+final
+finally
+float
+for
+goto
+if
+implements
+import
+instanceof
+int
+interface
+long
+native
+new
+package
+private
+protected
+public
+return
+short
+static
+strictfp
+super
+switch
+synchronized
+this
+throw
+throws
+transient
+try
+void
+volatile
+while
diff --git a/.emacs.d/ac-dict/javascript-mode b/.emacs.d/ac-dict/javascript-mode
new file mode 100644
index 0000000..3d83f84
--- /dev/null
+++ b/.emacs.d/ac-dict/javascript-mode
@@ -0,0 +1,148 @@
+Anchor
+Area
+Array
+Boolean
+Button
+Checkbox
+Date
+Document
+Element
+FileUpload
+Form
+Frame
+Function
+Hidden
+History
+Image
+Infinity
+JavaArray
+JavaClass
+JavaObject
+JavaPackage
+Link
+Location
+Math
+MimeType
+NaN
+Navigator
+Number
+Object
+Option
+Packages
+Password
+Plugin
+Radio
+RegExp
+Reset
+Select
+String
+Submit
+Text
+Textarea
+Window
+alert
+arguments
+assign
+blur
+break
+callee
+caller
+captureEvents
+case
+clearInterval
+clearTimeout
+close
+closed
+comment
+confirm
+constructor
+continue
+default
+defaultStatus
+delete
+do
+document
+else
+escape
+eval
+export
+find
+focus
+for
+frames
+function
+getClass
+history
+home
+if
+import
+in
+innerHeight
+innerWidth
+isFinite
+isNan
+java
+label
+length
+location
+locationbar
+menubar
+moveBy
+moveTo
+name
+navigate
+navigator
+netscape
+new
+onBlur
+onError
+onFocus
+onLoad
+onUnload
+open
+opener
+outerHeight
+outerWidth
+pageXoffset
+pageYoffset
+parent
+parseFloat
+parseInt
+personalbar
+print
+prompt
+prototype
+ref
+releaseEvents
+resizeBy
+resizeTo
+return
+routeEvent
+scroll
+scrollBy
+scrollTo
+scrollbars
+self
+setInterval
+setTimeout
+status
+statusbar
+stop
+sun
+switch
+taint
+this
+toString
+toolbar
+top
+typeof
+unescape
+untaint
+unwatch
+valueOf
+var
+void
+watch
+while
+window
+with
diff --git a/.emacs.d/ac-dict/php-mode b/.emacs.d/ac-dict/php-mode
new file mode 100644
index 0000000..04352d8
--- /dev/null
+++ b/.emacs.d/ac-dict/php-mode
@@ -0,0 +1,62 @@
+and
+array
+as
+break
+case
+catch
+cfunction
+class
+clone
+const
+continue
+declare
+default
+die
+do
+echo
+else
+elseif
+empty
+enddeclare
+endfor
+endforeach
+endif
+endswitch
+endwhile
+eval
+exit
+extends
+final
+for
+foreach
+function
+global
+goto
+if
+implements
+include
+include_once
+instanceof
+interface
+isset
+list
+namespace
+new
+old_function
+or
+print
+private
+protected
+public
+require
+require_once
+return
+static
+switch
+throw
+try
+unset
+use
+var
+while
+xor
diff --git a/.emacs.d/ac-dict/python-mode b/.emacs.d/ac-dict/python-mode
new file mode 100644
index 0000000..33b4b32
--- /dev/null
+++ b/.emacs.d/ac-dict/python-mode
@@ -0,0 +1,104 @@
+__import__
+abs
+and
+any
+apply
+as
+assert
+basestring
+bin
+bool
+break
+buffer
+class
+cmp
+coerce
+complex
+continue
+def
+del
+delattr
+dict
+dir
+divmod
+elif
+else
+enumerate
+eval
+except
+exec
+execfile
+file
+filter
+finally
+float
+for
+format
+from
+frozenset
+getattr
+global
+globals
+hasattr
+hash
+help
+hex
+id
+if
+import
+in
+input
+int
+intern
+is
+isinstance
+issubclass
+iter
+lambda
+len
+list
+locals
+long
+map
+max
+min
+next
+not
+object
+oct
+open
+or
+ord
+pass
+pow
+print
+print
+property
+raise
+range
+raw_input
+reduce
+reload
+repr
+return
+reversed
+round
+set
+setattr
+slice
+sorted
+staticmethod
+str
+sum
+super
+try
+tuple
+type
+unichr
+unicode
+vars
+while
+with
+xrange
+yield
+zip
diff --git a/.emacs.d/ac-dict/ruby-mode b/.emacs.d/ac-dict/ruby-mode
new file mode 100644
index 0000000..90b4fc9
--- /dev/null
+++ b/.emacs.d/ac-dict/ruby-mode
@@ -0,0 +1,181 @@
+$!
+$"
+$$
+$&
+$'
+$*
+$+
+$,
+$-0
+$-F
+$-I
+$-K
+$-a
+$-d
+$-i
+$-l
+$-p
+$-v
+$-w
+$.
+$/
+$0
+$1
+$10
+$11
+$2
+$3
+$4
+$5
+$6
+$7
+$8
+$9
+$:
+$;
+$<
+$=
+$>
+$?
+$@
+$DEBUG
+$FILENAME
+$KCODE
+$LOADED_FEATURES
+$LOAD_PATH
+$PROGRAM_NAME
+$SAFE
+$VERBOSE
+$\
+$_
+$`
+$deferr
+$defout
+$stderr
+$stdin
+$stdout
+$~
+ARGF
+ARGV
+Array
+BEGIN
+DATA
+END
+ENV
+FALSE
+Float
+Integer
+NIL
+PLATFORM
+RELEASE_DATE
+RUBY_COPYRIGHT
+RUBY_DESCRIPTION
+RUBY_PATCHLEVEL
+RUBY_PLATFORM
+RUBY_RELEASE_DATE
+RUBY_VERSION
+SCRIPT_LINES__
+STDERR
+STDIN
+STDOUT
+String
+TOPLEVEL_BINDING
+TRUE
+VERSION
+__method__
+`
+abort
+alias
+and
+at_exit
+autoload
+autoload?
+begin
+binding
+block_given
+break
+callcc
+caller
+case
+catch
+chomp
+chomp!
+chop
+chop
+class
+def
+defined?
+do
+else
+elsif
+end
+ensure
+eval
+exec
+exit
+exit!
+fail
+false
+for
+fork
+format
+getc
+gets
+global_variables
+gsub
+gsub!
+if
+in
+iterator?
+lambda
+load
+local_varaibles
+loop
+module
+next
+nil
+not
+open
+or
+p
+printf
+proc
+putc
+puts
+raise
+rand
+readline
+readlines
+redo
+require
+require_relative
+rescue
+retry
+return
+scan
+select
+self
+set_trace_func
+sleep
+split
+sprintf
+srand
+sub
+sub!
+super
+syscall
+system
+test
+then
+throw
+trace_var
+trap
+true
+undef
+unless
+until
+untrace_var
+warn
+when
+while
+yield
diff --git a/.emacs.d/ac-dict/scheme-mode b/.emacs.d/ac-dict/scheme-mode
new file mode 100644
index 0000000..e5cca61
--- /dev/null
+++ b/.emacs.d/ac-dict/scheme-mode
@@ -0,0 +1,216 @@
+case-lambda
+call/cc
+class
+define-class
+exit-handler
+field
+import
+inherit
+init-field
+interface
+let*-values
+let-values
+let/ec
+mixin
+opt-lambda
+override
+protect
+provide
+public
+rename
+require
+require-for-syntax
+syntax
+syntax-case
+syntax-error
+unit/sig
+unless
+when
+with-syntax
+and
+begin
+call-with-current-continuation
+call-with-input-file
+call-with-output-file
+case
+cond
+define
+define-syntax
+delay
+do
+dynamic-wind
+else
+for-each
+if
+lambda
+let
+let*
+let-syntax
+letrec
+letrec-syntax
+map
+or
+syntax-rules
+abs
+acos
+angle
+append
+apply
+asin
+assoc
+assq
+assv
+atan
+boolean?
+caar
+cadr
+call-with-input-file
+call-with-output-file
+call-with-values
+car
+cdddar
+cddddr
+cdr
+ceiling
+char->integer
+char-alphabetic?
+char-ci<=?
+char-ci<?
+char-ci=?
+char-ci>=?
+char-ci>?
+char-downcase
+char-lower-case?
+char-numeric?
+char-ready?
+char-upcase
+char-upper-case?
+char-whitespace?
+char<=?
+char<?
+char=?
+char>=?
+char>?
+char?
+close-input-port
+close-output-port
+complex?
+cons
+cos
+current-input-port
+current-output-port
+denominator
+display
+eof-object?
+eq?
+equal?
+eqv?
+eval
+even?
+exact->inexact
+exact?
+exp
+expt
+#f
+floor
+force
+gcd
+imag-part
+inexact->exact
+inexact?
+input-port?
+integer->char
+integer?
+interaction-environment
+lcm
+length
+list
+list->string
+list->vector
+list-ref
+list-tail
+list?
+load
+log
+magnitude
+make-polar
+make-rectangular
+make-string
+make-vector
+max
+member
+memq
+memv
+min
+modulo
+negative?
+newline
+not
+null-environment
+null?
+number->string
+number?
+numerator
+odd?
+open-input-file
+open-output-file
+output-port?
+pair?
+peek-char
+port?
+positive?
+procedure?
+quasiquote
+quote
+quotient
+rational?
+rationalize
+read
+read-char
+real-part
+real?
+remainder
+reverse
+round
+scheme-report-environment
+set!
+set-car!
+set-cdr!
+sin
+sqrt
+string
+string->list
+string->number
+string->symbol
+string-append
+string-ci<=?
+string-ci<?
+string-ci=?
+string-ci>=?
+string-ci>?
+string-copy
+string-fill!
+string-length
+string-ref
+string-set!
+string<=?
+string<?
+string=?
+string>=?
+string>?
+string?
+substring
+symbol->string
+symbol?
+#t
+tan
+transcript-off
+transcript-on
+truncate
+values
+vector
+vector->list
+vector-fill!
+vector-length
+vector-ref
+vector-set!
diff --git a/.emacs.d/ac-dict/tcl-mode b/.emacs.d/ac-dict/tcl-mode
new file mode 100644
index 0000000..07a1281
--- /dev/null
+++ b/.emacs.d/ac-dict/tcl-mode
@@ -0,0 +1,172 @@
+after
+append
+apply
+array
+auto_execok
+auto_import
+auto_load
+auto_load_index
+auto_mkindex
+auto_mkindex_old
+auto_qualify
+auto_reset
+bell
+binary
+bind
+bindtags
+break
+button
+canvas
+case
+catch
+cd
+chan
+checkbutton
+clipboard
+clock
+close
+concat
+continue
+destroy
+dict
+encoding
+entry
+eof
+error
+eval
+event
+exec
+exit
+expr
+fblocked
+fconfigure
+fcopy
+file
+fileevent
+flush
+focus
+font
+for
+foreach
+format
+frame
+gets
+glob
+global
+grab
+grid
+if
+image
+incr
+info
+interp
+join
+label
+labelframe
+lappend
+lassign
+lindex
+linsert
+list
+listbox
+llength
+load
+lower
+lrange
+lrepeat
+lreplace
+lreverse
+lsearch
+lset
+lsort
+menu
+menubutton
+message
+namespace
+open
+option
+pack
+package
+panedwindow
+pid
+pkg_mkIndex
+place
+proc
+puts
+pwd
+radiobutton
+raise
+read
+regexp
+registry
+regsub
+rename
+return
+scale
+scan
+scrollbar
+seek
+selection
+set
+socket
+source
+spinbox
+split
+string
+subst
+switch
+tclLog
+tclPkgSetup
+tclPkgUnknown
+tcl_findLibrary
+tell
+text
+time
+tk
+tk_chooseColor
+tk_chooseDirectory
+tk_getOpenFile
+tk_getSaveFile
+tk_menuSetFocus
+tk_messageBox
+tk_popup
+tk_textCopy
+tk_textCut
+tk_textPaste
+tkwait
+toplevel
+ttk::button
+ttk::checkbutton
+ttk::combobox
+ttk::entry
+ttk::focusFirst
+ttk::frame
+ttk::label
+ttk::labelframe
+ttk::menubutton
+ttk::notebook
+ttk::paned
+ttk::panedwindow
+ttk::progressbar
+ttk::radiobutton
+ttk::scale
+ttk::scrollbar
+ttk::separator
+ttk::setTheme
+ttk::sizegrip
+ttk::style
+ttk::takefocus
+ttk::themes
+ttk::treeview
+trace
+unknown
+unload
+unset
+update
+uplevel
+upvar
+variable
+vwait
+while
+winfo
+wm
diff --git a/.emacs.d/auto-complete-config.el b/.emacs.d/auto-complete-config.el
new file mode 100644
index 0000000..26ec044
--- /dev/null
+++ b/.emacs.d/auto-complete-config.el
@@ -0,0 +1,480 @@
+;;; auto-complete-config.el --- auto-complete additional configuations
+
+;; Copyright (C) 2009, 2010 Tomohiro Matsuyama
+
+;; Author: Tomohiro Matsuyama <m2ym.pub@gmail.com>
+;; Keywords: convenience
+;; Version: 1.3
+
+;; 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
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;
+
+;;; Code:
+
+(eval-when-compile
+ (require 'cl))
+
+(require 'auto-complete)
+
+
+
+;;;; Additional sources
+
+;; imenu
+
+(defvar ac-imenu-index nil)
+
+(ac-clear-variable-every-10-minutes 'ac-imenu-index)
+
+(defun ac-imenu-candidates ()
+ (loop with i = 0
+ with stack = (progn
+ (unless (local-variable-p 'ac-imenu-index)
+ (make-local-variable 'ac-imenu-index))
+ (or ac-imenu-index
+ (setq ac-imenu-index
+ (ignore-errors
+ (with-no-warnings
+ (imenu--make-index-alist))))))
+ with result
+ while (and stack (or (not (integerp ac-limit))
+ (< i ac-limit)))
+ for node = (pop stack)
+ if (consp node)
+ do
+ (let ((car (car node))
+ (cdr (cdr node)))
+ (if (consp cdr)
+ (mapc (lambda (child)
+ (push child stack))
+ cdr)
+ (when (and (stringp car)
+ (string-match (concat "^" (regexp-quote ac-prefix)) car))
+ ;; Remove extra characters
+ (if (string-match "^.*\\(()\\|=\\|<>\\)$" car)
+ (setq car (substring car 0 (match-beginning 1))))
+ (push car result)
+ (incf i))))
+ finally return (nreverse result)))
+
+(ac-define-source imenu
+ '((depends imenu)
+ (candidates . ac-imenu-candidates)
+ (symbol . "s")))
+
+;; gtags
+
+(defface ac-gtags-candidate-face
+ '((t (:background "lightgray" :foreground "navy")))
+ "Face for gtags candidate"
+ :group 'auto-complete)
+
+(defface ac-gtags-selection-face
+ '((t (:background "navy" :foreground "white")))
+ "Face for the gtags selected candidate."
+ :group 'auto-complete)
+
+(defun ac-gtags-candidate ()
+ (ignore-errors
+ (split-string (shell-command-to-string (format "global -ci %s" ac-prefix)) "\n")))
+
+(ac-define-source gtags
+ '((candidates . ac-gtags-candidate)
+ (candidate-face . ac-gtags-candidate-face)
+ (selection-face . ac-gtags-selection-face)
+ (requires . 3)
+ (symbol . "s")))
+
+;; yasnippet
+
+(defface ac-yasnippet-candidate-face
+ '((t (:background "sandybrown" :foreground "black")))
+ "Face for yasnippet candidate."
+ :group 'auto-complete)
+
+(defface ac-yasnippet-selection-face
+ '((t (:background "coral3" :foreground "white")))
+ "Face for the yasnippet selected candidate."
+ :group 'auto-complete)
+
+(defun ac-yasnippet-table-hash (table)
+ (cond
+ ((fboundp 'yas/snippet-table-hash)
+ (yas/snippet-table-hash table))
+ ((fboundp 'yas/table-hash)
+ (yas/table-hash table))))
+
+(defun ac-yasnippet-table-parent (table)
+ (cond
+ ((fboundp 'yas/snippet-table-parent)
+ (yas/snippet-table-parent table))
+ ((fboundp 'yas/table-parent)
+ (yas/table-parent table))))
+
+(defun ac-yasnippet-candidate-1 (table)
+ (with-no-warnings
+ (let ((hashtab (ac-yasnippet-table-hash table))
+ (parent (ac-yasnippet-table-parent table))
+ candidates)
+ (maphash (lambda (key value)
+ (push key candidates))
+ hashtab)
+ (setq candidates (all-completions ac-prefix (nreverse candidates)))
+ (if parent
+ (setq candidates
+ (append candidates (ac-yasnippet-candidate-1 parent))))
+ candidates)))
+
+(defun ac-yasnippet-candidates ()
+ (with-no-warnings
+ (if (fboundp 'yas/get-snippet-tables)
+ ;; >0.6.0
+ (apply 'append (mapcar 'ac-yasnippet-candidate-1 (yas/get-snippet-tables major-mode)))
+ (let ((table
+ (if (fboundp 'yas/snippet-table)
+ ;; <0.6.0
+ (yas/snippet-table major-mode)
+ ;; 0.6.0
+ (yas/current-snippet-table))))
+ (if table
+ (ac-yasnippet-candidate-1 table))))))
+
+(ac-define-source yasnippet
+ '((depends yasnippet)
+ (candidates . ac-yasnippet-candidates)
+ (action . yas/expand)
+ (candidate-face . ac-yasnippet-candidate-face)
+ (selection-face . ac-yasnippet-selection-face)
+ (symbol . "a")))
+
+;; semantic
+
+(defun ac-semantic-candidates (prefix)
+ (with-no-warnings
+ (delete "" ; semantic sometimes returns an empty string
+ (mapcar 'semantic-tag-name
+ (ignore-errors
+ (or (semantic-analyze-possible-completions
+ (semantic-analyze-current-context))
+ (senator-find-tag-for-completion prefix)))))))
+
+(ac-define-source semantic
+ '((available . (or (require 'semantic-ia nil t)
+ (require 'semantic/ia nil t)))
+ (candidates . (ac-semantic-candidates ac-prefix))
+ (prefix . c-dot-ref)
+ (requires . 0)
+ (symbol . "m")))
+
+(ac-define-source semantic-raw
+ '((available . (or (require 'semantic-ia nil t)
+ (require 'semantic/ia nil t)))
+ (candidates . (ac-semantic-candidates ac-prefix))
+ (symbol . "s")))
+
+;; eclim
+
+(defun ac-eclim-candidates ()
+ (with-no-warnings
+ (loop for c in (eclim/java-complete)
+ collect (nth 1 c))))
+
+(ac-define-source eclim
+ '((candidates . ac-eclim-candidates)
+ (prefix . c-dot)
+ (requires . 0)
+ (symbol . "f")))
+
+;; css
+
+;; Copied from company-css.el
+(defconst ac-css-property-alist
+ ;; see http://www.w3.org/TR/CSS21/propidx.html
+ '(("azimuth" angle "left-side" "far-left" "left" "center-left" "center"
+ "center-right" "right" "far-right" "right-side" "behind" "leftwards"
+ "rightwards")
+ ("background" background-color background-image background-repeat
+ background-attachment background-position)
+ ("background-attachment" "scroll" "fixed")
+ ("background-color" color "transparent")
+ ("background-image" uri "none")
+ ("background-position" percentage length "left" "center" "right" percentage
+ length "top" "center" "bottom" "left" "center" "right" "top" "center"
+ "bottom")
+ ("background-repeat" "repeat" "repeat-x" "repeat-y" "no-repeat")
+ ("border" border-width border-style border-color)
+ ("border-bottom" border)
+ ("border-bottom-color" border-color)
+ ("border-bottom-style" border-style)
+ ("border-bottom-width" border-width)
+ ("border-collapse" "collapse" "separate")
+ ("border-color" color "transparent")
+ ("border-left" border)
+ ("border-left-color" border-color)
+ ("border-left-style" border-style)
+ ("border-left-width" border-width)
+ ("border-right" border)
+ ("border-right-color" border-color)
+ ("border-right-style" border-style)
+ ("border-right-width" border-width)
+ ("border-spacing" length length)
+ ("border-style" border-style)
+ ("border-top" border)
+ ("border-top-color" border-color)
+ ("border-top-style" border-style)
+ ("border-top-width" border-width)
+ ("border-width" border-width)
+ ("bottom" length percentage "auto")
+ ("caption-side" "top" "bottom")
+ ("clear" "none" "left" "right" "both")
+ ("clip" shape "auto")
+ ("color" color)
+ ("content" "normal" "none" string uri counter "attr()" "open-quote"
+ "close-quote" "no-open-quote" "no-close-quote")
+ ("counter-increment" identifier integer "none")
+ ("counter-reset" identifier integer "none")
+ ("cue" cue-before cue-after)
+ ("cue-after" uri "none")
+ ("cue-before" uri "none")
+ ("cursor" uri "*" "auto" "crosshair" "default" "pointer" "move" "e-resize"
+ "ne-resize" "nw-resize" "n-resize" "se-resize" "sw-resize" "s-resize"
+ "w-resize" "text" "wait" "help" "progress")
+ ("direction" "ltr" "rtl")
+ ("display" "inline" "block" "list-item" "run-in" "inline-block" "table"
+ "inline-table" "table-row-group" "table-header-group" "table-footer-group"
+ "table-row" "table-column-group" "table-column" "table-cell"
+ "table-caption" "none")
+ ("elevation" angle "below" "level" "above" "higher" "lower")
+ ("empty-cells" "show" "hide")
+ ("float" "left" "right" "none")
+ ("font" font-style font-variant font-weight font-size "/" line-height
+ font-family "caption" "icon" "menu" "message-box" "small-caption"
+ "status-bar")
+ ("font-family" family-name generic-family)
+ ("font-size" absolute-size relative-size length percentage)
+ ("font-style" "normal" "italic" "oblique")
+ ("font-variant" "normal" "small-caps")
+ ("font-weight" "normal" "bold" "bolder" "lighter" "100" "200" "300" "400"
+ "500" "600" "700" "800" "900")
+ ("height" length percentage "auto")
+ ("left" length percentage "auto")
+ ("letter-spacing" "normal" length)
+ ("line-height" "normal" number length percentage)
+ ("list-style" list-style-type list-style-position list-style-image)
+ ("list-style-image" uri "none")
+ ("list-style-position" "inside" "outside")
+ ("list-style-type" "disc" "circle" "square" "decimal" "decimal-leading-zero"
+ "lower-roman" "upper-roman" "lower-greek" "lower-latin" "upper-latin"
+ "armenian" "georgian" "lower-alpha" "upper-alpha" "none")
+ ("margin" margin-width)
+ ("margin-bottom" margin-width)
+ ("margin-left" margin-width)
+ ("margin-right" margin-width)
+ ("margin-top" margin-width)
+ ("max-height" length percentage "none")
+ ("max-width" length percentage "none")
+ ("min-height" length percentage)
+ ("min-width" length percentage)
+ ("orphans" integer)
+ ("outline" outline-color outline-style outline-width)
+ ("outline-color" color "invert")
+ ("outline-style" border-style)
+ ("outline-width" border-width)
+ ("overflow" "visible" "hidden" "scroll" "auto")
+ ("padding" padding-width)
+ ("padding-bottom" padding-width)
+ ("padding-left" padding-width)
+ ("padding-right" padding-width)
+ ("padding-top" padding-width)
+ ("page-break-after" "auto" "always" "avoid" "left" "right")
+ ("page-break-before" "auto" "always" "avoid" "left" "right")
+ ("page-break-inside" "avoid" "auto")
+ ("pause" time percentage)
+ ("pause-after" time percentage)
+ ("pause-before" time percentage)
+ ("pitch" frequency "x-low" "low" "medium" "high" "x-high")
+ ("pitch-range" number)
+ ("play-during" uri "mix" "repeat" "auto" "none")
+ ("position" "static" "relative" "absolute" "fixed")
+ ("quotes" string string "none")
+ ("richness" number)
+ ("right" length percentage "auto")
+ ("speak" "normal" "none" "spell-out")
+ ("speak-header" "once" "always")
+ ("speak-numeral" "digits" "continuous")
+ ("speak-punctuation" "code" "none")
+ ("speech-rate" number "x-slow" "slow" "medium" "fast" "x-fast" "faster"
+ "slower")
+ ("stress" number)
+ ("table-layout" "auto" "fixed")
+ ("text-align" "left" "right" "center" "justify")
+ ("text-decoration" "none" "underline" "overline" "line-through" "blink")
+ ("text-indent" length percentage)
+ ("text-transform" "capitalize" "uppercase" "lowercase" "none")
+ ("top" length percentage "auto")
+ ("unicode-bidi" "normal" "embed" "bidi-override")
+ ("vertical-align" "baseline" "sub" "super" "top" "text-top" "middle"
+ "bottom" "text-bottom" percentage length)
+ ("visibility" "visible" "hidden" "collapse")
+ ("voice-family" specific-voice generic-voice "*" specific-voice
+ generic-voice)
+ ("volume" number percentage "silent" "x-soft" "soft" "medium" "loud"
+ "x-loud")
+ ("white-space" "normal" "pre" "nowrap" "pre-wrap" "pre-line")
+ ("widows" integer)
+ ("width" length percentage "auto")
+ ("word-spacing" "normal" length)
+ ("z-index" "auto" integer))
+ "A list of CSS properties and their possible values.")
+
+(defconst ac-css-value-classes
+ '((absolute-size "xx-small" "x-small" "small" "medium" "large" "x-large"
+ "xx-large")
+ (border-style "none" "hidden" "dotted" "dashed" "solid" "double" "groove"
+ "ridge" "inset" "outset")
+ (color "aqua" "black" "blue" "fuchsia" "gray" "green" "lime" "maroon" "navy"
+ "olive" "orange" "purple" "red" "silver" "teal" "white" "yellow"
+ "rgb")
+ (counter "counter")
+ (family-name "Courier" "Helvetica" "Times")
+ (generic-family "serif" "sans-serif" "cursive" "fantasy" "monospace")
+ (generic-voice "male" "female" "child")
+ (margin-width "auto") ;; length percentage
+ (relative-size "larger" "smaller")
+ (shape "rect")
+ (uri "url"))
+ "A list of CSS property value classes and their contents.")
+
+(defconst ac-css-pseudo-classes
+ '("active" "after" "before" "first" "first-child" "first-letter" "first-line"
+ "focus" "hover" "lang" "left" "link" "right" "visited")
+ "Identifiers for CSS pseudo-elements and pseudo-classes.")
+
+(defvar ac-css-property nil
+ "Current editing property.")
+
+(defun ac-css-prefix ()
+ (when (save-excursion (re-search-backward "\\_<\\(.+?\\)\\_>\\s *:.*\\=" nil t))
+ (setq ac-css-property (match-string 1))
+ (or (ac-prefix-symbol) (point))))
+
+(defun ac-css-property-candidates ()
+ (or (loop with list = (assoc-default ac-css-property ac-css-property-alist)
+ with value
+ while (setq value (pop list))
+ if (symbolp value)
+ do (setq list
+ (append list
+ (or (assoc-default value ac-css-value-classes)
+ (assoc-default (symbol-name value) ac-css-property-alist))))
+ else collect value)
+ ac-css-pseudo-classes))
+
+(defvar ac-source-css-property
+ '((candidates . ac-css-property-candidates)
+ (prefix . ac-css-prefix)
+ (requires . 0)))
+
+
+
+;;;; Not maintained sources
+
+;; ropemacs
+
+(defvar ac-ropemacs-loaded nil)
+(defun ac-ropemacs-require ()
+ (with-no-warnings
+ (unless ac-ropemacs-loaded
+ (pymacs-load "ropemacs" "rope-")
+ (if (boundp 'ropemacs-enable-autoimport)
+ (setq ropemacs-enable-autoimport t))
+ (setq ac-ropemacs-loaded t))))
+
+(defun ac-ropemacs-setup ()
+ (ac-ropemacs-require)
+ ;(setq ac-sources (append (list 'ac-source-ropemacs) ac-sources))
+ (setq ac-omni-completion-sources '(("\\." ac-source-ropemacs))))
+
+(defun ac-ropemacs-initialize ()
+ (autoload 'pymacs-apply "pymacs")
+ (autoload 'pymacs-call "pymacs")
+ (autoload 'pymacs-eval "pymacs" nil t)
+ (autoload 'pymacs-exec "pymacs" nil t)
+ (autoload 'pymacs-load "pymacs" nil t)
+ (add-hook 'python-mode-hook 'ac-ropemacs-setup)
+ t)
+
+(defvar ac-ropemacs-completions-cache nil)
+(defvar ac-source-ropemacs
+ '((init
+ . (lambda ()
+ (setq ac-ropemacs-completions-cache
+ (mapcar
+ (lambda (completion)
+ (concat ac-prefix completion))
+ (ignore-errors
+ (rope-completions))))))
+ (candidates . ac-ropemacs-completions-cache)))
+
+;; rcodetools
+
+(defvar ac-source-rcodetools
+ '((init . (lambda ()
+ (require 'rcodetools)
+ (condition-case x
+ (save-excursion
+ (rct-exec-and-eval rct-complete-command-name "--completion-emacs-icicles"))
+ (error) (setq rct-method-completion-table nil))))
+ (candidates . (lambda ()
+ (all-completions
+ ac-prefix
+ (mapcar
+ (lambda (completion)
+ (replace-regexp-in-string "\t.*$" "" (car completion)))
+ rct-method-completion-table))))))
+
+
+
+;;;; Default settings
+
+(defun ac-common-setup ()
+ (add-to-list 'ac-sources 'ac-source-filename))
+
+(defun ac-emacs-lisp-mode-setup ()
+ (setq ac-sources (append '(ac-source-features ac-source-functions ac-source-yasnippet ac-source-variables ac-source-symbols) ac-sources)))
+
+(defun ac-cc-mode-setup ()
+ (setq ac-sources (append '(ac-source-yasnippet ac-source-gtags) ac-sources)))
+
+(defun ac-ruby-mode-setup ()
+ (make-local-variable 'ac-ignores)
+ (add-to-list 'ac-ignores "end"))
+
+(defun ac-css-mode-setup ()
+ (setq ac-sources (append '(ac-source-css-property) ac-sources)))
+
+(defun ac-config-default ()
+ (setq-default ac-sources '(ac-source-abbrev ac-source-dictionary ac-source-words-in-same-mode-buffers))
+ (add-hook 'emacs-lisp-mode-hook 'ac-emacs-lisp-mode-setup)
+ (add-hook 'c-mode-common-hook 'ac-cc-mode-setup)
+ (add-hook 'ruby-mode-hook 'ac-ruby-mode-setup)
+ (add-hook 'css-mode-hook 'ac-css-mode-setup)
+ (add-hook 'auto-complete-mode-hook 'ac-common-setup)
+ (global-auto-complete-mode t))
+
+(provide 'auto-complete-config)
+;;; auto-complete-config.el ends here
diff --git a/.emacs.d/auto-complete-config.elc b/.emacs.d/auto-complete-config.elc
new file mode 100644
index 0000000..2761c49
--- /dev/null
+++ b/.emacs.d/auto-complete-config.elc
Binary files differ
diff --git a/.emacs.d/auto-complete.el b/.emacs.d/auto-complete.el
new file mode 100644
index 0000000..2472dc7
--- /dev/null
+++ b/.emacs.d/auto-complete.el
@@ -0,0 +1,1897 @@
+;;; auto-complete.el --- Auto Completion for GNU Emacs
+
+;; Copyright (C) 2008, 2009, 2010 Tomohiro Matsuyama
+
+;; Author: Tomohiro Matsuyama <m2ym.pub@gmail.com>
+;; URL: http://cx4a.org/software/auto-complete
+;; Keywords: completion, convenience
+;; Version: 1.3
+
+;; 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
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+;;
+;; This extension provides a way to complete with popup menu like:
+;;
+;; def-!-
+;; +-----------------+
+;; |defun::::::::::::|
+;; |defvar |
+;; |defmacro |
+;; | ... |
+;; +-----------------+
+;;
+;; You can complete by typing and selecting menu.
+;;
+;; Entire documents are located in doc/ directory.
+;; Take a look for information.
+;;
+;; Enjoy!
+
+;;; Code:
+
+
+
+(eval-when-compile
+ (require 'cl))
+
+(require 'popup)
+
+;;;; Global stuff
+
+(defun ac-error (&optional var)
+ "Report an error and disable `auto-complete-mode'."
+ (ignore-errors
+ (message "auto-complete error: %s" var)
+ (auto-complete-mode -1)
+ var))
+
+
+
+;;;; Customization
+
+(defgroup auto-complete nil
+ "Auto completion."
+ :group 'completion
+ :prefix "ac-")
+
+(defcustom ac-delay 0.1
+ "Delay to completions will be available."
+ :type 'float
+ :group 'auto-complete)
+
+(defcustom ac-auto-show-menu 0.8
+ "Non-nil means completion menu will be automatically shown."
+ :type '(choice (const :tag "Yes" t)
+ (const :tag "Never" nil)
+ (float :tag "Timer"))
+ :group 'auto-complete)
+
+(defcustom ac-show-menu-immediately-on-auto-complete t
+ "Non-nil means menu will be showed immediately on `auto-complete'."
+ :type 'boolean
+ :group 'auto-complete)
+
+(defcustom ac-expand-on-auto-complete t
+ "Non-nil means expand whole common part on first time `auto-complete'."
+ :type 'boolean
+ :group 'auto-complete)
+
+(defcustom ac-disable-faces '(font-lock-comment-face font-lock-string-face font-lock-doc-face)
+ "Non-nil means disable automatic completion on specified faces."
+ :type '(repeat symbol)
+ :group 'auto-complete)
+
+(defcustom ac-stop-flymake-on-completing t
+ "Non-nil means disble flymake temporarily on completing."
+ :type 'boolean
+ :group 'auto-complete)
+
+(defcustom ac-use-fuzzy t
+ "Non-nil means use fuzzy matching."
+ :type 'boolean
+ :group 'auto-complete)
+
+(defcustom ac-fuzzy-cursor-color "red"
+ "Cursor color in fuzzy mode."
+ :type 'string
+ :group 'auto-complete)
+
+(defcustom ac-use-comphist t
+ "Non-nil means use intelligent completion history."
+ :type 'boolean
+ :group 'auto-complete)
+
+(defcustom ac-comphist-threshold 0.7
+ "Percentage of ignoring low scored candidates."
+ :type 'float
+ :group 'auto-complete)
+
+(defcustom ac-comphist-file
+ (expand-file-name (concat (if (boundp 'user-emacs-directory)
+ user-emacs-directory
+ "~/.emacs.d/")
+ "/ac-comphist.dat"))
+ "Completion history file name."
+ :type 'string
+ :group 'auto-complete)
+
+(defcustom ac-use-quick-help t
+ "Non-nil means use quick help."
+ :type 'boolean
+ :group 'auto-complete)
+
+(defcustom ac-quick-help-delay 1.5
+ "Delay to show quick help."
+ :type 'float
+ :group 'auto-complete)
+
+(defcustom ac-menu-height 10
+ "Max height of candidate menu."
+ :type 'integer
+ :group 'auto-complete)
+(defvaralias 'ac-candidate-menu-height 'ac-menu-height)
+
+(defcustom ac-quick-help-height 20
+ "Max height of quick help."
+ :type 'integer
+ :group 'auto-complete)
+
+(defcustom ac-quick-help-prefer-x t
+ "Prefer X tooltip than overlay popup for displaying quick help."
+ :type 'boolean
+ :group 'auto-complete)
+
+(defcustom ac-candidate-limit nil
+ "Limit number of candidates. Non-integer means no limit."
+ :type 'integer
+ :group 'auto-complete)
+(defvaralias 'ac-candidate-max 'ac-candidate-limit)
+
+(defcustom ac-modes
+ '(emacs-lisp-mode
+ lisp-interaction-mode
+ c-mode cc-mode c++-mode
+ java-mode clojure-mode scala-mode
+ scheme-mode
+ ocaml-mode tuareg-mode
+ perl-mode cperl-mode python-mode ruby-mode
+ ecmascript-mode javascript-mode js-mode js2-mode php-mode css-mode
+ makefile-mode sh-mode fortran-mode f90-mode ada-mode
+ xml-mode sgml-mode)
+ "Major modes `auto-complete-mode' can run on."
+ :type '(repeat symbol)
+ :group 'auto-complete)
+
+(defcustom ac-compatible-packages-regexp
+ "^ac-"
+ "Regexp to indicate what packages can work with auto-complete."
+ :type 'string
+ :group 'auto-complete)
+
+(defcustom ac-trigger-commands
+ '(self-insert-command)
+ "Trigger commands that specify whether `auto-complete' should start or not."
+ :type '(repeat symbol)
+ :group 'auto-complete)
+
+(defcustom ac-trigger-commands-on-completing
+ '(delete-backward-char
+ backward-delete-char
+ backward-delete-char-untabify)
+ "Trigger commands that specify whether `auto-complete' should continue or not."
+ :type '(repeat symbol)
+ :group 'auto-complete)
+
+(defcustom ac-trigger-key nil
+ "Non-nil means `auto-complete' will start by typing this key.
+If you specify this TAB, for example, `auto-complete' will start by typing TAB,
+and if there is no completions, an original command will be fallbacked."
+ :type 'string
+ :group 'auto-complete
+ :set (lambda (symbol value)
+ (set-default symbol value)
+ (when (and value
+ (fboundp 'ac-set-trigger-key))
+ (ac-set-trigger-key value))))
+
+(defcustom ac-auto-start 2
+ "Non-nil means completion will be started automatically.
+Positive integer means if a length of a word you entered is larger than the value,
+completion will be started automatically.
+If you specify `nil', never be started automatically."
+ :type '(choice (const :tag "Yes" t)
+ (const :tag "Never" nil)
+ (integer :tag "Require"))
+ :group 'auto-complete)
+
+(defcustom ac-ignores nil
+ "List of string to ignore completion."
+ :type '(repeat string)
+ :group 'auto-complete)
+
+(defcustom ac-ignore-case 'smart
+ "Non-nil means auto-complete ignores case.
+If this value is `smart', auto-complete ignores case only when
+a prefix doen't contain any upper case letters."
+ :type '(choice (const :tag "Yes" t)
+ (const :tag "Smart" smart)
+ (const :tag "No" nil))
+ :group 'auto-complete)
+
+(defcustom ac-dwim t
+ "Non-nil means `auto-complete' works based on Do What I Mean."
+ :type 'boolean
+ :group 'auto-complete)
+
+(defcustom ac-use-menu-map nil
+ "Non-nil means a special keymap `ac-menu-map' on completing menu will be used."
+ :type 'boolean
+ :group 'auto-complete)
+
+(defcustom ac-use-overriding-local-map nil
+ "Non-nil means `overriding-local-map' will be used to hack for overriding key events on auto-copletion."
+ :type 'boolean
+ :group 'auto-complete)
+
+(defface ac-completion-face
+ '((t (:foreground "darkgray" :underline t)))
+ "Face for inline completion"
+ :group 'auto-complete)
+
+(defface ac-candidate-face
+ '((t (:background "lightgray" :foreground "black")))
+ "Face for candidate."
+ :group 'auto-complete)
+
+(defface ac-selection-face
+ '((t (:background "steelblue" :foreground "white")))
+ "Face for selected candidate."
+ :group 'auto-complete)
+
+(defvar auto-complete-mode-hook nil
+ "Hook for `auto-complete-mode'.")
+
+
+
+;;;; Internal variables
+
+(defvar auto-complete-mode nil
+ "Dummy variable to suppress compiler warnings.")
+
+(defvar ac-cursor-color nil
+ "Old cursor color.")
+
+(defvar ac-inline nil
+ "Inline completion instance.")
+
+(defvar ac-menu nil
+ "Menu instance.")
+
+(defvar ac-show-menu nil
+ "Flag to show menu on timer tick.")
+
+(defvar ac-last-completion nil
+ "Cons of prefix marker and selected item of last completion.")
+
+(defvar ac-quick-help nil
+ "Quick help instance")
+
+(defvar ac-completing nil
+ "Non-nil means `auto-complete-mode' is now working on completion.")
+
+(defvar ac-buffer nil
+ "Buffer where auto-complete is started.")
+
+(defvar ac-point nil
+ "Start point of prefix.")
+
+(defvar ac-last-point nil
+ "Last point of updating pattern.")
+
+(defvar ac-prefix nil
+ "Prefix string.")
+(defvaralias 'ac-target 'ac-prefix)
+
+(defvar ac-selected-candidate nil
+ "Last selected candidate.")
+
+(defvar ac-common-part nil
+ "Common part string of meaningful candidates.
+If there is no common part, this will be nil.")
+
+(defvar ac-whole-common-part nil
+ "Common part string of whole candidates.
+If there is no common part, this will be nil.")
+
+(defvar ac-prefix-overlay nil
+ "Overlay for prefix string.")
+
+(defvar ac-timer nil
+ "Completion idle timer.")
+
+(defvar ac-show-menu-timer nil
+ "Show menu idle timer.")
+
+(defvar ac-quick-help-timer nil
+ "Quick help idle timer.")
+
+(defvar ac-triggered nil
+ "Flag to update.")
+
+(defvar ac-limit nil
+ "Limit number of candidates for each sources.")
+
+(defvar ac-candidates nil
+ "Current candidates.")
+
+(defvar ac-candidates-cache nil
+ "Candidates cache for individual sources.")
+
+(defvar ac-fuzzy-enable nil
+ "Non-nil means fuzzy matching is enabled.")
+
+(defvar ac-dwim-enable nil
+ "Non-nil means DWIM completion will be allowed.")
+
+(defvar ac-mode-map (make-sparse-keymap)
+ "Auto-complete mode map. It is also used for trigger key command. See also `ac-trigger-key'.")
+
+(defvar ac-completing-map
+ (let ((map (make-sparse-keymap)))
+ (define-key map "\t" 'ac-expand)
+ (define-key map "\r" 'ac-complete)
+ (define-key map (kbd "M-TAB") 'auto-complete)
+ (define-key map "\C-s" 'ac-isearch)
+
+ (define-key map "\M-n" 'ac-next)
+ (define-key map "\M-p" 'ac-previous)
+ (define-key map [down] 'ac-next)
+ (define-key map [up] 'ac-previous)
+
+ (define-key map [f1] 'ac-help)
+ (define-key map [M-f1] 'ac-persist-help)
+ (define-key map (kbd "C-?") 'ac-help)
+ (define-key map (kbd "C-M-?") 'ac-persist-help)
+
+ (define-key map [C-down] 'ac-quick-help-scroll-down)
+ (define-key map [C-up] 'ac-quick-help-scroll-up)
+ (define-key map "\C-\M-n" 'ac-quick-help-scroll-down)
+ (define-key map "\C-\M-p" 'ac-quick-help-scroll-up)
+
+ (dotimes (i 9)
+ (let ((symbol (intern (format "ac-complete-%d" (1+ i)))))
+ (fset symbol
+ `(lambda ()
+ (interactive)
+ (when (and (ac-menu-live-p) (popup-select ac-menu ,i))
+ (ac-complete))))
+ (define-key map (read-kbd-macro (format "M-%s" (1+ i))) symbol)))
+
+ map)
+ "Keymap for completion.")
+(defvaralias 'ac-complete-mode-map 'ac-completing-map)
+
+(defvar ac-menu-map
+ (let ((map (make-sparse-keymap)))
+ (define-key map "\C-n" 'ac-next)
+ (define-key map "\C-p" 'ac-previous)
+ (set-keymap-parent map ac-completing-map)
+ map)
+ "Keymap for completion on completing menu.")
+
+(defvar ac-current-map
+ (let ((map (make-sparse-keymap)))
+ (set-keymap-parent map ac-completing-map)
+ map))
+
+(defvar ac-match-function 'all-completions
+ "Default match function.")
+
+(defvar ac-prefix-definitions
+ '((symbol . ac-prefix-symbol)
+ (file . ac-prefix-file)
+ (valid-file . ac-prefix-valid-file)
+ (c-dot . ac-prefix-c-dot)
+ (c-dot-ref . ac-prefix-c-dot-ref))
+ "Prefix definitions for common use.")
+
+(defvar ac-sources '(ac-source-words-in-same-mode-buffers)
+ "Sources for completion.")
+(make-variable-buffer-local 'ac-sources)
+
+(defvar ac-compiled-sources nil
+ "Compiled source of `ac-sources'.")
+
+(defvar ac-current-sources nil
+ "Current working sources. This is sublist of `ac-compiled-sources'.")
+
+(defvar ac-omni-completion-sources nil
+ "Do not use this anymore.")
+
+(defvar ac-current-prefix-def nil)
+
+(defvar ac-ignoring-prefix-def nil)
+
+
+
+;;;; Intelligent completion history
+
+(defvar ac-comphist nil
+ "Database of completion history.")
+
+(defsubst ac-comphist-make-tab ()
+ (make-hash-table :test 'equal))
+
+(defsubst ac-comphist-tab (db)
+ (nth 0 db))
+
+(defsubst ac-comphist-cache (db)
+ (nth 1 db))
+
+(defun ac-comphist-make (&optional tab)
+ (list (or tab (ac-comphist-make-tab)) (make-hash-table :test 'equal :weakness t)))
+
+(defun ac-comphist-get (db string &optional create)
+ (let* ((tab (ac-comphist-tab db))
+ (index (gethash string tab)))
+ (when (and create (null index))
+ (setq index (make-vector (length string) 0))
+ (puthash string index tab))
+ index))
+
+(defun ac-comphist-add (db string prefix)
+ (setq prefix (min prefix (1- (length string))))
+ (when (<= 0 prefix)
+ (setq string (substring-no-properties string))
+ (let ((stat (ac-comphist-get db string t)))
+ (incf (aref stat prefix))
+ (remhash string (ac-comphist-cache db)))))
+
+(defun ac-comphist-score (db string prefix)
+ (setq prefix (min prefix (1- (length string))))
+ (if (<= 0 prefix)
+ (let ((cache (gethash string (ac-comphist-cache db))))
+ (or (and cache (aref cache prefix))
+ (let ((stat (ac-comphist-get db string))
+ (score 0.0))
+ (when stat
+ (loop for p from 0 below (length string)
+ ;; sigmoid function
+ with a = 5
+ with d = (/ 6.0 a)
+ for x = (- d (abs (- prefix p)))
+ for r = (/ 1.0 (1+ (exp (* (- a) x))))
+ do
+ (incf score (* (aref stat p) r))))
+ ;; Weight by distance
+ (incf score (max 0.0 (- 0.3 (/ (- (length string) prefix) 100.0))))
+ (unless cache
+ (setq cache (make-vector (length string) nil))
+ (puthash string cache (ac-comphist-cache db)))
+ (aset cache prefix score)
+ score)))
+ 0.0))
+
+(defun ac-comphist-sort (db collection prefix &optional threshold)
+ (let (result
+ (n 0)
+ (total 0)
+ (cur 0))
+ (setq result (mapcar (lambda (a)
+ (when (and cur threshold)
+ (if (>= cur (* total threshold))
+ (setq cur nil)
+ (incf n)
+ (incf cur (cdr a))))
+ (car a))
+ (sort (mapcar (lambda (string)
+ (let ((score (ac-comphist-score db string prefix)))
+ (incf total score)
+ (cons string score)))
+ collection)
+ (lambda (a b) (< (cdr b) (cdr a))))))
+ (if threshold
+ (cons n result)
+ result)))
+
+(defun ac-comphist-serialize (db)
+ (let (alist)
+ (maphash (lambda (k v)
+ (push (cons k v) alist))
+ (ac-comphist-tab db))
+ (list alist)))
+
+(defun ac-comphist-deserialize (sexp)
+ (condition-case nil
+ (ac-comphist-make (let ((tab (ac-comphist-make-tab)))
+ (mapc (lambda (cons)
+ (puthash (car cons) (cdr cons) tab))
+ (nth 0 sexp))
+ tab))
+ (error (message "Invalid comphist db.") nil)))
+
+(defun ac-comphist-init ()
+ (ac-comphist-load)
+ (add-hook 'kill-emacs-hook 'ac-comphist-save))
+
+(defun ac-comphist-load ()
+ (interactive)
+ (let ((db (if (file-exists-p ac-comphist-file)
+ (ignore-errors
+ (with-temp-buffer
+ (insert-file-contents ac-comphist-file)
+ (goto-char (point-min))
+ (ac-comphist-deserialize (read (current-buffer))))))))
+ (setq ac-comphist (or db (ac-comphist-make)))))
+
+(defun ac-comphist-save ()
+ (interactive)
+ (require 'pp)
+ (ignore-errors
+ (with-temp-buffer
+ (pp (ac-comphist-serialize ac-comphist) (current-buffer))
+ (write-region (point-min) (point-max) ac-comphist-file))))
+
+
+
+;;;; Auto completion internals
+
+(defun ac-menu-at-wrapper-line-p ()
+ "Return non-nil if current line is long and wrapped to next visual line."
+ (and (not truncate-lines)
+ (eq (line-beginning-position)
+ (save-excursion
+ (vertical-motion 1)
+ (line-beginning-position)))))
+
+(defun ac-prefix-symbol ()
+ "Default prefix definition function."
+ (require 'thingatpt)
+ (car-safe (bounds-of-thing-at-point 'symbol)))
+(defalias 'ac-prefix-default 'ac-prefix-symbol)
+
+(defun ac-prefix-file ()
+ "File prefix."
+ (let ((point (re-search-backward "[\"<>' \t\r\n]" nil t)))
+ (if point (1+ point))))
+
+(defun ac-prefix-valid-file ()
+ "Existed (or to be existed) file prefix."
+ (let* ((line-beg (line-beginning-position))
+ (end (point))
+ (start (or (let ((point (re-search-backward "[\"<>'= \t\r\n]" line-beg t)))
+ (if point (1+ point)))
+ line-beg))
+ (file (buffer-substring start end)))
+ (if (and file (or (string-match "^/" file)
+ (and (setq file (and (string-match "^[^/]*/" file)
+ (match-string 0 file)))
+ (file-directory-p file))))
+ start)))
+
+(defun ac-prefix-c-dot ()
+ "C-like languages dot(.) prefix."
+ (if (re-search-backward "\\.\\(\\(?:[a-zA-Z0-9][_a-zA-Z0-9]*\\)?\\)\\=" nil t)
+ (match-beginning 1)))
+
+(defun ac-prefix-c-dot-ref ()
+ "C-like languages dot(.) and reference(->) prefix."
+ (if (re-search-backward "\\(?:\\.\\|->\\)\\(\\(?:[a-zA-Z0-9][_a-zA-Z0-9]*\\)?\\)\\=" nil t)
+ (match-beginning 1)))
+
+(defun ac-define-prefix (name prefix)
+ "Define new prefix definition.
+You can not use it in source definition like (prefix . `NAME')."
+ (push (cons name prefix) ac-prefix-definitions))
+
+(defun ac-match-substring (prefix candidates)
+ (loop with regexp = (regexp-quote prefix)
+ for candidate in candidates
+ if (string-match regexp candidate)
+ collect candidate))
+
+(defsubst ac-source-entity (source)
+ (if (symbolp source)
+ (symbol-value source)
+ source))
+
+(defun ac-source-available-p (source)
+ (if (and (symbolp source)
+ (get source 'available))
+ (eq (get source 'available) t)
+ (let* ((src (ac-source-entity source))
+ (avail-pair (assq 'available src))
+ (avail-cond (cdr avail-pair))
+ (available (and (if avail-pair
+ (cond
+ ((symbolp avail-cond)
+ (funcall avail-cond))
+ ((listp avail-cond)
+ (eval avail-cond)))
+ t)
+ (loop for feature in (assoc-default 'depends src)
+ unless (require feature nil t) return nil
+ finally return t))))
+ (if (symbolp source)
+ (put source 'available (if available t 'no)))
+ available)))
+
+(defun ac-compile-sources (sources)
+ "Compiled `SOURCES' into expanded sources style."
+ (loop for source in sources
+ if (ac-source-available-p source)
+ do
+ (setq source (ac-source-entity source))
+ (flet ((add-attribute (name value &optional append) (add-to-list 'source (cons name value) append)))
+ ;; prefix
+ (let* ((prefix (assoc 'prefix source))
+ (real (assoc-default (cdr prefix) ac-prefix-definitions)))
+ (cond
+ (real
+ (add-attribute 'prefix real))
+ ((null prefix)
+ (add-attribute 'prefix 'ac-prefix-default))))
+ ;; match
+ (let ((match (assq 'match source)))
+ (cond
+ ((eq (cdr match) 'substring)
+ (setcdr match 'ac-match-substring)))))
+ and collect source))
+
+(defun ac-compiled-sources ()
+ (or ac-compiled-sources
+ (setq ac-compiled-sources
+ (ac-compile-sources ac-sources))))
+
+(defsubst ac-menu-live-p ()
+ (popup-live-p ac-menu))
+
+(defun ac-menu-create (point width height)
+ (setq ac-menu
+ (popup-create point width height
+ :around t
+ :face 'ac-candidate-face
+ :selection-face 'ac-selection-face
+ :symbol t
+ :scroll-bar t
+ :margin-left 1)))
+
+(defun ac-menu-delete ()
+ (when ac-menu
+ (popup-delete ac-menu)
+ (setq ac-menu)))
+
+(defsubst ac-inline-marker ()
+ (nth 0 ac-inline))
+
+(defsubst ac-inline-overlay ()
+ (nth 1 ac-inline))
+
+(defsubst ac-inline-live-p ()
+ (and ac-inline (ac-inline-overlay) t))
+
+(defun ac-inline-show (point string)
+ (unless ac-inline
+ (setq ac-inline (list (make-marker) nil)))
+ (save-excursion
+ (let ((overlay (ac-inline-overlay))
+ (width 0)
+ (string-width (string-width string))
+ (length 0)
+ (original-string string))
+ ;; Calculate string space to show completion
+ (goto-char point)
+ (let (c)
+ (while (and (not (eolp))
+ (< width string-width)
+ (setq c (char-after))
+ (not (eq c ?\t))) ; special case for tab
+ (incf width (char-width c))
+ (incf length)
+ (forward-char)))
+
+ ;; Show completion
+ (goto-char point)
+ (cond
+ ((= width 0)
+ (set-marker (ac-inline-marker) point)
+ (let ((buffer-undo-list t))
+ (insert " "))
+ (setq width 1
+ length 1))
+ ((<= width string-width)
+ ;; No space to show
+ ;; Do nothing
+ )
+ ((> width string-width)
+ ;; Need to fill space
+ (setq string (concat string (make-string (- width string-width) ? )))))
+ (setq string (propertize string 'face 'ac-completion-face))
+ (if overlay
+ (progn
+ (move-overlay overlay point (+ point length))
+ (overlay-put overlay 'invisible nil))
+ (setq overlay (make-overlay point (+ point length)))
+ (setf (nth 1 ac-inline) overlay)
+ (overlay-put overlay 'priority 9999)
+ ;; Help prefix-overlay in some cases
+ (overlay-put overlay 'keymap ac-current-map))
+ (overlay-put overlay 'display (substring string 0 1))
+ ;; TODO no width but char
+ (overlay-put overlay 'after-string (substring string 1))
+ (overlay-put overlay 'string original-string))))
+
+(defun ac-inline-delete ()
+ (when (ac-inline-live-p)
+ (ac-inline-hide)
+ (delete-overlay (ac-inline-overlay))
+ (setq ac-inline nil)))
+
+(defun ac-inline-hide ()
+ (when (ac-inline-live-p)
+ (let ((overlay (ac-inline-overlay))
+ (marker (ac-inline-marker))
+ (buffer-undo-list t))
+ (when overlay
+ (when (marker-position marker)
+ (save-excursion
+ (goto-char marker)
+ (delete-char 1)
+ (set-marker marker nil)))
+ (move-overlay overlay (point-min) (point-min))
+ (overlay-put overlay 'invisible t)
+ (overlay-put overlay 'display nil)
+ (overlay-put overlay 'after-string nil)))))
+
+(defun ac-inline-update ()
+ (if (and ac-completing ac-prefix (stringp ac-common-part))
+ (let ((common-part-length (length ac-common-part))
+ (prefix-length (length ac-prefix)))
+ (if (> common-part-length prefix-length)
+ (progn
+ (ac-inline-hide)
+ (ac-inline-show (point) (substring ac-common-part prefix-length)))
+ (ac-inline-delete)))
+ (ac-inline-delete)))
+
+(defun ac-put-prefix-overlay ()
+ (unless ac-prefix-overlay
+ (let (newline)
+ ;; Insert newline to make sure that cursor always on the overlay
+ (when (and (eq ac-point (point-max))
+ (eq ac-point (point)))
+ (popup-save-buffer-state
+ (insert "\n"))
+ (setq newline t))
+ (setq ac-prefix-overlay (make-overlay ac-point (1+ (point)) nil t t))
+ (overlay-put ac-prefix-overlay 'priority 9999)
+ (overlay-put ac-prefix-overlay 'keymap (make-sparse-keymap))
+ (overlay-put ac-prefix-overlay 'newline newline))))
+
+(defun ac-remove-prefix-overlay ()
+ (when ac-prefix-overlay
+ (when (overlay-get ac-prefix-overlay 'newline)
+ ;; Remove inserted newline
+ (popup-save-buffer-state
+ (goto-char (point-max))
+ (if (eq (char-before) ?\n)
+ (delete-char -1))))
+ (delete-overlay ac-prefix-overlay)))
+
+(defun ac-activate-completing-map ()
+ (if (and ac-show-menu ac-use-menu-map)
+ (set-keymap-parent ac-current-map ac-menu-map))
+ (when (and ac-use-overriding-local-map
+ (null overriding-terminal-local-map))
+ (setq overriding-terminal-local-map ac-current-map))
+ (when ac-prefix-overlay
+ (set-keymap-parent (overlay-get ac-prefix-overlay 'keymap) ac-current-map)))
+
+(defun ac-deactivate-completing-map ()
+ (set-keymap-parent ac-current-map ac-completing-map)
+ (when (and ac-use-overriding-local-map
+ (eq overriding-terminal-local-map ac-current-map))
+ (setq overriding-terminal-local-map nil))
+ (when ac-prefix-overlay
+ (set-keymap-parent (overlay-get ac-prefix-overlay 'keymap) nil)))
+
+(defsubst ac-selected-candidate ()
+ (if ac-menu
+ (popup-selected-item ac-menu)))
+
+(defun ac-prefix (requires ignore-list)
+ (loop with current = (point)
+ with point
+ with prefix-def
+ with sources
+ for source in (ac-compiled-sources)
+ for prefix = (assoc-default 'prefix source)
+ for req = (or (assoc-default 'requires source) requires 1)
+
+ if (null prefix-def)
+ do
+ (unless (member prefix ignore-list)
+ (save-excursion
+ (setq point (cond
+ ((symbolp prefix)
+ (funcall prefix))
+ ((stringp prefix)
+ (and (re-search-backward (concat prefix "\\=") nil t)
+ (or (match-beginning 1) (match-beginning 0))))
+ ((stringp (car-safe prefix))
+ (let ((regexp (nth 0 prefix))
+ (end (nth 1 prefix))
+ (group (nth 2 prefix)))
+ (and (re-search-backward (concat regexp "\\=") nil t)
+ (funcall (if end 'match-end 'match-beginning)
+ (or group 0)))))
+ (t
+ (eval prefix))))
+ (if (and point
+ (integerp req)
+ (< (- current point) req))
+ (setq point nil))
+ (if point
+ (setq prefix-def prefix))))
+
+ if (equal prefix prefix-def) do (push source sources)
+
+ finally return
+ (and point (list prefix-def point (nreverse sources)))))
+
+(defun ac-init ()
+ "Initialize current sources to start completion."
+ (setq ac-candidates-cache nil)
+ (loop for source in ac-current-sources
+ for function = (assoc-default 'init source)
+ if function do
+ (save-excursion
+ (cond
+ ((functionp function)
+ (funcall function))
+ (t
+ (eval function))))))
+
+(defun ac-candidates-1 (source)
+ (let* ((do-cache (assq 'cache source))
+ (function (assoc-default 'candidates source))
+ (action (assoc-default 'action source))
+ (document (assoc-default 'document source))
+ (symbol (assoc-default 'symbol source))
+ (ac-limit (or (assoc-default 'limit source) ac-limit))
+ (face (or (assoc-default 'face source) (assoc-default 'candidate-face source)))
+ (selection-face (assoc-default 'selection-face source))
+ (cache (and do-cache (assq source ac-candidates-cache)))
+ (candidates (cdr cache)))
+ (unless cache
+ (setq candidates (save-excursion
+ (cond
+ ((functionp function)
+ (funcall function))
+ (t
+ (eval function)))))
+ ;; Convert (name value) format candidates into name with text properties.
+ (setq candidates (mapcar (lambda (candidate)
+ (if (consp candidate)
+ (propertize (car candidate) 'value (cdr candidate))
+ candidate))
+ candidates))
+ (when do-cache
+ (push (cons source candidates) ac-candidates-cache)))
+ (setq candidates (funcall (or (assoc-default 'match source)
+ ac-match-function)
+ ac-prefix candidates))
+ ;; Remove extra items regarding to ac-limit
+ (if (and (integerp ac-limit) (> ac-limit 1) (> (length candidates) ac-limit))
+ (setcdr (nthcdr (1- ac-limit) candidates) nil))
+ ;; Put candidate properties
+ (setq candidates (mapcar (lambda (candidate)
+ (popup-item-propertize candidate
+ 'action action
+ 'symbol symbol
+ 'document document
+ 'popup-face face
+ 'selection-face selection-face))
+ candidates))
+ candidates))
+
+(defun ac-candidates ()
+ "Produce candidates for current sources."
+ (loop with completion-ignore-case = (or (eq ac-ignore-case t)
+ (and (eq ac-ignore-case 'smart)
+ (let ((case-fold-search nil)) (not (string-match "[[:upper:]]" ac-prefix)))))
+ with case-fold-search = completion-ignore-case
+ with prefix-len = (length ac-prefix)
+ for source in ac-current-sources
+ append (ac-candidates-1 source) into candidates
+ finally return
+ (progn
+ (delete-dups candidates)
+ (if (and ac-use-comphist ac-comphist)
+ (if ac-show-menu
+ (let* ((pair (ac-comphist-sort ac-comphist candidates prefix-len ac-comphist-threshold))
+ (n (car pair))
+ (result (cdr pair))
+ (cons (if (> n 0) (nthcdr (1- n) result)))
+ (cdr (cdr cons)))
+ (if cons (setcdr cons nil))
+ (setq ac-common-part (try-completion ac-prefix result))
+ (setq ac-whole-common-part (try-completion ac-prefix candidates))
+ (if cons (setcdr cons cdr))
+ result)
+ (setq candidates (ac-comphist-sort ac-comphist candidates prefix-len))
+ (setq ac-common-part (if candidates (popup-x-to-string (car candidates))))
+ (setq ac-whole-common-part (try-completion ac-prefix candidates))
+ candidates)
+ (setq ac-common-part (try-completion ac-prefix candidates))
+ (setq ac-whole-common-part ac-common-part)
+ candidates))))
+
+(defun ac-update-candidates (cursor scroll-top)
+ "Update candidates of menu to `ac-candidates' and redraw it."
+ (setf (popup-cursor ac-menu) cursor
+ (popup-scroll-top ac-menu) scroll-top)
+ (setq ac-dwim-enable (= (length ac-candidates) 1))
+ (if ac-candidates
+ (progn
+ (setq ac-completing t)
+ (ac-activate-completing-map))
+ (setq ac-completing nil)
+ (ac-deactivate-completing-map))
+ (ac-inline-update)
+ (popup-set-list ac-menu ac-candidates)
+ (if (and (not ac-fuzzy-enable)
+ (<= (length ac-candidates) 1))
+ (popup-hide ac-menu)
+ (if ac-show-menu
+ (popup-draw ac-menu))))
+
+(defun ac-reposition ()
+ "Force to redraw candidate menu with current `ac-candidates'."
+ (let ((cursor (popup-cursor ac-menu))
+ (scroll-top (popup-scroll-top ac-menu)))
+ (ac-menu-delete)
+ (ac-menu-create ac-point (popup-preferred-width ac-candidates) (popup-height ac-menu))
+ (ac-update-candidates cursor scroll-top)))
+
+(defun ac-cleanup ()
+ "Cleanup auto completion."
+ (if ac-cursor-color
+ (set-cursor-color ac-cursor-color))
+ (when (and ac-use-comphist ac-comphist)
+ (when (and (null ac-selected-candidate)
+ (member ac-prefix ac-candidates))
+ ;; Assume candidate is selected by just typing
+ (setq ac-selected-candidate ac-prefix)
+ (setq ac-last-point ac-point))
+ (when ac-selected-candidate
+ (ac-comphist-add ac-comphist
+ ac-selected-candidate
+ (if ac-last-point
+ (- ac-last-point ac-point)
+ (length ac-prefix)))))
+ (ac-deactivate-completing-map)
+ (ac-remove-prefix-overlay)
+ (ac-remove-quick-help)
+ (ac-inline-delete)
+ (ac-menu-delete)
+ (ac-cancel-timer)
+ (ac-cancel-show-menu-timer)
+ (ac-cancel-quick-help-timer)
+ (setq ac-cursor-color nil
+ ac-inline nil
+ ac-show-menu nil
+ ac-menu nil
+ ac-completing nil
+ ac-point nil
+ ac-last-point nil
+ ac-prefix nil
+ ac-prefix-overlay nil
+ ac-selected-candidate nil
+ ac-common-part nil
+ ac-whole-common-part nil
+ ac-triggered nil
+ ac-limit nil
+ ac-candidates nil
+ ac-candidates-cache nil
+ ac-fuzzy-enable nil
+ ac-dwim-enable nil
+ ac-compiled-sources nil
+ ac-current-sources nil
+ ac-current-prefix-def nil
+ ac-ignoring-prefix-def nil))
+
+(defsubst ac-abort ()
+ "Abort completion."
+ (ac-cleanup))
+
+(defun ac-expand-string (string &optional remove-undo-boundary)
+ "Expand `STRING' into the buffer and update `ac-prefix' to `STRING'.
+This function records deletion and insertion sequences by `undo-boundary'.
+If `remove-undo-boundary' is non-nil, this function also removes `undo-boundary'
+that have been made before in this function."
+ (when (not (equal string (buffer-substring ac-point (point))))
+ (undo-boundary)
+ ;; We can't use primitive-undo since it undoes by
+ ;; groups, divided by boundaries.
+ ;; We don't want boundary between deletion and insertion.
+ ;; So do it manually.
+ ;; Delete region silently for undo:
+ (if remove-undo-boundary
+ (progn
+ (let (buffer-undo-list)
+ (save-excursion
+ (delete-region ac-point (point))))
+ (setq buffer-undo-list
+ (nthcdr 2 buffer-undo-list)))
+ (delete-region ac-point (point)))
+ (insert string)
+ ;; Sometimes, possible when omni-completion used, (insert) added
+ ;; to buffer-undo-list strange record about position changes.
+ ;; Delete it here:
+ (when (and remove-undo-boundary
+ (integerp (cadr buffer-undo-list)))
+ (setcdr buffer-undo-list (nthcdr 2 buffer-undo-list)))
+ (undo-boundary)
+ (setq ac-selected-candidate string)
+ (setq ac-prefix string)))
+
+(defun ac-set-trigger-key (key)
+ "Set `ac-trigger-key' to `KEY'. It is recommemded to use this function instead of calling `setq'."
+ ;; Remove old mapping
+ (when ac-trigger-key
+ (define-key ac-mode-map (read-kbd-macro ac-trigger-key) nil))
+
+ ;; Make new mapping
+ (setq ac-trigger-key key)
+ (when key
+ (define-key ac-mode-map (read-kbd-macro key) 'ac-trigger-key-command)))
+
+(defun ac-set-timer ()
+ (unless ac-timer
+ (setq ac-timer (run-with-idle-timer ac-delay ac-delay 'ac-update-greedy))))
+
+(defun ac-cancel-timer ()
+ (when (timerp ac-timer)
+ (cancel-timer ac-timer)
+ (setq ac-timer nil)))
+
+(defun ac-update (&optional force)
+ (when (and auto-complete-mode
+ ac-prefix
+ (or ac-triggered
+ force)
+ (not isearch-mode))
+ (ac-put-prefix-overlay)
+ (setq ac-candidates (ac-candidates))
+ (let ((preferred-width (popup-preferred-width ac-candidates)))
+ ;; Reposition if needed
+ (when (or (null ac-menu)
+ (>= (popup-width ac-menu) preferred-width)
+ (<= (popup-width ac-menu) (- preferred-width 10))
+ (and (> (popup-direction ac-menu) 0)
+ (ac-menu-at-wrapper-line-p)))
+ (ac-inline-hide) ; Hide overlay to calculate correct column
+ (ac-menu-delete)
+ (ac-menu-create ac-point preferred-width ac-menu-height)))
+ (ac-update-candidates 0 0)
+ t))
+
+(defun ac-update-greedy (&optional force)
+ (let (result)
+ (while (when (and (setq result (ac-update force))
+ (null ac-candidates))
+ (add-to-list 'ac-ignoring-prefix-def ac-current-prefix-def)
+ (ac-start :force-init t)
+ ac-current-prefix-def))
+ result))
+
+(defun ac-set-show-menu-timer ()
+ (when (and (or (integerp ac-auto-show-menu) (floatp ac-auto-show-menu))
+ (null ac-show-menu-timer))
+ (setq ac-show-menu-timer (run-with-idle-timer ac-auto-show-menu ac-auto-show-menu 'ac-show-menu))))
+
+(defun ac-cancel-show-menu-timer ()
+ (when (timerp ac-show-menu-timer)
+ (cancel-timer ac-show-menu-timer)
+ (setq ac-show-menu-timer nil)))
+
+(defun ac-show-menu ()
+ (when (not (eq ac-show-menu t))
+ (setq ac-show-menu t)
+ (ac-inline-hide)
+ (ac-remove-quick-help)
+ (ac-update t)))
+
+(defun ac-help (&optional persist)
+ (interactive "P")
+ (when ac-menu
+ (popup-menu-show-help ac-menu persist)))
+
+(defun ac-persist-help ()
+ (interactive)
+ (ac-help t))
+
+(defun ac-last-help (&optional persist)
+ (interactive "P")
+ (when ac-last-completion
+ (popup-item-show-help (cdr ac-last-completion) persist)))
+
+(defun ac-last-persist-help ()
+ (interactive)
+ (ac-last-help t))
+
+(defun ac-set-quick-help-timer ()
+ (when (and ac-use-quick-help
+ (null ac-quick-help-timer))
+ (setq ac-quick-help-timer (run-with-idle-timer ac-quick-help-delay ac-quick-help-delay 'ac-quick-help))))
+
+(defun ac-cancel-quick-help-timer ()
+ (when (timerp ac-quick-help-timer)
+ (cancel-timer ac-quick-help-timer)
+ (setq ac-quick-help-timer nil)))
+
+(defun ac-pos-tip-show-quick-help (menu &optional item &rest args)
+ (let* ((point (plist-get args :point))
+ (around nil)
+ (parent-offset (popup-offset menu))
+ (doc (popup-menu-documentation menu item)))
+ (when (stringp doc)
+ (if (popup-hidden-p menu)
+ (setq around t)
+ (setq point nil))
+ (with-no-warnings
+ (pos-tip-show doc
+ 'popup-tip-face
+ (or point
+ (and menu
+ (popup-child-point menu parent-offset))
+ (point))
+ nil 0
+ popup-tip-max-width
+ nil nil
+ (and (not around) 0))
+ (unless (plist-get args :nowait)
+ (clear-this-command-keys)
+ (unwind-protect
+ (push (read-event (plist-get args :prompt)) unread-command-events)
+ (pos-tip-hide))
+ t)))))
+
+(defun ac-quick-help (&optional force)
+ (interactive)
+ (when (and (or force (null this-command))
+ (ac-menu-live-p)
+ (null ac-quick-help))
+ (setq ac-quick-help
+ (funcall (if (and ac-quick-help-prefer-x
+ (eq window-system 'x)
+ (featurep 'pos-tip))
+ 'ac-pos-tip-show-quick-help
+ 'popup-menu-show-quick-help)
+ ac-menu nil
+ :point ac-point
+ :height ac-quick-help-height
+ :nowait t))))
+
+(defun ac-remove-quick-help ()
+ (when ac-quick-help
+ (popup-delete ac-quick-help)
+ (setq ac-quick-help nil)))
+
+(defun ac-last-quick-help ()
+ (interactive)
+ (when (and ac-last-completion
+ (eq (marker-buffer (car ac-last-completion))
+ (current-buffer)))
+ (let ((doc (popup-item-documentation (cdr ac-last-completion)))
+ (point (marker-position (car ac-last-completion))))
+ (when (stringp doc)
+ (if (and ac-quick-help-prefer-x
+ (eq window-system 'x)
+ (featurep 'pos-tip))
+ (with-no-warnings (pos-tip-show doc nil point nil 0))
+ (popup-tip doc
+ :point point
+ :around t
+ :scroll-bar t
+ :margin t))))))
+
+(defmacro ac-define-quick-help-command (name arglist &rest body)
+ (declare (indent 2))
+ `(progn
+ (defun ,name ,arglist ,@body)
+ (put ',name 'ac-quick-help-command t)))
+
+(ac-define-quick-help-command ac-quick-help-scroll-down ()
+ (interactive)
+ (when ac-quick-help
+ (popup-scroll-down ac-quick-help)))
+
+(ac-define-quick-help-command ac-quick-help-scroll-up ()
+ (interactive)
+ (when ac-quick-help
+ (popup-scroll-up ac-quick-help)))
+
+
+
+;;;; Auto completion isearch
+
+(defun ac-isearch-callback (list)
+ (setq ac-dwim-enable (eq (length list) 1)))
+
+(defun ac-isearch ()
+ (interactive)
+ (when (ac-menu-live-p)
+ (ac-cancel-show-menu-timer)
+ (ac-cancel-quick-help-timer)
+ (ac-show-menu)
+ (popup-isearch ac-menu :callback 'ac-isearch-callback)))
+
+
+
+;;;; Auto completion commands
+
+(defun auto-complete (&optional sources)
+ "Start auto-completion at current point."
+ (interactive)
+ (let ((menu-live (ac-menu-live-p))
+ (inline-live (ac-inline-live-p)))
+ (ac-abort)
+ (let ((ac-sources (or sources ac-sources)))
+ (if (or ac-show-menu-immediately-on-auto-complete
+ inline-live)
+ (setq ac-show-menu t))
+ (ac-start))
+ (when (ac-update-greedy t)
+ ;; TODO Not to cause inline completion to be disrupted.
+ (if (ac-inline-live-p)
+ (ac-inline-hide))
+ ;; Not to expand when it is first time to complete
+ (when (and (or (and (not ac-expand-on-auto-complete)
+ (> (length ac-candidates) 1)
+ (not menu-live))
+ (not (let ((ac-common-part ac-whole-common-part))
+ (ac-expand-common))))
+ ac-use-fuzzy
+ (null ac-candidates))
+ (ac-fuzzy-complete)))))
+
+(defun ac-fuzzy-complete ()
+ "Start fuzzy completion at current point."
+ (interactive)
+ (when (require 'fuzzy nil)
+ (unless (ac-menu-live-p)
+ (ac-start))
+ (let ((ac-match-function 'fuzzy-all-completions))
+ (unless ac-cursor-color
+ (setq ac-cursor-color (frame-parameter (selected-frame) 'cursor-color)))
+ (if ac-fuzzy-cursor-color
+ (set-cursor-color ac-fuzzy-cursor-color))
+ (setq ac-show-menu t)
+ (setq ac-fuzzy-enable t)
+ (setq ac-triggered nil)
+ (ac-update t)))
+ t)
+
+(defun ac-next ()
+ "Select next candidate."
+ (interactive)
+ (when (ac-menu-live-p)
+ (popup-next ac-menu)
+ (setq ac-show-menu t)
+ (if (eq this-command 'ac-next)
+ (setq ac-dwim-enable t))))
+
+(defun ac-previous ()
+ "Select previous candidate."
+ (interactive)
+ (when (ac-menu-live-p)
+ (popup-previous ac-menu)
+ (setq ac-show-menu t)
+ (if (eq this-command 'ac-previous)
+ (setq ac-dwim-enable t))))
+
+(defun ac-expand ()
+ "Try expand, and if expanded twice, select next candidate."
+ (interactive)
+ (unless (ac-expand-common)
+ (let ((string (ac-selected-candidate)))
+ (when string
+ (when (equal ac-prefix string)
+ (ac-next)
+ (setq string (ac-selected-candidate)))
+ (ac-expand-string string (eq last-command this-command))
+ ;; Do reposition if menu at long line
+ (if (and (> (popup-direction ac-menu) 0)
+ (ac-menu-at-wrapper-line-p))
+ (ac-reposition))
+ (setq ac-show-menu t)
+ string))))
+
+(defun ac-expand-common ()
+ "Try to expand meaningful common part."
+ (interactive)
+ (if (and ac-dwim ac-dwim-enable)
+ (ac-complete)
+ (when (and (ac-inline-live-p)
+ ac-common-part)
+ (ac-inline-hide)
+ (ac-expand-string ac-common-part (eq last-command this-command))
+ (setq ac-common-part nil)
+ t)))
+
+(defun ac-complete ()
+ "Try complete."
+ (interactive)
+ (let* ((candidate (ac-selected-candidate))
+ (action (popup-item-property candidate 'action))
+ (fallback nil))
+ (when candidate
+ (unless (ac-expand-string candidate)
+ (setq fallback t))
+ ;; Remember to show help later
+ (when (and ac-point candidate)
+ (unless ac-last-completion
+ (setq ac-last-completion (cons (make-marker) nil)))
+ (set-marker (car ac-last-completion) ac-point ac-buffer)
+ (setcdr ac-last-completion candidate)))
+ (ac-abort)
+ (cond
+ (action
+ (funcall action))
+ (fallback
+ (ac-fallback-command)))
+ candidate))
+
+(defun* ac-start (&key
+ requires
+ force-init)
+ "Start completion."
+ (interactive)
+ (if (not auto-complete-mode)
+ (message "auto-complete-mode is not enabled")
+ (let* ((info (ac-prefix requires ac-ignoring-prefix-def))
+ (prefix-def (nth 0 info))
+ (point (nth 1 info))
+ (sources (nth 2 info))
+ prefix
+ (init (or force-init (not (eq ac-point point)))))
+ (if (or (null point)
+ (member (setq prefix (buffer-substring-no-properties point (point)))
+ ac-ignores))
+ (prog1 nil
+ (ac-abort))
+ (unless ac-cursor-color
+ (setq ac-cursor-color (frame-parameter (selected-frame) 'cursor-color)))
+ (setq ac-show-menu (or ac-show-menu (if (eq ac-auto-show-menu t) t))
+ ac-current-sources sources
+ ac-buffer (current-buffer)
+ ac-point point
+ ac-prefix prefix
+ ac-limit ac-candidate-limit
+ ac-triggered t
+ ac-current-prefix-def prefix-def)
+ (when (or init (null ac-prefix-overlay))
+ (ac-init))
+ (ac-set-timer)
+ (ac-set-show-menu-timer)
+ (ac-set-quick-help-timer)
+ (ac-put-prefix-overlay)))))
+
+(defun ac-stop ()
+ "Stop completiong."
+ (interactive)
+ (setq ac-selected-candidate nil)
+ (ac-abort))
+
+(defun ac-trigger-key-command (&optional force)
+ (interactive "P")
+ (if (or force (ac-trigger-command-p last-command))
+ (auto-complete)
+ (ac-fallback-command 'ac-trigger-key-command)))
+
+
+
+;;;; Basic cache facility
+
+(defvar ac-clear-variables-every-minute-timer nil)
+(defvar ac-clear-variables-after-save nil)
+(defvar ac-clear-variables-every-minute nil)
+(defvar ac-minutes-counter 0)
+
+(defun ac-clear-variable-after-save (variable &optional pred)
+ (add-to-list 'ac-clear-variables-after-save (cons variable pred)))
+
+(defun ac-clear-variables-after-save ()
+ (dolist (pair ac-clear-variables-after-save)
+ (if (or (null (cdr pair))
+ (funcall (cdr pair)))
+ (set (car pair) nil))))
+
+(defun ac-clear-variable-every-minutes (variable minutes)
+ (add-to-list 'ac-clear-variables-every-minute (cons variable minutes)))
+
+(defun ac-clear-variable-every-minute (variable)
+ (ac-clear-variable-every-minutes variable 1))
+
+(defun ac-clear-variable-every-10-minutes (variable)
+ (ac-clear-variable-every-minutes variable 10))
+
+(defun ac-clear-variables-every-minute ()
+ (incf ac-minutes-counter)
+ (dolist (pair ac-clear-variables-every-minute)
+ (if (eq (% ac-minutes-counter (cdr pair)) 0)
+ (set (car pair) nil))))
+
+
+
+;;;; Auto complete mode
+
+(defun ac-cursor-on-diable-face-p (&optional point)
+ (memq (get-text-property (or point (point)) 'face) ac-disable-faces))
+
+(defun ac-trigger-command-p (command)
+ "Return non-nil if `COMMAND' is a trigger command."
+ (and (symbolp command)
+ (or (memq command ac-trigger-commands)
+ (string-match "self-insert-command" (symbol-name command))
+ (string-match "electric" (symbol-name command)))))
+
+(defun ac-fallback-command (&optional except-command)
+ (let* ((auto-complete-mode nil)
+ (keys (this-command-keys-vector))
+ (command (if keys (key-binding keys))))
+ (when (and (commandp command)
+ (not (eq command except-command)))
+ (setq this-command command)
+ (call-interactively command))))
+
+(defun ac-compatible-package-command-p (command)
+ "Return non-nil if `COMMAND' is compatible with auto-complete."
+ (and (symbolp command)
+ (string-match ac-compatible-packages-regexp (symbol-name command))))
+
+(defun ac-handle-pre-command ()
+ (condition-case var
+ (if (or (setq ac-triggered (and (not ac-fuzzy-enable) ; ignore key storkes in fuzzy mode
+ (or (eq this-command 'auto-complete) ; special case
+ (ac-trigger-command-p this-command)
+ (and ac-completing
+ (memq this-command ac-trigger-commands-on-completing)))
+ (not (ac-cursor-on-diable-face-p))))
+ (ac-compatible-package-command-p this-command))
+ (progn
+ (if (or (not (symbolp this-command))
+ (not (get this-command 'ac-quick-help-command)))
+ (ac-remove-quick-help))
+ ;; Not to cause inline completion to be disrupted.
+ (ac-inline-hide))
+ (ac-abort))
+ (error (ac-error var))))
+
+(defun ac-handle-post-command ()
+ (condition-case var
+ (when (and ac-triggered
+ (or ac-auto-start
+ ac-completing)
+ (not isearch-mode))
+ (setq ac-last-point (point))
+ (ac-start :requires (unless ac-completing ac-auto-start))
+ (ac-inline-update))
+ (error (ac-error var))))
+
+(defun ac-setup ()
+ (if ac-trigger-key
+ (ac-set-trigger-key ac-trigger-key))
+ (if ac-use-comphist
+ (ac-comphist-init))
+ (unless ac-clear-variables-every-minute-timer
+ (setq ac-clear-variables-every-minute-timer (run-with-timer 60 60 'ac-clear-variables-every-minute)))
+ (if ac-stop-flymake-on-completing
+ (defadvice flymake-on-timer-event (around ac-flymake-stop-advice activate)
+ (unless ac-completing
+ ad-do-it))
+ (ad-disable-advice 'flymake-on-timer-event 'around 'ac-flymake-stop-advice)))
+
+(define-minor-mode auto-complete-mode
+ "AutoComplete mode"
+ :lighter " AC"
+ :keymap ac-mode-map
+ :group 'auto-complete
+ (if auto-complete-mode
+ (progn
+ (ac-setup)
+ (add-hook 'pre-command-hook 'ac-handle-pre-command nil t)
+ (add-hook 'post-command-hook 'ac-handle-post-command nil t)
+ (add-hook 'after-save-hook 'ac-clear-variables-after-save nil t)
+ (run-hooks 'auto-complete-mode-hook))
+ (remove-hook 'pre-command-hook 'ac-handle-pre-command t)
+ (remove-hook 'post-command-hook 'ac-handle-post-command t)
+ (remove-hook 'after-save-hook 'ac-clear-variables-after-save t)
+ (ac-abort)))
+
+(defun auto-complete-mode-maybe ()
+ "What buffer `auto-complete-mode' prefers."
+ (if (and (not (minibufferp (current-buffer)))
+ (memq major-mode ac-modes))
+ (auto-complete-mode 1)))
+
+(define-global-minor-mode global-auto-complete-mode
+ auto-complete-mode auto-complete-mode-maybe
+ :group 'auto-complete)
+
+
+
+;;;; Compatibilities with other extensions
+
+(defun ac-flyspell-workaround ()
+ "Flyspell uses `sit-for' for delaying its process. Unfortunatelly,
+it stops auto completion which is trigger with `run-with-idle-timer'.
+This workaround avoid flyspell processes when auto completion is being started."
+ (interactive)
+ (defadvice flyspell-post-command-hook (around ac-flyspell-workaround activate)
+ (unless ac-triggered
+ ad-do-it)))
+
+
+
+;;;; Standard sources
+
+(defmacro ac-define-source (name source)
+ "Source definition macro. It defines a complete command also."
+ (declare (indent 1))
+ `(progn
+ (defvar ,(intern (format "ac-source-%s" name))
+ ,source)
+ (defun ,(intern (format "ac-complete-%s" name)) ()
+ (interactive)
+ (auto-complete '(,(intern (format "ac-source-%s" name)))))))
+
+;; Words in buffer source
+(defvar ac-word-index nil)
+
+(defun ac-candidate-words-in-buffer (point prefix limit)
+ (let ((i 0)
+ candidate
+ candidates
+ (regexp (concat "\\_<" (regexp-quote prefix) "\\(\\sw\\|\\s_\\)+\\_>")))
+ (save-excursion
+ ;; Search backward
+ (goto-char point)
+ (while (and (or (not (integerp limit)) (< i limit))
+ (re-search-backward regexp nil t))
+ (setq candidate (match-string-no-properties 0))
+ (unless (member candidate candidates)
+ (push candidate candidates)
+ (incf i)))
+ ;; Search backward
+ (goto-char (+ point (length prefix)))
+ (while (and (or (not (integerp limit)) (< i limit))
+ (re-search-forward regexp nil t))
+ (setq candidate (match-string-no-properties 0))
+ (unless (member candidate candidates)
+ (push candidate candidates)
+ (incf i)))
+ (nreverse candidates))))
+
+(defun ac-incremental-update-word-index ()
+ (unless (local-variable-p 'ac-word-index)
+ (make-local-variable 'ac-word-index))
+ (if (null ac-word-index)
+ (setq ac-word-index (cons nil nil)))
+ ;; Mark incomplete
+ (if (car ac-word-index)
+ (setcar ac-word-index nil))
+ (let ((index (cdr ac-word-index))
+ (words (ac-candidate-words-in-buffer ac-point ac-prefix (or (and (integerp ac-limit) ac-limit) 10))))
+ (dolist (word words)
+ (unless (member word index)
+ (push word index)
+ (setcdr ac-word-index index)))))
+
+(defun ac-update-word-index-1 ()
+ (unless (local-variable-p 'ac-word-index)
+ (make-local-variable 'ac-word-index))
+ (when (and (not (car ac-word-index))
+ (< (buffer-size) 1048576))
+ ;; Complete index
+ (setq ac-word-index
+ (cons t
+ (split-string (buffer-substring-no-properties (point-min) (point-max))
+ "\\(?:^\\|\\_>\\).*?\\(?:\\_<\\|$\\)")))))
+
+(defun ac-update-word-index ()
+ (dolist (buffer (buffer-list))
+ (when (or ac-fuzzy-enable
+ (not (eq buffer (current-buffer))))
+ (with-current-buffer buffer
+ (ac-update-word-index-1)))))
+
+(defun ac-word-candidates (&optional buffer-pred)
+ (loop initially (unless ac-fuzzy-enable (ac-incremental-update-word-index))
+ for buffer in (buffer-list)
+ if (and (or (not (integerp ac-limit)) (< (length candidates) ac-limit))
+ (if buffer-pred (funcall buffer-pred buffer) t))
+ append (funcall ac-match-function
+ ac-prefix
+ (and (local-variable-p 'ac-word-index buffer)
+ (cdr (buffer-local-value 'ac-word-index buffer))))
+ into candidates
+ finally return candidates))
+
+(ac-define-source words-in-buffer
+ '((candidates . ac-word-candidates)))
+
+(ac-define-source words-in-all-buffer
+ '((init . ac-update-word-index)
+ (candidates . ac-word-candidates)))
+
+(ac-define-source words-in-same-mode-buffers
+ '((init . ac-update-word-index)
+ (candidates . (ac-word-candidates
+ (lambda (buffer)
+ (derived-mode-p (buffer-local-value 'major-mode buffer)))))))
+
+;; Lisp symbols source
+(defvar ac-symbols-cache nil)
+(ac-clear-variable-every-10-minutes 'ac-symbols-cache)
+
+(defun ac-symbol-file (symbol type)
+ (if (fboundp 'find-lisp-object-file-name)
+ (find-lisp-object-file-name symbol type)
+ (let ((file-name (with-no-warnings
+ (describe-simplify-lib-file-name
+ (symbol-file symbol type)))))
+ (when (equal file-name "loaddefs.el")
+ ;; Find the real def site of the preloaded object.
+ (let ((location (condition-case nil
+ (if (eq type 'defun)
+ (find-function-search-for-symbol symbol nil
+ "loaddefs.el")
+ (find-variable-noselect symbol file-name))
+ (error nil))))
+ (when location
+ (with-current-buffer (car location)
+ (when (cdr location)
+ (goto-char (cdr location)))
+ (when (re-search-backward
+ "^;;; Generated autoloads from \\(.*\\)" nil t)
+ (setq file-name (match-string 1)))))))
+ (if (and (null file-name)
+ (or (eq type 'defun)
+ (integerp (get symbol 'variable-documentation))))
+ ;; It's a object not defined in Elisp but in C.
+ (if (get-buffer " *DOC*")
+ (if (eq type 'defun)
+ (help-C-file-name (symbol-function symbol) 'subr)
+ (help-C-file-name symbol 'var))
+ 'C-source)
+ file-name))))
+
+(defun ac-symbol-documentation (symbol)
+ (if (stringp symbol)
+ (setq symbol (intern-soft symbol)))
+ (ignore-errors
+ (with-temp-buffer
+ (let ((standard-output (current-buffer)))
+ (prin1 symbol)
+ (princ " is ")
+ (cond
+ ((fboundp symbol)
+ (let ((help-xref-following t))
+ (describe-function-1 symbol))
+ (buffer-string))
+ ((boundp symbol)
+ (let ((file-name (ac-symbol-file symbol 'defvar)))
+ (princ "a variable")
+ (when file-name
+ (princ " defined in `")
+ (princ (if (eq file-name 'C-source)
+ "C source code"
+ (file-name-nondirectory file-name))))
+ (princ "'.\n\n")
+ (princ (or (documentation-property symbol 'variable-documentation t)
+ "Not documented."))
+ (buffer-string)))
+ ((facep symbol)
+ (let ((file-name (ac-symbol-file symbol 'defface)))
+ (princ "a face")
+ (when file-name
+ (princ " defined in `")
+ (princ (if (eq file-name 'C-source)
+ "C source code"
+ (file-name-nondirectory file-name))))
+ (princ "'.\n\n")
+ (princ (or (documentation-property symbol 'face-documentation t)
+ "Not documented."))
+ (buffer-string)))
+ (t
+ (let ((doc (documentation-property symbol 'group-documentation t)))
+ (when doc
+ (princ "a group.\n\n")
+ (princ doc)
+ (buffer-string)))))))))
+
+(defun ac-symbol-candidates ()
+ (or ac-symbols-cache
+ (setq ac-symbols-cache
+ (loop for x being the symbols
+ if (or (fboundp x)
+ (boundp x)
+ (symbol-plist x))
+ collect (symbol-name x)))))
+
+(ac-define-source symbols
+ '((candidates . ac-symbol-candidates)
+ (document . ac-symbol-documentation)
+ (symbol . "s")
+ (cache)))
+
+;; Lisp functions source
+(defvar ac-functions-cache nil)
+(ac-clear-variable-every-10-minutes 'ac-functions-cache)
+
+(defun ac-function-candidates ()
+ (or ac-functions-cache
+ (setq ac-functions-cache
+ (loop for x being the symbols
+ if (fboundp x)
+ collect (symbol-name x)))))
+
+(ac-define-source functions
+ '((candidates . ac-function-candidates)
+ (document . ac-symbol-documentation)
+ (symbol . "f")
+ (prefix . "(\\(\\(?:\\sw\\|\\s_\\)+\\)")
+ (cache)))
+
+;; Lisp variables source
+(defvar ac-variables-cache nil)
+(ac-clear-variable-every-10-minutes 'ac-variables-cache)
+
+(defun ac-variable-candidates ()
+ (or ac-variables-cache
+ (setq ac-variables-cache
+ (loop for x being the symbols
+ if (boundp x)
+ collect (symbol-name x)))))
+
+(ac-define-source variables
+ '((candidates . ac-variable-candidates)
+ (document . ac-symbol-documentation)
+ (symbol . "v")
+ (cache)))
+
+;; Lisp features source
+(defvar ac-emacs-lisp-features nil)
+(ac-clear-variable-every-10-minutes 'ac-emacs-lisp-features)
+
+(defun ac-emacs-lisp-feature-candidates ()
+ (or ac-emacs-lisp-features
+ (if (fboundp 'find-library-suffixes)
+ (let ((suffix (concat (regexp-opt (find-library-suffixes) t) "\\'")))
+ (setq ac-emacs-lisp-features
+ (append (mapcar 'prin1-to-string features)
+ (loop for dir in load-path
+ if (file-directory-p dir)
+ append (loop for file in (directory-files dir)
+ if (string-match suffix file)
+ collect (substring file 0 (match-beginning 0))))))))))
+
+(ac-define-source features
+ '((depends find-func)
+ (candidates . ac-emacs-lisp-feature-candidates)
+ (prefix . "require +'\\(\\(?:\\sw\\|\\s_\\)*\\)")
+ (requires . 0)))
+
+(defvaralias 'ac-source-emacs-lisp-features 'ac-source-features)
+
+;; Abbrev source
+(ac-define-source abbrev
+ '((candidates . (mapcar 'popup-x-to-string (append (vconcat local-abbrev-table global-abbrev-table) nil)))
+ (action . expand-abbrev)
+ (symbol . "a")
+ (cache)))
+
+;; Files in current directory source
+(ac-define-source files-in-current-dir
+ '((candidates . (directory-files default-directory))
+ (cache)))
+
+;; Filename source
+(defvar ac-filename-cache nil)
+
+(defun ac-filename-candidate ()
+ (unless (file-regular-p ac-prefix)
+ (ignore-errors
+ (loop with dir = (file-name-directory ac-prefix)
+ with files = (or (assoc-default dir ac-filename-cache)
+ (let ((files (directory-files dir nil "^[^.]")))
+ (push (cons dir files) ac-filename-cache)
+ files))
+ for file in files
+ for path = (concat dir file)
+ collect (if (file-directory-p path)
+ (concat path "/")
+ path)))))
+
+(ac-define-source filename
+ '((init . (setq ac-filename-cache nil))
+ (candidates . ac-filename-candidate)
+ (prefix . valid-file)
+ (requires . 0)
+ (action . ac-start)
+ (limit . nil)))
+
+;; Dictionary source
+(defcustom ac-user-dictionary nil
+ "User dictionary"
+ :type '(repeat string)
+ :group 'auto-complete)
+
+(defcustom ac-user-dictionary-files '("~/.dict")
+ "User dictionary files."
+ :type '(repeat string)
+ :group 'auto-complete)
+
+(defcustom ac-dictionary-directories nil
+ "Dictionary directories."
+ :type '(repeat string)
+ :group 'auto-complete)
+
+(defvar ac-dictionary nil)
+(defvar ac-dictionary-cache (make-hash-table :test 'equal))
+
+(defun ac-clear-dictionary-cache ()
+ (interactive)
+ (clrhash ac-dictionary-cache))
+
+(defun ac-read-file-dictionary (filename)
+ (let ((cache (gethash filename ac-dictionary-cache 'none)))
+ (if (and cache (not (eq cache 'none)))
+ cache
+ (let (result)
+ (ignore-errors
+ (with-temp-buffer
+ (insert-file-contents filename)
+ (setq result (split-string (buffer-string) "\n"))))
+ (puthash filename result ac-dictionary-cache)
+ result))))
+
+(defun ac-buffer-dictionary ()
+ (apply 'append
+ (mapcar 'ac-read-file-dictionary
+ (mapcar (lambda (name)
+ (loop for dir in ac-dictionary-directories
+ for file = (concat dir "/" name)
+ if (file-exists-p file)
+ return file))
+ (list (symbol-name major-mode)
+ (ignore-errors
+ (file-name-extension (buffer-file-name))))))))
+
+(defun ac-dictionary-candidates ()
+ (apply 'append `(,ac-user-dictionary
+ ,(ac-buffer-dictionary)
+ ,@(mapcar 'ac-read-file-dictionary
+ ac-user-dictionary-files))))
+
+(ac-define-source dictionary
+ '((candidates . ac-dictionary-candidates)
+ (symbol . "d")))
+
+(provide 'auto-complete)
+;;; auto-complete.el ends here
diff --git a/.emacs.d/auto-complete.elc b/.emacs.d/auto-complete.elc
new file mode 100644
index 0000000..4b0e44d
--- /dev/null
+++ b/.emacs.d/auto-complete.elc
Binary files differ
diff --git a/.emacs.d/batch-mode.el b/.emacs.d/batch-mode.el
new file mode 100644
index 0000000..dcc156a
--- /dev/null
+++ b/.emacs.d/batch-mode.el
@@ -0,0 +1,156 @@
+;;; batch-mode.el --- major mode for editing ESRI batch scrips
+;;; Copyright (C) 2002, Agnar Renolen <agnar.renolen@emap.no>
+;;; Modified (c) 2009, Matthew Fidler <matthew.fidler at gmail.com>
+;;; Fixed indents (and labels)
+
+;; batch-mode.el is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+;; This is version 1.0 of 21 August 2002.
+
+;;; Comentary:
+
+;; The batch-mode provides syntax hilighting and auto-indentation for
+;; DOS batch files (.bat). and auto-idendation.
+
+;; Agnar Renolen, <agnar.renolen@emap.no>
+
+;;; Code:
+
+(defgroup batch nil
+ "Major mode for editing batch code"
+ :prefix "batch-"
+ :group 'languages)
+
+; (defvar batch-mode-hook nil
+; "Hooks called when batch mode fires up."
+; :type 'hook
+; :group 'batch)
+
+(defvar batch-mode-map nil
+ "Keymap used with batch code")
+
+(defcustom batch-indent-level 4
+ "Amount by which batch subexpressions are indented."
+ :type 'integer
+ :group 'batch)
+
+(defvar batch-font-lock-keywords
+ (eval-when-compile
+ (list
+ ; since we can't specify batch comments through the syntax table,
+ ; we have to specify it here, and override whatever is highlighted
+ '( "^[ \t]*rem\\>.*" (0 font-lock-comment-face t))
+
+ ; since the argument to the echo command is a string, we format it
+ ; as a string
+ '( "\\<echo\\>[ \t]*\\(.*\\)" (1 font-lock-string-face t))
+
+ ; the argument of the goto statement is a label
+ '( "\\<goto\\>[ \t]*\\([a-zA-Z0-9_]+\\)" (1
+ font-lock-constant-face))
+
+ ; the keywords of batch (which are not built-in commands)
+ (concat "\\<\\(cmdextversion\\|"
+ "d\\(efined\\|isableextensions\\|o\\)\\|"
+ "e\\(lse\\|n\\(ableextensions\\|dlocal\\)"
+ "\\|qu\\|rrorlevel\\|xist\\)\\|for\\|"
+ "goto\\|i[fn]\\|n\\(eq\\|ot\\)\\|setlocal\\)\\>")
+
+ ; built-in DOS commands
+ (cons (concat "\\<\\(a\\(ssoc\\|t\\(\\|trib\\)\\)\\|break\\|"
+ "c\\(a\\(cls\\|ll\\)\\|d\\|h\\(cp\\|dir\\|k\\("
+ "dsk\\|ntfs\\)\\)\\|ls\\|md\\|o\\(lor\\|mp\\(\\|act\\)"
+ "\\|nvert\\|py\\)\\)\\|d\\(ate\\|el\\|i\\("
+ "r\\|skco\\(mp\\|py\\)\\)\\|oskey\\)\\|"
+ "e\\(cho\\|rase\\|xit\\)\\|"
+ "f\\(c\\|ind\\(\\|str\\)\\|for\\(\\|mot\\)\\|type\\)\\|"
+ "graftabl\\|help\\|label\\|"
+ "m\\(d\\|mkdir\\|o[dvr]e\\)\\|p\\(a\\(th\\|use\\)"
+ "\\|opd\\|r\\(int\\|opmt\\)\\|ushd\\)\\|"
+ "r\\(d\\|e\\(cover\\|n\\(\\|ame\\)\\|place\\)\\|mdir\\)\\|"
+ "s\\(et\\|hift\\|ort\\|tart\\|ubst\\)\\|"
+ "t\\(i\\(me\\|tle\\)\\|ree\\|ype\\)\\|"
+ "v\\(er\\(\\|ify\\)\\|ol\\)\\|xcopy\\)\\>")
+ 'font-lock-builtin-face)
+
+ ; variables are embeded in percent chars
+ '( "%[a-zA-Z0-9_]+%?" . font-lock-variable-name-face)
+ ; labels are formatted as constants
+ '( ":[a-zA-Z0-9_]+" . font-lock-constant-face)
+
+ ; command line switches are hilighted as type-face
+ '( "[-/][a-zA-Z0-9_]+" . font-lock-type-face)
+
+ ; variables set should also be hilighted with variable-name-face
+ '( "\\<set\\>[ \t]*\\([a-zA-Z0-9_]+\\)" (1 font-lock-variable-name-face))
+ )))
+
+
+;;;###autoload
+(defun batch-mode ()
+ "Major mode for editing batch scripts."
+ (interactive)
+ (kill-all-local-variables)
+ (setq major-mode 'batch-mode)
+ (setq mode-name "Avenue")
+ (set (make-local-variable 'indent-line-function) 'batch-indent-line)
+ (set (make-local-variable 'comment-start) "rem")
+ (set (make-local-variable 'comment-start-skip) "rem[ \t]*")
+ (set (make-local-variable 'font-lock-defaults)
+ '(batch-font-lock-keywords nil t nil))
+ (run-hooks 'batch-mode-hook))
+
+(defun batch-indent-line ()
+ "Indent current line as batch script"
+ (let ((indent (batch-calculate-indent))
+ beg shift-amt
+ (old-pos (- (point-max) (point))))
+ (beginning-of-line)
+ (setq beg (point))
+ (skip-chars-forward " \t")
+ (if (looking-at ")")
+ (setq indent (max (- indent batch-indent-level))))
+ (message "prev indent: %d" indent)
+ (setq shift-amt (- indent (current-column)))
+ (if (not (zerop shift-amt))
+ (progn
+ (delete-region beg (point))
+ ; ArcView replaces tabs with single spaces, so we only insert
+ ; spaces to make indentation correct in ArcView.
+ (insert-char ? indent)
+ (if (> (- (point-max) old-pos) (point))
+ (goto-char (- (point-max) old-pos)))))
+ shift-amt))
+
+(defun batch-calculate-indent ()
+ "Return appropriate indentation for the current line as batch code."
+ (save-excursion
+ (beginning-of-line)
+ (current-indentation)
+ (if (bobp)
+ 0
+ (if (re-search-backward "^[ \t]*[^ \t\n\r]" nil t)
+ (if (looking-at "[ \t]*\\()[ \t]*else\\|for\\|if\\)\\>[^(\n]*([^)\n]*")
+ (+ (current-indentation) batch-indent-level)
+ (if (looking-at "[ \t]*[^(]*)[ \t]*")
+ (- (current-indentation) batch-indent-level)
+ (current-indentation)))
+ 0))))
+
+(add-to-list 'auto-mode-alist '("\\.bat\\'" . batch-mode))
+
+(provide 'batch-mode)
+
+;;; batch-mode.el ends here
diff --git a/.emacs.d/color-theme.el b/.emacs.d/color-theme.el
new file mode 100644
index 0000000..c92c1a5
--- /dev/null
+++ b/.emacs.d/color-theme.el
@@ -0,0 +1,1668 @@
+;;; color-theme.el --- install color themes
+
+;; Copyright (C) 1999, 2000 Jonadab the Unsightly One <jonadab@bright.net>
+;; Copyright (C) 2000, 2001, 2002, 2003 Alex Schroeder <alex@gnu.org>
+;; Copyright (C) 2003, 2004, 2005, 2006 Xavier Maillard <zedek@gnu.org>
+
+;; Version: 6.6.0
+;; Keywords: faces
+;; Author: Jonadab the Unsightly One <jonadab@bright.net>
+;; Maintainer: Xavier Maillard <zedek@gnu.org>
+;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ColorTheme
+
+;; This file is not (YET) part of GNU Emacs.
+
+;; This is free software; you can redistribute it and/or modify it under
+;; the terms of the GNU General Public License as published by the Free
+;; Software Foundation; either version 2, or (at your option) any later
+;; version.
+;;
+;; This is distributed in the hope that it will be useful, but WITHOUT
+;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+;; for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING. If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+;; MA 02111-1307, USA.
+
+;;; Commentary:
+
+;; Please read README and BUGS files for any relevant help.
+;; Contributors (not themers) should also read HACKING file.
+
+;;; Thanks
+
+;; Deepak Goel <deego@glue.umd.edu>
+;; S. Pokrovsky <pok@nbsp.nsk.su> for ideas and discussion.
+;; Gordon Messmer <gordon@dragonsdawn.net> for ideas and discussion.
+;; Sriram Karra <karra@cs.utah.edu> for the color-theme-submit stuff.
+;; Olgierd `Kingsajz' Ziolko <kingsajz@rpg.pl> for the spec-filter idea.
+;; Brian Palmer for color-theme-library ideas and code
+;; All the users that contributed their color themes.
+
+
+
+;;; Code:
+(eval-when-compile
+ (require 'easymenu)
+ (require 'reporter)
+ (require 'sendmail))
+
+(require 'cl); set-difference is a function...
+
+;; for custom-face-attributes-get or face-custom-attributes-get
+(require 'cus-face)
+(require 'wid-edit); for widget-apply stuff in cus-face.el
+
+(defconst color-theme-maintainer-address "zedek@gnu.org"
+ "Address used by `submit-color-theme'.")
+
+;; Emacs / XEmacs compatibility and workaround layer
+
+(cond ((and (facep 'tool-bar)
+ (not (facep 'toolbar)))
+ (put 'toolbar 'face-alias 'tool-bar))
+ ((and (facep 'toolbar)
+ (not (facep 'tool-bar)))
+ (put 'tool-bar 'face-alias 'toolbar)))
+
+(defvar color-theme-xemacs-p (and (featurep 'xemacs)
+ (string-match "XEmacs" emacs-version))
+ "Non-nil if running XEmacs.")
+
+;; Add this since it appears to miss in emacs-2x
+(or (fboundp 'replace-in-string)
+ (defun replace-in-string (target old new)
+ (replace-regexp-in-string old new target)))
+
+;; face-attr-construct has a problem in Emacs 20.7 and older when
+;; dealing with inverse-video faces. Here is a short test to check
+;; wether you are affected.
+
+;; (set-background-color "wheat")
+;; (set-foreground-color "black")
+;; (setq a (make-face 'a-face))
+;; (face-spec-set a '((t (:background "white" :foreground "black" :inverse-video t))))
+;; (face-attr-construct a)
+;; => (:background "black" :inverse-video t)
+
+;; The expected response is the original specification:
+;; => (:background "white" :foreground "black" :inverse-video t)
+
+;; That's why we depend on cus-face.el functionality.
+
+(cond ((fboundp 'custom-face-attributes-get)
+ (defun color-theme-face-attr-construct (face frame)
+ (if (atom face)
+ (custom-face-attributes-get face frame)
+ (if (and (consp face) (eq (car face) 'quote))
+ (custom-face-attributes-get (cadr face) frame)
+ (custom-face-attributes-get (car face) frame)))))
+ ((fboundp 'face-custom-attributes-get)
+ (defalias 'color-theme-face-attr-construct
+ 'face-custom-attributes-get))
+ (t
+ (defun color-theme-face-attr-construct (&rest ignore)
+ (error "Unable to construct face attributes"))))
+
+(defun color-theme-alist (plist)
+ "Transform PLIST into an alist if it is a plist and return it.
+If the first element of PLIST is a cons cell, we just return PLIST,
+assuming PLIST to be an alist. If the first element of plist is not a
+symbol, this is an error: We cannot distinguish a plist from an ordinary
+list, but a list that doesn't start with a symbol is certainly no plist
+and no alist.
+
+This is used to make sure `default-frame-alist' really is an alist and not
+a plist. In XEmacs, the alist is deprecated; a plist is used instead."
+ (cond ((consp (car plist))
+ plist)
+ ((not (symbolp (car plist)))
+ (error "Wrong type argument: plist, %S" plist))
+ ((featurep 'xemacs)
+ (plist-to-alist plist)))); XEmacs only
+
+;; Customization
+
+(defgroup color-theme nil
+ "Color Themes for Emacs.
+A color theme consists of frame parameter settings, variable settings,
+and face definitions."
+ :version "20.6"
+ :group 'faces)
+
+(defcustom color-theme-legal-frame-parameters "\\(color\\|mode\\)$"
+ "Regexp that matches frame parameter names.
+Only frame parameter names that match this regexp can be changed as part
+of a color theme."
+ :type '(choice (const :tag "Colors only" "\\(color\\|mode\\)$")
+ (const :tag "Colors, fonts, and size"
+ "\\(color\\|mode\\|font\\|height\\|width\\)$")
+ (regexp :tag "Custom regexp"))
+ :group 'color-theme
+ :link '(info-link "(elisp)Window Frame Parameters"))
+
+(defcustom color-theme-legal-variables "\\(color\\|face\\)$"
+ "Regexp that matches variable names.
+Only variables that match this regexp can be changed as part of a color
+theme. In addition to matching this name, the variables have to be user
+variables (see function `user-variable-p')."
+ :type 'regexp
+ :group 'color-theme)
+
+(defcustom color-theme-illegal-faces "^w3-"
+ "Regexp that matches face names forbidden in themes.
+The default setting \"^w3-\" excludes w3 faces since these
+are created dynamically."
+ :type 'regexp
+ :group 'color-theme
+ :link '(info-link "(elisp)Faces for Font Lock")
+ :link '(info-link "(elisp)Standard Faces"))
+
+(defcustom color-theme-illegal-default-attributes '(:family :height :width)
+ "A list of face properties to be ignored when installing faces.
+This prevents Emacs from doing terrible things to your display just because
+a theme author likes weird fonts."
+ :type '(repeat symbol)
+ :group 'color-theme)
+
+(defcustom color-theme-is-global t
+ "*Determines wether a color theme is installed on all frames or not.
+If non-nil, color themes will be installed for all frames.
+If nil, color themes will be installed for the selected frame only.
+
+A possible use for this variable is dynamic binding. Here is a larger
+example to put in your ~/.emacs; it will make the Blue Sea color theme
+the default used for the first frame, and it will create two additional
+frames with different color themes.
+
+setup:
+ \(require 'color-theme)
+ ;; set default color theme
+ \(color-theme-blue-sea)
+ ;; create some frames with different color themes
+ \(let ((color-theme-is-global nil))
+ \(select-frame (make-frame))
+ \(color-theme-gnome2)
+ \(select-frame (make-frame))
+ \(color-theme-standard))
+
+Please note that using XEmacs and and a nil value for
+color-theme-is-global will ignore any variable settings for the color
+theme, since XEmacs doesn't have frame-local variable bindings.
+
+Also note that using Emacs and a non-nil value for color-theme-is-global
+will install a new color theme for all frames. Using XEmacs and a
+non-nil value for color-theme-is-global will install a new color theme
+only on those frames that are not using a local color theme."
+ :type 'boolean
+ :group 'color-theme)
+
+(defcustom color-theme-is-cumulative t
+ "*Determines wether new color themes are installed on top of each other.
+If non-nil, installing a color theme will undo all settings made by
+previous color themes."
+ :type 'boolean
+ :group 'color-theme)
+
+(defcustom color-theme-directory nil
+ "Directory where we can find additionnal themes (personnal).
+Note that there is at least one directory shipped with the official
+color-theme distribution where all contributed themes are located.
+This official selection can't be changed with that variable.
+However, you still can decide to turn it on or off and thus,
+not be shown with all themes but yours."
+ :type '(repeat string)
+ :group 'color-theme)
+
+(defcustom color-theme-libraries (directory-files
+ (concat
+ (file-name-directory (locate-library "color-theme"))
+ "/themes") t "^color-theme")
+ "A list of files, which will be loaded in color-theme-initialize depending
+on `color-theme-load-all-themes' value.
+This allows a user to prune the default color-themes (which can take a while
+to load)."
+ :type '(repeat string)
+ :group 'color-theme)
+
+(defcustom color-theme-load-all-themes t
+ "When t, load all color-theme theme files
+as presented by `color-theme-libraries'. Else
+do not load any of this themes."
+ :type 'boolean
+ :group 'color-theme)
+
+(defcustom color-theme-mode-hook nil
+ "Hook for color-theme-mode."
+ :type 'hook
+ :group 'color-theme)
+
+(defvar color-theme-mode-map
+ (let ((map (make-sparse-keymap)))
+ (define-key map (kbd "RET") 'color-theme-install-at-point)
+ (define-key map (kbd "c") 'list-colors-display)
+ (define-key map (kbd "d") 'color-theme-describe)
+ (define-key map (kbd "f") 'list-faces-display)
+ (define-key map (kbd "i") 'color-theme-install-at-point)
+ (define-key map (kbd "l") 'color-theme-install-at-point-for-current-frame)
+ (define-key map (kbd "p") 'color-theme-print)
+ (define-key map (kbd "q") 'bury-buffer)
+ (define-key map (kbd "?") 'color-theme-describe)
+ (if color-theme-xemacs-p
+ (define-key map (kbd "<button2>") 'color-theme-install-at-mouse)
+ (define-key map (kbd "<mouse-2>") 'color-theme-install-at-mouse))
+ map)
+ "Mode map used for the buffer created by `color-theme-select'.")
+
+(defvar color-theme-initialized nil
+ "Internal variable determining whether color-theme-initialize has been invoked yet")
+
+(defvar color-theme-buffer-name "*Color Theme Selection*"
+ "Name of the color theme selection buffer.")
+
+(defvar color-theme-original-frame-alist nil
+ "nil until one of the color themes has been installed.")
+
+(defvar color-theme-history nil
+ "List of color-themes called, in reverse order")
+
+(defcustom color-theme-history-max-length nil
+ "Max length of history to maintain.
+Two other values are acceptable: t means no limit, and
+nil means that no history is maintained."
+ :type '(choice (const :tag "No history" nil)
+ (const :tag "Unlimited length" t)
+ integer)
+ :group 'color-theme)
+
+(defvar color-theme-counter 0
+ "Counter for every addition to `color-theme-history'.
+This counts how many themes were installed, regardless
+of `color-theme-history-max-length'.")
+
+(defvar color-theme-entry-path (cond
+ ;; Emacs 22.x and later
+ ((lookup-key global-map [menu-bar tools])
+ '("tools"))
+ ;; XEmacs
+ ((featurep 'xemacs)
+ (setq tool-entry '("Tools")))
+ ;; Emacs < 22
+ (t
+ '("Tools")))
+ "Menu tool entry path.")
+
+(defun color-theme-add-to-history (name)
+ "Add color-theme NAME to `color-theme-history'."
+ (setq color-theme-history
+ (cons (list name color-theme-is-cumulative)
+ color-theme-history)
+ color-theme-counter (+ 1 color-theme-counter))
+ ;; Truncate the list if necessary.
+ (when (and (integerp color-theme-history-max-length)
+ (>= (length color-theme-history)
+ color-theme-history-max-length))
+ (setcdr (nthcdr (1- color-theme-history-max-length)
+ color-theme-history)
+ nil)))
+
+;; (let ((l '(1 2 3 4 5)))
+;; (setcdr (nthcdr 2 l) nil)
+;; l)
+
+
+
+;; List of color themes used to create the *Color Theme Selection*
+;; buffer.
+
+(defvar color-themes
+ '((color-theme-aalto-dark "Aalto Dark" "Jari Aalto <jari.aalto@poboxes.com>")
+ (color-theme-aalto-light "Aalto Light" "Jari Aalto <jari.aalto@poboxes.com>")
+ (color-theme-aliceblue "Alice Blue" "Girish Bharadwaj <girishb@gbvsoft.com>")
+ (color-theme-andreas "Andreas" "Andreas Busch <Andreas.Busch@politics.ox.ac.uk>")
+ (color-theme-arjen "Arjen" "Arjen Wiersma <arjen@wiersma.org>")
+ (color-theme-beige-diff "Beige Diff" "Alex Schroeder <alex@gnu.org>" t)
+ (color-theme-bharadwaj "Bharadwaj" "Girish Bharadwaj <girishb@gbvsoft.com>")
+ (color-theme-bharadwaj-slate "Bharadwaj Slate" "Girish Bharadwaj <girishb@gbvsoft.com>")
+ (color-theme-billw "Billw" "Bill White <billw@wolfram.com>")
+ (color-theme-black-on-gray "BlackOnGray" "Sudhir Bhojwani <sbhojwani@altoweb.com>")
+ (color-theme-blippblopp "Blipp Blopp" "Thomas Sicheritz-Ponten<thomas@biopython.org>")
+ (color-theme-simple-1 "Black" "Jonadab <jonadab@bright.net>")
+ (color-theme-blue-erc "Blue ERC" "Alex Schroeder <alex@gnu.org>" t)
+ (color-theme-blue-gnus "Blue Gnus" "Alex Schroeder <alex@gnu.org>" t)
+ (color-theme-blue-mood "Blue Mood" "Nelson Loyola <nloyola@yahoo.com>")
+ (color-theme-blue-sea "Blue Sea" "Alex Schroeder <alex@gnu.org>")
+ (color-theme-calm-forest "Calm Forest" "Artur Hefczyc <kobit@plusnet.pl>")
+ (color-theme-charcoal-black "Charcoal Black" "Lars Chr. Hausmann <jazz@zqz.dk>")
+ (color-theme-goldenrod "Cheap Goldenrod" "Alex Schroeder <alex@gnu.org>")
+ (color-theme-clarity "Clarity and Beauty" "Richard Wellum <rwellum@cisco.com>")
+ (color-theme-classic "Classic" "Frederic Giroud <postcard@worldonline.fr>")
+ (color-theme-comidia "Comidia" "Marcelo Dias de Toledo <mtole@ig.com.br>")
+ (color-theme-jsc-dark "Cooper Dark" "John S Cooper <John.Cooper@eu.citrix.com>")
+ (color-theme-jsc-light "Cooper Light" "John S Cooper <John.Cooper@eu.citrix.com>")
+ (color-theme-jsc-light2 "Cooper Light 2" "John S Cooper <John.Cooper@eu.citrix.com>")
+ (color-theme-dark-blue "Dark Blue" "Chris McMahan <cmcmahan@one.net>")
+ (color-theme-dark-blue2 "Dark Blue 2" "Chris McMahan <cmcmahan@one.net>")
+ (color-theme-dark-green "Dark Green" "eddy_woody@hotmail.com")
+ (color-theme-dark-laptop "Dark Laptop" "Laurent Michel <ldm@cs.brown.edu>")
+ (color-theme-deep-blue "Deep Blue" "Tomas Cerha <cerha@brailcom.org>")
+ (color-theme-digital-ofs1 "Digital OFS1" "Gareth Owen <gowen@gwowen.freeserve.co.uk>")
+ (color-theme-euphoria "Euphoria" "oGLOWo@oGLOWo.cjb.net")
+ (color-theme-feng-shui "Feng Shui" "Walter Higgins <walterh@rocketmail.com>")
+ (color-theme-fischmeister "Fischmeister"
+ "Sebastian Fischmeister <sfischme@nexus.lzk.tuwien.ac.at>")
+ (color-theme-gnome "Gnome" "Jonadab <jonadab@bright.net>")
+ (color-theme-gnome2 "Gnome 2" "Alex Schroeder <alex@gnu.org>")
+ (color-theme-gray1 "Gray1" "Paul Pulli <P.Pulli@motorola.com>")
+ (color-theme-gray30 "Gray30" "Girish Bharadwaj <girishb@gbvsoft.com>")
+ (color-theme-kingsajz "Green Kingsajz" "Olgierd `Kingsajz' Ziolko <kingsajz@rpg.pl>")
+ (color-theme-greiner "Greiner" "Kevin Greiner <kgreiner@mapquest.com>")
+ (color-theme-gtk-ide "GTK IDE" "Gordon Messmer <gordon@dragonsdawn.net>")
+ (color-theme-high-contrast "High Contrast" "Alex Schroeder <alex@gnu.org>")
+ (color-theme-hober "Hober" "Edward O'Connor <ted@oconnor.cx>")
+ (color-theme-infodoc "Infodoc" "Frederic Giroud <postcard@worldonline.fr>")
+ (color-theme-jb-simple "JB Simple" "jeff@dvns.com")
+ (color-theme-jedit-grey "Jedit Grey" "Gordon Messmer <gordon@dragonsdawn.net>")
+ (color-theme-jonadabian "Jonadab" "Jonadab <jonadab@bright.net>")
+ (color-theme-jonadabian-slate "Jonadabian Slate" "Jonadab <jonadab@bright.net>")
+ (color-theme-katester "Katester" "Higgins_Walter@emc.com")
+ (color-theme-late-night "Late Night" "Alex Schroeder <alex@gnu.org>")
+ (color-theme-lawrence "Lawrence" "lawrence mitchell <wence@gmx.li>")
+ (color-theme-lethe "Lethe" "Ivica Loncar <ivica.loncar@srk.fer.hr>")
+ (color-theme-ld-dark "Linh Dang Dark" "Linh Dang <linhd@nortelnetworks.com>")
+ (color-theme-marine "Marine" "Girish Bharadwaj <girishb@gbvsoft.com>")
+ (color-theme-matrix "Matrix" "Walter Higgins <walterh@rocketmail.com>")
+ (color-theme-marquardt "Marquardt" "Colin Marquardt <colin@marquardt-home.de>")
+ (color-theme-midnight "Midnight" "Gordon Messmer <gordon@dragonsdawn.net>")
+ (color-theme-mistyday "Misty Day" "Hari Kumar <Hari.Kumar@mtm.kuleuven.ac.be>")
+ (color-theme-montz "Montz" "Brady Montz <bradym@becomm.com>")
+ (color-theme-oswald "Oswald" "Tom Oswald <toswald@sharplabs.com>")
+ (color-theme-parus "Parus" "Jon K Hellan <hellan@acm.org>")
+ (color-theme-pierson "Pierson" "Dan L. Pierson <dan@sol.control.com>")
+ (color-theme-ramangalahy "Ramangalahy" "Solofo Ramangalahy <solofo@irisa.fr>")
+ (color-theme-raspopovic "Raspopovic" "Pedja Raspopovic <pedja@lsil.com>")
+ (color-theme-renegade "Renegade" "Dave Benjamin <ramen@ramenfest.com>")
+ (color-theme-resolve "Resolve" "Damien Elmes <resolve@repose.cx>")
+ (color-theme-retro-green "Retro Green" "Alex Schroeder <alex@gnu.org>")
+ (color-theme-retro-orange "Retro Orange" "Alex Schroeder <alex@gnu.org>")
+ (color-theme-robin-hood "Robin Hood" "Alex Schroeder <alex@gnu.org>")
+ (color-theme-rotor "Rotor" "Jinwei Shen <shenjw@wam.umd.edu>")
+ (color-theme-ryerson "Ryerson" "Luis Fernandes <elf@ee.ryerson.ca>")
+ (color-theme-salmon-diff "Salmon Diff" "Alex Schroeder <alex@gnu.org>" t)
+ (color-theme-salmon-font-lock "Salmon Font-Lock" "Alex Schroeder <alex@gnu.org>" t)
+ (color-theme-scintilla "Scintilla" "Gordon Messmer <gordon@dragonsdawn.net>")
+ (color-theme-shaman "Shaman" "shaman@interdon.net")
+ (color-theme-sitaramv-nt "Sitaram NT"
+ "Sitaram Venkatraman <sitaramv@loc251.tandem.com>")
+ (color-theme-sitaramv-solaris "Sitaram Solaris"
+ "Sitaram Venkatraman <sitaramv@loc251.tandem.com>")
+ (color-theme-snow "Snow" "Nicolas Rist <Nicolas.Rist@alcatel.de>")
+ (color-theme-snowish "Snowish" "Girish Bharadwaj <girishb@gbvsoft.com>")
+ (color-theme-standard-ediff "Standard Ediff" "Emacs Team, added by Alex Schroeder <alex@gnu.org>" t)
+ (color-theme-standard "Standard Emacs 20" "Emacs Team, added by Alex Schroeder <alex@gnu.org>")
+ (color-theme-emacs-21 "Standard Emacs 21" "Emacs Team, added by Alex Schroeder <alex@gnu.org>")
+ (color-theme-emacs-nw "Standard Emacs 21 No Window" "Emacs Team, added by D. Goel <deego@gnufans.org>")
+ (color-theme-xemacs "Standard XEmacs" "XEmacs Team, added by Alex Schroeder <alex@gnu.org>")
+ (color-theme-subtle-blue "Subtle Blue" "Chris McMahan <cmcmahan@one.net>")
+ (color-theme-subtle-hacker "Subtle Hacker" "Colin Walters <levanti@verbum.org>")
+ (color-theme-taming-mr-arneson "Taming Mr Arneson" "Erik Arneson <erik@aarg.net>")
+ (color-theme-taylor "Taylor" "Art Taylor <reeses@hemisphere.org>")
+ (color-theme-tty-dark "TTY Dark" "O Polite <m2@plusseven.com>")
+ (color-theme-vim-colors "Vim Colors" "Michael Soulier <msoulier@biryani.nssg.mitel.com>")
+ (color-theme-whateveryouwant "Whateveryouwant" "Fabien Penso <penso@linuxfr.org>, color by Scott Jaderholm <scott@jaderholm.com>")
+ (color-theme-wheat "Wheat" "Alex Schroeder <alex@gnu.org>")
+ (color-theme-pok-wob "White On Black" "S. Pokrovsky <pok@nbsp.nsk.su>")
+ (color-theme-pok-wog "White On Grey" "S. Pokrovsky <pok@nbsp.nsk.su>")
+ (color-theme-word-perfect "WordPerfect" "Thomas Gehrlein <Thomas.Gehrlein@t-online.de>")
+ (color-theme-xp "XP" "Girish Bharadwaj <girishb@gbvsoft.com>"))
+ "List of color themes.
+
+Each THEME is itself a three element list (FUNC NAME MAINTAINER &optional LIBRARY).
+
+FUNC is a color theme function which does the setup. The function
+FUNC may call `color-theme-install'. The color theme function may be
+interactive.
+
+NAME is the name of the theme and MAINTAINER is the name and/or email of
+the maintainer of the theme.
+
+If LIBRARY is non-nil, the color theme will be considered a library and
+may not be shown in the default menu.
+
+If you defined your own color theme and want to add it to this list,
+use something like this:
+
+ (add-to-list 'color-themes '(color-theme-gnome2 \"Gnome2\" \"Alex\"))")
+
+;;; Functions
+
+(defun color-theme-backup-original-values ()
+ "Back up the original `default-frame-alist'.
+The values are stored in `color-theme-original-frame-alist' on
+startup."
+ (if (null color-theme-original-frame-alist)
+ (setq color-theme-original-frame-alist
+ (color-theme-filter (frame-parameters (selected-frame))
+ color-theme-legal-frame-parameters))))
+(add-hook 'after-init-hook 'color-theme-backup-original-values)
+
+;;;###autoload
+(defun color-theme-select (&optional arg)
+ "Displays a special buffer for selecting and installing a color theme.
+With optional prefix ARG, this buffer will include color theme libraries
+as well. A color theme library is in itself not complete, it must be
+used as part of another color theme to be useful. Thus, color theme
+libraries are mainly useful for color theme authors."
+ (interactive "P")
+ (unless color-theme-initialized (color-theme-initialize))
+ (switch-to-buffer (get-buffer-create color-theme-buffer-name))
+ (setq buffer-read-only nil)
+ (erase-buffer)
+ ;; recreate the snapshot if necessary
+ (when (or (not (assq 'color-theme-snapshot color-themes))
+ (not (commandp 'color-theme-snapshot)))
+ (fset 'color-theme-snapshot (color-theme-make-snapshot))
+ (setq color-themes (delq (assq 'color-theme-snapshot color-themes)
+ color-themes)
+ color-themes (delq (assq 'bury-buffer color-themes)
+ color-themes)
+ color-themes (append '((color-theme-snapshot
+ "[Reset]" "Undo changes, if possible.")
+ (bury-buffer
+ "[Quit]" "Bury this buffer."))
+ color-themes)))
+ (dolist (theme color-themes)
+ (let ((func (nth 0 theme))
+ (name (nth 1 theme))
+ (author (nth 2 theme))
+ (library (nth 3 theme))
+ (desc))
+ (when (or (not library) arg)
+ (setq desc (format "%-23s %s"
+ (if library (concat name " [lib]") name)
+ author))
+ (put-text-property 0 (length desc) 'color-theme func desc)
+ (put-text-property 0 (length name) 'face 'bold desc)
+ (put-text-property 0 (length name) 'mouse-face 'highlight desc)
+ (insert desc)
+ (newline))))
+ (goto-char (point-min))
+ (setq buffer-read-only t)
+ (set-buffer-modified-p nil)
+ (color-theme-mode))
+
+(when (require 'easymenu)
+ (easy-menu-add-item nil color-theme-entry-path "--")
+ (easy-menu-add-item nil color-theme-entry-path
+ ["Color Themes" color-theme-select t]))
+
+(defun color-theme-mode ()
+ "Major mode to select and install color themes.
+
+Use \\[color-theme-install-at-point] to install a color theme on all frames.
+Use \\[color-theme-install-at-point-for-current-frame] to install a color theme for the current frame only.
+
+The changes are applied on top of your current setup. This is a
+feature.
+
+Some of the themes should be considered extensions to the standard color
+theme: they modify only a limited number of faces and variables. To
+verify the final look of a color theme, install the standard color
+theme, then install the other color theme. This is a feature. It allows
+you to mix several color themes.
+
+Use \\[color-theme-describe] to read more about the color theme function at point.
+If you want to install the color theme permanently, put the call to the
+color theme function into your ~/.emacs:
+
+ \(require 'color-theme)
+ \(color-theme-gnome2)
+
+If you worry about the size of color-theme.el: You are right. Use
+\\[color-theme-print] to print the current color theme and save the resulting buffer
+as ~/.emacs-color-theme. Now you can install only this specific color
+theme in your .emacs:
+
+ \(load-file \"~/.emacs-color-theme\")
+ \(my-color-theme)
+
+The Emacs menu is not affected by color themes within Emacs. Depending
+on the toolkit you used to compile Emacs, you might have to set specific
+X ressources. See the info manual for more information. Here is an
+example ~/.Xdefaults fragment:
+
+ emacs*Background: DarkSlateGray
+ emacs*Foreground: wheat
+
+\\{color-theme-mode-map}
+
+The color themes are listed in `color-themes', which see."
+ (kill-all-local-variables)
+ (setq major-mode 'color-theme-mode)
+ (setq mode-name "Color Themes")
+ (use-local-map color-theme-mode-map)
+ (when (functionp 'goto-address); Emacs
+ (goto-address))
+ (run-hooks 'color-theme-mode-hook))
+
+;;; Commands in Color Theme Selection mode
+
+;;;###autoload
+(defun color-theme-describe ()
+ "Describe color theme listed at point.
+This shows the documentation of the value of text-property color-theme
+at point. The text-property color-theme should be a color theme
+function. See `color-themes'."
+ (interactive)
+ (describe-function (get-text-property (point) 'color-theme)))
+
+;;;###autoload
+(defun color-theme-install-at-mouse (event)
+ "Install color theme clicked upon using the mouse.
+First argument EVENT is used to set point. Then
+`color-theme-install-at-point' is called."
+ (interactive "e")
+ (save-excursion
+ (mouse-set-point event)
+ (color-theme-install-at-point)))
+
+;;;autoload
+(defun color-theme-install-at-point ()
+ "Install color theme at point.
+This calls the value of the text-property `color-theme' at point.
+The text-property `color-theme' should be a color theme function.
+See `color-themes'."
+ (interactive)
+ (let ((func (get-text-property (point) 'color-theme)))
+ ;; install theme
+ (if func
+ (funcall func))
+ ;; If goto-address is being used, remove all overlays in the current
+ ;; buffer and run it again. The face used for the mail addresses in
+ ;; the the color theme selection buffer is based on the variable
+ ;; goto-address-mail-face. Changes in that variable will not affect
+ ;; existing overlays, however, thereby confusing users.
+ (when (functionp 'goto-address); Emacs
+ (dolist (o (overlays-in (point-min) (point-max)))
+ (delete-overlay o))
+ (goto-address))))
+
+;;;###autoload
+(defun color-theme-install-at-point-for-current-frame ()
+ "Install color theme at point for current frame only.
+Binds `color-theme-is-global' to nil and calls
+`color-theme-install-at-point'."
+ (interactive)
+ (let ((color-theme-is-global nil))
+ (color-theme-install-at-point)))
+
+
+
+;; Taking a snapshot of the current color theme and pretty printing it.
+
+(defun color-theme-filter (old-list regexp &optional exclude)
+ "Filter OLD-LIST.
+The resulting list will be newly allocated and contains only elements
+with names matching REGEXP. OLD-LIST may be a list or an alist. If you
+want to filter a plist, use `color-theme-alist' to convert your plist to
+an alist, first.
+
+If the optional argument EXCLUDE is non-nil, then the sense is
+reversed: only non-matching elements will be retained."
+ (let (elem new-list)
+ (dolist (elem old-list)
+ (setq name (symbol-name (if (listp elem) (car elem) elem)))
+ (when (or (and (not exclude)
+ (string-match regexp name))
+ (and exclude
+ (not (string-match regexp name))))
+ ;; Now make sure that if elem is a cons cell, and the cdr of
+ ;; that cons cell is a string, then we need a *new* string in
+ ;; the new list. Having a new cons cell is of no use because
+ ;; modify-frame-parameters will modify this string, thus
+ ;; modifying our color theme functions!
+ (when (and (consp elem)
+ (stringp (cdr elem)))
+ (setq elem (cons (car elem)
+ (copy-sequence (cdr elem)))))
+ ;; Now store elem
+ (setq new-list (cons elem new-list))))
+ new-list))
+
+(defun color-theme-spec-filter (spec)
+ "Filter the attributes in SPEC.
+This makes sure that SPEC has the form ((t (PLIST ...))).
+Only properties not in `color-theme-illegal-default-attributes'
+are included in the SPEC returned."
+ (let ((props (cadar spec))
+ result prop val)
+ (while props
+ (setq prop (nth 0 props)
+ val (nth 1 props)
+ props (nthcdr 2 props))
+ (unless (memq prop color-theme-illegal-default-attributes)
+ (setq result (cons val (cons prop result)))))
+ `((t ,(nreverse result)))))
+
+;; (color-theme-spec-filter '((t (:background "blue3"))))
+;; (color-theme-spec-filter '((t (:stipple nil :background "Black" :foreground "SteelBlue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width semi-condensed :family "misc-fixed"))))
+
+(defun color-theme-plist-delete (plist prop)
+ "Delete property PROP from property list PLIST by side effect.
+This modifies PLIST."
+ ;; deal with prop at the start
+ (while (eq (car plist) prop)
+ (setq plist (cddr plist)))
+ ;; deal with empty plist
+ (when plist
+ (let ((lastcell (cdr plist))
+ (l (cddr plist)))
+ (while l
+ (if (eq (car l) prop)
+ (progn
+ (setq l (cddr l))
+ (setcdr lastcell l))
+ (setq lastcell (cdr l)
+ l (cddr l))))))
+ plist)
+
+;; (color-theme-plist-delete '(a b c d e f g h) 'a)
+;; (color-theme-plist-delete '(a b c d e f g h) 'b)
+;; (color-theme-plist-delete '(a b c d e f g h) 'c)
+;; (color-theme-plist-delete '(a b c d e f g h) 'g)
+;; (color-theme-plist-delete '(a b c d c d e f g h) 'c)
+;; (color-theme-plist-delete '(a b c d e f c d g h) 'c)
+
+(if (or (featurep 'xemacs)
+ (< emacs-major-version 21))
+ (defalias 'color-theme-spec-compat 'identity)
+ (defun color-theme-spec-compat (spec)
+ "Filter the attributes in SPEC such that is is never invalid.
+Example: Eventhough :bold works in Emacs, it is not recognized by
+`customize-face' -- and then the face is uncustomizable. This
+function replaces a :bold attribute with the corresponding :weight
+attribute, if there is no :weight, or deletes it. This undoes the
+doings of `color-theme-spec-canonical-font', more or less."
+ (let ((props (cadar spec)))
+ (when (plist-member props :bold)
+ (setq props (color-theme-plist-delete props :bold))
+ (unless (plist-member props :weight)
+ (setq props (plist-put props :weight 'bold))))
+ (when (plist-member props :italic)
+ (setq props (color-theme-plist-delete props :italic))
+ (unless (plist-member props :slant)
+ (setq props (plist-put props :slant 'italic))))
+ `((t ,props)))))
+
+;; (color-theme-spec-compat '((t (:foreground "blue" :bold t))))
+;; (color-theme-spec-compat '((t (:bold t :foreground "blue" :weight extra-bold))))
+;; (color-theme-spec-compat '((t (:italic t :foreground "blue"))))
+;; (color-theme-spec-compat '((t (:slant oblique :italic t :foreground "blue"))))
+
+(defun color-theme-spec-canonical-font (atts)
+ "Add :bold and :italic attributes if necessary."
+ ;; add these to the front of atts -- this will keept the old value for
+ ;; customize-face in Emacs 21.
+ (when (and (memq (plist-get atts :weight)
+ '(ultra-bold extra-bold bold semi-bold))
+ (not (plist-get atts :bold)))
+ (setq atts (cons :bold (cons t atts))))
+ (when (and (not (memq (plist-get atts :slant)
+ '(normal nil)))
+ (not (plist-get atts :italic)))
+ (setq atts (cons :italic (cons t atts))))
+ atts)
+;; (color-theme-spec-canonical-font (color-theme-face-attr-construct 'bold (selected-frame)))
+;; (defface foo '((t (:weight extra-bold))) "foo")
+;; (color-theme-spec-canonical-font (color-theme-face-attr-construct 'foo (selected-frame)))
+;; (face-spec-set 'foo '((t (:weight extra-bold))) nil)
+;; (face-spec-set 'foo '((t (:bold t))) nil)
+;; (face-spec-set 'foo '((t (:bold t :weight extra-bold))) nil)
+
+;; Handle :height according to NEWS file for Emacs 21
+(defun color-theme-spec-resolve-height (old new)
+ "Return the new height given OLD and NEW height.
+OLD is the current setting, NEW is the setting inherited from."
+ (cond ((not old)
+ new)
+ ((integerp old)
+ old)
+ ((and (floatp old)
+ (integerp new))
+ (round (* old new)))
+ ((and (floatp old)
+ (floatp new))
+ (* old new))
+ ((and (functionp old)
+ (integerp new))
+ (round (funcall old new)))
+ ((and (functionp old)
+ (float new))
+ `(lambda (f) (* (funcall ,old f) ,new)))
+ ((and (functionp old)
+ (functionp new))
+ `(lambda (f) (* (funcall ,old (funcall ,new f)))))
+ (t
+ (error "Illegal :height attributes: %S or %S" old new))))
+;; (color-theme-spec-resolve-height 12 1.2)
+;; (color-theme-spec-resolve-height 1.2 1.2)
+;; (color-theme-spec-resolve-height 1.2 12)
+;; (color-theme-spec-resolve-height 1.2 'foo)
+;; (color-theme-spec-resolve-height (lambda (f) (* 2 f)) 5)
+;; (color-theme-spec-resolve-height (lambda (f) (* 2 f)) 2.0)
+;; the following lambda is the result from the above calculation
+;; (color-theme-spec-resolve-height (lambda (f) (* (funcall (lambda (f) (* 2 f)) f) 2.0)) 5)
+
+(defun color-theme-spec-resolve-inheritance (atts)
+ "Resolve all occurences of the :inherit attribute."
+ (let ((face (plist-get atts :inherit)))
+ ;; From the Emacs 21 NEWS file: "Attributes from inherited faces are
+ ;; merged into the face like an underlying face would be." --
+ ;; therefore properties of the inherited face only add missing
+ ;; attributes.
+ (when face
+ ;; remove :inherit face from atts -- this assumes only one
+ ;; :inherit attribute.
+ (setq atts (delq ':inherit (delq face atts)))
+ (let ((more-atts (color-theme-spec-resolve-inheritance
+ (color-theme-face-attr-construct
+ face (selected-frame))))
+ att val)
+ (while more-atts
+ (setq att (car more-atts)
+ val (cadr more-atts)
+ more-atts (cddr more-atts))
+ ;; Color-theme assumes that no value is ever 'unspecified.
+ (cond ((eq att ':height); cumulative effect!
+ (setq atts (plist-put atts
+ ':height
+ (color-theme-spec-resolve-height
+ (plist-get atts att)
+ val))))
+ ;; Default: Only put if it has not been specified before.
+ ((not (plist-get atts att))
+ (setq atts (cons att (cons val atts))))
+
+))))
+ atts))
+;; (color-theme-spec-resolve-inheritance '(:bold t))
+;; (color-theme-spec-resolve-inheritance '(:bold t :foreground "blue"))
+;; (color-theme-face-attr-construct 'font-lock-comment-face (selected-frame))
+;; (color-theme-spec-resolve-inheritance '(:bold t :inherit font-lock-comment-face))
+;; (color-theme-spec-resolve-inheritance '(:bold t :foreground "red" :inherit font-lock-comment-face))
+;; (color-theme-face-attr-construct 'Info-title-2-face (selected-frame))
+;; (color-theme-face-attr-construct 'Info-title-3-face (selected-frame))
+;; (color-theme-face-attr-construct 'Info-title-4-face (selected-frame))
+;; (color-theme-spec-resolve-inheritance '(:inherit Info-title-2-face))
+
+;; The :inverse-video attribute causes Emacs to swap foreground and
+;; background colors, XEmacs does not. Therefore, if anybody chooses
+;; the inverse-video attribute, we 1. swap the colors ourselves in Emacs
+;; and 2. we remove the inverse-video attribute in Emacs and XEmacs.
+;; Inverse-video is only useful on a monochrome tty.
+(defun color-theme-spec-maybe-invert (atts)
+ "Remove the :inverse-video attribute from ATTS.
+If ATTS contains :inverse-video t, remove it and swap foreground and
+background color. Return ATTS."
+ (let ((inv (plist-get atts ':inverse-video)))
+ (if inv
+ (let (result att)
+ (while atts
+ (setq att (car atts)
+ atts (cdr atts))
+ (cond ((and (eq att :foreground) (not color-theme-xemacs-p))
+ (setq result (cons :background result)))
+ ((and (eq att :background) (not color-theme-xemacs-p))
+ (setq result (cons :foreground result)))
+ ((eq att :inverse-video)
+ (setq atts (cdr atts))); this prevents using dolist
+ (t
+ (setq result (cons att result)))))
+ (nreverse result))
+ ;; else
+ atts)))
+;; (color-theme-spec-maybe-invert '(:bold t))
+;; (color-theme-spec-maybe-invert '(:foreground "blue"))
+;; (color-theme-spec-maybe-invert '(:background "red"))
+;; (color-theme-spec-maybe-invert '(:inverse-video t))
+;; (color-theme-spec-maybe-invert '(:inverse-video t :foreground "red"))
+;; (color-theme-spec-maybe-invert '(:inverse-video t :background "red"))
+;; (color-theme-spec-maybe-invert '(:inverse-video t :background "red" :foreground "blue" :bold t))
+;; (color-theme-spec-maybe-invert '(:inverse-video nil :background "red" :foreground "blue" :bold t))
+
+(defun color-theme-spec (face)
+ "Return a list for FACE which has the form (FACE SPEC).
+See `defface' for the format of SPEC. In this case we use only one
+DISPLAY, t, and determine ATTS using `color-theme-face-attr-construct'.
+If ATTS is nil, (nil) is used instead.
+
+If ATTS contains :inverse-video t, we remove it and swap foreground and
+background color using `color-theme-spec-maybe-invert'. We do this
+because :inverse-video is handled differently in Emacs and XEmacs. We
+will loose on a tty without colors, because in that situation,
+:inverse-video means something."
+ (let ((atts
+ (color-theme-spec-canonical-font
+ (color-theme-spec-maybe-invert
+ (color-theme-spec-resolve-inheritance
+ (color-theme-face-attr-construct face (selected-frame)))))))
+ (if atts
+ `(,face ((t ,atts)))
+ `(,face ((t (nil)))))))
+
+(defun color-theme-get-params ()
+ "Return a list of frame parameter settings usable in a color theme.
+Such an alist may be installed by `color-theme-install-frame-params'. The
+frame parameters returned must match `color-theme-legal-frame-parameters'."
+ (let ((params (color-theme-filter (frame-parameters (selected-frame))
+ color-theme-legal-frame-parameters)))
+ (sort params (lambda (a b) (string< (symbol-name (car a))
+ (symbol-name (car b)))))))
+
+(defun color-theme-get-vars ()
+ "Return a list of variable settings usable in a color theme.
+Such an alist may be installed by `color-theme-install-variables'.
+The variable names must match `color-theme-legal-variables', and the
+variable must be a user variable according to `user-variable-p'."
+ (let ((vars)
+ (val))
+ (mapatoms (lambda (v)
+ (and (boundp v)
+ (user-variable-p v)
+ (string-match color-theme-legal-variables
+ (symbol-name v))
+ (setq val (eval v))
+ (add-to-list 'vars (cons v val)))))
+ (sort vars (lambda (a b) (string< (car a) (car b))))))
+
+(defun color-theme-print-alist (alist)
+ "Print ALIST."
+ (insert "\n " (if alist "(" "nil"))
+ (dolist (elem alist)
+ (when (= (preceding-char) ?\))
+ (insert "\n "))
+ (prin1 elem (current-buffer)))
+ (when (= (preceding-char) ?\)) (insert ")")))
+
+(defun color-theme-get-faces ()
+ "Return a list of faces usable in a color theme.
+Such an alist may be installed by `color-theme-install-faces'. The
+faces returned must not match `color-theme-illegal-faces'."
+ (let ((faces (color-theme-filter (face-list) color-theme-illegal-faces t)))
+ ;; default face must come first according to comments in
+ ;; custom-save-faces, the rest is to be sorted by name
+ (cons 'default (sort (delq 'default faces) 'string-lessp))))
+
+(defun color-theme-get-face-definitions ()
+ "Return face settings usable in a color-theme."
+ (let ((faces (color-theme-get-faces)))
+ (mapcar 'color-theme-spec faces)))
+
+(defun color-theme-print-faces (faces)
+ "Print face settings for all faces returned by `color-theme-get-faces'."
+ (when faces
+ (insert "\n "))
+ (dolist (face faces)
+ (when (= (preceding-char) ?\))
+ (insert "\n "))
+ (prin1 face (current-buffer))))
+
+(defun color-theme-reset-faces ()
+ "Reset face settings for all faces returned by `color-theme-get-faces'."
+ (let ((faces (color-theme-get-faces))
+ (face) (spec) (entry)
+ (frame (if color-theme-is-global nil (selected-frame))))
+ (while faces
+ (setq entry (color-theme-spec (car faces)))
+ (setq face (nth 0 entry))
+ (setq spec '((t (nil))))
+ (setq faces (cdr faces))
+ (if (functionp 'face-spec-reset-face)
+ (face-spec-reset-face face frame)
+ (face-spec-set face spec frame)
+ (if color-theme-is-global
+ (put face 'face-defface-spec spec))))))
+
+(defun color-theme-print-theme (func doc params vars faces)
+ "Print a theme into the current buffer.
+FUNC is the function name, DOC the doc string, PARAMS the
+frame parameters, VARS the variable bindings, and FACES
+the list of faces and their specs."
+ (insert "(defun " (symbol-name func) " ()\n"
+ " \"" doc "\"\n"
+ " (interactive)\n"
+ " (color-theme-install\n"
+ " '(" (symbol-name func))
+ ;; alist of frame parameters
+ (color-theme-print-alist params)
+ ;; alist of variables
+ (color-theme-print-alist vars)
+ ;; remaining elements of snapshot: face specs
+ (color-theme-print-faces faces)
+ (insert ")))\n")
+ (insert "(add-to-list 'color-themes '(" (symbol-name func) " "
+ " \"THEME NAME\" \"YOUR NAME\"))")
+ (goto-char (point-min)))
+
+;;;###autoload
+(defun color-theme-print (&optional buf)
+ "Print the current color theme function.
+
+You can contribute this function to <URL:news:gnu.emacs.sources> or
+paste it into your .emacs file and call it. That should recreate all
+the settings necessary for your color theme.
+
+Example:
+
+ \(require 'color-theme)
+ \(defun my-color-theme ()
+ \"Color theme by Alex Schroeder, created 2000-05-17.\"
+ \(interactive)
+ \(color-theme-install
+ '(...
+ ...
+ ...)))
+ \(my-color-theme)
+
+If you want to use a specific color theme function, you can call the
+color theme function in your .emacs directly.
+
+Example:
+
+ \(require 'color-theme)
+ \(color-theme-gnome2)"
+ (interactive)
+ (message "Pretty printing current color theme function...")
+ (switch-to-buffer (if buf
+ buf
+ (get-buffer-create "*Color Theme*")))
+ (unless buf
+ (setq buffer-read-only nil)
+ (erase-buffer))
+ ;; insert defun
+ (insert "(eval-when-compile"
+ " (require 'color-theme))\n")
+ (color-theme-print-theme 'my-color-theme
+ (concat "Color theme by "
+ (if (string= "" user-full-name)
+ (user-login-name)
+ user-full-name)
+ ", created " (format-time-string "%Y-%m-%d") ".")
+ (color-theme-get-params)
+ (color-theme-get-vars)
+ (mapcar 'color-theme-spec (color-theme-get-faces)))
+ (unless buf
+ (emacs-lisp-mode))
+ (goto-char (point-min))
+ (message "Pretty printing current color theme function... done"))
+
+(defun color-theme-analyze-find-theme (code)
+ "Find the sexpr that calls `color-theme-install'."
+ (let (theme)
+ (while (and (not theme) code)
+ (when (eq (car code) 'color-theme-install)
+ (setq theme code))
+ (when (listp (car code))
+ (setq theme (color-theme-analyze-find-theme (car code))))
+ (setq code (cdr code)))
+ theme))
+
+;; (equal (color-theme-analyze-find-theme
+;; '(defun color-theme-blue-eshell ()
+;; "Color theme for eshell faces only."
+;; (color-theme-install
+;; '(color-theme-blue-eshell
+;; nil
+;; (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed"))))
+;; (eshell-ls-backup-face ((t (:foreground "Grey"))))))))
+;; '(color-theme-install
+;; (quote
+;; (color-theme-blue-eshell
+;; nil
+;; (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed"))))
+;; (eshell-ls-backup-face ((t (:foreground "Grey")))))))))
+
+(defun color-theme-analyze-add-face (a b regexp faces)
+ "If only one of A or B are in FACES, the other is added, and FACES is returned.
+If REGEXP is given, this is only done if faces contains a match for regexps."
+ (when (or (not regexp)
+ (catch 'found
+ (dolist (face faces)
+ (when (string-match regexp (symbol-name (car face)))
+ (throw 'found t)))))
+ (let ((face-a (assoc a faces))
+ (face-b (assoc b faces)))
+ (if (and face-a (not face-b))
+ (setq faces (cons (list b (nth 1 face-a))
+ faces))
+ (if (and (not face-a) face-b)
+ (setq faces (cons (list a (nth 1 face-b))
+ faces))))))
+ faces)
+
+;; (equal (color-theme-analyze-add-face
+;; 'blue 'violet nil
+;; '((blue ((t (:foreground "blue"))))
+;; (bold ((t (:bold t))))))
+;; '((violet ((t (:foreground "blue"))))
+;; (blue ((t (:foreground "blue"))))
+;; (bold ((t (:bold t))))))
+;; (equal (color-theme-analyze-add-face
+;; 'violet 'blue nil
+;; '((blue ((t (:foreground "blue"))))
+;; (bold ((t (:bold t))))))
+;; '((violet ((t (:foreground "blue"))))
+;; (blue ((t (:foreground "blue"))))
+;; (bold ((t (:bold t))))))
+;; (equal (color-theme-analyze-add-face
+;; 'violet 'blue "foo"
+;; '((blue ((t (:foreground "blue"))))
+;; (bold ((t (:bold t))))))
+;; '((blue ((t (:foreground "blue"))))
+;; (bold ((t (:bold t))))))
+;; (equal (color-theme-analyze-add-face
+;; 'violet 'blue "blue"
+;; '((blue ((t (:foreground "blue"))))
+;; (bold ((t (:bold t))))))
+;; '((violet ((t (:foreground "blue"))))
+;; (blue ((t (:foreground "blue"))))
+;; (bold ((t (:bold t))))))
+
+(defun color-theme-analyze-add-faces (faces)
+ "Add missing faces to FACES and return it."
+ ;; The most important thing is to add missing faces for the other
+ ;; editor. These are the most important faces to check. The
+ ;; following rules list two faces, A and B. If either of the two is
+ ;; part of the theme, the other must be, too. The optional third
+ ;; argument specifies a regexp. Only if an existing face name
+ ;; matches this regexp, is the rule applied.
+ (let ((rules '((font-lock-builtin-face font-lock-reference-face)
+ (font-lock-doc-face font-lock-doc-string-face)
+ (font-lock-constant-face font-lock-preprocessor-face)
+ ;; In Emacs 21 `modeline' is just an alias for
+ ;; `mode-line'. I recommend the use of
+ ;; `modeline' until further notice.
+ (modeline mode-line)
+ (modeline modeline-buffer-id)
+ (modeline modeline-mousable)
+ (modeline modeline-mousable-minor-mode)
+ (region primary-selection)
+ (region zmacs-region)
+ (font-lock-string-face dired-face-boring "^dired")
+ (font-lock-function-name-face dired-face-directory "^dired")
+ (default dired-face-executable "^dired")
+ (font-lock-warning-face dired-face-flagged "^dired")
+ (font-lock-warning-face dired-face-marked "^dired")
+ (default dired-face-permissions "^dired")
+ (default dired-face-setuid "^dired")
+ (default dired-face-socket "^dired")
+ (font-lock-keyword-face dired-face-symlink "^dired")
+ (tool-bar menu))))
+ (dolist (rule rules)
+ (setq faces (color-theme-analyze-add-face
+ (nth 0 rule) (nth 1 rule) (nth 2 rule) faces))))
+ ;; The `fringe' face defines what the left and right borders of the
+ ;; frame look like in Emacs 21. To give them default fore- and
+ ;; background colors, use (fringe ((t (nil)))) in your color theme.
+ ;; Usually it makes more sense to choose a color slightly lighter or
+ ;; darker from the default background.
+ (unless (assoc 'fringe faces)
+ (setq faces (cons '(fringe ((t (nil)))) faces)))
+ ;; The tool-bar should not be part of the frame-parameters, since it
+ ;; should not appear or disappear depending on the color theme. The
+ ;; apppearance of the toolbar, however, can be changed by the color
+ ;; theme. For Emacs 21, use the `tool-bar' face. The easiest way
+ ;; to do this is to give it the default fore- and background colors.
+ ;; This can be achieved using (tool-bar ((t (nil)))) in the theme.
+ ;; Usually it makes more sense, however, to provide the same colors
+ ;; as used in the `menu' face, and to specify a :box attribute. In
+ ;; order to alleviate potential Emacs/XEmacs incompatibilities,
+ ;; `toolbar' will be defined as an alias for `tool-bar' if it does
+ ;; not exist, and vice-versa. This is done eventhough the face
+ ;; `toolbar' seems to have no effect on XEmacs. If you look at
+ ;; XEmacs lisp/faces.el, however, you will find that it is in fact
+ ;; referenced for XPM stuff.
+ (unless (assoc 'tool-bar faces)
+ (setq faces (cons '(tool-bar ((t (nil)))) faces)))
+ ;; Move the default face back to the front, and sort the rest.
+ (unless (eq (caar faces) 'default)
+ (let ((face (assoc 'default faces)))
+ (setq faces (cons face
+ (sort (delete face faces)
+ (lambda (a b)
+ (string-lessp (car a) (car b))))))))
+ faces)
+
+(defun color-theme-analyze-remove-heights (faces)
+ "Remove :height property where it is an integer and return FACES."
+ ;; I don't recommend making font sizes part of a color theme. Most
+ ;; users would be surprised to see their font sizes change when they
+ ;; install a color-theme. Therefore, remove all :height attributes
+ ;; if the value is an integer. If the value is a float, this is ok
+ ;; -- the value is relative to the default height. One notable
+ ;; exceptions is for a color-theme created for visually impaired
+ ;; people. These *must* use a larger font in order to be usable.
+ (let (result)
+ (dolist (face faces)
+ (let ((props (cadar (nth 1 face))))
+ (if (and (plist-member props :height)
+ (integerp (plist-get props :height)))
+ (setq props (color-theme-plist-delete props :height)
+ result (cons (list (car face) `((t ,props)))
+ result))
+ (setq result (cons face result)))))
+ (nreverse result)))
+
+;; (equal (color-theme-analyze-remove-heights
+;; '((blue ((t (:foreground "blue" :height 2))))
+;; (bold ((t (:bold t :height 1.0))))))
+;; '((blue ((t (:foreground "blue"))))
+;; (bold ((t (:bold t :height 1.0))))))
+
+;;;###autoload
+(defun color-theme-analyze-defun ()
+ "Once you have a color-theme printed, check for missing faces.
+This is used by maintainers who receive a color-theme submission
+and want to make sure it follows the guidelines by the color-theme
+author."
+ ;; The support for :foreground and :background attributes works for
+ ;; Emacs 20 and 21 as well as for XEmacs. :inverse-video is taken
+ ;; care of while printing color themes.
+ (interactive)
+ ;; Parse the stuff and find the call to color-theme-install
+ (save-excursion
+ (save-restriction
+ (narrow-to-defun)
+ ;; define the function
+ (eval-defun nil)
+ (goto-char (point-min))
+ (let* ((code (read (current-buffer)))
+ (theme (color-theme-canonic
+ (eval
+ (cadr
+ (color-theme-analyze-find-theme
+ code)))))
+ (func (color-theme-function theme))
+ (doc (documentation func t))
+ (variables (color-theme-variables theme))
+ (faces (color-theme-faces theme))
+ (params (color-theme-frame-params theme)))
+ (setq faces (color-theme-analyze-remove-heights
+ (color-theme-analyze-add-faces faces)))
+ ;; Remove any variable bindings of faces that point to their
+ ;; symbol? Perhaps not, because another theme might want to
+ ;; change this, so it is important to be able to reset them.
+ ;; (let (result)
+ ;; (dolist (var variables)
+ ;; (unless (eq (car var) (cdr var))
+ ;; (setq result (cons var result))))
+ ;; (setq variables (nreverse result)))
+ ;; Now modify the theme directly.
+ (setq theme (color-theme-analyze-find-theme code))
+ (setcdr (cadadr theme) (list params variables faces))
+ (message "Pretty printing analysed color theme function...")
+ (with-current-buffer (get-buffer-create "*Color Theme*")
+ (setq buffer-read-only nil)
+ (erase-buffer)
+ ;; insert defun
+ (color-theme-print-theme func doc params variables faces)
+ (emacs-lisp-mode))
+ (message "Pretty printing analysed color theme function... done")
+ (ediff-buffers (current-buffer)
+ (get-buffer "*Color Theme*"))))))
+
+;;; Creating a snapshot of the current color theme
+
+(defun color-theme-snapshot nil)
+
+;;;###autoload
+(defun color-theme-make-snapshot ()
+ "Return the definition of the current color-theme.
+The function returned will recreate the color-theme in use at the moment."
+ (eval `(lambda ()
+ "The color theme in use when the selection buffer was created.
+\\[color-theme-select] creates the color theme selection buffer. At the
+same time, this snapshot is created as a very simple undo mechanism.
+The snapshot is created via `color-theme-snapshot'."
+ (interactive)
+ (color-theme-install
+ '(color-theme-snapshot
+ ;; alist of frame parameters
+ ,(color-theme-get-params)
+ ;; alist of variables
+ ,(color-theme-get-vars)
+ ;; remaining elements of snapshot: face specs
+ ,@(color-theme-get-face-definitions))))))
+
+
+
+;;; Handling the various parts of a color theme install
+
+(defvar color-theme-frame-param-frobbing-rules
+ '((foreground-color default foreground)
+ (background-color default background))
+ "List of rules to use when frobbing faces based on frame parameters.
+This is only necessary for XEmacs, because in Emacs 21 changing the
+frame paramters automatically affects the relevant faces.")
+
+;; fixme: silent the bytecompiler with set-face-property
+(defun color-theme-frob-faces (params)
+ "Change certain faces according to PARAMS.
+This uses `color-theme-frame-param-frobbing-rules'."
+ (dolist (rule color-theme-frame-param-frobbing-rules)
+ (let* ((param (nth 0 rule))
+ (face (nth 1 rule))
+ (prop (nth 2 rule))
+ (val (cdr (assq param params)))
+ (frame (if color-theme-is-global nil (selected-frame))))
+ (when val
+ (set-face-property face prop val frame)))))
+
+(defun color-theme-alist-reduce (old-list)
+ "Reduce OLD-LIST.
+The resulting list will be newly allocated and will not contain any elements
+with duplicate cars. This will speed the installation of new themes by
+only installing unique attributes."
+ (let (new-list)
+ (dolist (elem old-list)
+ (when (not (assq (car elem) new-list))
+ (setq new-list (cons elem new-list))))
+ new-list))
+
+(defun color-theme-install-frame-params (params)
+ "Change frame parameters using alist PARAMETERS.
+
+If `color-theme-is-global' is non-nil, all frames are modified using
+`modify-frame-parameters' and the PARAMETERS are prepended to
+`default-frame-alist'. The value of `initial-frame-alist' is not
+modified. If `color-theme-is-global' is nil, only the selected frame is
+modified. If `color-theme-is-cumulative' is nil, the frame parameters
+are restored from `color-theme-original-frame-alist'.
+
+If the current frame parameters have a parameter `minibuffer' with
+value `only', then the frame parameters are not installed, since this
+indicates a dedicated minibuffer frame.
+
+Called from `color-theme-install'."
+ (setq params (color-theme-filter
+ params color-theme-legal-frame-parameters))
+ ;; We have a new list in params now, therefore we may use
+ ;; destructive nconc.
+ (if color-theme-is-global
+ (let ((frames (frame-list)))
+ (if (or color-theme-is-cumulative
+ (null color-theme-original-frame-alist))
+ (setq default-frame-alist
+ (append params (color-theme-alist default-frame-alist))
+ minibuffer-frame-alist
+ (append params (color-theme-alist minibuffer-frame-alist)))
+ (setq default-frame-alist
+ (append params color-theme-original-frame-alist)
+ minibuffer-frame-alist
+ (append params (color-theme-alist minibuffer-frame-alist))))
+ (setq default-frame-alist
+ (color-theme-alist-reduce default-frame-alist)
+ minibuffer-frame-alist
+ (color-theme-alist-reduce minibuffer-frame-alist))
+ (dolist (frame frames)
+ (let ((params (if (eq 'only (cdr (assq 'minibuffer (frame-parameters frame))))
+ minibuffer-frame-alist
+ default-frame-alist)))
+ (condition-case var
+ (modify-frame-parameters frame params)
+ (error (message "Error using params %S: %S" params var))))))
+ (condition-case var
+ (modify-frame-parameters (selected-frame) params)
+ (error (message "Error using params %S: %S" params var))))
+ (when color-theme-xemacs-p
+ (color-theme-frob-faces params)))
+
+;; (setq default-frame-alist (cons '(height . 30) default-frame-alist))
+
+(defun color-theme-install-variables (vars)
+ "Change variables using alist VARS.
+All variables matching `color-theme-legal-variables' are set.
+
+If `color-theme-is-global' and `color-theme-xemacs-p' are nil, variables
+are made frame-local before setting them. Variables are set using `set'
+in either case. This may lead to problems if changing the variable
+requires the usage of the function specified with the :set tag in
+defcustom declarations.
+
+Called from `color-theme-install'."
+ (let ((vars (color-theme-filter vars color-theme-legal-variables)))
+ (dolist (var vars)
+ (if (or color-theme-is-global color-theme-xemacs-p)
+ (set (car var) (cdr var))
+ (make-variable-frame-local (car var))
+ (modify-frame-parameters (selected-frame) (list var))))))
+
+(defun color-theme-install-faces (faces)
+ "Change faces using FACES.
+
+Change faces for all frames and create any faces listed in FACES which
+don't exist. The modified faces will be marked as \"unchanged from
+its standard setting\". This is OK, since the changes made by
+installing a color theme should never by saved in .emacs by
+customization code.
+
+FACES should be a list where each entry has the form:
+
+ (FACE SPEC)
+
+See `defface' for the format of SPEC.
+
+If `color-theme-is-global' is non-nil, faces are modified on all frames
+using `face-spec-set'. If `color-theme-is-global' is nil, faces are
+only modified on the selected frame. Non-existing faces are created
+using `make-empty-face' in either case. If `color-theme-is-cumulative'
+is nil, all faces are reset before installing the new faces.
+
+Called from `color-theme-install'."
+ ;; clear all previous faces
+ (when (not color-theme-is-cumulative)
+ (color-theme-reset-faces))
+ ;; install new faces
+ (let ((faces (color-theme-filter faces color-theme-illegal-faces t))
+ (frame (if color-theme-is-global nil (selected-frame))))
+ (dolist (entry faces)
+ (let ((face (nth 0 entry))
+ (spec (nth 1 entry)))
+ (or (facep face)
+ (make-empty-face face))
+ ;; remove weird properties from the default face only
+ (when (eq face 'default)
+ (setq spec (color-theme-spec-filter spec)))
+ ;; Emacs/XEmacs customization issues: filter out :bold when
+ ;; the spec contains :weight, etc, such that the spec remains
+ ;; "valid" for custom.
+ (setq spec (color-theme-spec-compat spec))
+ ;; using a spec of ((t (nil))) to reset a face doesn't work
+ ;; in Emacs 21, we use the new function face-spec-reset-face
+ ;; instead
+ (if (and (functionp 'face-spec-reset-face)
+ (equal spec '((t (nil)))))
+ (face-spec-reset-face face frame)
+ (condition-case var
+ (progn
+ (face-spec-set face spec frame)
+ (if color-theme-is-global
+ (put face 'face-defface-spec spec)))
+ (error (message "Error using spec %S: %S" spec var))))))))
+
+;; `custom-set-faces' is unusable here because it doesn't allow to set
+;; the faces for one frame only.
+
+;; Emacs `face-spec-set': If FRAME is nil, the face is created and
+;; marked as a customized face. This is achieved by setting the
+;; `face-defface-spec' property. If we don't, new frames will not be
+;; created using the face we installed because `face-spec-set' is
+;; broken: If given a FRAME of nil, it will not set the default faces;
+;; instead it will walk through all the frames and set modify the faces.
+;; If we do set a property (`saved-face' or `face-defface-spec'),
+;; `make-frame' will correctly use the faces we defined with our color
+;; theme. If we used the property `saved-face',
+;; `customize-save-customized' will save all the faces installed as part
+;; of a color-theme in .emacs. That's why we use the
+;; `face-defface-spec' property.
+
+
+
+;;; Theme accessor functions, canonicalization, merging, comparing
+
+(defun color-theme-canonic (theme)
+ "Return the canonic form of THEME.
+This deals with all the backwards compatibility stuff."
+ (let (function frame-params variables faces)
+ (when (functionp (car theme))
+ (setq function (car theme)
+ theme (cdr theme)))
+ (setq frame-params (car theme)
+ theme (cdr theme))
+ ;; optional variable defintions (for backwards compatibility)
+ (when (listp (caar theme))
+ (setq variables (car theme)
+ theme (cdr theme)))
+ ;; face definitions
+ (setq faces theme)
+ (list function frame-params variables faces)))
+
+(defun color-theme-function (theme)
+ "Return function used to create THEME."
+ (nth 0 theme))
+
+(defun color-theme-frame-params (theme)
+ "Return frame-parameters defined by THEME."
+ (nth 1 theme))
+
+(defun color-theme-variables (theme)
+ "Return variables set by THEME."
+ (nth 2 theme))
+
+(defun color-theme-faces (theme)
+ "Return faces defined by THEME."
+ (nth 3 theme))
+
+(defun color-theme-merge-alists (&rest alists)
+ "Merges all the alist arguments into one alist.
+Only the first instance of every key will be part of the resulting
+alist. Membership will be tested using `assq'."
+ (let (result)
+ (dolist (l alists)
+ (dolist (entry l)
+ (unless (assq (car entry) result)
+ (setq result (cons entry result)))))
+ (nreverse result)))
+;; (color-theme-merge-alists '((a . 1) (b . 2)))
+;; (color-theme-merge-alists '((a . 1) (b . 2) (a . 3)))
+;; (color-theme-merge-alists '((a . 1) (b . 2)) '((a . 3)))
+;; (color-theme-merge-alists '((a . 1) (b . 2)) '((c . 3)))
+;; (color-theme-merge-alists '((a . 1) (b . 2)) '((c . 3) (d . 4)))
+;; (color-theme-merge-alists '((a . 1) (b . 2)) '((c . 3) (d . 4) (b . 5)))
+
+;;;###autoload
+(defun color-theme-compare (theme-a theme-b)
+ "Compare two color themes.
+This will print the differences between installing THEME-A and
+installing THEME-B. Note that the order is important: If a face is
+defined in THEME-A and not in THEME-B, then this will not show up as a
+difference, because there is no reset before installing THEME-B. If a
+face is defined in THEME-B and not in THEME-A, then this will show up as
+a difference."
+ (interactive
+ (list
+ (intern
+ (completing-read "Theme A: "
+ (mapcar (lambda (i) (list (symbol-name (car i))))
+ color-themes)
+ (lambda (i) (string-match "color-theme" (car i)))))
+ (intern
+ (completing-read "Theme B: "
+ (mapcar (lambda (i) (list (symbol-name (car i))))
+ color-themes)
+ (lambda (i) (string-match "color-theme" (car i)))))))
+ ;; install the themes in a new frame and get the definitions
+ (let ((color-theme-is-global nil))
+ (select-frame (make-frame))
+ (funcall theme-a)
+ (setq theme-a (list theme-a
+ (color-theme-get-params)
+ (color-theme-get-vars)
+ (color-theme-get-face-definitions)))
+ (funcall theme-b)
+ (setq theme-b (list theme-b
+ (color-theme-get-params)
+ (color-theme-get-vars)
+ (color-theme-get-face-definitions)))
+ (delete-frame))
+ (let ((params (set-difference
+ (color-theme-frame-params theme-b)
+ (color-theme-frame-params theme-a)
+ :test 'equal))
+ (vars (set-difference
+ (color-theme-variables theme-b)
+ (color-theme-variables theme-a)
+ :test 'equal))
+ (faces (set-difference
+ (color-theme-faces theme-b)
+ (color-theme-faces theme-a)
+ :test 'equal)))
+ (list 'diff
+ params
+ vars
+ faces)))
+
+
+
+;;; Installing a color theme
+;;;###autoload
+(defun color-theme-install (theme)
+ "Install a color theme defined by frame parameters, variables and faces.
+
+The theme is installed for all present and future frames; any missing
+faces are created. See `color-theme-install-faces'.
+
+THEME is a color theme definition. See below for more information.
+
+If you want to install a color theme from your .emacs, use the output
+generated by `color-theme-print'. This produces color theme function
+which you can copy to your .emacs.
+
+A color theme definition is a list:
+\([FUNCTION] FRAME-PARAMETERS VARIABLE-SETTINGS FACE-DEFINITIONS)
+
+FUNCTION is the color theme function which called `color-theme-install'.
+This is no longer used. There was a time when this package supported
+automatic factoring of color themes. This has been abandoned.
+
+FRAME-PARAMETERS is an alist of frame parameters. These are installed
+with `color-theme-install-frame-params'. These are installed last such
+that any changes to the default face can be changed by the frame
+parameters.
+
+VARIABLE-DEFINITIONS is an alist of variable settings. These are
+installed with `color-theme-install-variables'.
+
+FACE-DEFINITIONS is an alist of face definitions. These are installed
+with `color-theme-install-faces'.
+
+If `color-theme-is-cumulative' is nil, a color theme will undo face and
+frame-parameter settings of previous color themes."
+ (setq theme (color-theme-canonic theme))
+ (color-theme-install-variables (color-theme-variables theme))
+ (color-theme-install-faces (color-theme-faces theme))
+ ;; frame parameters override faces
+ (color-theme-install-frame-params (color-theme-frame-params theme))
+ (when color-theme-history-max-length
+ (color-theme-add-to-history
+ (car theme))))
+
+
+
+;; Sharing your stuff
+;;;###autoload
+(defun color-theme-submit ()
+ "Submit your color-theme to the maintainer."
+ (interactive)
+ (require 'reporter)
+ (let ((reporter-eval-buffer (current-buffer))
+ final-resting-place
+ after-sep-pos
+ (reporter-status-message "Formatting buffer...")
+ (reporter-status-count 0)
+ (problem "Yet another color-theme")
+ (agent (reporter-compose-outgoing))
+ (mailbuf (current-buffer))
+ hookvar)
+ ;; do the work
+ (require 'sendmail)
+ ;; If mailbuf did not get made visible before, make it visible now.
+ (let (same-window-buffer-names same-window-regexps)
+ (pop-to-buffer mailbuf)
+ ;; Just in case the original buffer is not visible now, bring it
+ ;; back somewhere
+ (and pop-up-windows (display-buffer reporter-eval-buffer)))
+ (goto-char (point-min))
+ (mail-position-on-field "to")
+ (insert color-theme-maintainer-address)
+ (mail-position-on-field "subject")
+ (insert problem)
+ ;; move point to the body of the message
+ (mail-text)
+ (setq after-sep-pos (point))
+ (unwind-protect
+ (progn
+ (setq final-resting-place (point-marker))
+ (goto-char final-resting-place))
+ (color-theme-print (current-buffer))
+ (goto-char final-resting-place)
+ (insert "\n\n")
+ (goto-char final-resting-place)
+ (insert "Hello there!\n\nHere's my color theme named: ")
+ (set-marker final-resting-place nil))
+ ;; compose the minibuf message and display this.
+ (let* ((sendkey-whereis (where-is-internal
+ (get agent 'sendfunc) nil t))
+ (abortkey-whereis (where-is-internal
+ (get agent 'abortfunc) nil t))
+ (sendkey (if sendkey-whereis
+ (key-description sendkey-whereis)
+ "C-c C-c")); TBD: BOGUS hardcode
+ (abortkey (if abortkey-whereis
+ (key-description abortkey-whereis)
+ "M-x kill-buffer"))); TBD: BOGUS hardcode
+ (message "Enter a message and type %s to send or %s to abort."
+ sendkey abortkey))))
+
+
+
+;; Use this to define themes
+(defmacro define-color-theme (name author description &rest forms)
+ (let ((n name))
+ `(progn
+ (add-to-list 'color-themes
+ (list ',n
+ (upcase-initials
+ (replace-in-string
+ (replace-in-string
+ (symbol-name ',n) "^color-theme-" "") "-" " "))
+ ,author))
+ (defun ,n ()
+ ,description
+ (interactive)
+ ,@forms))))
+
+
+;;; FIXME: is this useful ??
+;;;###autoload
+(defun color-theme-initialize ()
+ "Initialize the color theme package by loading color-theme-libraries."
+ (interactive)
+
+ (cond ((and (not color-theme-load-all-themes)
+ color-theme-directory)
+ (setq color-theme-libraries
+ (directory-files color-theme-directory t "^color-theme")))
+ (color-theme-directory
+ (push (cdr (directory-files color-theme-directory t "^color-theme"))
+ color-theme-libraries)))
+ (dolist (library color-theme-libraries)
+ (load library)))
+
+(when nil
+ (setq color-theme-directory "themes/"
+ color-theme-load-all-themes nil)
+ (color-theme-initialize)
+)
+;; TODO: I don't like all those function names cluttering up my namespace.
+;; Instead, a hashtable for the color-themes should be created. Now that
+;; define-color-theme is around, it should be easy to change in just the
+;; one place.
+
+
+(provide 'color-theme)
+
+;;; color-theme.el ends here
diff --git a/.emacs.d/csharp-mode.el b/.emacs.d/csharp-mode.el
new file mode 100644
index 0000000..9cd7914
--- /dev/null
+++ b/.emacs.d/csharp-mode.el
@@ -0,0 +1,1977 @@
+;;; csharp-mode.el --- C# mode derived mode
+
+;; Author: Dylan R. E. Moonfire
+;; Maintainer: Dylan R. E. Moonfire <contact@mfgames.com>
+;; Created: Feburary 2005
+;; Modified: February 2010
+;; Version: 0.7.4 - Dino Chiesa <dpchiesa@hotmail.com>
+;; Keywords: c# languages oop mode
+
+;; 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
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; see the file COPYING. If not, write to
+;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+;;
+;; This is a separate mode to implement the C# constructs and
+;; font-locking. It is based on the java-mode example from cc-mode.
+;;
+;; csharp-mode requires CC Mode 5.30 or later. It works with
+;; cc-mode 5.31.3, which is current at this time.
+;;
+;; Features:
+;;
+;; - font-lock and indent of C# syntax including:
+;; all c# keywords and major syntax
+;; attributes that decorate methods, classes, fields, properties
+;; enum types
+;; #if/#endif #region/#endregion
+;; instance initializers
+;; anonymous functions and methods
+;; verbatim literal strings (those that begin with @)
+;; generics
+;;
+;; - automagic code-doc generation when you type three slashes.
+;;
+;; - intelligent inserttion of matched pairs of curly braces.
+;;
+;; - sets the compiler regex for next-error, for csc.exe output.
+;;
+;;
+
+
+;;; To use:
+;;
+;; put this in your .emacs:
+;;
+;; (autoload 'csharp-mode "csharp-mode" "Major mode for editing C# code." t)
+;;
+;; or:
+;;
+;; (require 'csharp-mode)
+;;
+;;
+;; AND:
+;;
+;; (setq auto-mode-alist
+;; (append '(("\\.cs$" . csharp-mode)) auto-mode-alist))
+;; (defun my-csharp-mode-fn ()
+;; "function that runs when csharp-mode is initialized for a buffer."
+;; ...insert your code here...
+;; ...most commonly, your custom key bindings ...
+;; )
+;; (add-hook 'csharp-mode-hook 'my-csharp-mode-fn t)
+;;
+;;
+
+
+;;; Bugs:
+;;
+;; Namespaces in the using statements are not fontified. Should do in
+;; c-basic-matchers-before or c-basic-matchers-after.
+;;
+;; Method names with a preceding attribute are not fontified.
+;;
+;; Field/Prop names inside object initializers are fontified only
+;; if the null constructor is used, with no parens.
+;;
+;; This code doesn't seem to work when you compile it, then
+;; load/require in the emacs file. You will get an error (error
+;; "`c-lang-defconst' must be used in a file") which happens because
+;; cc-mode doesn't think it is in a buffer while loading directly
+;; from the init. However, if you call it based on a file extension,
+;; it works properly. Interestingly enough, this doesn't happen if
+;; you don't byte-compile cc-mode.
+;;
+;;
+;;
+;; Todo:
+;;
+;; Get csharp-mode.el accepted as part of the emacs standard distribution.
+;; Must contact monnier at iro.umontreal.ca to make this happen.
+;;
+;;
+;;
+;; Acknowledgements:
+;;
+;; Thanks to Alan Mackenzie and Stefan Monnier for answering questions
+;; and making suggestions.
+;;
+;;
+
+;;; Versions:
+;;
+;; 0.1.0 - Initial release.
+;; 0.2.0 - Fixed the identification on the "enum" keyword.
+;; - Fixed the font-lock on the "base" keyword
+;; 0.3.0 - Added a regex to fontify attributes. It isn't the
+;; the best method, but it handles single-like attributes
+;; well.
+;; - Got "super" not to fontify as a keyword.
+;; - Got extending classes and interfaces to fontify as something.
+;; 0.4.0 - Removed the attribute matching because it broke more than
+;; it fixed.
+;; - Corrected a bug with namespace not being properly identified
+;; and treating the class level as an inner object, which screwed
+;; up formatting.
+;; - Added "partial" to the keywords.
+;; 0.5.0 - Found bugs with compiled cc-mode and loading from init files.
+;; - Updated the eval-when-compile to code to let the mode be
+;; compiled.
+;; 0.6.0 - Added the c-filter-ops patch for 5.31.1 which made that
+;; function in cc-langs.el unavailable.
+;; - Added a csharp-lineup-region for indention #region and
+;; #endregion block differently.
+;; 0.7.0 - Added autoload so update-directory-autoloads works
+;; (Thank you, Nikolaj Schumacher)
+;; - Fontified the entire #region and #endregion lines.
+;; - Initial work to get get, set, add, remove font-locked.
+;; 0.7.1 - Added option to indent #if/endif with code
+;; - Fixed c-opt-cpp-prefix defn (it must not include the BOL
+;; char (^).
+;; - proper fontification and indent of classes that inherit
+;; (previously the colon was confusing the parser)
+;; - reclassified namespace as a block beginner
+;; - removed $ as a legal symbol char - not legal in C#.
+;; - added struct to c-class-decl-kwds so indent is correct
+;; within a struct.
+;; 0.7.2 - Added automatic codedoc insertion.
+;; 0.7.3 - Instance initializers (new Type { ... } ) and
+;; (new Type() { ...} ) are now indented properly.
+;; - proper fontification and indent of enums as brace-list-*,
+;; including special treatment for enums that explicitly
+;; inherit from an int type. Previously the colon was
+;; confusing the parser.
+;; - proper fontification of verbatim literal strings,
+;; including those that end in slash. This edge case was not
+;; handled at all before; it is now handled correctly.
+;; - code cleanup and organization; removed the linefeed.
+;; - intelligent curly-brace insertion
+;; 0.7.4 - added a C# style
+;; - using is now a keyword and gets fontified
+;; - fixed a bug that had crept into the codedoc insertion
+;;
+
+
+(require 'cc-mode)
+
+(message (concat "Loading " load-file-name))
+
+
+;; ==================================================================
+;; c# upfront stuff
+;; ==================================================================
+
+;; This is a copy of the function in cc-mode which is used to handle
+;; the eval-when-compile which is needed during other times.
+(defun c-filter-ops (ops opgroup-filter op-filter &optional xlate)
+ ;; See cc-langs.el, a direct copy.
+ (unless (listp (car-safe ops))
+ (setq ops (list ops)))
+ (cond ((eq opgroup-filter t)
+ (setq opgroup-filter (lambda (opgroup) t)))
+ ((not (functionp opgroup-filter))
+ (setq opgroup-filter `(lambda (opgroup)
+ (memq opgroup ',opgroup-filter)))))
+ (cond ((eq op-filter t)
+ (setq op-filter (lambda (op) t)))
+ ((stringp op-filter)
+ (setq op-filter `(lambda (op)
+ (string-match ,op-filter op)))))
+ (unless xlate
+ (setq xlate 'identity))
+ (c-with-syntax-table (c-lang-const c-mode-syntax-table)
+ (delete-duplicates
+ (mapcan (lambda (opgroup)
+ (when (if (symbolp (car opgroup))
+ (when (funcall opgroup-filter (car opgroup))
+ (setq opgroup (cdr opgroup))
+ t)
+ t)
+ (mapcan (lambda (op)
+ (when (funcall op-filter op)
+ (let ((res (funcall xlate op)))
+ (if (listp res) res (list res)))))
+ opgroup)))
+ ops)
+ :test 'equal)))
+
+
+
+;; These are only required at compile time to get the sources for the
+;; language constants. (The cc-fonts require and the font-lock
+;; related constants could additionally be put inside an
+;; (eval-after-load "font-lock" ...) but then some trickery is
+;; necessary to get them compiled.)
+(eval-when-compile
+ (let ((load-path
+ (if (and (boundp 'byte-compile-dest-file)
+ (stringp byte-compile-dest-file))
+ (cons (file-name-directory byte-compile-dest-file) load-path)
+ load-path)))
+ (load "cc-mode" nil t)
+ (load "cc-fonts" nil t)
+ (load "cc-langs" nil t)))
+
+(eval-and-compile
+ ;; Make our mode known to the language constant system. Use Java
+ ;; mode as the fallback for the constants we don't change here.
+ ;; This needs to be done also at compile time since the language
+ ;; constants are evaluated then.
+ (c-add-language 'csharp-mode 'java-mode))
+
+;; ==================================================================
+;; end of c# upfront stuff
+;; ==================================================================
+
+
+
+
+
+;; ==================================================================
+;; csharp-mode utility and feature defuns
+;; ==================================================================
+
+;; Indention: csharp-mode follows normal indention rules except for
+;; when indenting the #region and #endregion blocks. This function
+;; defines a custom indention to indent the #region blocks properly
+;;
+
+(defun csharp-lineup-region (langelem)
+ "Indent all #region and #endregion blocks inline with code while
+retaining normal column-zero indention for #if and the other
+processing blocks.
+
+To use this indenting just put the following in your emacs file:
+ (c-set-offset 'cpp-macro 'csharp-lineup-region)
+
+An alternative is to use `csharp-lineup-if-and-region'.
+"
+
+ (save-excursion
+ (back-to-indentation)
+ (if (re-search-forward "#\\(end\\)?region" (c-point 'eol) [0]) 0 [0])))
+
+
+
+(defun csharp-lineup-if-and-region (langelem)
+
+"Indent all #region/endregion blocks and #if/endif blocks inline
+with code while retaining normal column-zero indention for any
+other processing blocks.
+
+To use this indenting just put the following in your emacs file:
+ (c-set-offset 'cpp-macro 'csharp-lineup-if-and-region)
+
+Another option is to use `csharp-lineup-region'.
+
+"
+ (save-excursion
+ (back-to-indentation)
+ (if (re-search-forward "#\\(\\(end\\)?\\(if\\|region\\)\\|else\\)" (c-point 'eol) [0]) 0 [0])))
+
+
+
+
+
+(defun csharp-insert-open-brace ()
+ "Intelligently insert a pair of curly braces. This fn is most
+often bound to the open-curly brace, with
+
+ (local-set-key (kbd \"{\") 'csharp-insert-open-brace)
+
+The default binding for an open curly brace in cc-modes is often
+`c-electric-brace' or `skeleton-pair-insert-maybe'. The former
+can be configured to insert newlines around braces in various
+syntactic positions. The latter inserts a pair of braces and
+then does not insert a newline, and does not indent.
+
+This fn provides another option, with some additional
+intelligence for csharp-mode. When you type an open curly, the
+appropriate pair of braces appears, with spacing and indent set
+in a context-sensitive manner.
+
+Within a string literal, you just get a pair of braces, and point
+is set between them. Following an equals sign, you get a pair of
+braces, with a semincolon appended. Otherwise, you
+get the open brace on a new line, with the closing brace on the
+line following.
+
+There may be another way to get this to happen appropriately just within emacs,
+but I could not figure out how to do it. So I wrote this alternative.
+"
+ (interactive)
+ (let
+ (tpoint
+ (in-string (string= (csharp-in-literal) "string"))
+ (preceding3
+ (save-excursion
+ (and
+ (skip-chars-backward " ")
+ (> (- (point) 2) (point-min))
+ (buffer-substring-no-properties (point) (- (point) 3)))))
+ (one-word-back
+ (save-excursion
+ (backward-word 2)
+ (thing-at-point 'word))))
+
+ (cond
+
+ ;; Case 1: inside a string literal?
+ ;; --------------------------------------------
+ ;; If so, then just insert a pair of braces and put the point
+ ;; between them. The most common case is a format string for
+ ;; String.Format() or Console.WriteLine().
+ (in-string
+ (self-insert-command 1)
+ (insert "}")
+ (backward-char))
+
+ ;; Case 2: the open brace starts an array initializer.
+ ;; --------------------------------------------
+ ;; When the last non-space was an equals sign or square brackets,
+ ;; then it's an initializer.
+ ((save-excursion
+ (backward-sexp)
+ (looking-at "\\(\\w+\\b *=\\|[[]]+\\)"))
+ (self-insert-command 1)
+ (insert " };")
+ (backward-char 3))
+
+ ;; Case 3: the open brace starts an instance initializer
+ ;; --------------------------------------------
+ ;; If one-word-back was "new", then it's an object initializer.
+ ((string= one-word-back "new")
+ (save-excursion
+ (message "object initializer")
+ (setq tpoint (point)) ;; prepare to indent-region later
+ (newline)
+ (self-insert-command 1)
+ (newline-and-indent)
+ (newline)
+ (insert "};")
+ (c-indent-region tpoint (point))
+ (previous-line)
+ (indent-according-to-mode)
+ (end-of-line)
+ (setq tpoint (point)))
+ (goto-char tpoint))
+
+ ;; Case 4: a lambda initialier.
+ ;; --------------------------------------------
+ ;; If the open curly follows =>, then it's a lambda initializer.
+ ((string= (substring preceding3 -2) "=>")
+ (message "lambda init")
+ (self-insert-command 1)
+ (insert " }")
+ (backward-char 2))
+
+ ;; else, it's a new scope. (if, while, class, etc)
+ (t
+ (save-excursion
+ (message "new scope")
+ (set-mark (point)) ;; prepare to indent-region later
+ ;; check if the prior sexp is on the same line
+ (if (save-excursion
+ (let ((curline (line-number-at-pos))
+ (aftline (progn
+ (backward-sexp)
+ (line-number-at-pos))))
+ (= curline aftline)))
+ (newline-and-indent))
+ (self-insert-command 1)
+ (c-indent-line-or-region)
+ (end-of-line)
+ (newline)
+ (insert "}")
+ ;;(c-indent-command) ;; not sure of the difference here
+ (c-indent-line-or-region)
+ (previous-line)
+ (end-of-line)
+ (newline-and-indent)
+ ;; point ends up on an empty line, within the braces, properly indented
+ (setq tpoint (point)))
+
+ (goto-char tpoint)))))
+
+
+
+
+;; ==================================================================
+;; end of csharp-mode utility and feature defuns
+;; ==================================================================
+
+
+
+
+
+
+;; ==================================================================
+;; c# values for "language constants" defined in cc-langs.el
+;; ==================================================================
+
+
+;; Java uses a series of regexes to change the font-lock for class
+;; references. The problem comes in because Java uses Pascal (leading
+;; space in names, SomeClass) for class and package names, but
+;; Camel-casing (initial lowercase, upper case in words,
+;; i.e. someVariable) for variables. The notation suggested by EMCA for C# is
+;; to use Pascal notation for everything, except inner variables. So,
+;; the Java regex and formatting produces very wrong results in C#.
+;;(error (byte-compile-dest-file))
+;;(error (c-get-current-file))
+(c-lang-defconst c-opt-after-id-concat-key
+ csharp (if (c-lang-const c-opt-identifier-concat-key)
+ (c-lang-const c-symbol-start)))
+
+(c-lang-defconst c-basic-matchers-before
+ csharp `(
+ ;;;; Font-lock the attributes by searching for the
+ ;;;; appropriate regex and marking it as TODO.
+ ;;,`(,(concat "\\(" csharp-attribute-regex "\\)")
+ ;; 0 font-lock-function-name-face)
+
+ ;; Put a warning face on the opener of unclosed strings that
+ ;; can't span lines. Later font
+ ;; lock packages have a `font-lock-syntactic-face-function' for
+ ;; this, but it doesn't give the control we want since any
+ ;; fontification done inside the function will be
+ ;; unconditionally overridden.
+ ,(c-make-font-lock-search-function
+ ;; Match a char before the string starter to make
+ ;; `c-skip-comments-and-strings' work correctly.
+ (concat ".\\(" c-string-limit-regexp "\\)")
+ '((c-font-lock-invalid-string)))
+
+ ;; Fontify keyword constants.
+ ,@(when (c-lang-const c-constant-kwds)
+ (let ((re (c-make-keywords-re nil
+ (c-lang-const c-constant-kwds))))
+ `((eval . (list ,(concat "\\<\\(" re "\\)\\>")
+ 1 c-constant-face-name)))))
+
+ ;; Fontify all keywords except the primitive types.
+ ,`(,(concat "\\<" (c-lang-const c-regular-keywords-regexp))
+ 1 font-lock-keyword-face)
+
+ ;; Fontify leading identifiers in fully qualified names like
+ ;; "Foo.Bar".
+ ,@(when (c-lang-const c-opt-identifier-concat-key)
+ `((,(byte-compile
+ `(lambda (limit)
+ (while (re-search-forward
+ ,(concat "\\(\\<" ; 1
+ "\\(" (c-lang-const c-symbol-key)
+ "\\)" ; 2
+ "[ \t\n\r\f\v]*"
+ (c-lang-const
+ c-opt-identifier-concat-key)
+ "[ \t\n\r\f\v]*"
+ "\\)"
+ "\\("
+ (c-lang-const
+ c-opt-after-id-concat-key)
+ "\\)")
+ limit t)
+ (unless (progn
+ (goto-char (match-beginning 0))
+ (c-skip-comments-and-strings limit))
+ (or (get-text-property (match-beginning 2) 'face)
+ (c-put-font-lock-face (match-beginning 2)
+ (match-end 2)
+ c-reference-face-name))
+ (goto-char (match-end 1)))))))))
+ ))
+
+
+
+;; C# does not allow a leading qualifier operator. It also doesn't
+;; allow the ".*" construct of Java. So, we redo this regex without
+;; the "\\|\\*" regex.
+(c-lang-defconst c-identifier-key
+ csharp (concat "\\(" (c-lang-const c-symbol-key) "\\)" ; 1
+ (concat "\\("
+ "[ \t\n\r\f\v]*"
+ (c-lang-const c-opt-identifier-concat-key)
+ "[ \t\n\r\f\v]*"
+ (concat "\\("
+ "\\(" (c-lang-const c-symbol-key) "\\)"
+ "\\)")
+ "\\)*")))
+
+;; C# has a few rules that are slightly different than Java for
+;; operators. This also removed the Java's "super" and replaces it
+;; with the C#'s "base".
+(c-lang-defconst c-operators
+ csharp `((prefix "base")))
+
+
+;; C# uses CPP-like prefixes to mark #define, #region/endregion,
+;; #if/else/endif, and #pragma. This regexp matches the prefix,
+;; not including the beginning-of-line (BOL), and not including
+;; the term after the prefix (define, pragma, etc). This regexp says
+;; whitespace, followed by the prefix, followed by maybe more whitespace.
+
+(c-lang-defconst c-opt-cpp-prefix
+ csharp "\\s *#\\s *")
+
+
+;; there are no message directives in C#
+(c-lang-defconst c-cpp-message-directives
+ csharp nil)
+
+(c-lang-defconst c-cpp-expr-directives
+ csharp '("if"))
+
+(c-lang-defconst c-opt-cpp-macro-define
+ csharp "define")
+
+;; $ is not a legal char in an identifier in C#. So we need to
+;; create a csharp-specific definition of this constant.
+(c-lang-defconst c-symbol-chars
+ csharp (concat c-alnum "_"))
+
+
+(c-lang-defconst c-colon-type-list-kwds
+ csharp '("class"))
+
+(c-lang-defconst c-block-prefix-disallowed-chars
+
+ ;; Allow ':' for inherit list starters.
+ csharp (set-difference (c-lang-const c-block-prefix-disallowed-chars)
+ '(?: ?,)))
+
+
+(c-lang-defconst c-assignment-operators
+ csharp '("=" "*=" "/=" "%=" "+=" "-=" ">>=" "<<=" "&=" "^=" "|="))
+
+(c-lang-defconst c-primitive-type-kwds
+ ;; ECMA-344, S8
+ csharp '("object" "string" "sbyte" "short" "int" "long" "byte"
+ "ushort" "uint" "ulong" "float" "double" "bool" "char"
+ "decimal" "void"))
+
+;; The keywords that define that the following is a type, such as a
+;; class definition.
+(c-lang-defconst c-type-prefix-kwds
+ ;; ECMA-344, S?
+ csharp '("class" "interface" "struct")) ;; no enum here.
+ ;; we want enum to be a brace list.
+
+
+;; Type modifier keywords. They appear anywhere in types, but modify
+;; instead of create one.
+(c-lang-defconst c-type-modifier-kwds
+ ;; EMCA-344, S?
+ csharp '("readonly" "const"))
+
+
+;; Tue, 20 Apr 2010 16:02
+;; need to vverify that this works for lambdas...
+(c-lang-defconst c-special-brace-lists
+ csharp '((?{ . ?}) ))
+
+
+
+;; dinoch
+;; Thu, 22 Apr 2010 18:54
+;;
+;; No idea why this isn't getting set properly in the first place.
+;; In cc-langs.el, it is set to the union of a bunch of things, none
+;; of which include "new", or "enum".
+;;
+;; But somehow both of those show up in the resulting derived regexp.
+;; This breaks indentation of instance initializers, such as
+;;
+;; var x = new Foo { ... };
+;;
+;; Based on my inspection, the existing c-lang-defconst should work!
+;; I don't know how to fix this c-lang-defconst, so I am re-setting this
+;; variable here, to provide the regex explicitly.
+;;
+(c-lang-defconst c-decl-block-key
+
+ csharp '"\\(namespace\\)\\([^[:alnum:]_]\\|$\\)\\|\\(class\\|interface\\|struct\\)\\([^[:alnum:]_]\\|$\\)"
+ )
+
+
+
+;; Thu, 22 Apr 2010 14:29
+;; I want this to handle var x = new Foo[] { ... };
+;; not sure if necessary.
+(c-lang-defconst c-inexpr-brace-list-kwds
+ csharp '("new"))
+
+
+;; ;;(c-lang-defconst c-inexpr-class-kwds
+;; ;; csharp '("new"))
+
+
+
+(c-lang-defconst c-class-decl-kwds
+ ;; EMCA-344, S?
+ csharp '("class" "interface" "struct" )) ;; no "enum"!!
+
+
+;; The various modifiers used for class and method descriptions.
+(c-lang-defconst c-modifier-kwds
+ csharp '("public" "partial" "private" "const" "abstract"
+ "protected" "ref" "out" "static" "virtual"
+ "override" "params" "internal"))
+
+
+;; Thu, 22 Apr 2010 23:02
+;; Based on inspection of the cc-mode code, the c-protection-kwds
+;; c-lang-const is used only for objective-c. So the value is
+;; irrelevant for csharp.
+(c-lang-defconst c-protection-kwds
+ csharp nil
+ ;; csharp '("private" "protected" "public" "internal")
+)
+
+
+;; Define the keywords that can have something following after them.
+(c-lang-defconst c-type-list-kwds
+ csharp '("struct" "class" "interface" "is" "as"
+ "delegate" "event" "set" "get" "add" "remove"))
+
+
+;; This allows the classes after the : in the class declartion to be
+;; fontified.
+(c-lang-defconst c-typeless-decl-kwds
+ csharp '(":"))
+
+;; Sets up the enum to handle the list properly, and also the new
+;; keyword to handle object initializers. This requires a modified
+;; c-basic-matchers-after (see above) in order to correctly fontify C#
+;; 3.0 object initializers.
+(c-lang-defconst c-brace-list-decl-kwds
+ csharp '("enum" "new"))
+
+
+;; Statement keywords followed directly by a substatement.
+;; catch is not one of them.
+(c-lang-defconst c-block-stmt-1-kwds
+ csharp '("do" "try" "finally"))
+
+
+;; Statement keywords followed by a paren sexp and then by a substatement.
+(c-lang-defconst c-block-stmt-2-kwds
+ csharp '("for" "if" "switch" "while" "catch" "foreach" "using"
+ "checked" "unchecked" "lock"))
+
+
+;; Statements that break out of braces
+(c-lang-defconst c-simple-stmt-kwds
+ csharp '("return" "continue" "break" "throw" "goto" ))
+
+;; Statements that allow a label
+;; TODO?
+(c-lang-defconst c-before-label-kwds
+ csharp nil)
+
+;; Constant keywords
+(c-lang-defconst c-constant-kwds
+ csharp '("true" "false" "null"))
+
+;; Keywords that start "primary expressions."
+(c-lang-defconst c-primary-expr-kwds
+ csharp '("this" "base"))
+
+;; Treat namespace as an outer block so class indenting
+;; works properly.
+(c-lang-defconst c-other-block-decl-kwds
+ csharp '("namespace"))
+
+(c-lang-defconst c-other-kwds
+ csharp '("in" "sizeof" "typeof" "is" "as" "yield"
+ "where" "select" "from"))
+
+(c-lang-defconst c-overloadable-operators
+ ;; EMCA-344, S14.2.1
+ csharp '("+" "-" "*" "/" "%" "&" "|" "^"
+ "<<" ">>" "==" "!=" ">" "<" ">=" "<="))
+
+
+;; This c-cpp-matchers stuff is used for fontification.
+;; see cc-font.el
+;;
+
+;; There's no preprocessor in C#, but there are still compiler
+;; directives to fontify: "#pragma", #region/endregion, #define, #undef,
+;; #if/else/endif. (The definitions for the extra keywords above are
+;; enough to incorporate them into the fontification regexps for types
+;; and keywords, so no additional font-lock patterns are required for
+;; keywords.)
+
+(c-lang-defconst c-cpp-matchers
+ csharp (cons
+ ;; Use the eval form for `font-lock-keywords' to be able to use
+ ;; the `c-preprocessor-face-name' variable that maps to a
+ ;; suitable face depending on the (X)Emacs version.
+ '(eval . (list "^\\s *\\(#pragma\\|undef\\|define\\)\\>\\(.*\\)"
+ (list 1 c-preprocessor-face-name)
+ '(2 font-lock-string-face)))
+ ;; There are some other things in `c-cpp-matchers' besides the
+ ;; preprocessor support, so include it.
+ (c-lang-const c-cpp-matchers)))
+
+(defcustom csharp-font-lock-extra-types nil
+ "*List of extra types (aside from the type keywords) to recognize in C# mode.
+Each list item should be a regexp matching a single identifier."
+ :type 'list :group 'csharp)
+
+(defconst csharp-font-lock-keywords-1 (c-lang-const c-matchers-1 csharp)
+ "Minimal highlighting for C# mode.")
+
+(defconst csharp-font-lock-keywords-2 (c-lang-const c-matchers-2 csharp)
+ "Fast normal highlighting for C# mode.")
+
+(defconst csharp-font-lock-keywords-3 (c-lang-const c-matchers-3 csharp)
+ "Accurate normal highlighting for C# mode.")
+
+(defvar csharp-font-lock-keywords csharp-font-lock-keywords-3
+ "Default expressions to highlight in C# mode.")
+
+(defvar csharp-mode-syntax-table nil
+ "Syntax table used in csharp-mode buffers.")
+(or csharp-mode-syntax-table
+ (setq csharp-mode-syntax-table
+ (funcall (c-lang-const c-make-mode-syntax-table csharp))))
+
+(defvar csharp-mode-abbrev-table nil
+ "Abbreviation table used in csharp-mode buffers.")
+(c-define-abbrev-table 'csharp-mode-abbrev-table
+ ;; Keywords that if they occur first on a line might alter the
+ ;; syntactic context, and which therefore should trig reindentation
+ ;; when they are completed.
+ '(("else" "else" c-electric-continued-statement 0)
+ ("while" "while" c-electric-continued-statement 0)
+ ("catch" "catch" c-electric-continued-statement 0)
+ ("finally" "finally" c-electric-continued-statement 0)))
+
+(defvar csharp-mode-map (let ((map (c-make-inherited-keymap)))
+ ;; Add bindings which are only useful for C#
+ map)
+ "Keymap used in csharp-mode buffers.")
+
+
+;; TODO
+;; Defines our constant for finding attributes.
+;;(defconst csharp-attribute-regex "\\[\\([XmlType]+\\)(")
+;;(defconst csharp-attribute-regex "\\[\\(.\\)")
+;; This doesn't work because the string regex happens before this point
+;; and getting the font-locking to work before and after is fairly difficult
+;;(defconst csharp-attribute-regex
+;; (concat
+;; "\\[[a-zA-Z][ \ta-zA-Z0-9.]+"
+;; "\\((.*\\)?"
+;;))
+
+
+;; ==================================================================
+;; end of c# values for "language constants" defined in cc-langs.el
+;; ==================================================================
+
+
+
+
+;; ==================================================================
+;; C# code-doc insertion magic
+;; ==================================================================
+;;
+;; In Visual Studio, if you type three slashes, it immediately expands into
+;; an inline code-documentation fragment. The following method does the
+;; same thing.
+;;
+;; This is the kind of thing that could be handled by YASnippet or
+;; another similarly flexible snippet framework. But I don't want to
+;; introduce a dependency on yasnippet to csharp-mode. So the capability
+;; must live within csharp-mode itself.
+
+(defun csharp-maybe-insert-codedoc (arg)
+
+ "Insert an xml code documentation template as appropriate, when
+typing slashes. This fn gets bound to / (the slash key), in
+csharp-mode. If the slash being inserted is not the third
+consecutive slash, the slash is inserted as normal. If it is the
+third consecutive slash, then a xml code documentation template
+may be inserted in some cases. For example,
+
+ a <summary> template is inserted if the prior line is empty,
+ or contains only an open curly brace;
+ a <remarks> template is inserted if the prior word
+ closes the <summary> element;
+ a <returns> template is inserted if the prior word
+ closes the <remarks> element;
+ an <example> template is inserted if the prior word closes
+ the <returns> element;
+ a <para> template is inserted if the prior word closes
+ a <para> element.
+
+In all other cases the slash is inserted as normal.
+
+If you want the default cc-mode behavior, which implies no automatic
+insertion of xml code documentation templates, then use this in
+your `csharp-mode-hook' function:
+
+ (local-set-key (kbd \"/\") 'c-electric-slash)
+
+ "
+ (interactive "*p")
+ ;;(message "csharp-maybe-insert-codedoc")
+ (let (
+ (cur-point (point))
+ (char last-command-char)
+ (cb0 (char-before (- (point) 0)))
+ (cb1 (char-before (- (point) 1)))
+ is-first-non-whitespace
+ did-auto-insert
+ )
+
+ ;; check if two prior chars were slash
+ (if (and
+ (= char ?/)
+ cb0 (= ?/ cb0)
+ cb1 (= ?/ cb1)
+ )
+
+ (progn
+ ;;(message "yes - this is the third consecutive slash")
+ (setq is-first-non-whitespace
+ (save-excursion
+ (back-to-indentation)
+ (= cur-point (+ (point) 2))))
+
+ (if is-first-non-whitespace
+ ;; This is a 3-slash sequence. It is the first non-whitespace text
+ ;; on the line. Now we need to examine the surrounding context
+ ;; in order to determine which xml cod doc template to insert.
+ (let (word-back char0 char1
+ word-fore char-0 char-1
+ text-to-insert ;; text to insert in lieu of slash
+ fn-to-call ;; func to call after inserting text
+ (preceding-line-is-empty (or
+ (= (line-number-at-pos) 1)
+ (save-excursion
+ (previous-line)
+ (beginning-of-line)
+ (looking-at "[ \t]*$\\|[ \t]*{[ \t]*$"))))
+ (flavor 0) ;; used only for diagnostic purposes
+ )
+
+ ;;(message "starting a 3-slash comment")
+ ;; get the prior word, and the 2 chars preceding it.
+ (backward-word)
+
+ (setq word-back (thing-at-point 'word)
+ char0 (char-before (- (point) 0))
+ char1 (char-before (- (point) 1)))
+
+ ;; restore prior position
+ (goto-char cur-point)
+
+ ;; get the following word, and the 2 chars preceding it.
+ (forward-word)
+ (backward-word)
+ (setq word-fore (thing-at-point 'word)
+ char-0 (char-before (- (point) 0))
+ char-1 (char-before (- (point) 1)))
+
+ ;; restore prior position again
+ (goto-char cur-point)
+
+ (cond
+ ;; The preceding line is empty, or all whitespace, or
+ ;; contains only an open-curly. In this case, insert a
+ ;; summary element pair.
+ (preceding-line-is-empty
+ (setq text-to-insert "/ <summary>\n/// \n/// </summary>"
+ flavor 1) )
+
+ ;; The preceding word closed a summary element. In this case,
+ ;; if the forward word does not open a remarks element, then
+ ;; insert a remarks element.
+ ((and (string-equal word-back "summary") (eq char0 ?/) (eq char1 ?<))
+ (if (not (and (string-equal word-fore "remarks") (eq char-0 ?<)))
+ (setq text-to-insert "/ <remarks>\n/// <para>\n/// \n/// </para>\n/// </remarks>"
+ flavor 2)))
+
+ ;; The preceding word closed the remarks section. In this case,
+ ;; insert an example element.
+ ((and (string-equal word-back "remarks") (eq char0 ?/) (eq char1 ?<))
+ (setq text-to-insert "/ <example>\n/// \n/// </example>"
+ flavor 3))
+
+ ;; The preceding word closed the example section. In this
+ ;; case, insert an returns element. This isn't always
+ ;; correct, because sometimes the xml code doc is attached to
+ ;; a class or a property, neither of which has a return
+ ;; value. A more intelligent implementation would inspect the
+ ;; syntax state and only inject a returns element if
+ ;; appropriate.
+ ((and (string-equal word-back "example") (eq char0 ?/) (eq char1 ?<))
+ (setq text-to-insert "/ <returns></returns>"
+ fn-to-call (lambda ()
+ (backward-word)
+ (backward-char)
+ (backward-char)
+ (c-indent-line-or-region)
+ )
+ flavor 4))
+
+ ;; The preceding word opened the remarks section, or it
+ ;; closed a para section. In this case, insert a para
+ ;; element, using appropriate indentation with respect to the
+ ;; prior tag.
+ ((or
+ (and (string-equal word-back "remarks") (eq char0 ?<) (or (eq char1 32) (eq char1 9)))
+ (and (string-equal word-back "para") (eq char0 ?/) (eq char1 ?<)))
+
+ (let (prior-point spacer)
+ (save-excursion
+ (backward-word)
+ (backward-char)
+ (backward-char)
+ (setq prior-point (point))
+ (skip-chars-backward "\t ")
+ (setq spacer (buffer-substring (point) prior-point))
+ ;;(message (format "pt(%d) prior(%d) spacer(%s)" (point) prior-point spacer))
+ )
+
+ (if (string-equal word-back "remarks")
+ (setq spacer (concat spacer " ")))
+
+ (setq text-to-insert (format "/%s<para>\n///%s \n///%s</para>"
+ spacer spacer spacer)
+ flavor 6)))
+
+ ;; The preceding word opened a para element. In this case, if
+ ;; the forward word does not close the para element, then
+ ;; close the para element.
+ ;; --
+ ;; This is a nice idea but flawed. Suppose I have a para element with some
+ ;; text in it. If I position the cursor at the first line, then type 3 slashes,
+ ;; I get a close-element, and that would be inappropriate. Not sure I can
+ ;; easily solve that problem, so the best thing might be to simply punt, and
+ ;; require people to close their own elements.
+ ;;
+ ;; ( (and (string-equal word-back "para") (eq char0 60) (or (eq char1 32) (eq char1 9)))
+ ;; (if (not (and (string-equal word-fore "para") (eq char-0 47) (eq char-1 60) ))
+ ;; (setq text-to-insert "/ \n/// </para>\n///"
+ ;; fn-to-call (lambda ()
+ ;; (previous-line)
+ ;; (end-of-line)
+ ;; )
+ ;; flavor 7) )
+ ;; )
+
+ ;; the default case - do nothing
+ (t nil))
+
+ (if text-to-insert
+ (progn
+ ;;(message (format "inserting special text (f(%d))" flavor))
+
+ ;; set the flag, that we actually inserted text
+ (setq did-auto-insert t)
+
+ ;; save point of beginning of insertion
+ (setq cur-point (point))
+
+ ;; actually insert the text
+ (insert text-to-insert)
+
+ ;; indent the inserted string, and re-position point, either through
+ ;; the case-specific fn, or via the default progn.
+ (if fn-to-call
+ (funcall fn-to-call)
+
+ (let ((newline-count 0) (pos 0) ix)
+
+ ;; count the number of newlines in the inserted string
+ (while (string-match "\n" text-to-insert pos)
+ (setq pos (match-end 0)
+ newline-count (+ newline-count 1) )
+ )
+
+ ;; indent what we just inserted
+ (c-indent-region cur-point (point) t)
+
+ ;; move up n/2 lines. This assumes that the
+ ;; inserted text is ~symmetric about the halfway point.
+ ;; The assumption holds if the xml code doc uses a
+ ;; begin-elt and end-elt on a new line all by themselves,
+ ;; and a blank line in between them where the point should be.
+ ;; A more intelligent implementation would use a specific
+ ;; marker string, like @@DOT, to note the desired point.
+ (previous-line (/ newline-count 2))
+ (end-of-line)))))))))
+
+ (if (not did-auto-insert)
+ (self-insert-command (prefix-numeric-value arg)))))
+
+;; ==================================================================
+;; end of c# code-doc insertion magic
+;; ==================================================================
+
+
+
+
+;; ==================================================================
+;; c# fontification extensions
+;; ==================================================================
+;; Commentary:
+;;
+;; The purpose of the following code is to fix font-lock for C#,
+;; specifically for the verbatim-literal strings. C# is a cc-mode
+;; language and strings are handled mostly like other c-based
+;; languages. The one exception is the verbatim-literal string, which
+;; uses the syntax @"...".
+;;
+;; `parse-partial-sexp' treats those strings as just regular strings,
+;; with the @ a non-string character. This is fine, except when the
+;; verblit string ends in a slash, in which case, font-lock breaks from
+;; that point onward in the buffer.
+;;
+;; This is an attempt to fix that.
+;;
+;; The idea is to scan the buffer in full for verblit strings, and apply the
+;; appropriate syntax-table text properties for verblit strings. Also setting
+;; `parse-sexp-lookup-properties' to t tells `parse-partial-sexp'
+;; to use the syntax-table text properties set up by the scan as it does
+;; its parse.
+;;
+;; Also need to re-scan after any changes in the buffer, but on a more
+;; limited region.
+;;
+
+
+;; ;; I don't remember what this is supposed to do,
+;; ;; or how I figured out the value.
+;; ;;
+;; (defconst csharp-font-lock-syntactic-keywords
+;; '(("\\(@\\)\\(\"\\)[^\"]*\\(\"\\)\\(\"\\)[^\"]*\\(\"\\)[^\"]"
+;; (1 '(6)) (2 '(7)) (3 '(1)) (4 '(1)) (5 '(7))
+;; ))
+;; "Highlighting of verbatim literal strings. See also the variable
+;; `font-lock-keywords'.")
+
+
+
+;; Allow this:
+;; (csharp-log 3 "csharp: scan...'%s'" state)
+
+(defvar csharp-log-level 0
+ "The current log level for CSharp-specific operations.
+This is used in particular by the verbatim-literal
+string scanning.
+
+Most other csharp functions are not instrumented.
+0 = NONE, 1 = Info, 2 = VERBOSE, 3 = DEBUG, 4 = SHUTUP ALREADY. ")
+
+(defun csharp-log (level text &rest args)
+ "Log a message at level LEVEL.
+If LEVEL is higher than `csharp-log-level', the message is
+ignored. Otherwise, it is printed using `message'.
+TEXT is a format control string, and the remaining arguments ARGS
+are the string substitutions (see `format')."
+ (if (<= level csharp-log-level)
+ (let* ((msg (apply 'format text args)))
+ (message "%s" msg)
+ )))
+
+
+
+(defun csharp-max-beginning-of-stmt ()
+ "Return the greater of `c-beginning-of-statement-1' and
+`c-beginning-of-statement' . I don't understand why both of
+these methods are necessary or why they differ. But they do."
+
+ (let (dash
+ nodash
+ (curpos (point)))
+
+ ;; I think this may need a save-excursion...
+ ;; Calling c-beginning-of-statement-1 resets the point!
+
+ (setq dash (progn (c-beginning-of-statement-1) (point)))
+ (csharp-log 3 "C#: max-bostmt dash(%d)" dash)
+ (goto-char curpos)
+
+ (setq nodash (progn (c-beginning-of-statement 1) (point)))
+ (csharp-log 3 "C#: max-bostmt nodash(%d)" nodash)
+ (goto-char curpos)
+
+ (max dash nodash)))
+
+
+(defun csharp-in-literal (&optional lim detect-cpp)
+ "Return the type of literal point is in, if any.
+Basically this works like `c-in-literal' except it doesn't
+use or fill the cache (`c-in-literal-cache').
+
+The return value is `c' if in a C-style comment, `c++' if in a C++
+style comment, `string' if in a string literal, `pound' if DETECT-CPP
+is non-nil and in a preprocessor line, or nil if somewhere else.
+Optional LIM is used as the backward limit of the search. If omitted,
+or nil, `c-beginning-of-syntax' is used.
+
+Note that this function might do hidden buffer changes. See the
+comment at the start of cc-engine.el for more info."
+
+ (let ((rtn
+ (save-excursion
+ (let* ((pos (point))
+ (lim (or lim (progn
+ (c-beginning-of-syntax)
+ (point))))
+ (state (parse-partial-sexp lim pos)))
+ (csharp-log 4 "C#: parse lim(%d) state: %s" lim (prin1-to-string state))
+ (cond
+ ((elt state 3)
+ (csharp-log 4 "C#: in literal string (%d)" pos)
+ 'string)
+ ((elt state 4)
+ (csharp-log 4 "C#: in literal comment (%d)" pos)
+ (if (elt state 7) 'c++ 'c))
+ ((and detect-cpp (c-beginning-of-macro lim)) 'pound)
+ (t nil))))))
+ rtn))
+
+
+(defun csharp-set-vliteral-syntax-table-properties (beg end)
+ "Scan the buffer text between BEG and END, a verbatim literal
+string, setting and clearing syntax-table text properties where
+necessary.
+
+We need to modify the default syntax-table text property in these cases:
+ (backslash) - is not an escape inside a verbatim literal string.
+ (double-quote) - can be a literal quote, when doubled.
+
+BEG is the @ delimiter. END is the 'old' position of the ending quote.
+
+see http://www.sunsite.ualberta.ca/Documentation/Gnu/emacs-lisp-ref-21-2.7/html_node/elisp_592.html
+for the list of syntax table numeric codes.
+
+"
+
+ (csharp-log 3 "C#: set-vlit-syntax-table: beg(%d) end(%d)" beg end)
+
+ (if (and (> beg 0) (> end 0))
+
+ (let ((curpos beg)
+ (state 0))
+
+ (c-clear-char-properties beg end 'syntax-table)
+
+ (while (<= curpos end)
+
+ (cond
+ ((= state 0)
+ (if (= (char-after curpos) ?@)
+ (progn
+ (c-put-char-property curpos 'syntax-table '(3)) ; (6) = expression prefix, (3) = symbol
+ ;;(message (format "C#: set-s-t: prefix pos(%d) chr(%c)" beg (char-after beg)))
+ )
+ )
+ (setq state (+ 1 state)))
+
+ ((= state 1)
+ (if (= (char-after curpos) ?\")
+ (progn
+ (c-put-char-property curpos 'syntax-table '(7)) ; (7) = string quote
+ ;;(message (format "C#: set-s-t: open quote pos(%d) chr(%c)"
+ ;; curpos (char-after curpos)))
+ ))
+ (setq state (+ 1 state)))
+
+ ((= state 2)
+ (cond
+ ;; handle backslash
+ ((= (char-after curpos) ?\\)
+ (c-put-char-property curpos 'syntax-table '(2)) ; (1) = punctuation, (2) = word
+ ;;(message (format "C#: set-s-t: backslash word pos(%d) chr(%c)" curpos (char-after curpos)))
+ )
+
+ ;; doubled double-quote
+ ((and
+ (= (char-after curpos) ?\")
+ (= (char-after (+ 1 curpos)) ?\"))
+ (c-put-char-property curpos 'syntax-table '(2)) ; (1) = punctuation, (2) = word
+ (c-put-char-property (+ 1 curpos) 'syntax-table '(2)) ; (1) = punctuation
+ ;;(message (format "C#: set-s-t: double doublequote pos(%d) chr(%c)" curpos (char-after curpos)))
+ (setq curpos (+ curpos 1))
+ )
+
+ ;; a single double-quote, which should be a string terminator
+ ((= (char-after curpos) ?\")
+ (c-put-char-property curpos 'syntax-table '(7)) ; (7) = string quote
+ ;;(message (format "C#: set-s-t: close quote pos(%d) chr(%c)" curpos (char-after curpos)))
+ ;;go no further
+ (setq state (+ 1 state)))
+
+ ;; everything else
+ (t
+ ;;(message (format "C#: set-s-t: none pos(%d) chr(%c)" curpos (char-after curpos)))
+ nil))))
+ ;; next char
+ (setq curpos (+ curpos 1))))))
+
+
+
+(defun csharp-end-of-verbatim-literal-string (&optional lim)
+ "Moves to and returns the position of the end quote of the verbatim literal
+string. When calling, point should be on the @ of the verblit string.
+If it is not, then no movement is performed and `point' is returned.
+
+This function ignores text properties. In fact it is the
+underlying scanner used to set the text properties in a C# buffer.
+"
+
+ (csharp-log 3 "C#: end-of-vlit-string: point(%d) c(%c)" (point) (char-after))
+
+ (let (curpos
+ (max (or lim (point-max))))
+
+ (if (not (looking-at "@\""))
+ (point)
+ (forward-char 2) ;; pass up the @ sign and first quote
+ (setq curpos (point))
+
+ ;; Within a verbatim literal string, a doubled double-quote
+ ;; escapes the double-quote."
+ (while (and ;; process characters...
+ (or ;; while...
+ (not (eq (char-after curpos) ?\")) ;; it's not a quote
+ (eq (char-after (+ curpos 1)) ?\")) ;; or, its a double (double) quote
+ (< curpos max)) ;; and we're not done yet
+
+ (cond
+ ((and (eq (char-after curpos) ?\") ;; it's a double-quote.
+ (eq (char-after (+ curpos 1)) ?\"))
+ (setq curpos (+ 2 curpos))) ;; Skip 2
+ (t ;; anything else
+ (setq curpos (+ 1 curpos))))) ;; skip fwd 1
+ curpos)))
+
+
+
+
+(defun csharp-scan-for-verbatim-literals-and-set-props (&optional beg end)
+
+"Scans the buffer, between BEG and END, for verbatim literal
+strings, and sets override text properties on each string to
+allow proper syntax highlighting, indenting, and cursor movement.
+
+BEG and END define the limits of the scan. When nil, they
+default to `point-min' and `point-max' respectively.
+
+Setting text properties generally causes the buffer to be marked
+as modified, but this fn suppresses that via the
+`c-buffer-save-state' macro, for any changes in text properties
+that it makes. This fn also ignores the read-only setting on a
+buffer, using the same macro.
+
+This fn is called when a csharp-mode buffer is loaded, with BEG
+and END set to nil, to do a full scan. It is also called on
+every buffer change, with the BEG and END set to the values for
+the change.
+
+The return value is nil if the buffer was not a csharp-mode
+buffer. Otherwise it is the last cursor position examined by the
+scan.
+"
+
+ (if (not (c-major-mode-is 'csharp-mode)) ;; don't scan if not csharp mode
+ nil
+ (save-excursion
+ (c-save-buffer-state
+ ((curpos (or beg (point-min)))
+ (lastpos (or end (point-max)))
+ (state 0) (start 0) (cycle 0)
+ literal eos limits)
+
+ (csharp-log 3 "C#: scan")
+ (goto-char curpos)
+
+ (while (and (< curpos lastpos) (< cycle 10000))
+ (cond
+
+ ;; Case 1: current char is a @ sign
+ ;; --------------------------------------------
+ ;; Check to see if it demarks the beginning of a verblit
+ ;; string.
+ ((= ?@ (char-after curpos))
+
+ ;; are we in a comment? a string? Maybe the @ is a prefix
+ ;; to allow the use of a reserved word as a symbol. Let's find out.
+
+ ;; not sure why I need both of the following.
+ (syntax-ppss-flush-cache 1)
+ (parse-partial-sexp 1 curpos)
+ (goto-char curpos)
+ (setq literal (csharp-in-literal))
+ (cond
+
+ ;; Case 1.A: it's a @ within a string.
+ ;; --------------------------------------------
+ ;; This should never happen, because this scanner hops over strings.
+ ;; But it might happen if the scan starts at an odd place.
+ ((eq literal 'string) nil)
+
+ ;; Case 1.B: The @ is within a comment. Hop over it.
+ ((and (memq literal '(c c++))
+ ;; This is a kludge for XEmacs where we use
+ ;; `buffer-syntactic-context', which doesn't correctly
+ ;; recognize "\*/" to end a block comment.
+ ;; `parse-partial-sexp' which is used by
+ ;; `c-literal-limits' will however do that in most
+ ;; versions, which results in that we get nil from
+ ;; `c-literal-limits' even when `c-in-literal' claims
+ ;; we're inside a comment.
+ ;;(setq limits (c-literal-limits start)))
+ (setq limits (c-literal-limits)))
+
+ ;; advance to the end of the comment
+ (if limits
+ (progn
+ (csharp-log 4 "C#: scan: jump end comment A (%d)" (cdr limits))
+ (setq curpos (cdr limits)))))
+
+
+ ;; Case 1.B: curpos is at least 2 chars before the last
+ ;; position to examine, and, the following char is a
+ ;; double-quote (ASCII 34).
+ ;; --------------------------------------------
+ ;; This looks like the beginning of a verbatim string
+ ;; literal.
+ ((and (< (+ 2 curpos) lastpos)
+ (= ?\" (char-after (+ 1 curpos))))
+
+ (setq eos (csharp-end-of-verbatim-literal-string))
+ ;; set override syntax properties on the verblit string
+ (csharp-set-vliteral-syntax-table-properties curpos eos)
+
+ (csharp-log 4 "C#: scan: jump end verblit string (%d)" eos)
+ (setq curpos eos))))
+
+
+ ;; Case 2: current char is a double-quote.
+ ;; --------------------------------------------
+ ;; If this is a string, we hop over it, on the assumption that
+ ;; this scanner need not bother with regular literal strings, which
+ ;; get the proper syntax with the generic approach.
+ ;; If in a comment, hop over the comment.
+ ((= ?\" (char-after curpos))
+ (goto-char curpos)
+ (setq literal (c-in-literal))
+ (cond
+
+ ;; Case 2.A: a quote within a string
+ ;; --------------------------------------------
+ ;; This shouldn't happen, because we hop over strings.
+ ;; But it might.
+ ((eq literal 'string) nil)
+
+ ;; Case 2.B: a quote within a comment
+ ;; --------------------------------------------
+ ((and (memq literal '(c c++))
+ ;; This is a kludge for XEmacs where we use
+ ;; `buffer-syntactic-context', which doesn't correctly
+ ;; recognize "\*/" to end a block comment.
+ ;; `parse-partial-sexp' which is used by
+ ;; `c-literal-limits' will however do that in most
+ ;; versions, which results in that we get nil from
+ ;; `c-literal-limits' even when `c-in-literal' claims
+ ;; we're inside a comment.
+ ;;(setq limits (c-literal-limits start)))
+ (setq limits (c-literal-limits)))
+
+ ;; advance to the end of the comment
+ (if limits
+ (progn
+ (setq curpos (cdr limits))
+ (csharp-log 3 "C#: scan: jump end comment B (%s)" curpos))))
+
+
+ ;; Case 2.C: Not in a comment, and not in a string.
+ ;; --------------------------------------------
+ ;; This is the beginning of a literal (but not verbatim) string.
+ (t
+ (forward-char 1) ;; pass up the quote
+ (if (consp (setq limits (c-literal-limits)))
+ (progn
+ (csharp-log 4 "C#: scan: jump end literal (%d)" (cdr limits))
+ (setq curpos (cdr limits))))))))
+
+ (setq cycle (+ 1 cycle))
+ (setq curpos (+ 1 curpos))
+ (c-safe (goto-char curpos)))))))
+
+
+(defun csharp-before-font-lock (beg end old-len)
+ "Adjust`syntax-table' properties on the region affected by the change
+in a csharp-mode buffer.
+
+This function is the C# value for `c-before-font-lock-function'.
+It intended to be called only by the cc-mode runtime.
+
+It prepares the buffer for font locking, hence must get called
+before `font-lock-after-change-function'.
+
+It does hidden buffer changes.
+
+BEG, END and OLD-LEN have the same meaning here as for any
+after-change function.
+
+Point is undefined both before and after this function call.
+The return value is meaningless, and is ignored by cc-mode.
+"
+ (let ((start-scan (progn
+ (c-beginning-of-statement 1)
+ (point))))
+ (csharp-scan-for-verbatim-literals-and-set-props start-scan end)))
+
+
+
+(c-lang-defconst c-before-font-lock-function
+ csharp 'csharp-before-font-lock)
+
+;; ==================================================================
+;; end of c# fontification extensions
+;; ==================================================================
+
+
+
+
+
+;; ==================================================================
+;; C#-specific optimizations of cc-mode funcs
+;; ==================================================================
+
+
+;; There's never a need to check for C-style macro definitions in
+;; a C# buffer.
+(defadvice c-beginning-of-macro (around
+ csharp-mode-advice-1
+ compile activate)
+ (if (c-major-mode-is 'csharp-mode)
+ nil
+ ad-do-it)
+ )
+
+
+;; There's never a need to move over an Obj-C directive in csharp mode
+(defadvice c-forward-objc-directive (around
+ csharp-mode-advice-2
+ compile activate)
+ (if (c-major-mode-is 'csharp-mode)
+ nil
+ ad-do-it)
+ )
+
+;; ==================================================================
+;; end of C#-specific optimizations of cc-mode funcs
+;; ==================================================================
+
+
+
+
+
+
+
+
+;; ==================================================================
+;; c# - monkey-patching of basic parsing logic
+;; ==================================================================
+;;
+;; Here, the model redefines two defuns to add special cases for csharp
+;; mode. These primarily deal with indentation of instance
+;; initializers, which are somewhat unique to C#. I couldn't figure out
+;; how to get cc-mode to do what C# needs, without modifying these
+;; defuns.
+;;
+
+(defun c-looking-at-inexpr-block (lim containing-sexp &optional check-at-end)
+ ;; Return non-nil if we're looking at the beginning of a block
+ ;; inside an expression. The value returned is actually a cons of
+ ;; either 'inlambda, 'inexpr-statement or 'inexpr-class and the
+ ;; position of the beginning of the construct.
+ ;;
+ ;; LIM limits the backward search. CONTAINING-SEXP is the start
+ ;; position of the closest containing list. If it's nil, the
+ ;; containing paren isn't used to decide whether we're inside an
+ ;; expression or not. If both LIM and CONTAINING-SEXP are used, LIM
+ ;; needs to be farther back.
+ ;;
+ ;; If CHECK-AT-END is non-nil then extra checks at the end of the
+ ;; brace block might be done. It should only be used when the
+ ;; construct can be assumed to be complete, i.e. when the original
+ ;; starting position was further down than that.
+ ;;
+ ;; This function might do hidden buffer changes.
+
+ (save-excursion
+ (let ((res 'maybe) passed-paren
+ (closest-lim (or containing-sexp lim (point-min)))
+ ;; Look at the character after point only as a last resort
+ ;; when we can't disambiguate.
+ (block-follows (and (eq (char-after) ?{) (point))))
+
+ (while (and (eq res 'maybe)
+ (progn (c-backward-syntactic-ws)
+ (> (point) closest-lim))
+ (not (bobp))
+ (progn (backward-char)
+ (looking-at "[\]\).]\\|\\w\\|\\s_"))
+ (c-safe (forward-char)
+ (goto-char (scan-sexps (point) -1))))
+
+ (setq res
+ (if (looking-at c-keywords-regexp)
+ (let ((kw-sym (c-keyword-sym (match-string 1))))
+ (cond
+ ((and block-follows
+ (c-keyword-member kw-sym 'c-inexpr-class-kwds))
+ (and (not (eq passed-paren ?\[))
+
+ ;; dinoch Thu, 22 Apr 2010 18:20
+ ;; ============================================
+ ;; looking at new MyType() { ... }
+ ;; means this is a brace list, so, return nil,
+ ;; implying NOT looking-at-inexpr-block
+ (not
+ (and (c-major-mode-is 'csharp-mode)
+ (looking-at "new\s+\\([[:alnum:]_]+\\)\\b")))
+
+ (or (not (looking-at c-class-key))
+ ;; If the class instantiation is at the start of
+ ;; a statement, we don't consider it an
+ ;; in-expression class.
+ (let ((prev (point)))
+ (while (and
+ (= (c-backward-token-2 1 nil closest-lim) 0)
+ (eq (char-syntax (char-after)) ?w))
+ (setq prev (point)))
+ (goto-char prev)
+ (not (c-at-statement-start-p)))
+ ;; Also, in Pike we treat it as an
+ ;; in-expression class if it's used in an
+ ;; object clone expression.
+ (save-excursion
+ (and check-at-end
+ (c-major-mode-is 'pike-mode)
+ (progn (goto-char block-follows)
+ (zerop (c-forward-token-2 1 t)))
+ (eq (char-after) ?\())))
+ (cons 'inexpr-class (point))))
+ ((c-keyword-member kw-sym 'c-inexpr-block-kwds)
+ (when (not passed-paren)
+ (cons 'inexpr-statement (point))))
+ ((c-keyword-member kw-sym 'c-lambda-kwds)
+ (when (or (not passed-paren)
+ (eq passed-paren ?\())
+ (cons 'inlambda (point))))
+ ((c-keyword-member kw-sym 'c-block-stmt-kwds)
+ nil)
+ (t
+ 'maybe)))
+
+ (if (looking-at "\\s(")
+ (if passed-paren
+ (if (and (eq passed-paren ?\[)
+ (eq (char-after) ?\[))
+ ;; Accept several square bracket sexps for
+ ;; Java array initializations.
+ 'maybe)
+ (setq passed-paren (char-after))
+ 'maybe)
+ 'maybe))))
+
+ (if (eq res 'maybe)
+ (when (and c-recognize-paren-inexpr-blocks
+ block-follows
+ containing-sexp
+ (eq (char-after containing-sexp) ?\())
+ (goto-char containing-sexp)
+ (if (or (save-excursion
+ (c-backward-syntactic-ws lim)
+ (and (> (point) (or lim (point-min)))
+ (c-on-identifier)))
+ (and c-special-brace-lists
+ (c-looking-at-special-brace-list)))
+ nil
+ (cons 'inexpr-statement (point))))
+
+ res))))
+
+
+
+
+(defconst csharp-enum-decl-re
+ (concat
+ "\\<enum\\>\s+\\([[:alnum:]_]+\\)\s*:\s*"
+ "\\("
+ (c-make-keywords-re nil
+ (list "sbyte" "byte" "short" "ushort" "int" "uint" "long" "ulong"))
+ "\\)")
+ "Regex that captures an enum declaration in C#"
+ )
+
+
+
+(defun c-inside-bracelist-p (containing-sexp paren-state)
+ ;; return the buffer position of the beginning of the brace list
+ ;; statement if we're inside a brace list, otherwise return nil.
+ ;; CONTAINING-SEXP is the buffer pos of the innermost containing
+ ;; paren. PAREN-STATE is the remainder of the state of enclosing
+ ;; braces
+ ;;
+ ;; N.B.: This algorithm can potentially get confused by cpp macros
+ ;; placed in inconvenient locations. It's a trade-off we make for
+ ;; speed.
+ ;;
+ ;; This function might do hidden buffer changes.
+ (or
+ ;; This will pick up brace list declarations.
+ (c-safe
+ (save-excursion
+ (goto-char containing-sexp)
+ (c-forward-sexp -1)
+ (let (bracepos)
+ (if (and (or (looking-at c-brace-list-key)
+
+ (progn (c-forward-sexp -1)
+ (looking-at c-brace-list-key))
+
+ ;; dinoch Thu, 22 Apr 2010 18:20
+ ;; ============================================
+ ;; looking enum Foo : int
+ ;; means this is a brace list, so, return nil,
+ ;; implying NOT looking-at-inexpr-block
+
+ (and (c-major-mode-is 'csharp-mode)
+ (progn
+ (c-forward-sexp -1)
+ (looking-at csharp-enum-decl-re))))
+
+ (setq bracepos (c-down-list-forward (point)))
+ (not (c-crosses-statement-barrier-p (point)
+ (- bracepos 2))))
+ (point)))))
+ ;; this will pick up array/aggregate init lists, even if they are nested.
+ (save-excursion
+ (let ((class-key
+ ;; Pike can have class definitions anywhere, so we must
+ ;; check for the class key here.
+ (and (c-major-mode-is 'pike-mode)
+ c-decl-block-key))
+ bufpos braceassignp lim next-containing)
+ (while (and (not bufpos)
+ containing-sexp)
+ (when paren-state
+ (if (consp (car paren-state))
+ (setq lim (cdr (car paren-state))
+ paren-state (cdr paren-state))
+ (setq lim (car paren-state)))
+ (when paren-state
+ (setq next-containing (car paren-state)
+ paren-state (cdr paren-state))))
+ (goto-char containing-sexp)
+ (if (c-looking-at-inexpr-block next-containing next-containing)
+ ;; We're in an in-expression block of some kind. Do not
+ ;; check nesting. We deliberately set the limit to the
+ ;; containing sexp, so that c-looking-at-inexpr-block
+ ;; doesn't check for an identifier before it.
+ (setq containing-sexp nil)
+ ;; see if the open brace is preceded by = or [...] in
+ ;; this statement, but watch out for operator=
+ (setq braceassignp 'dontknow)
+ (c-backward-token-2 1 t lim)
+ ;; Checks to do only on the first sexp before the brace.
+ (when (and c-opt-inexpr-brace-list-key
+ (eq (char-after) ?\[))
+ ;; In Java, an initialization brace list may follow
+ ;; directly after "new Foo[]", so check for a "new"
+ ;; earlier.
+ (while (eq braceassignp 'dontknow)
+ (setq braceassignp
+ (cond ((/= (c-backward-token-2 1 t lim) 0) nil)
+ ((looking-at c-opt-inexpr-brace-list-key) t)
+ ((looking-at "\\sw\\|\\s_\\|[.[]")
+ ;; Carry on looking if this is an
+ ;; identifier (may contain "." in Java)
+ ;; or another "[]" sexp.
+ 'dontknow)
+ (t nil)))))
+ ;; Checks to do on all sexps before the brace, up to the
+ ;; beginning of the statement.
+ (while (eq braceassignp 'dontknow)
+ (cond ((eq (char-after) ?\;)
+ (setq braceassignp nil))
+ ((and class-key
+ (looking-at class-key))
+ (setq braceassignp nil))
+ ((eq (char-after) ?=)
+ ;; We've seen a =, but must check earlier tokens so
+ ;; that it isn't something that should be ignored.
+ (setq braceassignp 'maybe)
+ (while (and (eq braceassignp 'maybe)
+ (zerop (c-backward-token-2 1 t lim)))
+ (setq braceassignp
+ (cond
+ ;; Check for operator =
+ ((and c-opt-op-identifier-prefix
+ (looking-at c-opt-op-identifier-prefix))
+ nil)
+ ;; Check for `<opchar>= in Pike.
+ ((and (c-major-mode-is 'pike-mode)
+ (or (eq (char-after) ?`)
+ ;; Special case for Pikes
+ ;; `[]=, since '[' is not in
+ ;; the punctuation class.
+ (and (eq (char-after) ?\[)
+ (eq (char-before) ?`))))
+ nil)
+ ((looking-at "\\s.") 'maybe)
+ ;; make sure we're not in a C++ template
+ ;; argument assignment
+ ((and
+ (c-major-mode-is 'c++-mode)
+ (save-excursion
+ (let ((here (point))
+ (pos< (progn
+ (skip-chars-backward "^<>")
+ (point))))
+ (and (eq (char-before) ?<)
+ (not (c-crosses-statement-barrier-p
+ pos< here))
+ (not (c-in-literal))
+ ))))
+ nil)
+ (t t))))))
+ (if (and (eq braceassignp 'dontknow)
+ (/= (c-backward-token-2 1 t lim) 0))
+ (setq braceassignp nil)))
+ (if (not braceassignp)
+ (if (eq (char-after) ?\;)
+ ;; Brace lists can't contain a semicolon, so we're done.
+ (setq containing-sexp nil)
+ ;; Go up one level.
+ (setq containing-sexp next-containing
+ lim nil
+ next-containing nil))
+ ;; we've hit the beginning of the aggregate list
+ (c-beginning-of-statement-1
+ (c-most-enclosing-brace paren-state))
+ (setq bufpos (point))))
+ )
+ bufpos))
+ ))
+
+;; ==================================================================
+;; end of monkey-patching of basic parsing logic
+;; ==================================================================
+
+
+
+
+;;(easy-menu-define csharp-menu csharp-mode-map "C# Mode Commands"
+;; ;; Can use `csharp' as the language for `c-mode-menu'
+;; ;; since its definition covers any language. In
+;; ;; this case the language is used to adapt to the
+;; ;; nonexistence of a cpp pass and thus removing some
+;; ;; irrelevant menu alternatives.
+;; (cons "C#" (c-lang-const c-mode-menu csharp)))
+
+;;; Autoload mode trigger
+;;;###autoload
+(add-to-list 'auto-mode-alist '("\\.cs$" . csharp-mode))
+
+
+
+(c-add-style "C#"
+ '("Java"
+ (c-basic-offset . 4)
+ (c-comment-only-line-offset . (0 . 0))
+ (c-offsets-alist . (
+ (access-label . -)
+ (arglist-close . c-lineup-arglist)
+ (arglist-cont . 0)
+ (arglist-cont-nonempty . c-lineup-arglist)
+ (arglist-intro . c-lineup-arglist-intro-after-paren)
+ (block-close . 0)
+ (block-open . 0)
+ (brace-entry-open . 0)
+ (brace-list-close . 0)
+ (brace-list-entry . 0)
+ (brace-list-intro . +)
+ (brace-list-open . +)
+ (c . c-lineup-C-comments)
+ (case-label . +)
+ (catch-clause . 0)
+ (class-close . 0)
+ (class-open . 0)
+ (comment-intro . c-lineup-comment)
+ (cpp-macro . 0)
+ (cpp-macro-cont . c-lineup-dont-change)
+ (defun-block-intro . +)
+ (defun-close . 0)
+ (defun-open . 0)
+ (do-while-closure . 0)
+ (else-clause . 0)
+ (extern-lang-close . 0)
+ (extern-lang-open . 0)
+ (friend . 0)
+ (func-decl-cont . +)
+ (inclass . +)
+ (inexpr-class . +)
+ (inexpr-statement . 0)
+ (inextern-lang . +)
+ (inher-cont . c-lineup-multi-inher)
+ (inher-intro . +)
+ (inlambda . c-lineup-inexpr-block)
+ (inline-close . 0)
+ (inline-open . 0)
+ (innamespace . +)
+ (knr-argdecl . 0)
+ (knr-argdecl-intro . 5)
+ (label . 0)
+ (lambda-intro-cont . +)
+ (member-init-cont . c-lineup-multi-inher)
+ (member-init-intro . +)
+ (namespace-close . 0)
+ (namespace-open . 0)
+ (statement . 0)
+ (statement-block-intro . +)
+ (statement-case-intro . +)
+ (statement-case-open . +)
+ (statement-cont . +)
+ (stream-op . c-lineup-streamop)
+ (string . c-lineup-dont-change)
+ (substatement . +)
+ (substatement-open . 0)
+ (template-args-cont c-lineup-template-args +)
+ (topmost-intro . 0)
+ (topmost-intro-cont . 0)
+ ))
+ ))
+
+
+
+
+;; Custom variables
+;;;###autoload
+(defcustom csharp-mode-hook nil
+ "*Hook called by `csharp-mode'."
+ :type 'hook
+ :group 'c)
+
+
+
+;;; The entry point into the mode
+;;;###autoload
+(defun csharp-mode ()
+ "Major mode for editing C# code. This mode is derived from CC Mode to
+support C#.
+
+The hook `c-mode-common-hook' is run with no args at mode
+initialization, then `csharp-mode-hook'.
+
+This mode will automatically add a regexp for Csc.exe error and warning
+messages to the `compilation-error-regexp-alist'.
+
+Key bindings:
+\\{csharp-mode-map}"
+ (interactive)
+ (kill-all-local-variables)
+ (make-local-variable 'beginning-of-defun-function)
+ (make-local-variable 'end-of-defun-function)
+ (c-initialize-cc-mode t)
+ (set-syntax-table csharp-mode-syntax-table)
+
+ ;; define underscore as part of a word in the Csharp syntax table
+ (modify-syntax-entry ?_ "w" csharp-mode-syntax-table)
+
+ ;; define @ as an expression prefix in Csharp syntax table
+ (modify-syntax-entry ?@ "'" csharp-mode-syntax-table)
+
+ (setq major-mode 'csharp-mode
+ mode-name "C#"
+ local-abbrev-table csharp-mode-abbrev-table
+ abbrev-mode t)
+ (use-local-map csharp-mode-map)
+
+ ;; `c-init-language-vars' is a macro that is expanded at compile
+ ;; time to a large `setq' with all the language variables and their
+ ;; customized values for our language.
+ (c-init-language-vars csharp-mode)
+
+
+ ;; `c-common-init' initializes most of the components of a CC Mode
+ ;; buffer, including setup of the mode menu, font-lock, etc.
+ ;; There's also a lower level routine `c-basic-common-init' that
+ ;; only makes the necessary initialization to get the syntactic
+ ;; analysis and similar things working.
+ (c-common-init 'csharp-mode)
+
+
+ ;; csc.exe, the C# Compiler, produces errors like this:
+ ;; file.cs(6,18): error SC1006: Name of constructor must match name of class
+
+ (add-hook 'compilation-mode-hook
+ (lambda ()
+ (setq compilation-error-regexp-alist
+ (cons ' ("^[ \t]*\\([A-Za-z0-9][^(]+\\.cs\\)(\\([0-9]+\\)[,]\\([0-9]+\\)) ?: \\(error\\|warning\\) CS[0-9]+:" 1 2 3)
+ compilation-error-regexp-alist))))
+
+ ;; to allow next-error to work with csc.exe:
+ (setq compilation-scroll-output t)
+
+ ;; allow fill-paragraph to work on xml code doc
+ (set (make-local-variable 'paragraph-separate)
+ "[ \t]*\\(//+\\|\\**\\)\\([ \t]+\\|[ \t]+<.+?>\\)$\\|^\f")
+
+
+ (c-run-mode-hooks 'c-mode-common-hook 'csharp-mode-hook)
+
+
+ ;; Need the following for parse-partial-sexp to work properly with
+ ;; verbatim literal strings Setting this var to non-nil tells
+ ;; `parse-partial-sexp' to pay attention to the syntax text
+ ;; properties on the text in the buffer. If csharp-mode attaches
+ ;; text syntax to @"..." then, `parse-partial-sexp' will treat those
+ ;; strings accordingly.
+ (set (make-local-variable 'parse-sexp-lookup-properties)
+ t)
+
+ ;; scan the entire buffer for verblit strings
+ (csharp-scan-for-verbatim-literals-and-set-props nil nil)
+
+
+ (local-set-key (kbd "/") 'csharp-maybe-insert-codedoc)
+ (local-set-key (kbd "{") 'csharp-insert-open-brace)
+
+ (c-update-modeline))
+
+
+
+(message (concat "Done loading " load-file-name))
+
+
+(provide 'csharp-mode)
+
+;;; csharp-mode.el ends here
+;;MD5: 4EDCB2ECE38841F407C7ED3DA8354E15
diff --git a/.emacs.d/fuzzy.el b/.emacs.d/fuzzy.el
new file mode 100644
index 0000000..c69150a
--- /dev/null
+++ b/.emacs.d/fuzzy.el
@@ -0,0 +1,255 @@
+;;; fuzzy.el --- Fuzzy matching utilities
+
+;; Copyright (C) 2010 Tomohiro Matsuyama
+
+;; Author: Tomohiro Matsuyama <m2ym.pub@gmail.com>
+;; Keywords: convenience
+
+;; 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
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;
+
+;;; Code:
+
+(eval-when-compile
+ (require 'cl))
+(require 'regexp-opt)
+
+(defgroup fuzzy nil
+ "Fuzzy matching utilities."
+ :group 'convenience
+ :prefix "fuzzy-")
+
+(defcustom fuzzy-accept-error-rate 0.10
+ "Error threshold."
+ :group 'fuzzy)
+
+(defvar fuzzy-accept-length-difference 2)
+
+(defvar fuzzy-regexp-some-char (format "\\w\\{0,%s\\}" fuzzy-accept-length-difference))
+
+
+
+;;; Functions
+
+(defun fuzzy-reverse-string (string)
+ (apply 'string (nreverse (append string nil))))
+
+(defun fuzzy-regexp-compile (string)
+ (labels ((oddp (n) (eq (logand n 1) 1))
+ (evenp (n) (eq (logand n 1) 0))
+ (opt (n) (regexp-opt-charset (append (substring string
+ (max 0 (- n 1))
+ (min (length string) (+ n 2))) nil))))
+ (concat
+ "\\("
+ (loop for i below (length string)
+ for c = (if (evenp i) (opt i) fuzzy-regexp-some-char)
+ concat c)
+ "\\|"
+ (loop for i below (length string)
+ for c = (if (oddp i) (opt i) fuzzy-regexp-some-char)
+ concat c)
+ "\\)")))
+
+(defalias 'fuzzy-edit-distance 'fuzzy-jaro-winkler-distance)
+
+(defun fuzzy-jaro-winkler-distance (s1 s2)
+ "http://en.wikipedia.org/wiki/Jaro-Winkler_distance"
+ (let* ((l1 (length s1))
+ (l2 (length s2))
+ (r (max 1 (1- (/ (max l1 l2) 2))))
+ (m 0)
+ (tr 0)
+ (p 0)
+ cs1 cs2)
+ (loop with seen = (make-vector l2 nil)
+ for i below l1
+ for c1 = (aref s1 i) do
+ (loop for j from (max 0 (- i r)) below (min l2 (+ i r))
+ for c2 = (aref s2 j)
+ if (and (char-equal c1 c2)
+ (null (aref seen j))) do
+ (push c1 cs1)
+ (aset seen j c2)
+ (incf m)
+ and return nil)
+ finally
+ (setq cs1 (nreverse cs1)
+ cs2 (loop for i below l2
+ for c = (aref seen i)
+ if c collect c)))
+ (loop for c1 in cs1
+ for c2 in cs2
+ if (not (char-equal c1 c2)) do
+ (incf tr))
+ (loop for i below (min m 5)
+ for c1 across s1
+ for c2 across s2
+ while (char-equal c1 c2) do
+ (incf p))
+ (if (eq m 0)
+ 0.0
+ (setq m (float m))
+ (let* ((dj (/ (+ (/ m l1) (/ m l2) (/ (- m (/ tr 2)) m)) 3))
+ (dw (+ dj (* p 0.1 (- 1 dj)))))
+ dw))))
+
+;; this function should be compiled
+(byte-compile 'fuzzy-jaro-winkler-distance)
+
+(defun fuzzy-match (s1 s2 &optional function)
+ (or function (setq function 'fuzzy-edit-distance))
+ (and (<= (abs (- (length s1) (length s2)))
+ fuzzy-accept-length-difference)
+ (>= (funcall function s1 s2)
+ (- 1 fuzzy-accept-error-rate))))
+
+(defun fuzzy-all-completions (string collection)
+ "all-completions family with fuzzy matching."
+ (loop with length = (length string)
+ for str in collection
+ for s = (substring str 0 (min (length str)
+ (+ length fuzzy-accept-length-difference)))
+ if (fuzzy-match string s)
+ collect str))
+
+
+
+;;; Search and Incremental Search
+
+(defvar fuzzy-search-cache nil)
+(defvar fuzzy-search-cache-string nil)
+
+(defun fuzzy-search-cache-activate ()
+ (setq fuzzy-search-cache (make-hash-table))
+ (setq fuzzy-search-cache-string nil))
+
+(defun fuzzy-search-cache-deactive ()
+ (setq fuzzy-search-cache nil)
+ (setq fuzzy-search-cache-string nil))
+
+(defun fuzzy-search-edit-distance (s1 s2)
+ (or (and fuzzy-search-cache
+ (cond
+ ((null fuzzy-search-cache-string)
+ (setq fuzzy-search-cache-string s1)
+ nil)
+ ((not (equal fuzzy-search-cache-string s1))
+ (setq fuzzy-search-cache-string s1)
+ (clrhash fuzzy-search-cache)
+ nil)
+ (t))
+ (gethash s2 fuzzy-search-cache))
+ (let ((d (fuzzy-edit-distance s1 s2)))
+ (if fuzzy-search-cache
+ (puthash s2 d fuzzy-search-cache))
+ d)))
+
+(defun fuzzy-search-match (s1 s2)
+ (fuzzy-match s1 s2 'fuzzy-search-edit-distance))
+
+(defun fuzzy-search-forward (string &optional bound noerror count)
+ (let* ((regexp (fuzzy-regexp-compile string))
+ match-data)
+ (save-excursion
+ (while (and (null match-data)
+ (re-search-forward regexp bound t))
+ (if (fuzzy-search-match string (match-string 1))
+ (setq match-data (match-data))
+ (goto-char (1+ (match-beginning 1))))))
+ (when match-data
+ (store-match-data match-data)
+ (goto-char (match-end 1)))))
+
+(defun fuzzy-search-backward (string &optional bound noerror count)
+ (let* ((regexp (fuzzy-regexp-compile string))
+ match-data begin end)
+ (save-excursion
+ (while (and (null match-data)
+ (re-search-backward regexp bound t))
+ (setq begin (match-beginning 1)
+ end (match-end 1))
+ (store-match-data nil)
+ (goto-char (max (point-min) (- begin (* (length string) 2))))
+ (while (re-search-forward regexp end t)
+ (if (fuzzy-search-match string (match-string 1))
+ (setq match-data (match-data))
+ (goto-char (1+ (match-beginning 1)))))
+ (unless match-data
+ (goto-char begin)))
+ (if match-data
+ (progn
+ (store-match-data match-data)
+ (goto-char (match-beginning 1)))
+ (store-match-data nil)))))
+
+(defvar fuzzy-isearch nil)
+(defvar fuzzy-isearch-failed-count 0)
+(defvar fuzzy-isearch-enabled 'on-failed)
+(defvar fuzzy-isearch-original-search-fun nil)
+(defvar fuzzy-isearch-prefix "[FUZZY] ")
+
+(defun fuzzy-isearch-activate ()
+ (setq fuzzy-isearch t)
+ (setq fuzzy-isearch-failed-count 0)
+ (fuzzy-search-cache-activate))
+
+(defun fuzzy-isearch-deactivate ()
+ (setq fuzzy-isearch nil)
+ (setq fuzzy-isearch-failed-count 0)
+ (fuzzy-search-cache-deactive))
+
+(defun fuzzy-isearch ()
+ (cond (isearch-word
+ (if isearch-forward 'word-search-forward 'word-search-backward))
+ (isearch-regexp
+ (if isearch-forward 're-search-forward 're-search-backward))
+ ((or fuzzy-isearch
+ (eq fuzzy-isearch-enabled 'always)
+ (and (eq fuzzy-isearch-enabled 'on-failed)
+ (null isearch-success)
+ isearch-wrapped
+ (> (setq fuzzy-isearch-failed-count (1+ fuzzy-isearch-failed-count))
+ 1)))
+ (unless fuzzy-isearch
+ ;(goto-char isearch-opoint)
+ (fuzzy-isearch-activate))
+ (if isearch-forward 'fuzzy-search-forward 'fuzzy-search-backward))
+ (t
+ (if isearch-forward 'search-forward 'search-backward))))
+
+(defun fuzzy-isearch-end-hook ()
+ (fuzzy-isearch-deactivate))
+
+(defun turn-on-fuzzy-isearch ()
+ (interactive)
+ (setq fuzzy-isearch-original-search-fun isearch-search-fun-function)
+ (setq isearch-search-fun-function 'fuzzy-isearch)
+ (add-hook 'isearch-mode-end-hook 'fuzzy-isearch-end-hook))
+
+(defun turn-off-fuzzy-isearch ()
+ (interactive)
+ (setq isearch-search-fun-function fuzzy-isearch-original-search-fun)
+ (remove-hook 'isearch-mode-end-hook 'fuzzy-isearch-end-hook))
+
+(defadvice isearch-message-prefix (after fuzzy-isearch-message-prefix activate)
+ (if fuzzy-isearch
+ (setq ad-return-value (concat fuzzy-isearch-prefix ad-return-value))
+ ad-return-value))
+
+(provide 'fuzzy)
+;;; fuzzy.el ends here
diff --git a/.emacs.d/fuzzy.elc b/.emacs.d/fuzzy.elc
new file mode 100644
index 0000000..aef35d9
--- /dev/null
+++ b/.emacs.d/fuzzy.elc
Binary files differ
diff --git a/.emacs.d/include.el b/.emacs.d/include.el
new file mode 100644
index 0000000..9000147
--- /dev/null
+++ b/.emacs.d/include.el
@@ -0,0 +1,16 @@
+(load-file "~/.emacs.d/slash_theme.el")
+(load-file "~/.emacs.d/slash_python.el")
+(load-file "~/.emacs.d/slash_functions.el")
+(autoload 'vala-mode
+ "~/.emacs.d/vala-mode.el" "A Major mode for editing Vala files" t)
+(autoload 'csharp-mode
+ "~/.emacs.d/csharp-mode.el" "A Major mode for editing C# files" t)
+(autoload 'javascript-mode
+ "~/.emacs.d/javascript.el" "A Major mode for editing JavaScript" t)
+(autoload 'sqlplus
+ "~/.emacs.d/sqlplus.el" "A Major mode for communicating with Oracle" t)
+(autoload 'batch-mode
+ "~/.emacs.d/batch-mode.el" "A Major mode for editing Batch files" t)
+
+(load-file "~/.emacs.d/auto-complete-config.el")
+(require 'auto-complete-config) \ No newline at end of file
diff --git a/.emacs.d/javascript.el b/.emacs.d/javascript.el
new file mode 100644
index 0000000..33d852f
--- /dev/null
+++ b/.emacs.d/javascript.el
@@ -0,0 +1,707 @@
+;;; javascript.el --- Major mode for editing JavaScript source text
+
+;; Copyright (C) 2006 Karl Landström
+
+;; Author: Karl Landström <kland@comhem.se>
+;; Maintainer: Karl Landström <kland@comhem.se>
+;; Version: 2.0 Beta 8
+;; Date: 2006-12-26
+;; Keywords: languages, oop
+
+;; This file is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; This file is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING. If not, write to
+;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+;;
+;; The main features of this JavaScript mode are syntactic
+;; highlighting (enabled with `font-lock-mode' or
+;; `global-font-lock-mode'), automatic indentation and filling of
+;; comments.
+;;
+;; This package has (only) been tested with GNU Emacs 21.4 (the latest
+;; stable release).
+;;
+;; Installation:
+;;
+;; Put this file in a directory where Emacs can find it (`C-h v
+;; load-path' for more info). Then add the following lines to your
+;; Emacs initialization file:
+;;
+;; (add-to-list 'auto-mode-alist '("\\.js\\'" . javascript-mode))
+;; (autoload 'javascript-mode "javascript" nil t)
+;;
+;; General Remarks:
+;;
+;; This mode assumes that block comments are not nested inside block
+;; comments and that strings do not contain line breaks.
+;;
+;; Exported names start with "javascript-" whereas private names start
+;; with "js-".
+;;
+;; Changes:
+;;
+;; See javascript.el.changelog.
+
+;;; Code:
+
+(require 'cc-mode)
+(require 'font-lock)
+(require 'newcomment)
+
+(defgroup javascript nil
+ "Customization variables for `javascript-mode'."
+ :tag "JavaScript"
+ :group 'languages)
+
+(defcustom javascript-indent-level 4
+ "Number of spaces for each indentation step."
+ :type 'integer
+ :group 'javascript)
+
+(defcustom javascript-auto-indent-flag t
+ "Automatic indentation with punctuation characters. If non-nil, the
+current line is indented when certain punctuations are inserted."
+ :type 'boolean
+ :group 'javascript)
+
+
+;; --- Keymap ---
+
+(defvar javascript-mode-map nil
+ "Keymap used in JavaScript mode.")
+
+(unless javascript-mode-map
+ (setq javascript-mode-map (make-sparse-keymap)))
+
+(when javascript-auto-indent-flag
+ (mapc (lambda (key)
+ (define-key javascript-mode-map key 'javascript-insert-and-indent))
+ '("{" "}" "(" ")" ":" ";" ",")))
+
+(defun javascript-insert-and-indent (key)
+ "Run command bound to key and indent current line. Runs the command
+bound to KEY in the global keymap and indents the current line."
+ (interactive (list (this-command-keys)))
+ (call-interactively (lookup-key (current-global-map) key))
+ (indent-according-to-mode))
+
+
+;; --- Syntax Table And Parsing ---
+
+(defvar javascript-mode-syntax-table
+ (let ((table (make-syntax-table)))
+ (c-populate-syntax-table table)
+
+ ;; The syntax class of underscore should really be `symbol' ("_")
+ ;; but that makes matching of tokens much more complex as e.g.
+ ;; "\\<xyz\\>" matches part of e.g. "_xyz" and "xyz_abc". Defines
+ ;; it as word constituent for now.
+ (modify-syntax-entry ?_ "w" table)
+
+ table)
+ "Syntax table used in JavaScript mode.")
+
+
+(defun js-re-search-forward-inner (regexp &optional bound count)
+ "Auxiliary function for `js-re-search-forward'."
+ (let ((parse)
+ (saved-point (point-min)))
+ (while (> count 0)
+ (re-search-forward regexp bound)
+ (setq parse (parse-partial-sexp saved-point (point)))
+ (cond ((nth 3 parse)
+ (re-search-forward
+ (concat "\\([^\\]\\|^\\)" (string (nth 3 parse)))
+ (save-excursion (end-of-line) (point)) t))
+ ((nth 7 parse)
+ (forward-line))
+ ((or (nth 4 parse)
+ (and (eq (char-before) ?\/) (eq (char-after) ?\*)))
+ (re-search-forward "\\*/"))
+ (t
+ (setq count (1- count))))
+ (setq saved-point (point))))
+ (point))
+
+
+(defun js-re-search-forward (regexp &optional bound noerror count)
+ "Search forward but ignore strings and comments. Invokes
+`re-search-forward' but treats the buffer as if strings and
+comments have been removed."
+ (let ((saved-point (point))
+ (search-expr
+ (cond ((null count)
+ '(js-re-search-forward-inner regexp bound 1))
+ ((< count 0)
+ '(js-re-search-backward-inner regexp bound (- count)))
+ ((> count 0)
+ '(js-re-search-forward-inner regexp bound count)))))
+ (condition-case err
+ (eval search-expr)
+ (search-failed
+ (goto-char saved-point)
+ (unless noerror
+ (error (error-message-string err)))))))
+
+
+(defun js-re-search-backward-inner (regexp &optional bound count)
+ "Auxiliary function for `js-re-search-backward'."
+ (let ((parse)
+ (saved-point (point-min)))
+ (while (> count 0)
+ (re-search-backward regexp bound)
+ (when (and (> (point) (point-min))
+ (save-excursion (backward-char) (looking-at "/[/*]")))
+ (forward-char))
+ (setq parse (parse-partial-sexp saved-point (point)))
+ (cond ((nth 3 parse)
+ (re-search-backward
+ (concat "\\([^\\]\\|^\\)" (string (nth 3 parse)))
+ (save-excursion (beginning-of-line) (point)) t))
+ ((nth 7 parse)
+ (goto-char (nth 8 parse)))
+ ((or (nth 4 parse)
+ (and (eq (char-before) ?/) (eq (char-after) ?*)))
+ (re-search-backward "/\\*"))
+ (t
+ (setq count (1- count))))))
+ (point))
+
+
+(defun js-re-search-backward (regexp &optional bound noerror count)
+ "Search backward but ignore strings and comments. Invokes
+`re-search-backward' but treats the buffer as if strings and
+comments have been removed."
+ (let ((saved-point (point))
+ (search-expr
+ (cond ((null count)
+ '(js-re-search-backward-inner regexp bound 1))
+ ((< count 0)
+ '(js-re-search-forward-inner regexp bound (- count)))
+ ((> count 0)
+ '(js-re-search-backward-inner regexp bound count)))))
+ (condition-case err
+ (eval search-expr)
+ (search-failed
+ (goto-char saved-point)
+ (unless noerror
+ (error (error-message-string err)))))))
+
+
+(defun js-continued-var-decl-list-p ()
+ "Return non-nil if point is inside a continued variable declaration
+list."
+ (interactive)
+ (let ((start (save-excursion (js-re-search-backward "\\<var\\>" nil t))))
+ (and start
+ (save-excursion (re-search-backward "\n" start t))
+ (not (save-excursion
+ (js-re-search-backward
+ ";\\|[^, \t][ \t]*\\(/[/*]\\|$\\)" start t))))))
+
+
+;; --- Font Lock ---
+
+(defun js-inside-param-list-p ()
+ "Return non-nil if point is inside a function parameter list."
+ (condition-case err
+ (save-excursion
+ (up-list -1)
+ (and (looking-at "(")
+ (progn (backward-word 1)
+ (or (looking-at "function")
+ (progn (backward-word 1) (looking-at "function"))))))
+ (error nil)))
+
+
+(defconst js-function-heading-1-re
+ "^[ \t]*function[ \t]+\\(\\w+\\)"
+ "Regular expression matching the start of a function header.")
+
+(defconst js-function-heading-2-re
+ "^[ \t]*\\(\\w+\\)[ \t]*:[ \t]*function\\>"
+ "Regular expression matching the start of a function entry in
+ an associative array.")
+
+(defconst js-keyword-re
+ (regexp-opt '("abstract" "break" "case" "catch" "class" "const"
+ "continue" "debugger" "default" "delete" "do" "else"
+ "enum" "export" "extends" "final" "finally" "for"
+ "function" "goto" "if" "implements" "import" "in"
+ "instanceof" "interface" "native" "new" "package"
+ "private" "protected" "public" "return" "static"
+ "super" "switch" "synchronized" "this" "throw"
+ "throws" "transient" "try" "typeof" "var" "void"
+ "volatile" "while" "with"
+ "let") 'words)
+ "Regular expression matching any JavaScript keyword.")
+
+(defconst js-basic-type-re
+ (regexp-opt '("boolean" "byte" "char" "double" "float" "int" "long"
+ "short" "void") 'words)
+ "Regular expression matching any predefined type in JavaScript.")
+
+(defconst js-constant-re
+ (regexp-opt '("false" "null" "true") 'words)
+ "Regular expression matching any future reserved words in JavaScript.")
+
+
+(defconst js-font-lock-keywords-1
+ (list
+ "\\<import\\>"
+ (list js-function-heading-1-re 1 font-lock-function-name-face)
+ (list js-function-heading-2-re 1 font-lock-function-name-face)
+ (list "[=(][ \t]*\\(/.*?[^\\]/\\w*\\)" 1 font-lock-string-face))
+ "Level one font lock.")
+
+(defconst js-font-lock-keywords-2
+ (append js-font-lock-keywords-1
+ (list (list js-keyword-re 1 font-lock-keyword-face)
+ (cons js-basic-type-re font-lock-type-face)
+ (cons js-constant-re font-lock-constant-face)))
+ "Level two font lock.")
+
+
+;; Limitations with variable declarations: There seems to be no
+;; sensible way to highlight variables occuring after an initialized
+;; variable in a variable list. For instance, in
+;;
+;; var x, y = f(a, b), z
+;;
+;; z will not be highlighted.
+
+(defconst js-font-lock-keywords-3
+ (append
+ js-font-lock-keywords-2
+ (list
+
+ ;; variable declarations
+ (list
+ (concat "\\<\\(const\\|var\\)\\>\\|" js-basic-type-re)
+ (list "\\(\\w+\\)[ \t]*\\([=;].*\\|,\\|/[/*]\\|$\\)"
+ nil
+ nil
+ '(1 font-lock-variable-name-face)))
+
+ ;; continued variable declaration list
+ (list
+ (concat "^[ \t]*\\w+[ \t]*\\([,;=]\\|/[/*]\\|$\\)")
+ (list "\\(\\w+\\)[ \t]*\\([=;].*\\|,\\|/[/*]\\|$\\)"
+ '(if (save-excursion (backward-char) (js-continued-var-decl-list-p))
+ (backward-word 1)
+ (end-of-line))
+ '(end-of-line)
+ '(1 font-lock-variable-name-face)))
+
+ ;; formal parameters
+ (list
+ (concat "\\<function\\>\\([ \t]+\\w+\\)?[ \t]*([ \t]*\\w")
+ (list "\\(\\w+\\)\\([ \t]*).*\\)?"
+ '(backward-char)
+ '(end-of-line)
+ '(1 font-lock-variable-name-face)))
+
+ ;; continued formal parameter list
+ (list
+ (concat "^[ \t]*\\w+[ \t]*[,)]")
+ (list "\\w+"
+ '(if (save-excursion (backward-char) (js-inside-param-list-p))
+ (backward-word 1)
+ (end-of-line))
+ '(end-of-line)
+ '(0 font-lock-variable-name-face)))))
+ "Level three font lock.")
+
+(defconst js-font-lock-keywords
+ '(js-font-lock-keywords-3 js-font-lock-keywords-1 js-font-lock-keywords-2
+ js-font-lock-keywords-3)
+ "See `font-lock-keywords'.")
+
+
+;; --- Indentation ---
+
+(defconst js-possibly-braceless-keyword-re
+ (regexp-opt
+ '("catch" "do" "else" "finally" "for" "if" "try" "while" "with" "let")
+ 'words)
+ "Regular expression matching keywords that are optionally
+ followed by an opening brace.")
+
+(defconst js-indent-operator-re
+ (concat "[-+*/%<>=&^|?:.]\\([^-+*/]\\|$\\)\\|"
+ (regexp-opt '("in" "instanceof") 'words))
+ "Regular expression matching operators that affect indentation
+ of continued expressions.")
+
+
+(defun js-looking-at-operator-p ()
+ "Return non-nil if text after point is an operator (that is not
+a comma)."
+ (save-match-data
+ (and (looking-at js-indent-operator-re)
+ (or (not (looking-at ":"))
+ (save-excursion
+ (and (js-re-search-backward "[?:{]\\|\\<case\\>" nil t)
+ (looking-at "?")))))))
+
+
+(defun js-continued-expression-p ()
+ "Returns non-nil if the current line continues an expression."
+ (save-excursion
+ (back-to-indentation)
+ (or (js-looking-at-operator-p)
+ (and (js-re-search-backward "\n" nil t)
+ (progn
+ (skip-chars-backward " \t")
+ (backward-char)
+ (and (> (point) (point-min))
+ (save-excursion (backward-char) (not (looking-at "[/*]/")))
+ (js-looking-at-operator-p)
+ (and (progn (backward-char)
+ (not (looking-at "++\\|--\\|/[/*]"))))))))))
+
+
+(defun js-end-of-do-while-loop-p ()
+ "Returns non-nil if word after point is `while' of a do-while
+statement, else returns nil. A braceless do-while statement
+spanning several lines requires that the start of the loop is
+indented to the same column as the current line."
+ (interactive)
+ (save-excursion
+ (save-match-data
+ (when (looking-at "\\s-*\\<while\\>")
+ (if (save-excursion
+ (skip-chars-backward "[ \t\n]*}")
+ (looking-at "[ \t\n]*}"))
+ (save-excursion
+ (backward-list) (backward-word 1) (looking-at "\\<do\\>"))
+ (js-re-search-backward "\\<do\\>" (point-at-bol) t)
+ (or (looking-at "\\<do\\>")
+ (let ((saved-indent (current-indentation)))
+ (while (and (js-re-search-backward "^[ \t]*\\<" nil t)
+ (/= (current-indentation) saved-indent)))
+ (and (looking-at "[ \t]*\\<do\\>")
+ (not (js-re-search-forward
+ "\\<while\\>" (point-at-eol) t))
+ (= (current-indentation) saved-indent)))))))))
+
+
+(defun js-ctrl-statement-indentation ()
+ "Returns the proper indentation of the current line if it
+starts the body of a control statement without braces, else
+returns nil."
+ (save-excursion
+ (back-to-indentation)
+ (when (save-excursion
+ (and (not (looking-at "[{]"))
+ (progn
+ (js-re-search-backward "[[:graph:]]" nil t)
+ (forward-char)
+ (when (= (char-before) ?\)) (backward-list))
+ (skip-syntax-backward " ")
+ (skip-syntax-backward "w")
+ (looking-at js-possibly-braceless-keyword-re))
+ (not (js-end-of-do-while-loop-p))))
+ (save-excursion
+ (goto-char (match-beginning 0))
+ (+ (current-indentation) javascript-indent-level)))))
+
+
+(defun js-proper-indentation (parse-status)
+ "Return the proper indentation for the current line."
+ (save-excursion
+ (back-to-indentation)
+ (let ((ctrl-stmt-indent (js-ctrl-statement-indentation))
+ (same-indent-p (looking-at "[]})]\\|\\<case\\>\\|\\<default\\>"))
+ (continued-expr-p (js-continued-expression-p)))
+ (cond (ctrl-stmt-indent)
+ ((js-continued-var-decl-list-p)
+ (js-re-search-backward "\\<var\\>" nil t)
+ (+ (current-indentation) javascript-indent-level))
+ ((nth 1 parse-status)
+ (goto-char (nth 1 parse-status))
+ (if (looking-at "[({[][ \t]*\\(/[/*]\\|$\\)")
+ (progn
+ (skip-syntax-backward " ")
+ (when (= (char-before) ?\)) (backward-list))
+ (back-to-indentation)
+ (cond (same-indent-p
+ (current-column))
+ (continued-expr-p
+ (+ (current-column) (* 2 javascript-indent-level)))
+ (t
+ (+ (current-column) javascript-indent-level))))
+ (unless same-indent-p
+ (forward-char)
+ (skip-chars-forward " \t"))
+ (current-column)))
+ (continued-expr-p javascript-indent-level)
+ (t 0)))))
+
+
+(defun javascript-indent-line ()
+ "Indent the current line as JavaScript source text."
+ (interactive)
+ (let ((parse-status
+ (save-excursion (parse-partial-sexp (point-min) (point-at-bol))))
+ (offset (- (current-column) (current-indentation))))
+ (when (not (nth 8 parse-status))
+ (indent-line-to (js-proper-indentation parse-status))
+ (when (> offset 0) (forward-char offset)))))
+
+
+;; --- Filling ---
+
+;; FIXME: It should be possible to use the more sofisticated function
+;; `c-fill-paragraph' in `cc-cmds.el' instead. However, just setting
+;; `fill-paragraph-function' to `c-fill-paragraph' does not work;
+;; inside `c-fill-paragraph', `fill-paragraph-function' evaluates to
+;; nil!?
+
+(defun js-backward-paragraph ()
+ "Move backward to start of paragraph. Postcondition: Point is at
+beginning of buffer or the previous line contains only whitespace."
+ (forward-line -1)
+ (while (not (or (bobp) (looking-at "^[ \t]*$")))
+ (forward-line -1))
+ (when (not (bobp)) (forward-line 1)))
+
+
+(defun js-forward-paragraph ()
+ "Move forward to end of paragraph. Postcondition: Point is at
+end of buffer or the next line contains only whitespace."
+ (forward-line 1)
+ (while (not (or (eobp) (looking-at "^[ \t]*$")))
+ (forward-line 1))
+ (when (not (eobp)) (backward-char 1)))
+
+
+(defun js-fill-block-comment-paragraph (parse-status justify)
+ "Fill current paragraph as a block comment. PARSE-STATUS is the
+result of `parse-partial-regexp' from beginning of buffer to
+point. JUSTIFY has the same meaning as in `fill-paragraph'."
+ (let ((offset (save-excursion
+ (goto-char (nth 8 parse-status)) (current-indentation))))
+ (save-excursion
+ (save-restriction
+ (narrow-to-region (save-excursion
+ (goto-char (nth 8 parse-status)) (point-at-bol))
+ (save-excursion
+ (goto-char (nth 8 parse-status))
+ (re-search-forward "*/")))
+ (narrow-to-region (save-excursion
+ (js-backward-paragraph)
+ (when (looking-at "^[ \t]*$") (forward-line 1))
+ (point))
+ (save-excursion
+ (js-forward-paragraph)
+ (when (looking-at "^[ \t]*$") (backward-char))
+ (point)))
+ (goto-char (point-min))
+ (while (not (eobp))
+ (delete-horizontal-space)
+ (forward-line 1))
+ (let ((fill-column (- fill-column offset))
+ (fill-paragraph-function nil))
+ (fill-paragraph justify))
+
+ ;; In Emacs 21.4 as opposed to CVS Emacs 22,
+ ;; `fill-paragraph' seems toadd a newline at the end of the
+ ;; paragraph. Remove it!
+ (goto-char (point-max))
+ (when (looking-at "^$") (backward-delete-char 1))
+
+ (goto-char (point-min))
+ (while (not (eobp))
+ (indent-to offset)
+ (forward-line 1))))))
+
+
+(defun js-sline-comment-par-start ()
+ "Return point at the beginning of the line where the current
+single-line comment paragraph starts."
+ (save-excursion
+ (beginning-of-line)
+ (while (and (not (bobp))
+ (looking-at "^[ \t]*//[ \t]*[[:graph:]]"))
+ (forward-line -1))
+ (unless (bobp) (forward-line 1))
+ (point)))
+
+
+(defun js-sline-comment-par-end ()
+ "Return point at end of current single-line comment paragraph."
+ (save-excursion
+ (beginning-of-line)
+ (while (and (not (eobp))
+ (looking-at "^[ \t]*//[ \t]*[[:graph:]]"))
+ (forward-line 1))
+ (unless (bobp) (backward-char))
+ (point)))
+
+
+(defun js-sline-comment-offset (line)
+ "Return the column at the start of the current single-line
+comment paragraph."
+ (save-excursion
+ (goto-line line)
+ (re-search-forward "//" (point-at-eol))
+ (goto-char (match-beginning 0))
+ (current-column)))
+
+
+(defun js-sline-comment-text-offset (line)
+ "Return the column at the start of the text of the current
+single-line comment paragraph."
+ (save-excursion
+ (goto-line line)
+ (re-search-forward "//[ \t]*" (point-at-eol))
+ (current-column)))
+
+
+(defun js-at-empty-sline-comment-p ()
+ "Return non-nil if inside an empty single-line comment."
+ (and (save-excursion
+ (beginning-of-line)
+ (not (looking-at "^.*//.*[[:graph:]]")))
+ (save-excursion
+ (re-search-backward "//" (point-at-bol) t))))
+
+
+(defun js-fill-sline-comments (parse-status justify)
+ "Fill current paragraph as a sequence of single-line comments.
+PARSE-STATUS is the result of `parse-partial-regexp' from
+beginning of buffer to point. JUSTIFY has the same meaning as in
+`fill-paragraph'."
+ (when (not (js-at-empty-sline-comment-p))
+ (let* ((start (js-sline-comment-par-start))
+ (start-line (1+ (count-lines (point-min) start)))
+ (end (js-sline-comment-par-end))
+ (offset (js-sline-comment-offset start-line))
+ (text-offset (js-sline-comment-text-offset start-line)))
+ (save-excursion
+ (save-restriction
+ (narrow-to-region start end)
+ (goto-char (point-min))
+ (while (re-search-forward "^[ \t]*//[ \t]*" nil t)
+ (replace-match "")
+ (forward-line 1))
+ (let ((fill-paragraph-function nil)
+ (fill-column (- fill-column text-offset)))
+ (fill-paragraph justify))
+
+ ;; In Emacs 21.4 as opposed to CVS Emacs 22,
+ ;; `fill-paragraph' seems toadd a newline at the end of the
+ ;; paragraph. Remove it!
+ (goto-char (point-max))
+ (when (looking-at "^$") (backward-delete-char 1))
+
+ (goto-char (point-min))
+ (while (not (eobp))
+ (indent-to offset)
+ (insert "//")
+ (indent-to text-offset)
+ (forward-line 1)))))))
+
+
+(defun js-trailing-comment-p (parse-status)
+ "Return non-nil if inside a trailing comment. PARSE-STATUS is
+the result of `parse-partial-regexp' from beginning of buffer to
+point."
+ (save-excursion
+ (when (nth 4 parse-status)
+ (goto-char (nth 8 parse-status))
+ (skip-chars-backward " \t")
+ (not (bolp)))))
+
+
+(defun js-block-comment-p (parse-status)
+ "Return non-nil if inside a block comment. PARSE-STATUS is the
+result of `parse-partial-regexp' from beginning of buffer to
+point."
+ (save-excursion
+ (save-match-data
+ (when (nth 4 parse-status)
+ (goto-char (nth 8 parse-status))
+ (looking-at "/\\*")))))
+
+
+(defun javascript-fill-paragraph (&optional justify)
+ "If inside a comment, fill the current comment paragraph.
+Trailing comments are ignored."
+ (interactive)
+ (let ((parse-status (parse-partial-sexp (point-min) (point))))
+ (when (and (nth 4 parse-status)
+ (not (js-trailing-comment-p parse-status)))
+ (if (js-block-comment-p parse-status)
+ (js-fill-block-comment-paragraph parse-status justify)
+ (js-fill-sline-comments parse-status justify))))
+ t)
+
+
+;; --- Imenu ---
+
+(defconst js-imenu-generic-expression
+ (list
+ (list
+ nil
+ "function\\s-+\\(\\w+\\)\\s-*("
+ 1))
+ "Regular expression matching top level procedures. Used by imenu.")
+
+
+;; --- Main Function ---
+
+;;;###autoload
+(defun javascript-mode ()
+ "Major mode for editing JavaScript source text.
+
+Key bindings:
+
+\\{javascript-mode-map}"
+ (interactive)
+ (kill-all-local-variables)
+
+ (use-local-map javascript-mode-map)
+ (set-syntax-table javascript-mode-syntax-table)
+ (set (make-local-variable 'indent-line-function) 'javascript-indent-line)
+ (set (make-local-variable 'font-lock-defaults) (list js-font-lock-keywords))
+
+ (set (make-local-variable 'parse-sexp-ignore-comments) t)
+
+ ;; Comments
+ (setq comment-start "// ")
+ (setq comment-end "")
+ (set (make-local-variable 'fill-paragraph-function)
+ 'javascript-fill-paragraph)
+
+ ;; Make c-mark-function work
+ (setq c-nonsymbol-token-regexp "!=\\|%=\\|&[&=]\\|\\*[/=]\\|\\+[+=]\\|-[=-]\\|/[*/=]\\|<\\(?:<=\\|[<=]\\)\\|==\\|>\\(?:>\\(?:>=\\|[=>]\\)\\|[=>]\\)\\|\\^=\\||[=|]\\|[]!%&(-,./:-?[{-~^-]"
+ c-stmt-delim-chars "^;{}?:"
+ c-syntactic-ws-end "[ \n \f/]"
+ c-syntactic-eol "\\(\\s \\|/\\*\\([^*\n ]\\|\\*[^/\n ]\\)*\\*/\\)*\\(\\(/\\*\\([^*\n ]\\|\\*[^/\n ]\\)*\\|\\\\\\)?$\\|//\\)")
+
+ ;; Imenu
+ (setq imenu-case-fold-search nil)
+ (set (make-local-variable 'imenu-generic-expression)
+ js-imenu-generic-expression)
+
+ (setq major-mode 'javascript-mode)
+ (setq mode-name "JavaScript")
+ (run-hooks 'javascript-mode-hook))
+
+
+(provide 'javascript-mode)
+;;; javascript.el ends here
diff --git a/.emacs.d/linux/.emacs b/.emacs.d/linux/.emacs
new file mode 100644
index 0000000..991f9c9
--- /dev/null
+++ b/.emacs.d/linux/.emacs
@@ -0,0 +1 @@
+(set-default-font "-xos4-terminus-medium-*-*-*-14-*-*-*-*-*-*-*") \ No newline at end of file
diff --git a/.emacs.d/popup.el b/.emacs.d/popup.el
new file mode 100644
index 0000000..0f14dfe
--- /dev/null
+++ b/.emacs.d/popup.el
@@ -0,0 +1,1061 @@
+;;; popup.el --- Visual popup interface
+
+;; Copyright (C) 2009, 2010 Tomohiro Matsuyama
+
+;; Author: Tomohiro Matsuyama <tomo@cx4a.org>
+;; Keywords: lisp
+;; Version: 0.4
+
+;; 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
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;
+
+;;; Code:
+
+(eval-when-compile
+ (require 'cl))
+
+
+
+;; Utilities
+
+(defvar popup-use-optimized-column-computation t
+ "Use optimized column computation routine.
+If there is a problem, please set it to nil.")
+
+;; Borrowed from anything.el
+(defmacro popup-aif (test-form then-form &rest else-forms)
+ "Anaphoric if. Temporary variable `it' is the result of test-form."
+ (declare (indent 2))
+ `(let ((it ,test-form))
+ (if it ,then-form ,@else-forms)))
+
+(defun popup-x-to-string (x)
+ "Convert any object to string effeciently.
+This is faster than prin1-to-string in many cases."
+ (typecase x
+ (string x)
+ (symbol (symbol-name x))
+ (integer (number-to-string x))
+ (float (number-to-string x))
+ (t (format "%s" x))))
+
+(defun popup-substring-by-width (string width)
+ "Return cons of substring and remaining string by `WIDTH'."
+ ;; Expand tabs with 4 spaces
+ (setq string (replace-regexp-in-string "\t" " " string))
+ (loop with len = (length string)
+ with w = 0
+ for l from 0
+ for c in (append string nil)
+ while (<= (incf w (char-width c)) width)
+ finally return
+ (if (< l len)
+ (cons (substring string 0 l) (substring string l))
+ (list string))))
+
+(defun popup-fill-string (string &optional width max-width justify squeeze)
+ "Split STRING into fixed width strings and return a cons cell like
+\(WIDTH . ROWS). Here, the car WIDTH indicates the actual maxim width of ROWS.
+
+The argument WIDTH specifies the width of filling each paragraph. WIDTH nil
+means don't perform any justification and word wrap. Note that this function
+doesn't add any padding characters at the end of each row.
+
+MAX-WIDTH, if WIDTH is nil, specifies the maximum number of columns.
+
+The optional fourth argument JUSTIFY specifies which kind of justification
+to do: `full', `left', `right', `center', or `none' (equivalent to nil).
+A value of t means handle each paragraph as specified by its text properties.
+
+SQUEEZE nil means leave whitespaces other than line breaks untouched."
+ (if (eq width 0)
+ (error "Can't fill string with 0 width"))
+ (if width
+ (setq max-width width))
+ (with-temp-buffer
+ (let ((tab-width 4)
+ (fill-column width)
+ (left-margin 0)
+ (kinsoku-limit 1)
+ indent-tabs-mode
+ row rows)
+ (insert string)
+ (untabify (point-min) (point-max))
+ (if width
+ (fill-region (point-min) (point-max) justify (not squeeze)))
+ (goto-char (point-min))
+ (setq width 0)
+ (while (prog2
+ (let ((line (buffer-substring
+ (point) (progn (end-of-line) (point)))))
+ (if max-width
+ (while (progn
+ (setq row (truncate-string-to-width line max-width)
+ width (max width (string-width row)))
+ (push row rows)
+ (if (not (= (length row) (length line)))
+ (setq line (substring line (length row))))))
+ (setq width (max width (string-width line)))
+ (push line rows)))
+ (< (point) (point-max))
+ (beginning-of-line 2)))
+ (cons width (nreverse rows)))))
+
+(defmacro popup-save-buffer-state (&rest body)
+ (declare (indent 0))
+ `(save-excursion
+ (let ((buffer-undo-list t)
+ (buffer-read-only nil)
+ (modified (buffer-modified-p)))
+ (unwind-protect
+ (progn ,@body)
+ (set-buffer-modified-p modified)))))
+
+(defun popup-preferred-width (list)
+ "Return preferred width of popup to show `LIST' beautifully."
+ (loop with tab-width = 4
+ for item in list
+ for summary = (popup-item-summary item)
+ maximize (string-width (popup-x-to-string item)) into width
+ if (stringp summary)
+ maximize (+ (string-width summary) 2) into summary-width
+ finally return (* (ceiling (/ (+ (or width 0) (or summary-width 0)) 10.0)) 10)))
+
+;; window-full-width-p is not defined in Emacs 22.1
+(defun popup-window-full-width-p (&optional window)
+ (if (fboundp 'window-full-width-p)
+ (window-full-width-p window)
+ (= (window-width window) (frame-width (window-frame (or window (selected-window)))))))
+
+;; truncated-partial-width-window-p is not defined in Emacs 22
+(defun popup-truncated-partial-width-window-p (&optional window)
+ (unless window
+ (setq window (selected-window)))
+ (unless (popup-window-full-width-p window)
+ (let ((t-p-w-w (buffer-local-value 'truncate-partial-width-windows
+ (window-buffer window))))
+ (if (integerp t-p-w-w)
+ (< (window-width window) t-p-w-w)
+ t-p-w-w))))
+
+(defun popup-current-physical-column ()
+ (or (when (and popup-use-optimized-column-computation
+ (eq (window-hscroll) 0))
+ (let ((current-column (current-column)))
+ (if (or (popup-truncated-partial-width-window-p)
+ truncate-lines
+ (< current-column (window-width)))
+ current-column)))
+ (car (posn-col-row (posn-at-point)))))
+
+(defun popup-last-line-of-buffer-p ()
+ (save-excursion (end-of-line) (/= (forward-line) 0)))
+
+(defun popup-lookup-key-by-event (function event)
+ (or (funcall function (vector event))
+ (if (symbolp event)
+ (popup-aif (get event 'event-symbol-element-mask)
+ (funcall function (vector (logior (or (get (car it) 'ascii-character) 0)
+ (cadr it))))))))
+
+
+
+;; Popup common
+
+(defgroup popup nil
+ "Visual popup interface"
+ :group 'lisp
+ :prefix "popup-")
+
+(defface popup-face
+ '((t (:background "lightgray" :foreground "black")))
+ "Face for popup."
+ :group 'popup)
+
+(defface popup-scroll-bar-foreground-face
+ '((t (:background "black")))
+ "Foreground face for scroll-bar."
+ :group 'popup)
+
+(defface popup-scroll-bar-background-face
+ '((t (:background "gray")))
+ "Background face for scroll-bar."
+ :group 'popup)
+
+(defvar popup-instances nil
+ "Popup instances.")
+
+(defvar popup-scroll-bar-foreground-char
+ (propertize " " 'face 'popup-scroll-bar-foreground-face)
+ "Foreground character for scroll-bar.")
+
+(defvar popup-scroll-bar-background-char
+ (propertize " " 'face 'popup-scroll-bar-background-face)
+ "Background character for scroll-bar.")
+
+(defstruct popup
+ point row column width height min-height direction overlays
+ parent depth
+ face selection-face
+ margin-left margin-right margin-left-cancel scroll-bar symbol
+ cursor offset scroll-top current-height list newlines
+ pattern original-list)
+
+(defun popup-item-propertize (item &rest properties)
+ "Same to `propertize` but this avoids overriding existed value with `nil` property."
+ (let (props)
+ (while properties
+ (when (cadr properties)
+ (push (car properties) props)
+ (push (cadr properties) props))
+ (setq properties (cddr properties)))
+ (apply 'propertize
+ (popup-x-to-string item)
+ (nreverse props))))
+
+(defun popup-item-property (item property)
+ (if (stringp item)
+ (get-text-property 0 property item)))
+
+(defun* popup-make-item (name
+ &key
+ value
+ popup-face
+ selection-face
+ sublist
+ document
+ symbol
+ summary)
+ "Utility function to make popup item.
+See also `popup-item-propertize'."
+ (popup-item-propertize name
+ 'value value
+ 'popup-face popup-face
+ 'selection-face selection-face
+ 'document document
+ 'symbol symbol
+ 'summary summary
+ 'sublist sublist))
+
+(defsubst popup-item-value (item) (popup-item-property item 'value))
+(defsubst popup-item-value-or-self (item) (or (popup-item-value item) item))
+(defsubst popup-item-popup-face (item) (popup-item-property item 'popup-face))
+(defsubst popup-item-selection-face (item) (popup-item-property item 'selection-face))
+(defsubst popup-item-document (item) (popup-item-property item 'document))
+(defsubst popup-item-summary (item) (popup-item-property item 'summary))
+(defsubst popup-item-symbol (item) (popup-item-property item 'symbol))
+(defsubst popup-item-sublist (item) (popup-item-property item 'sublist))
+
+(defun popup-item-documentation (item)
+ (let ((doc (popup-item-document item)))
+ (if (functionp doc)
+ (setq doc (funcall doc (popup-item-value-or-self item))))
+ doc))
+
+(defun popup-item-show-help-1 (item)
+ (let ((doc (popup-item-documentation item)))
+ (when doc
+ (with-current-buffer (get-buffer-create " *Popup Help*")
+ (erase-buffer)
+ (insert doc)
+ (goto-char (point-min))
+ (display-buffer (current-buffer)))
+ t)))
+
+(defun popup-item-show-help (item &optional persist)
+ (when item
+ (if (not persist)
+ (save-window-excursion
+ (when (popup-item-show-help-1 item)
+ (block nil
+ (while t
+ (clear-this-command-keys)
+ (let ((key (read-key-sequence-vector nil)))
+ (case (key-binding key)
+ ('scroll-other-window
+ (scroll-other-window))
+ ('scroll-other-window-down
+ (scroll-other-window-down nil))
+ (t
+ (setq unread-command-events (append key unread-command-events))
+ (return))))))))
+ (popup-item-show-help-1 item))))
+
+(defun popup-set-list (popup list)
+ (popup-set-filtered-list popup list)
+ (setf (popup-pattern popup) nil)
+ (setf (popup-original-list popup) list))
+
+(defun popup-set-filtered-list (popup list)
+ (setf (popup-list popup) list
+ (popup-offset popup) (if (> (popup-direction popup) 0)
+ 0
+ (max (- (popup-height popup) (length list)) 0))))
+
+(defun popup-selected-item (popup)
+ (nth (popup-cursor popup) (popup-list popup)))
+
+(defun popup-selected-line (popup)
+ (- (popup-cursor popup) (popup-scroll-top popup)))
+
+(defun popup-line-overlay (popup line)
+ (aref (popup-overlays popup) line))
+
+(defun popup-selected-line-overlay (popup)
+ (popup-line-overlay popup (popup-selected-line popup)))
+
+(defun popup-hide-line (popup line)
+ (let ((overlay (popup-line-overlay popup line)))
+ (overlay-put overlay 'display nil)
+ (overlay-put overlay 'after-string nil)))
+
+(defun popup-line-hidden-p (popup line)
+ (let ((overlay (popup-line-overlay popup line)))
+ (and (eq (overlay-get overlay 'display) nil)
+ (eq (overlay-get overlay 'after-string) nil))))
+
+(defun popup-set-line-item (popup line item face margin-left margin-right scroll-bar-char symbol summary)
+ (let* ((overlay (popup-line-overlay popup line))
+ (content (popup-create-line-string popup (popup-x-to-string item) margin-left margin-right symbol summary))
+ (start 0)
+ (prefix (overlay-get overlay 'prefix))
+ (postfix (overlay-get overlay 'postfix))
+ end)
+ ;; Overlap face properties
+ (if (get-text-property start 'face content)
+ (setq start (next-single-property-change start 'face content)))
+ (while (and start (setq end (next-single-property-change start 'face content)))
+ (put-text-property start end 'face face content)
+ (setq start (next-single-property-change end 'face content)))
+ (if start
+ (put-text-property start (length content) 'face face content))
+ (unless (overlay-get overlay 'dangle)
+ (overlay-put overlay 'display (concat prefix (substring content 0 1)))
+ (setq prefix nil
+ content (concat (substring content 1))))
+ (overlay-put overlay
+ 'after-string
+ (concat prefix
+ content
+ scroll-bar-char
+ postfix))))
+
+(defun popup-create-line-string (popup string margin-left margin-right symbol summary)
+ (let* ((popup-width (popup-width popup))
+ (summary-width (string-width summary))
+ (string (car (popup-substring-by-width string
+ (- popup-width
+ (if (> summary-width 0)
+ (+ summary-width 2)
+ 0)))))
+ (string-width (string-width string)))
+ (concat margin-left
+ string
+ (make-string (max (- popup-width string-width summary-width) 0) ? )
+ summary
+ symbol
+ margin-right)))
+
+(defun popup-live-p (popup)
+ (and popup (popup-overlays popup) t))
+
+(defun popup-child-point (popup &optional offset)
+ (overlay-end (popup-line-overlay popup
+ (or offset
+ (popup-selected-line popup)))))
+
+(defun* popup-create (point
+ width
+ height
+ &key
+ min-height
+ around
+ (face 'popup-face)
+ (selection-face face)
+ scroll-bar
+ margin-left
+ margin-right
+ symbol
+ parent
+ parent-offset)
+ (or margin-left (setq margin-left 0))
+ (or margin-right (setq margin-right 0))
+ (unless point
+ (setq point
+ (if parent (popup-child-point parent parent-offset) (point))))
+
+ (save-excursion
+ (goto-char point)
+ (let* ((row (line-number-at-pos))
+ (column (popup-current-physical-column))
+ (overlays (make-vector height nil))
+ (popup-width (+ width
+ (if scroll-bar 1 0)
+ margin-left
+ margin-right
+ (if symbol 2 0)))
+ margin-left-cancel
+ (window (selected-window))
+ (window-start (window-start))
+ (window-hscroll (window-hscroll))
+ (window-width (window-width))
+ (right (+ column popup-width))
+ (overflow (and (> right window-width)
+ (>= right popup-width)))
+ (foldable (and (null parent)
+ (>= column popup-width)))
+ (direction (or
+ ;; Currently the direction of cascade popup won't be changed
+ (and parent (popup-direction parent))
+
+ ;; Calculate direction
+ (if (and (> row height)
+ (> height (- (max 1 (- (window-height)
+ (if mode-line-format 1 0)
+ (if header-line-format 1 0)))
+ (count-lines window-start (point)))))
+ -1
+ 1)))
+ (depth (if parent (1+ (popup-depth parent)) 0))
+ (newlines (max 0 (+ (- height (count-lines point (point-max))) (if around 1 0))))
+ current-column)
+ (when (> newlines 0)
+ (popup-save-buffer-state
+ (goto-char (point-max))
+ (insert (make-string newlines ?\n))))
+
+ (if overflow
+ (if foldable
+ (progn
+ (decf column (- popup-width margin-left margin-right))
+ (unless around (move-to-column column)))
+ (when (not truncate-lines)
+ ;; Cut out overflow
+ (let ((d (1+ (- popup-width (- window-width column)))))
+ (decf popup-width d)
+ (decf width d)))
+ (decf column margin-left))
+ (decf column margin-left))
+ (when (and (null parent)
+ (< column 0))
+ ;; Cancel margin left
+ (setq column 0)
+ (decf popup-width margin-left)
+ (setq margin-left-cancel t))
+
+ (dotimes (i height)
+ (let (overlay begin w (dangle t) (prefix "") (postfix ""))
+ (when around
+ (if (>= emacs-major-version 23)
+ (vertical-motion (cons column direction))
+ (vertical-motion direction)
+ (move-to-column (+ (current-column) column))))
+ (setq around t
+ current-column (popup-current-physical-column))
+
+ (when (> current-column column)
+ (backward-char)
+ (setq current-column (popup-current-physical-column)))
+ (when (< current-column column)
+ ;; Extend short buffer lines by popup prefix (line of spaces)
+ (setq prefix (make-string (+ (if (= current-column 0)
+ (- window-hscroll (current-column))
+ 0)
+ (- column current-column))
+ ? )))
+
+ (setq begin (point))
+ (setq w (+ popup-width (length prefix)))
+ (while (and (not (eolp)) (> w 0))
+ (setq dangle nil)
+ (decf w (char-width (char-after)))
+ (forward-char))
+ (if (< w 0)
+ (setq postfix (make-string (- w) ? )))
+
+ (setq overlay (make-overlay begin (point)))
+ (overlay-put overlay 'window window)
+ (overlay-put overlay 'dangle dangle)
+ (overlay-put overlay 'prefix prefix)
+ (overlay-put overlay 'postfix postfix)
+ (overlay-put overlay 'width width)
+ (aset overlays
+ (if (> direction 0) i (- height i 1))
+ overlay)))
+ (loop for p from (- 10000 (* depth 1000))
+ for overlay in (nreverse (append overlays nil))
+ do (overlay-put overlay 'priority p))
+ (let ((it (make-popup :point point
+ :row row
+ :column column
+ :width width
+ :height height
+ :min-height min-height
+ :direction direction
+ :parent parent
+ :depth depth
+ :face face
+ :selection-face selection-face
+ :margin-left margin-left
+ :margin-right margin-right
+ :margin-left-cancel margin-left-cancel
+ :scroll-bar scroll-bar
+ :symbol symbol
+ :cursor 0
+ :scroll-top 0
+ :current-height 0
+ :list nil
+ :newlines newlines
+ :overlays overlays)))
+ (push it popup-instances)
+ it))))
+
+(defun popup-delete (popup)
+ (when (popup-live-p popup)
+ (popup-hide popup)
+ (mapc 'delete-overlay (popup-overlays popup))
+ (setf (popup-overlays popup) nil)
+ (setq popup-instances (delq popup popup-instances))
+ (let ((newlines (popup-newlines popup)))
+ (when (> newlines 0)
+ (popup-save-buffer-state
+ (goto-char (point-max))
+ (dotimes (i newlines)
+ (if (= (char-before) ?\n)
+ (delete-char -1)))))))
+ nil)
+
+(defun popup-draw (popup)
+ (loop with height = (popup-height popup)
+ with min-height = (popup-min-height popup)
+ with popup-face = (popup-face popup)
+ with selection-face = (popup-selection-face popup)
+ with list = (popup-list popup)
+ with length = (length list)
+ with thum-size = (max (/ (* height height) (max length 1)) 1)
+ with page-size = (/ (+ 0.0 (max length 1)) height)
+ with scroll-bar = (popup-scroll-bar popup)
+ with margin-left = (make-string (if (popup-margin-left-cancel popup) 0 (popup-margin-left popup)) ? )
+ with margin-right = (make-string (popup-margin-right popup) ? )
+ with symbol = (popup-symbol popup)
+ with cursor = (popup-cursor popup)
+ with scroll-top = (popup-scroll-top popup)
+ with offset = (popup-offset popup)
+ for o from offset
+ for i from scroll-top
+ while (< o height)
+ for item in (nthcdr scroll-top list)
+ for page-index = (* thum-size (/ o thum-size))
+ for face = (if (= i cursor)
+ (or (popup-item-selection-face item) selection-face)
+ (or (popup-item-popup-face item) popup-face))
+ for empty-char = (propertize " " 'face face)
+ for scroll-bar-char = (if scroll-bar
+ (cond
+ ((<= page-size 1)
+ empty-char)
+ ((and (> page-size 1)
+ (>= cursor (* page-index page-size))
+ (< cursor (* (+ page-index thum-size) page-size)))
+ popup-scroll-bar-foreground-char)
+ (t
+ popup-scroll-bar-background-char))
+ "")
+ for sym = (if symbol
+ (concat " " (or (popup-item-symbol item) " "))
+ "")
+ for summary = (or (popup-item-summary item) "")
+
+ do
+ ;; Show line and set item to the line
+ (popup-set-line-item popup o item face margin-left margin-right scroll-bar-char sym summary)
+
+ finally
+ ;; Remember current height
+ (setf (popup-current-height popup) (- o offset))
+
+ ;; Hide remaining lines
+ (let ((scroll-bar-char (if scroll-bar (propertize " " 'face popup-face) ""))
+ (symbol (if symbol " " "")))
+ (if (> (popup-direction popup) 0)
+ (progn
+ (when min-height
+ (while (< o min-height)
+ (popup-set-line-item popup o "" popup-face margin-left margin-right scroll-bar-char symbol "")
+ (incf o)))
+ (while (< o height)
+ (popup-hide-line popup o)
+ (incf o)))
+ (loop with h = (if min-height (- height min-height) offset)
+ for o from 0 below offset
+ if (< o h)
+ do (popup-hide-line popup o)
+ if (>= o h)
+ do (popup-set-line-item popup o "" popup-face margin-left margin-right scroll-bar-char symbol ""))))))
+
+(defun popup-hide (popup)
+ (dotimes (i (popup-height popup))
+ (popup-hide-line popup i)))
+
+(defun popup-hidden-p (popup)
+ (let ((hidden t))
+ (when (popup-live-p popup)
+ (dotimes (i (popup-height popup))
+ (unless (popup-line-hidden-p popup i)
+ (setq hidden nil))))
+ hidden))
+
+(defun popup-select (popup i)
+ (setq i (+ i (popup-offset popup)))
+ (when (and (<= 0 i) (< i (popup-height popup)))
+ (setf (popup-cursor popup) i)
+ (popup-draw popup)
+ t))
+
+(defun popup-next (popup)
+ (let ((height (popup-height popup))
+ (cursor (1+ (popup-cursor popup)))
+ (scroll-top (popup-scroll-top popup))
+ (length (length (popup-list popup))))
+ (cond
+ ((>= cursor length)
+ ;; Back to first page
+ (setq cursor 0
+ scroll-top 0))
+ ((= cursor (+ scroll-top height))
+ ;; Go to next page
+ (setq scroll-top (min (1+ scroll-top) (max (- length height) 0)))))
+ (setf (popup-cursor popup) cursor
+ (popup-scroll-top popup) scroll-top)
+ (popup-draw popup)))
+
+(defun popup-previous (popup)
+ (let ((height (popup-height popup))
+ (cursor (1- (popup-cursor popup)))
+ (scroll-top (popup-scroll-top popup))
+ (length (length (popup-list popup))))
+ (cond
+ ((< cursor 0)
+ ;; Go to last page
+ (setq cursor (1- length)
+ scroll-top (max (- length height) 0)))
+ ((= cursor (1- scroll-top))
+ ;; Go to previous page
+ (decf scroll-top)))
+ (setf (popup-cursor popup) cursor
+ (popup-scroll-top popup) scroll-top)
+ (popup-draw popup)))
+
+(defun popup-scroll-down (popup &optional n)
+ (let ((scroll-top (min (+ (popup-scroll-top popup) (or n 1))
+ (- (length (popup-list popup)) (popup-height popup)))))
+ (setf (popup-cursor popup) scroll-top
+ (popup-scroll-top popup) scroll-top)
+ (popup-draw popup)))
+
+(defun popup-scroll-up (popup &optional n)
+ (let ((scroll-top (max (- (popup-scroll-top popup) (or n 1))
+ 0)))
+ (setf (popup-cursor popup) scroll-top
+ (popup-scroll-top popup) scroll-top)
+ (popup-draw popup)))
+
+
+
+;; Popup isearch
+
+(defface popup-isearch-match
+ '((t (:background "sky blue")))
+ "Popup isearch match face."
+ :group 'popup)
+
+(defvar popup-isearch-cursor-color "blue")
+
+(defvar popup-isearch-keymap
+ (let ((map (make-sparse-keymap)))
+ ;(define-key map "\r" 'popup-isearch-done)
+ (define-key map "\C-g" 'popup-isearch-cancel)
+ (define-key map "\C-h" 'popup-isearch-delete)
+ (define-key map (kbd "DEL") 'popup-isearch-delete)
+ map))
+
+(defsubst popup-isearch-char-p (char)
+ (and (integerp char)
+ (<= 32 char)
+ (<= char 126)))
+
+(defun popup-isearch-filter-list (pattern list)
+ (loop with regexp = (regexp-quote pattern)
+ for item in list
+ do
+ (unless (stringp item)
+ (setq item (popup-item-propertize (popup-x-to-string item)
+ 'value item)))
+ if (string-match regexp item)
+ collect (let ((beg (match-beginning 0))
+ (end (match-end 0)))
+ (alter-text-property 0 (length item) 'face
+ (lambda (prop)
+ (unless (eq prop 'popup-isearch-match)
+ prop))
+ item)
+ (put-text-property beg end
+ 'face 'popup-isearch-match
+ item)
+ item)))
+
+(defun popup-isearch-prompt (popup pattern)
+ (format "Pattern: %s" (if (= (length (popup-list popup)) 0)
+ (propertize pattern 'face 'isearch-fail)
+ pattern)))
+
+(defun popup-isearch-update (popup pattern &optional callback)
+ (setf (popup-cursor popup) 0
+ (popup-scroll-top popup) 0
+ (popup-pattern popup) pattern)
+ (let ((list (popup-isearch-filter-list pattern (popup-original-list popup))))
+ (popup-set-filtered-list popup list)
+ (if callback
+ (funcall callback list)))
+ (popup-draw popup))
+
+(defun* popup-isearch (popup
+ &key
+ (cursor-color popup-isearch-cursor-color)
+ (keymap popup-isearch-keymap)
+ callback
+ help-delay)
+ (let ((list (popup-original-list popup))
+ (pattern (or (popup-pattern popup) ""))
+ (old-cursor-color (frame-parameter (selected-frame) 'cursor-color))
+ prompt key binding done)
+ (unwind-protect
+ (unless (block nil
+ (if cursor-color
+ (set-cursor-color cursor-color))
+ (while t
+ (setq prompt (popup-isearch-prompt popup pattern))
+ (setq key (popup-menu-read-key-sequence keymap prompt help-delay))
+ (if (null key)
+ (unless (funcall popup-menu-show-quick-help-function popup nil :prompt prompt)
+ (clear-this-command-keys)
+ (push (read-event prompt) unread-command-events))
+ (setq binding (lookup-key keymap key))
+ (cond
+ ((and (stringp key)
+ (popup-isearch-char-p (aref key 0)))
+ (setq pattern (concat pattern key)))
+ ((eq binding 'popup-isearch-done)
+ (return t))
+ ((eq binding 'popup-isearch-cancel)
+ (return nil))
+ ((eq binding 'popup-isearch-delete)
+ (if (> (length pattern) 0)
+ (setq pattern (substring pattern 0 (1- (length pattern))))))
+ (t
+ (setq unread-command-events
+ (append (listify-key-sequence key) unread-command-events))
+ (return t)))
+ (popup-isearch-update popup pattern callback))))
+ (popup-isearch-update popup "" callback)
+ t) ; Return non-nil if isearch is cancelled
+ (if old-cursor-color
+ (set-cursor-color old-cursor-color)))))
+
+
+
+;; Popup tip
+
+(defface popup-tip-face
+ '((t (:background "khaki1" :foreground "black")))
+ "Face for popup tip."
+ :group 'popup)
+
+(defvar popup-tip-max-width 80)
+
+(defun* popup-tip (string
+ &key
+ point
+ (around t)
+ width
+ (height 15)
+ min-height
+ truncate
+ margin
+ margin-left
+ margin-right
+ scroll-bar
+ parent
+ parent-offset
+ nowait
+ prompt
+ &aux tip lines)
+ (if (bufferp string)
+ (setq string (with-current-buffer string (buffer-string))))
+ ;; TODO strip text (mainly face) properties
+ (setq string (substring-no-properties string))
+
+ (and (eq margin t) (setq margin 1))
+ (or margin-left (setq margin-left margin))
+ (or margin-right (setq margin-right margin))
+
+ (let ((it (popup-fill-string string width popup-tip-max-width)))
+ (setq width (car it)
+ lines (cdr it)))
+
+ (setq tip (popup-create point width height
+ :min-height min-height
+ :around around
+ :margin-left margin-left
+ :margin-right margin-right
+ :scroll-bar scroll-bar
+ :face 'popup-tip-face
+ :parent parent
+ :parent-offset parent-offset))
+
+ (unwind-protect
+ (when (> (popup-width tip) 0) ; not to be corrupted
+ (when (and (not (eq width (popup-width tip))) ; truncated
+ (not truncate))
+ ;; Refill once again to lines be fitted to popup width
+ (setq width (popup-width tip))
+ (setq lines (cdr (popup-fill-string string width width))))
+
+ (popup-set-list tip lines)
+ (popup-draw tip)
+ (if nowait
+ tip
+ (clear-this-command-keys)
+ (push (read-event prompt) unread-command-events)
+ t))
+ (unless nowait
+ (popup-delete tip))))
+
+
+
+;; Popup menu
+
+(defface popup-menu-face
+ '((t (:background "lightgray" :foreground "black")))
+ "Face for popup menu."
+ :group 'popup)
+
+(defface popup-menu-selection-face
+ '((t (:background "steelblue" :foreground "white")))
+ "Face for popup menu selection."
+ :group 'popup)
+
+(defvar popup-menu-show-tip-function 'popup-tip
+ "Function used for showing tooltip by `popup-menu-show-quick-help'.")
+
+(defvar popup-menu-show-quick-help-function 'popup-menu-show-quick-help
+ "Function used for showing quick help by `popup-menu*'.")
+
+(defun popup-menu-show-help (menu &optional persist item)
+ (popup-item-show-help (or item (popup-selected-item menu)) persist))
+
+(defun popup-menu-documentation (menu &optional item)
+ (popup-item-documentation (or item (popup-selected-item menu))))
+
+(defun popup-menu-show-quick-help (menu &optional item &rest args)
+ (let* ((point (plist-get args :point))
+ (height (or (plist-get args :height) (popup-height menu)))
+ (min-height (min height (popup-current-height menu)))
+ (around nil)
+ (parent-offset (popup-offset menu))
+ (doc (popup-menu-documentation menu item)))
+ (when (stringp doc)
+ (if (popup-hidden-p menu)
+ (setq around t
+ menu nil
+ parent-offset nil)
+ (setq point nil))
+ (let ((popup-use-optimized-column-computation nil)) ; To avoid wrong positioning
+ (apply popup-menu-show-tip-function
+ doc
+ :point point
+ :height height
+ :min-height min-height
+ :around around
+ :parent menu
+ :parent-offset parent-offset
+ args)))))
+
+(defun popup-menu-read-key-sequence (keymap &optional prompt timeout)
+ (catch 'timeout
+ (let ((timer (and timeout
+ (run-with-timer timeout nil
+ (lambda ()
+ (if (zerop (length (this-command-keys)))
+ (throw 'timeout nil))))))
+ (old-global-map (current-global-map))
+ (temp-global-map (make-sparse-keymap))
+ (overriding-terminal-local-map (make-sparse-keymap)))
+ (substitute-key-definition 'keyboard-quit 'keyboard-quit
+ temp-global-map old-global-map)
+ (define-key temp-global-map [menu-bar] (lookup-key old-global-map [menu-bar]))
+ (define-key temp-global-map [tool-bar] (lookup-key old-global-map [tool-bar]))
+ (set-keymap-parent overriding-terminal-local-map keymap)
+ (if (current-local-map)
+ (define-key overriding-terminal-local-map [menu-bar]
+ (lookup-key (current-local-map) [menu-bar])))
+ (unwind-protect
+ (progn
+ (use-global-map temp-global-map)
+ (clear-this-command-keys)
+ (with-temp-message prompt
+ (read-key-sequence nil)))
+ (use-global-map old-global-map)
+ (if timer (cancel-timer timer))))))
+
+(defun popup-menu-fallback (event default))
+
+(defun* popup-menu-event-loop (menu keymap fallback &optional prompt help-delay isearch isearch-cursor-color isearch-keymap isearch-callback &aux key binding)
+ (block nil
+ (while (popup-live-p menu)
+ (and isearch
+ (popup-isearch menu
+ :cursor-color isearch-cursor-color
+ :keymap isearch-keymap
+ :callback isearch-callback
+ :help-delay help-delay)
+ (keyboard-quit))
+ (setq key (popup-menu-read-key-sequence keymap prompt help-delay))
+ (if (null key)
+ (unless (funcall popup-menu-show-quick-help-function menu nil :prompt prompt)
+ (clear-this-command-keys)
+ (push (read-event prompt) unread-command-events))
+ (if (eq (lookup-key (current-global-map) key) 'keyboard-quit)
+ (keyboard-quit))
+ (setq binding (lookup-key keymap key))
+ (cond
+ ((eq binding 'popup-close)
+ (if (popup-parent menu)
+ (return)))
+ ((memq binding '(popup-select popup-open))
+ (let* ((item (popup-selected-item menu))
+ (sublist (popup-item-sublist item)))
+ (if sublist
+ (popup-aif (popup-cascade-menu sublist
+ :around nil
+ :parent menu
+ :margin-left (popup-margin-left menu)
+ :margin-right (popup-margin-right menu)
+ :scroll-bar (popup-scroll-bar menu))
+ (and it (return it)))
+ (if (eq binding 'popup-select)
+ (return (popup-item-value-or-self item))))))
+ ((eq binding 'popup-next)
+ (popup-next menu))
+ ((eq binding 'popup-previous)
+ (popup-previous menu))
+ ((eq binding 'popup-help)
+ (popup-menu-show-help menu))
+ ((eq binding 'popup-isearch)
+ (popup-isearch menu
+ :cursor-color isearch-cursor-color
+ :keymap isearch-keymap
+ :callback isearch-callback
+ :help-delay help-delay))
+ ((commandp binding)
+ (call-interactively binding))
+ (t
+ (funcall fallback key (key-binding key))))))))
+
+;; popup-menu is used by mouse.el unfairly...
+(defun* popup-menu* (list
+ &key
+ point
+ (around t)
+ (width (popup-preferred-width list))
+ (height 15)
+ margin
+ margin-left
+ margin-right
+ scroll-bar
+ symbol
+ parent
+ parent-offset
+ (keymap popup-menu-keymap)
+ (fallback 'popup-menu-fallback)
+ help-delay
+ prompt
+ isearch
+ (isearch-cursor-color popup-isearch-cursor-color)
+ (isearch-keymap popup-isearch-keymap)
+ isearch-callback
+ &aux menu event)
+ (and (eq margin t) (setq margin 1))
+ (or margin-left (setq margin-left margin))
+ (or margin-right (setq margin-right margin))
+ (if (and scroll-bar
+ (integerp margin-right)
+ (> margin-right 0))
+ ;; Make scroll-bar space as margin-right
+ (decf margin-right))
+ (setq menu (popup-create point width height
+ :around around
+ :face 'popup-menu-face
+ :selection-face 'popup-menu-selection-face
+ :margin-left margin-left
+ :margin-right margin-right
+ :scroll-bar scroll-bar
+ :symbol symbol
+ :parent parent))
+ (unwind-protect
+ (progn
+ (popup-set-list menu list)
+ (popup-draw menu)
+ (popup-menu-event-loop menu keymap fallback prompt help-delay isearch
+ isearch-cursor-color isearch-keymap isearch-callback))
+ (popup-delete menu)))
+
+(defun popup-cascade-menu (list &rest args)
+ "Same to `popup-menu', but an element of `LIST' can be
+list of submenu."
+ (apply 'popup-menu*
+ (mapcar (lambda (item)
+ (if (consp item)
+ (popup-make-item (car item)
+ :sublist (cdr item)
+ :symbol ">")
+ item))
+ list)
+ :symbol t
+ args))
+
+(defvar popup-menu-keymap
+ (let ((map (make-sparse-keymap)))
+ (define-key map "\r" 'popup-select)
+ (define-key map "\C-f" 'popup-open)
+ (define-key map [right] 'popup-open)
+ (define-key map "\C-b" 'popup-close)
+ (define-key map [left] 'popup-close)
+
+ (define-key map "\C-n" 'popup-next)
+ (define-key map [down] 'popup-next)
+ (define-key map "\C-p" 'popup-previous)
+ (define-key map [up] 'popup-previous)
+
+ (define-key map [f1] 'popup-help)
+ (define-key map (kbd "\C-?") 'popup-help)
+
+ (define-key map "\C-s" 'popup-isearch)
+ map))
+
+(provide 'popup)
+;;; popup.el ends here
diff --git a/.emacs.d/popup.elc b/.emacs.d/popup.elc
new file mode 100644
index 0000000..e0acbfd
--- /dev/null
+++ b/.emacs.d/popup.elc
Binary files differ
diff --git a/.emacs.d/slash_c.el b/.emacs.d/slash_c.el
new file mode 100644
index 0000000..b8d35fe
--- /dev/null
+++ b/.emacs.d/slash_c.el
@@ -0,0 +1,15 @@
+(if (not (intern-soft "cc-mode"))
+ (require 'cc-mode))
+
+(global-set-key [(f9)] 'compile) ; make F9 call the compilation command
+(setq compilation-window-height 8) ; make the compilation window smaller
+
+;; Make compilation window disappear on succesful build
+(setq compilation-finish-function
+ (lambda (buf str)
+ (if (string-match "exited abnormally" str)
+ ;; there were errors
+ (message "compilation errors, press C-x ` to visit")
+ ;; no errors, make the compilation window go away in 0.5 seconds
+ (run-at-time 0.5 nil 'delete-windows-on buf)
+ (message "NO COMPILATION ERRORS!")))) \ No newline at end of file
diff --git a/.emacs.d/slash_functions.el b/.emacs.d/slash_functions.el
new file mode 100644
index 0000000..fa27bb7
--- /dev/null
+++ b/.emacs.d/slash_functions.el
@@ -0,0 +1,5 @@
+(defun what-face (pos)
+ (interactive "d")
+ (let ((face (or (get-char-property (point) 'read-face-name)
+ (get-char-property (point) 'face))))
+ (if face (message "Face: %s" face) (message "No face at %d" pos)))) \ No newline at end of file
diff --git a/.emacs.d/slash_python.el b/.emacs.d/slash_python.el
new file mode 100644
index 0000000..4cb2a72
--- /dev/null
+++ b/.emacs.d/slash_python.el
@@ -0,0 +1,17 @@
+;; Pyflakes
+(when (load "flymake" t)
+ (defun flymake-pyflakes-init ()
+ (let* ((temp-file (flymake-init-create-temp-buffer-copy
+ 'flymake-create-temp-inplace))
+ (local-file (file-relative-name
+ temp-file
+ (file-name-directory buffer-file-name))))
+ (list "pyflakes" (list local-file))))
+
+ (add-to-list 'flymake-allowed-file-name-masks
+ '("\\.py\\'" flymake-pyflakes-init)))
+(add-hook 'find-file-hook 'flymake-find-file-hook)
+
+;; Bind RET to py-newline-and-indent
+(add-hook 'python-mode-hook '(lambda ()
+ (define-key python-mode-map "\C-m" 'newline-and-indent))) \ No newline at end of file
diff --git a/.emacs.d/slash_theme.el b/.emacs.d/slash_theme.el
new file mode 100644
index 0000000..f0150f9
--- /dev/null
+++ b/.emacs.d/slash_theme.el
@@ -0,0 +1,35 @@
+(add-to-list 'load-path "~/.emacs.d")
+(require 'color-theme)
+
+;; weirdness color-theme
+(defun color-theme-weirdness ()
+ (interactive)
+ (color-theme-install
+ '(color-theme-weirdness
+ ((background-color . "#000000")
+ (background-mode . dark)
+ (border-color . "#000000")
+ (cursor-color . "#FFFFFF")
+ (foreground-color . "#FFFFFF")
+ (mouse-color . "#000000"))
+ (org-level-1 ((t (:foreground "#5BFD5B" :weight normal))))
+ (org-level-2 ((t (:foreground "#379A37" :weight normal))))
+ (org-level-3 ((t (:foreground "#757575" :weight normal))))
+ (org-level-4 ((t (:foreground "#778899" :weight normal))))
+ (org-level-5 ((t (:foreground "#9898FF" :weight normal))))
+ (org-level-6 ((t (:foreground "#0000B0" :weight normal))))
+ (org-level-7 ((t (:foreground "#740091" :weight normal))))
+ (org-level-8 ((t (:foreground "#B275C1" :weight normal))))
+ (fringe ((t (:background "#000000"))))
+ (mode-line ((t (:foreground "#B3B3B3" :background "#43527A"))))
+ (region ((t (:background "#3D3D3D"))))
+ (minibuffer-prompt ((t (:foreground "#72F3FF" :bold t))))
+ (font-lock-builtin-face ((t (:foreground "#C436C4"))))
+ (font-lock-comment-face ((t (:foreground "#427240" :bold t))))
+ (font-lock-function-name-face ((t (:foreground "#0FFF28"))))
+ (font-lock-keyword-face ((t (:foreground "#6B84FF"))))
+ (font-lock-string-face ((t (:foreground "#E00900"))))
+ (font-lock-type-face ((t (:foreground "#8522DD"))))
+ (font-lock-variable-name-face ((t (:foreground "#18EFF2"))))
+ (font-lock-warning-face ((t (:foreground "#FF0000" :bold t)))))))
+(provide 'color-theme-weirdness) \ No newline at end of file
diff --git a/.emacs.d/sqlplus.el b/.emacs.d/sqlplus.el
new file mode 100644
index 0000000..4d5e7d7
--- /dev/null
+++ b/.emacs.d/sqlplus.el
@@ -0,0 +1,5151 @@
+;;; sqlplus.el --- User friendly interface to SQL*Plus and support for PL/SQL compilation
+
+;; Copyright (C) 2007, 2008 Peter Karpiuk, Scott Tiger S.A.
+
+;; Author: Peter Karpiuk <piotr.karpiuk (at) gmail (dot) com>
+;; Maintainer: Peter Karpiuk <piotr.karpiuk (at) gmail (dot) com>
+;; Created: 25 Nov 2007
+;; Version 0.9.0
+;; Keywords: sql sqlplus oracle plsql
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published
+;; by the Free Software Foundation; either version 2, or (at your
+;; option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING. If not, write to the
+;; Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+
+;;; Commentary:
+
+;; Facilitates interaction with Oracle via SQL*Plus (GNU Emacs only).
+;; Moreover, this package complements plsql.el (Kahlil Hodgson)
+;; upon convenient compilation of PL/SQL source files.
+;;
+;; This package was inspired by sqlplus-mode.el (Rob Riepel, Peter
+;; D. Pezaris, Martin Schwenke), but offers more features:
+;; - tables are parsed, formatted and rendered with colors, like in
+;; many GUI programs; you can see raw SQL*Plus output also,
+;; if you wish
+;; - table will be cutted if you try to fetch too many rows
+;; (SELECT * FROM MY_MILLION_ROWS_TABLE); current SQL*Plus command
+;; will be automatically interrupted under the hood in such cases
+;; - you can use many SQL*Plus processes simultaneously,
+;; - font locking (especially if you use Emacs>=22), with database
+;; object names highlighting,
+;; - history (log) of executed commands - see` sqlplus-history-dir`
+;; variable,
+;; - commands for fetching any database object definition
+;; (package, table/index/sequence script)
+;; - query result can be shown in HTML,
+;; - input buffer for each connection can be saved into file on
+;; disconnect and automatically restored on next connect (see
+;; 'sqlplus-session-cache-dir' variable); if you place some
+;; SQL*Plus commands between '/* init */' and '/* end */'
+;; comments in saved input buffer, they will be automatically
+;; executed on every connect
+;; - if you use plsql.el for editing PL/SQL files, you can compile
+;; such sources everytime with C-cC-c; error messages will be
+;; parsed and displayed for easy source navigation
+;; - M-. or C-mouse-1 on database object name will go to definition
+;; in filesystem (use arrow button on toolbar to go back)
+;;
+;; The following commands should be added to a global initialization
+;; file or to any user's .emacs file to conveniently use
+;; sqlplus-mode:
+;;
+;; (require 'sqlplus)
+;; (add-to-list 'auto-mode-alist '("\\.sqp\\'" . sqlplus-mode))
+;;
+;; If you want PL/SQL support also, try something like this:
+;;
+;; (require 'plsql)
+;; (setq auto-mode-alist
+;; (append '(("\\.pls\\'" . plsql-mode) ("\\.pkg\\'" . plsql-mode)
+;; ("\\.pks\\'" . plsql-mode) ("\\.pkb\\'" . plsql-mode)
+;; ("\\.sql\\'" . plsql-mode) ("\\.PLS\\'" . plsql-mode)
+;; ("\\.PKG\\'" . plsql-mode) ("\\.PKS\\'" . plsql-mode)
+;; ("\\.PKB\\'" . plsql-mode) ("\\.SQL\\'" . plsql-mode)
+;; ("\\.prc\\'" . plsql-mode) ("\\.fnc\\'" . plsql-mode)
+;; ("\\.trg\\'" . plsql-mode) ("\\.vw\\'" . plsql-mode)
+;; ("\\.PRC\\'" . plsql-mode) ("\\.FNC\\'" . plsql-mode)
+;; ("\\.TRG\\'" . plsql-mode) ("\\.VW\\'" . plsql-mode))
+;; auto-mode-alist ))
+;;
+;; M-x sqlplus will start new SQL*Plus session.
+;;
+;; C-RET execute command under point
+;; S-C-RET execute command under point and show result table in HTML
+;; buffer
+;; M-RET explain execution plan for command under point
+;; M-. or C-mouse-1: find database object definition (table, view
+;; index, synonym, trigger, procedure, function, package)
+;; in filesystem
+;; C-cC-s show database object definition (retrieved from database)
+;;
+;; Use describe-mode while in sqlplus-mode for further instructions.
+;;
+;; Many useful commands are defined in orcl-mode minor mode, which is
+;; common for input and otput SQL*Plus buffers, as well as PL/SQL
+;; buffers.
+;;
+;; For twiddling, see 'sqlplus' customization group.
+;;
+;; If you find this package useful, send me a postcard to address:
+;;
+;; Peter Karpiuk
+;; Scott Tiger S.A.
+;; ul. Gawinskiego 8
+;; 01-645 Warsaw
+;; Poland
+
+;;; Known bugs:
+
+;; 1. Result of SQL select command can be messed up if some columns
+;; has newline characters. To avoid this, execute SQL*Plus command
+;; column <colname> truncated
+;; before such select
+
+;;; Code:
+
+(require 'recentf)
+(require 'font-lock)
+(require 'cl)
+(require 'sql)
+(require 'tabify)
+(require 'skeleton)
+
+(defconst sqlplus-revision "$Revision: 1.7 $")
+
+;;; Variables -
+
+(defgroup sqlplus nil
+ "SQL*Plus"
+ :group 'tools
+ :version 21)
+
+(defcustom plsql-auto-parse-errors-flag t
+ "Non nil means parse PL/SQL compilation results and show them in the compilation buffer."
+ :group 'sqlplus
+ :type '(boolean))
+
+(defcustom sqlplus-init-sequence-start-regexp "/\\* init \\*/"
+ "SQL*Plus start of session init command sequence."
+ :group 'sqlplus
+ :type '(regexp))
+
+(defcustom sqlplus-init-sequence-end-regexp "/\\* end \\*/"
+ "SQL*Plus end of session init command sequence."
+ :group 'sqlplus
+ :type '(regexp))
+
+(defcustom sqlplus-explain-plan-warning-regexps '("TABLE ACCESS FULL" "INDEX FULL SCAN")
+ "SQL*Plus explain plan warning regexps"
+ :group 'sqlplus
+ :type '(repeat regexp))
+
+(defcustom sqlplus-syntax-faces
+ '((schema font-lock-type-face nil)
+ (table font-lock-type-face ("dual"))
+ (synonym font-lock-type-face nil)
+ (view font-lock-type-face nil)
+ (column font-lock-constant-face nil)
+ (sequence font-lock-type-face nil)
+ (package font-lock-type-face nil)
+ (trigger font-lock-type-face nil)
+ (index font-lock-type-face) nil)
+ "Font lock configuration for database object names in current schema.
+This is alist, and each element looks like (SYMBOL FACE LIST)
+where SYMBOL is one of: schema, table, synonym, view, column,
+sequence, package, trigger, index. Database objects means only
+objects from current schema, so if you want syntax highlighting
+for other objects (eg. 'dual' table name), you can explicitly
+enumerate them in LIST as strings."
+ :group 'sqlplus
+ :tag "Oracle SQL Syntax Faces"
+ :type '(repeat (list symbol face (repeat string))))
+
+(defcustom sqlplus-output-buffer-max-size (* 50 1000 1000)
+ "Maximum size of SQL*Plus output buffer.
+After exceeding oldest results are deleted."
+ :group 'sqlplus
+ :tag "SQL*Plus Output Buffer Max Size"
+ :type '(integer))
+
+(defcustom sqlplus-select-result-max-col-width nil
+ "Maximum width of column in displayed database table, or nil if there is no limit.
+If any cell value is longer, it will be cutted and terminated with ellipsis ('...')."
+ :group 'sqlplus
+ :tag "SQL*Plus Select Result Max Column Width"
+ :type '(choice integer (const nil)))
+
+(defcustom sqlplus-format-output-tables-flag t
+ "Non-nil means format result if it looks like database table."
+ :group 'sqlplus
+ :tag "SQL*Plus Format Output Table"
+ :type '(boolean))
+
+(defcustom sqlplus-kill-processes-without-query-on-exit-flag t
+ "Non-nil means silently kill all SQL*Plus processes on Emacs exit."
+ :group 'sqlplus
+ :tag "SQL*Plus Kill Processes Without Query On Exit"
+ :type '(boolean))
+
+(defcustom sqlplus-multi-output-tables-default-flag t
+ "Non-nil means render database table as set of adjacent tables so that they occupy all width of output window.
+For screen space saving and user comfort."
+ :group 'sqlplus
+ :tag "SQL*Plus Multiple Tables In Output by Default"
+ :type '(boolean))
+
+(defcustom sqlplus-source-buffer-readonly-by-default-flag t
+ "Non-nil means show database sources in read-only buffer."
+ :group 'sqlplus
+ :tag "SQL*Plus Source Buffer Read Only By Default"
+ :type '(boolean))
+
+(defcustom sqlplus-command "sqlplus"
+ "SQL*Plus interpreter program."
+ :group 'sqlplus
+ :tag "SQL*Plus Command"
+ :type '(string))
+
+(defcustom sqlplus-history-dir nil
+ "Directory of SQL*Plus command history (log) files, or nil (dont generate log files).
+History file name has format '<connect-string>-history.txt'."
+ :group 'sqlplus
+ :tag "SQL*Plus History Dir"
+ :type '(choice directory (const nil)))
+
+(defvar sqlplus-session-file-extension "sqp")
+
+(defcustom sqlplus-session-cache-dir nil
+ "Directory of SQL*Plus input buffer files, or nil (dont save user session).
+Session file name has format '<connect-string>.sqp'"
+ :group 'sqlplus
+ :tag "SQL*Plus History Dir"
+ :type '(choice directory (const nil)))
+
+(defcustom sqlplus-save-passwords nil
+ "Non-nil means save passwords between Emacs sessions. (Not implemented yet)."
+ :group 'sqlplus
+ :tag "SQL*Plus Save Passwords"
+ :type '(boolean))
+
+(defcustom sqlplus-pagesize 200
+ "Approximate number of records in query results.
+If result has more rows, it will be cutted and terminated with '. . .' line."
+ :group 'sqlplus
+ :tag "SQL*Plus Max Rows Count"
+ :type '(integer))
+
+(defvar sqlplus-default-wrap "on")
+
+(defcustom sqlplus-initial-strings
+ (list "set sqlnumber off"
+ "set tab off"
+ "set linesize 4000"
+ "set echo off"
+ "set newpage 1"
+ "set space 1"
+ "set feedback 6"
+ "set heading on"
+ "set trimspool off"
+ (format "set wrap %s" sqlplus-default-wrap)
+ "set timing on"
+ "set feedback on")
+ "Initial commands to send to interpreter.
+Customizing this variable is dangerous."
+ :group 'sqlplus
+ :tag "SQL*Plus Initial Strings"
+ :type '(repeat string))
+
+(defcustom sqlplus-table-col-separator " | "
+ "Database table column separator (text-only terminals)."
+ :group 'sqlplus
+ :tag "SQL*Plus Table Col Separator"
+ :type '(string))
+
+(defcustom sqlplus-table-col-head-separator "-+-"
+ "Database table header-column separator (text-only terminals)."
+ :group 'sqlplus
+ :tag "SQL*Plus Table Col Separator"
+ :type '(string))
+
+(defcustom sqlplus-html-output-file-name "$HOME/sqlplus_report.html"
+ "Output file for HTML result."
+ :group 'sqlplus
+ :tag "SQL*Plus HTML Output File Name"
+ :type '(file))
+
+(defcustom sqlplus-html-output-encoding "iso-8859-1"
+ "Encoding for SQL*Plus HTML output."
+ :group 'sqlplus
+ :tag "SQL*Plus HTML Output Encoding"
+ :type '(string))
+
+(defcustom sqlplus-html-output-sql t
+ "Non-nil means put SQL*Plus command in head of HTML result."
+ :group 'sqlplus
+ :tag "SQL*Plus HTML Output Encoding"
+ :type '(choice (const :tag "Elegant" 'elegant)
+ (const :tag "Simple" t)
+ (const :tag "No" nil)))
+
+(defcustom sqlplus-html-output-header (concat (current-time-string) "<br><br>")
+ "HTML header sexp (result must be string)."
+ :group 'sqlplus
+ :tag "SQL*Plus HTML Output Header"
+ :type '(sexp))
+
+(defcustom sqlplus-command-highlighting-percentage 7
+ "SQL*Plus command highlighting percentage (0-100), only if sqlplus-command-highlighting-style is set."
+ :group 'sqlplus
+ :tag "SQL*Plus command highlighting percentage"
+ :type '(integer))
+
+(defcustom sqlplus-command-highlighting-style nil
+ "How to highlight current command in sqlplus buffer."
+ :group 'sqlplus
+ :tag "SQL*Plud command highlighting style"
+ :type '(choice (const :tag "Fringe" fringe)
+ (const :tag "Background" background)
+ (const :tag "Fringe and background" fringe-and-background)
+ (const :tag "None" nil)))
+
+(defvar sqlplus-elegant-style window-system)
+
+(defvar sqlplus-cs nil)
+
+(defun sqlplus-shine-color (color percent)
+ (when (equal color "unspecified-bg")
+ (setq color (if (< percent 0) "white" "black")))
+ (apply 'format "#%02x%02x%02x"
+ (mapcar (lambda (value)
+ (min 65535 (max 0 (* (+ (/ value 650) percent) 650))))
+ (color-values color))))
+
+(defvar sqlplus-table-head-face 'sqlplus-table-head-face)
+(defface sqlplus-table-head-face
+ (list
+ (list '((class mono))
+ '(:inherit default :weight bold :inverse-video t))
+ (list '((background light))
+ (append (list :inherit 'default :background (sqlplus-shine-color (face-background 'default) -70) :foreground (face-background 'default))
+ (when (and sqlplus-elegant-style (>= emacs-major-version 22)) '(:box (:style released-button)))))
+ (list '((background dark))
+ (append (list :inherit 'default :background (sqlplus-shine-color (face-background 'default) +70) :foreground (face-background 'default))
+ (when (and sqlplus-elegant-style (>= emacs-major-version 22)) '(:box (:style released-button)))))
+ '(t (:inherit default)))
+ "Face for table header"
+ :group 'sqlplus)
+
+(defvar sqlplus-table-even-rows-face 'sqlplus-table-even-rows-face)
+(defface sqlplus-table-even-rows-face
+ (list
+ (list '((class mono)) '())
+ (list '((type tty)) '())
+ (list '((background light))
+ (append (list :inherit 'default :background (sqlplus-shine-color (face-background 'default) -20) :overline (face-background 'default))))
+ (list '((background dark))
+ (append (list :inherit 'default :background (sqlplus-shine-color (face-background 'default) +20) :overline (face-background 'default))))
+ '(t ()))
+ "Face for table even rows"
+ :group 'sqlplus)
+
+(defvar sqlplus-table-odd-rows-face 'sqlplus-table-odd-rows-face)
+(defface sqlplus-table-odd-rows-face
+ (list
+ (list '((class mono)) '(:inherit default))
+ (list '((background light))
+ (append (list :inherit 'default :background (sqlplus-shine-color (face-background 'default) -30) :overline (face-background 'default))))
+ (list '((background dark))
+ (append (list :inherit 'default :background (sqlplus-shine-color (face-background 'default) +30) :overline (face-background 'default))))
+ '(t (:inherit default)))
+ "Face for table even rows"
+ :group 'sqlplus)
+
+(defvar sqlplus-command-highlight-face 'sqlplus-command-highlight-face)
+(defface sqlplus-command-highlight-face
+ (list
+ '(((class mono)) ())
+ '(((type tty)) ())
+ (list '((background light))
+ (append (list :background (sqlplus-shine-color (face-background 'default) (- sqlplus-command-highlighting-percentage)))))
+ (list '((background dark))
+ (append (list :background (sqlplus-shine-color (face-background 'default) sqlplus-command-highlighting-percentage))))
+ '(t ()))
+ "Face for highlighting command under point"
+ :group 'sqlplus)
+
+(defvar sqlplus-plsql-compilation-results-buffer-name "*PL/SQL Compilation*")
+
+(defvar sqlplus-fan "|"
+ "Local in input buffers")
+(make-variable-buffer-local 'sqlplus-fan)
+
+(defvar orcl-mode-map nil
+ "Keymap used in Orcl mode.")
+
+(define-minor-mode orcl-mode
+ "Mode for executing SQL*Plus commands and scrolling results.
+
+Mode Specific Bindings:
+
+\\{orcl-mode-map}"
+ nil ; init value
+ (" " (:eval sqlplus-fan) " " (:eval (connect-string-to-string))) ; mode indicator
+ orcl-mode-map ; keymap
+ ;; body
+ (setq sqlplus-fan "|")
+ (unless (assq 'orcl-mode minor-mode-map-alist)
+ (push (cons 'orcl-mode orcl-mode-map) minor-mode-map-alist)))
+
+(defvar sqlplus-user-variables (makehash 'equal))
+
+(defvar sqlplus-user-variables-history nil)
+
+(defvar sqlplus-get-source-history nil)
+
+(defvar sqlplus-process-p nil
+ "Non-nil (connect string) if current buffer is SQL*Plus process buffer.
+Local in process buffer.")
+(make-variable-buffer-local 'sqlplus-process-p)
+
+(defvar sqlplus-command-seq 0
+ "Sequence for command id within SQL*Plus connection.
+Local in process buffer.")
+(make-variable-buffer-local 'sqlplus-command-seq)
+
+;;; :id - unique command identifier (from sequence, for session)
+;;; :sql - content of command
+;;; :dont-parse-result - process data online as it comes from sqlplus, with sqlplus-result-online or with :result-function function
+;;; :result-function - function for processing sqlplus data; must have signature (context connect-string begin end interrupted);
+;;; if nil then it is sqlplus-result-online for :dont-parse-result set to non-nil and sqlplus-process-command-output for :dont-parse-result set to nil
+;;; :current-command-input-buffer-name - buffer name from which command was initialized
+(defvar sqlplus-command-contexts nil
+ "Command options list, for current and enqueued commands, in chronological order.
+Local in process buffer.")
+(make-variable-buffer-local 'sqlplus-command-contexts)
+
+(defvar sqlplus-connect-string nil
+ "Local variable with connect-string for current buffer (input buffers, output buffer).")
+(make-variable-buffer-local 'sqlplus-connect-string)
+
+(defvar sqlplus-connect-strings-alist nil
+ "Connect strings in format (CS . PASSWD), where PASSWD can be nil.")
+
+(defvar sqlplus-connect-string-history nil)
+
+(defvar sqlplus-prompt-prefix "SQL[")
+(defvar sqlplus-prompt-suffix "]# ")
+
+(defvar sqlplus-page-separator "@!%#!")
+
+(defvar sqlplus-repfooter "##%@!")
+
+(defvar sqlplus-mode-map nil
+ "Keymap used in SQL*Plus mode.")
+
+(defvar sqlplus-output-separator "@--"
+ "String printed between sets of SQL*Plus command output.")
+
+;;; Markers -
+
+(defvar sqlplus-buffer-mark (make-marker)
+ "Marks the current SQL command in the SQL*Plus output buffer.
+Local in output buffer.")
+(make-variable-buffer-local 'sqlplus-buffer-mark)
+
+(defvar sqlplus-region-beginning-pos nil
+ "Marks the beginning of the region to sent to the SQL*Plus process.
+Local in input buffer with sqlplus-mode.")
+(make-variable-buffer-local 'sqlplus-region-beginning-pos)
+
+(defvar sqlplus-region-end-pos nil
+ "Marks the end of the region to sent to the SQL*Plus process.
+Local in input buffer with sqlplus-mode.")
+(make-variable-buffer-local 'sqlplus-region-end-pos)
+
+(defvar sqlplus-connections-menu
+ '("SQL*Plus"
+ :filter sqlplus-connections-menu)
+ "Menu for database connections")
+
+(defconst sqlplus-kill-xpm "\
+/* XPM */
+static char * reload_page_xpm[] = {
+\"24 24 100 2\",
+\" c None\",
+\". c #000000\",
+\"+ c #2A5695\",
+\"@ c #30609E\",
+\"# c #3363A2\",
+\"$ c #3969A6\",
+\"% c #3D6BA6\",
+\"& c #3C68A3\",
+\"* c #35619C\",
+\"= c #244F8D\",
+\"- c #3364A3\",
+\"; c #3162A1\",
+\"> c #3867A4\",
+\", c #3F6DA8\",
+\"' c #4672AC\",
+\") c #4B76AE\",
+\"! c #4E78AF\",
+\"~ c #537CB1\",
+\"{ c #547DB0\",
+\"] c #446BA1\",
+\"^ c #2E5D9C\",
+\"/ c #234F8C\",
+\"( c #214C89\",
+\"_ c #244E8C\",
+\": c #3A649D\",
+\"< c #517BB0\",
+\"[ c #517BB1\",
+\"} c #4874AD\",
+\"| c #6086B7\",
+\"1 c #5F84B4\",
+\"2 c #4B71A6\",
+\"3 c #7B9BC4\",
+\"4 c #224C89\",
+\"5 c #3865A2\",
+\"6 c #406FAB\",
+\"7 c #436BA3\",
+\"8 c #648ABA\",
+\"9 c #4D78AF\",
+\"0 c #4B77AE\",
+\"a c #6E91BE\",
+\"b c #809EC6\",
+\"c c #204A87\",
+\"d c #4974AF\",
+\"e c #2B5590\",
+\"f c #6487B5\",
+\"g c #678CBB\",
+\"h c #3465A4\",
+\"i c #84A1C8\",
+\"j c #6D8FBA\",
+\"k c #4F7AB0\",
+\"l c #8BA7CB\",
+\"m c #7E9DC5\",
+\"n c #83A1C7\",
+\"o c #91ACCE\",
+\"p c #89A4C9\",
+\"q c #8FA9CB\",
+\"r c #85A2C7\",
+\"s c #90ABCC\",
+\"t c #3E6CA8\",
+\"u c #87A3C8\",
+\"v c #4B6DA1\",
+\"w c #91ABCD\",
+\"x c #3768A5\",
+\"y c #8AA5C9\",
+\"z c #2D5690\",
+\"A c #204A86\",
+\"B c #93ADCE\",
+\"C c #7294BF\",
+\"D c #6288B9\",
+\"E c #86A3C8\",
+\"F c #466EA3\",
+\"G c #3864A1\",
+\"H c #285390\",
+\"I c #234E8C\",
+\"J c #95AECF\",
+\"K c #7493BC\",
+\"L c #86A2C7\",
+\"M c #7999C3\",
+\"N c #5B82B5\",
+\"O c #6C8EBB\",
+\"P c #4B71A5\",
+\"Q c #26508B\",
+\"R c #2B5792\",
+\"S c #305E9B\",
+\"T c #31619F\",
+\"U c #7895BD\",
+\"V c #819DC3\",
+\"W c #688DBB\",
+\"X c #6288B8\",
+\"Y c #5880B4\",
+\"Z c #577FB3\",
+\"` c #547DB2\",
+\" . c #416FAA\",
+\".. c #3564A2\",
+\"+. c #577AAB\",
+\"@. c #6286B6\",
+\"#. c #668BBA\",
+\"$. c #507AB0\",
+\"%. c #426EA8\",
+\"&. c #2F5B97\",
+\" \",
+\" \",
+\" \",
+\" . . . . . . . . \",
+\" . . + @ # $ % & * . . . . \",
+\" . = - ; @ > , ' ) ! ~ { . . . ] . \",
+\" . ^ / ( _ . . . : < [ } | 1 2 3 . \",
+\" . _ 4 5 6 . . . 7 8 9 0 a b . \",
+\" . c d . . . e f g h i . \",
+\" . . . . . j k h l . \",
+\" . . f m n l o . \",
+\" . . . . . . . . \",
+\" . . . . . . . . \",
+\" . p q q q r . . \",
+\" . s , t u v . . . . \",
+\" . w x | y z . . . . A . \",
+\" . B C 9 D E F . . . G H I . \",
+\" . J K L M N C O P . . . Q R S T . \",
+\" . U . . . V W X | Y Z ` ) .... \",
+\" . . . . +.@.#.N $.%.&.. . \",
+\" . . . . . . . . \",
+\" \",
+\" \",
+\" \"};
+"
+ "XPM format image used as Kill icon")
+
+(defconst sqlplus-cancel-xpm "\
+/* XPM */
+static char * process_stop_xpm[] = {
+\"24 24 197 2\",
+\" c None\",
+\". c #000000\",
+\"+ c #C92B1E\",
+\"@ c #DA432F\",
+\"# c #E95941\",
+\"$ c #F26B50\",
+\"% c #ED6047\",
+\"& c #DF4A35\",
+\"* c #CE3324\",
+\"= c #BF1D13\",
+\"- c #EA5942\",
+\"; c #EF563A\",
+\"> c #F14D2C\",
+\", c #F1431F\",
+\"' c #F23A12\",
+\") c #F2421C\",
+\"! c #F24D2A\",
+\"~ c #F15737\",
+\"{ c #F0644A\",
+\"] c #CF3121\",
+\"^ c #D83828\",
+\"/ c #ED5840\",
+\"( c #EC3B1C\",
+\"_ c #EE310B\",
+\": c #F1350C\",
+\"< c #F4380D\",
+\"[ c #F53A0D\",
+\"} c #F53B0D\",
+\"| c #F4390D\",
+\"1 c #F2360C\",
+\"2 c #EF3A15\",
+\"3 c #F05A3D\",
+\"4 c #E44D37\",
+\"5 c #CD2B1E\",
+\"6 c #EA4D35\",
+\"7 c #E92D0C\",
+\"8 c #ED2F0B\",
+\"9 c #F0330C\",
+\"0 c #F3380D\",
+\"a c #F63C0E\",
+\"b c #F93F0F\",
+\"c c #F9400F\",
+\"d c #F73D0E\",
+\"e c #F1340C\",
+\"f c #EE300B\",
+\"g c #EC482C\",
+\"h c #E04532\",
+\"i c #E84E3A\",
+\"j c #E62A0E\",
+\"k c #EA2B0A\",
+\"l c #F83F0E\",
+\"m c #FC4310\",
+\"n c #FC4410\",
+\"o c #F63B0E\",
+\"p c #EB2C0A\",
+\"q c #EB5139\",
+\"r c #C8251A\",
+\"s c #DD3D2E\",
+\"t c #E5341D\",
+\"u c #E62508\",
+\"v c #F9BEB2\",
+\"w c #FBCFC5\",
+\"x c #F54C23\",
+\"y c #F95125\",
+\"z c #FDD4CB\",
+\"A c #FABFB2\",
+\"B c #E83013\",
+\"C c #E84F3B\",
+\"D c #E54737\",
+\"E c #E22007\",
+\"F c #E92A09\",
+\"G c #FBD2CA\",
+\"H c #FFFFFF\",
+\"I c #FDDFD9\",
+\"J c #F64E24\",
+\"K c #FDE0D9\",
+\"L c #E72609\",
+\"M c #E7452F\",
+\"N c #E33D2D\",
+\"O c #E11E07\",
+\"P c #E52308\",
+\"Q c #E82809\",
+\"R c #EC3F21\",
+\"S c #FCDED8\",
+\"T c #F55C37\",
+\"U c #FCDFD8\",
+\"V c #F04521\",
+\"W c #EC2E0A\",
+\"X c #E92909\",
+\"Y c #E62408\",
+\"Z c #E53823\",
+\"` c #CE2B1F\",
+\" . c #C62018\",
+\".. c #E03120\",
+\"+. c #E01C06\",
+\"@. c #E32107\",
+\"#. c #ED4121\",
+\"$. c #FEF9F8\",
+\"%. c #E72709\",
+\"&. c #E42208\",
+\"*. c #E32D17\",
+\"=. c #D83729\",
+\"-. c #CB231B\",
+\";. c #DE2A1B\",
+\">. c #DE1A06\",
+\",. c #EE5135\",
+\"'. c #EF5335\",
+\"). c #EC2D0A\",
+\"!. c #E82709\",
+\"~. c #E21F07\",
+\"{. c #E02511\",
+\"]. c #DC392C\",
+\"^. c #BE1612\",
+\"/. c #DD2E21\",
+\"(. c #DC1705\",
+\"_. c #DF1B06\",
+\":. c #E42308\",
+\"<. c #E93A20\",
+\"[. c #FBDDD8\",
+\"}. c #EB3D20\",
+\"|. c #DF2A18\",
+\"1. c #D02A1F\",
+\"2. c #DC3328\",
+\"3. c #DA1404\",
+\"4. c #DD1805\",
+\"5. c #E3331E\",
+\"6. c #FADCD8\",
+\"7. c #FBDCD8\",
+\"8. c #EB4C34\",
+\"9. c #E6361F\",
+\"0. c #DD1905\",
+\"a. c #DF2F21\",
+\"b. c #C21A14\",
+\"c. c #DA3128\",
+\"d. c #D81408\",
+\"e. c #F7C9C4\",
+\"f. c #FADBD8\",
+\"g. c #E5341E\",
+\"h. c #E5351E\",
+\"i. c #F8CEC9\",
+\"j. c #DB1505\",
+\"k. c #DD3429\",
+\"l. c #C31613\",
+\"m. c #D9281F\",
+\"n. c #D71003\",
+\"o. c #D91304\",
+\"p. c #F3B5B0\",
+\"q. c #F7CDC9\",
+\"r. c #E12F1D\",
+\"s. c #DF1C06\",
+\"t. c #E2301D\",
+\"u. c #F4B6B0\",
+\"v. c #DC1605\",
+\"w. c #DB2317\",
+\"x. c #D2271F\",
+\"y. c #D1231D\",
+\"z. c #D61A10\",
+\"A. c #D60F03\",
+\"B. c #D81104\",
+\"C. c #DB1605\",
+\"D. c #D81204\",
+\"E. c #D81509\",
+\"F. c #DA2F26\",
+\"G. c #D52620\",
+\"H. c #D51A12\",
+\"I. c #D50D03\",
+\"J. c #D60E03\",
+\"K. c #D6170D\",
+\"L. c #D92B23\",
+\"M. c #BD100D\",
+\"N. c #AB0404\",
+\"O. c #CE1D19\",
+\"P. c #D6231C\",
+\"Q. c #D41008\",
+\"R. c #D40B02\",
+\"S. c #D40C02\",
+\"T. c #D50C03\",
+\"U. c #D40E05\",
+\"V. c #D62018\",
+\"W. c #D4251F\",
+\"X. c #B30A09\",
+\"Y. c #A20000\",
+\"Z. c #BC0F0E\",
+\"`. c #D2211E\",
+\" + c #D52520\",
+\".+ c #D5201A\",
+\"++ c #D41A14\",
+\"@+ c #D51F19\",
+\"#+ c #D62620\",
+\"$+ c #D52420\",
+\"%+ c #C51614\",
+\"&+ c #A30101\",
+\"*+ c #A30303\",
+\"=+ c #AE0909\",
+\"-+ c #BD0E0E\",
+\";+ c #B30B0B\",
+\">+ c #A30404\",
+\" \",
+\" . . . . . . . \",
+\" . . + @ # $ % & * . . \",
+\" . = - ; > , ' ) ! ~ { ] . \",
+\" . ^ / ( _ : < [ } | 1 2 3 4 . \",
+\" . 5 6 7 8 9 0 a b c d | e f g h . \",
+\" . i j k f : [ l m n c o 1 _ p q r . \",
+\" . s t u k v w x l m n y z A _ p B C . \",
+\" . D E u F G H I J b y K H w f k L M . \",
+\" . N O P Q R S H I T K H U V W X Y Z ` . \",
+\" . ...+.@.u F #.S H $.H U V 8 k %.&.*.=.. \",
+\" . -.;.>.O &.L F ,.$.H $.'.).k !.P ~.{.].. \",
+\" . ^./.(._.~.:.<.[.H $.H [.}.L P E +.|.1.. \",
+\" . 2.3.4._.5.6.H 7.8.7.H 6.9.~.+.0.a.b.. \",
+\" . c.d.3.(.e.H f.g.@.h.6.H i._.4.j.k.. \",
+\" . l.m.n.o.p.q.r._.s.s.t.e.u.v.3.w.x.. \",
+\" . y.z.A.B.o.j.C.(.(.v.j.3.D.E.F.. \",
+\" . G.H.I.J.n.B.B.B.B.n.A.K.L.M.. \",
+\" . N.O.P.Q.R.S.T.T.S.U.V.W.X.. \",
+\" . Y.Z.`. +.+++@+#+$+%+&+. \",
+\" . . . *+=+-+;+>+Y.. . \",
+\" . . . . . . \",
+\" \",
+\" \"};
+"
+ "XPM format image used as Cancel icon")
+
+(defconst sqlplus-rollback-xpm "\
+/* XPM */
+static char * rollback_xpm[] = {
+\"24 24 228 2\",
+\" c None\",
+\". c #000000\",
+\"+ c #F8F080\",
+\"@ c #FEF57B\",
+\"# c #FFF571\",
+\"$ c #FFF164\",
+\"% c #FFED58\",
+\"& c #FFE748\",
+\"* c #FEDE39\",
+\"= c #F8F897\",
+\"- c #FFFE96\",
+\"; c #FFFA8A\",
+\"> c #FFF67C\",
+\", c #FFF16E\",
+\"' c #FFEC62\",
+\") c #FFE956\",
+\"! c #FFE448\",
+\"~ c #FFE03C\",
+\"{ c #FFDD30\",
+\"] c #FED821\",
+\"^ c #F1CB15\",
+\"/ c #FFFC92\",
+\"( c #FFFC91\",
+\"_ c #FFFC90\",
+\": c #FFFB8D\",
+\"< c #FFF67D\",
+\"[ c #FFEB5E\",
+\"} c #FFEA5B\",
+\"| c #FFE958\",
+\"1 c #FFE855\",
+\"2 c #FFE752\",
+\"3 c #FDD41C\",
+\"4 c #FDD319\",
+\"5 c #FDD416\",
+\"6 c #FFFF9D\",
+\"7 c #FFFF99\",
+\"8 c #FFFD94\",
+\"9 c #FFFA89\",
+\"0 c #FFDC2F\",
+\"a c #FED315\",
+\"b c #FFD808\",
+\"c c #FFFC9F\",
+\"d c #FFFE99\",
+\"e c #FFDF3B\",
+\"f c #F7C909\",
+\"g c #F8EA86\",
+\"h c #FEFCB7\",
+\"i c #FFFDA6\",
+\"j c #FFFA91\",
+\"k c #FFF681\",
+\"l c #FFF171\",
+\"m c #FFED64\",
+\"n c #FFE44A\",
+\"o c #FFE03D\",
+\"p c #FEDB2F\",
+\"q c #F9D21E\",
+\"r c #E9BC0F\",
+\"s c #CE9C02\",
+\"t c #F3E36A\",
+\"u c #FCF899\",
+\"v c #FFFCA3\",
+\"w c #FEF694\",
+\"x c #FFF284\",
+\"y c #FFEE71\",
+\"z c #FFEA62\",
+\"A c #FDDC40\",
+\"B c #F8D22F\",
+\"C c #F1C61B\",
+\"D c #DDAD0A\",
+\"E c #CC9A02\",
+\"F c #C89500\",
+\"G c #F4EA77\",
+\"H c #F7EF7F\",
+\"I c #FFF16A\",
+\"J c #FFEF68\",
+\"K c #FFEE66\",
+\"L c #FED622\",
+\"M c #FED51E\",
+\"N c #FED419\",
+\"O c #E9B90E\",
+\"P c #E7B509\",
+\"Q c #D4A202\",
+\"R c #CA9700\",
+\"S c #F6E67C\",
+\"T c #F3E67F\",
+\"U c #FCEE7A\",
+\"V c #FDEB66\",
+\"W c #FEE44E\",
+\"X c #FED313\",
+\"Y c #FDCA03\",
+\"Z c #F2BE01\",
+\"` c #D4A60D\",
+\" . c #D4A206\",
+\".. c #D19C00\",
+\"+. c #CF9800\",
+\"@. c #E3AF02\",
+\"#. c #F9EB81\",
+\"$. c #FBF096\",
+\"%. c #F9E67C\",
+\"&. c #F8DC5F\",
+\"*. c #F8D548\",
+\"=. c #F9D02D\",
+\"-. c #F9C915\",
+\";. c #F7C104\",
+\">. c #EEB606\",
+\",. c #E9B704\",
+\"'. c #DEAE08\",
+\"). c #414D7B\",
+\"!. c #3C5CA2\",
+\"~. c #3A65B3\",
+\"{. c #3668BB\",
+\"]. c #325EAF\",
+\"^. c #F3E46E\",
+\"/. c #FCFA9B\",
+\"(. c #FFF89C\",
+\"_. c #FDEC81\",
+\":. c #FCE668\",
+\"<. c #FDDF4E\",
+\"[. c #FCDA3C\",
+\"}. c #FCD52E\",
+\"|. c #FAD026\",
+\"1. c #4662A2\",
+\"2. c #465A8D\",
+\"3. c #3F6CBA\",
+\"4. c #3A68B7\",
+\"5. c #2E529E\",
+\"6. c #2655AC\",
+\"7. c #F0DC69\",
+\"8. c #FBF78C\",
+\"9. c #FFF880\",
+\"0. c #FFF06B\",
+\"a. c #FFE03E\",
+\"b. c #FFD828\",
+\"c. c #FED015\",
+\"d. c #F5C40A\",
+\"e. c #4B70B4\",
+\"f. c #4870B7\",
+\"g. c #3C5CA1\",
+\"h. c #4070BF\",
+\"i. c #3759A0\",
+\"j. c #1D469C\",
+\"k. c #214493\",
+\"l. c #F2DD6C\",
+\"m. c #F8EB7E\",
+\"n. c #FBEE7A\",
+\"o. c #FBE461\",
+\"p. c #FADB48\",
+\"q. c #FBD631\",
+\"r. c #FED10F\",
+\"s. c #FECD07\",
+\"t. c #F1BD00\",
+\"u. c #456AAE\",
+\"v. c #4C7ECA\",
+\"w. c #487AC8\",
+\"x. c #35528F\",
+\"y. c #1B4294\",
+\"z. c #1B4193\",
+\"A. c #F9EA83\",
+\"B. c #FCF08E\",
+\"C. c #F6E16E\",
+\"D. c #F4D559\",
+\"E. c #F5CF45\",
+\"F. c #F6CB2E\",
+\"G. c #F8C611\",
+\"H. c #F6C005\",
+\"I. c #E8B300\",
+\"J. c #4268AE\",
+\"K. c #4375C4\",
+\"L. c #3F71C1\",
+\"M. c #33569B\",
+\"N. c #173F94\",
+\"O. c #183A8B\",
+\"P. c #F3E36E\",
+\"Q. c #FCF7A1\",
+\"R. c #FEF9A1\",
+\"S. c #FEEE7D\",
+\"T. c #FCE360\",
+\"U. c #FAD946\",
+\"V. c #F9D132\",
+\"W. c #F8CD26\",
+\"X. c #F7CA20\",
+\"Y. c #3B589A\",
+\"Z. c #395FA9\",
+\"`. c #3359A5\",
+\" + c #3056A3\",
+\".+ c #2B468D\",
+\"++ c #0A3897\",
+\"@+ c #E6D465\",
+\"#+ c #FDFA90\",
+\"$+ c #FFF885\",
+\"%+ c #FFF074\",
+\"&+ c #FFEA60\",
+\"*+ c #FFE246\",
+\"=+ c #FFDC31\",
+\"-+ c #FED51F\",
+\";+ c #F7CB14\",
+\">+ c #173788\",
+\",+ c #063494\",
+\"'+ c #E8DE7B\",
+\")+ c #FFFA86\",
+\"!+ c #FFF26A\",
+\"~+ c #FFE84F\",
+\"{+ c #FFD415\",
+\"]+ c #FDCC04\",
+\"^+ c #F3C001\",
+\"/+ c #EBB600\",
+\"(+ c #E3AF01\",
+\"_+ c #D7A100\",
+\":+ c #2D3E7F\",
+\"<+ c #033396\",
+\"[+ c #CFB954\",
+\"}+ c #DBC347\",
+\"|+ c #DEBF2C\",
+\"1+ c #DFB718\",
+\"2+ c #DFB206\",
+\"3+ c #D6A505\",
+\"4+ c #C6970A\",
+\"5+ c #B48413\",
+\"6+ c #374682\",
+\"7+ c #023398\",
+\"8+ c #0E3287\",
+\"9+ c #253775\",
+\"0+ c #05318F\",
+\"a+ c #10358B\",
+\"b+ c #183888\",
+\"c+ c #053495\",
+\"d+ c #0E348D\",
+\"e+ c #183585\",
+\" . . . . . . . \",
+\" . . + @ # $ % & * . . . \",
+\" . = - ; > , ' ) ! ~ { ] ^ . \",
+\". / ( _ : ; < [ } | 1 2 3 4 5 . \",
+\". 6 7 8 9 > , ' ) ! ~ 0 ] a b . \",
+\". c d 8 9 > , ' ) ! e 0 ] a f . \",
+\". g h i j k l m | n o p q r s . \",
+\". t u v w x y z 2 A B C D E F . \",
+\". G H I J K L M N O P Q R F F . \",
+\". S T U V W p X Y Z ` ...+.@.. . . . . \",
+\". #.$.%.&.*.=.-.;.>.. . ,.'.. ).!.~.{.].. \",
+\". ^./.(._.:.<.[.}.|.. 1.. . 2.3.4.. . 5.6.. \",
+\". 7.8.9.0.) 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.D.E.F.G.H.I.. J.K.L.M.. . N.O.. \",
+\". P.Q.R.S.T.U.V.W.X.. Y.Z.`. +.+. . ++. \",
+\". @+#+$+%+&+*+=+-+;+. . . . . . . . >+,+. \",
+\" . '+)+!+~+{ {+]+^+/+(+_+. . :+<+. \",
+\" . . [+}+|+1+2+3+4+5+. . 6+7+8+. \",
+\" . . . . . . . . . 9+0+a+. \",
+\" . b+c+d+. \",
+\" . e+. . \",
+\" . \",
+\" \"};
+"
+ "XPM format image used as Rollback icon")
+
+(defconst sqlplus-commit-xpm "\
+/* XPM */
+static char * commit_xpm[] = {
+\"24 24 276 2\",
+\" c None\",
+\". c #000000\",
+\"+ c #FDF57D\",
+\"@ c #FFF676\",
+\"# c #FFF36C\",
+\"$ c #FFF05D\",
+\"% c #FFEB51\",
+\"& c #FFE445\",
+\"* c #FDDC35\",
+\"= c #EFEA85\",
+\"- c #FBF68D\",
+\"; c #FCF482\",
+\"> c #FCF178\",
+\", c #FCEE6E\",
+\"' c #FCEB66\",
+\") c #FCE85B\",
+\"! c #FCE551\",
+\"~ c #FDE147\",
+\"{ c #FDDF3D\",
+\"] c #FEDD2D\",
+\"^ c #FCD621\",
+\"/ c #E5BF16\",
+\"( c #D8D479\",
+\"_ c #FCF587\",
+\": c #FAEF78\",
+\"< c #FAEA6B\",
+\"[ c #FAEA6A\",
+\"} c #FAE968\",
+\"| c #FAE967\",
+\"1 c #FAE865\",
+\"2 c #FAE864\",
+\"3 c #FDDD3C\",
+\"4 c #FED621\",
+\"5 c #FFD51D\",
+\"6 c #FFD51B\",
+\"7 c #FFD519\",
+\"8 c #D8B82B\",
+\"9 c #FCF790\",
+\"0 c #FBF587\",
+\"a c #F8EF7D\",
+\"b c #F8EC75\",
+\"c c #F7E86B\",
+\"d c #F8E868\",
+\"e c #F9E663\",
+\"f c #F9E45A\",
+\"g c #F9E253\",
+\"h c #F9E04C\",
+\"i c #FBDD40\",
+\"j c #FBDB38\",
+\"k c #FAD933\",
+\"l c #FAD529\",
+\"m c #FDD810\",
+\"n c #FFFD9E\",
+\"o c #FFFF9A\",
+\"p c #FFFE96\",
+\"q c #FFFB8C\",
+\"r c #FFF781\",
+\"s c #FFF375\",
+\"t c #FFEF69\",
+\"u c #FFEA5B\",
+\"v c #FFE750\",
+\"w c #FFE345\",
+\"x c #FFDF38\",
+\"y c #FFDB2B\",
+\"z c #FFD81F\",
+\"A c #FFD313\",
+\"B c #FBD007\",
+\"C c #FBF090\",
+\"D c #FFFDAE\",
+\"E c #FFFEA2\",
+\"F c #FFFA8C\",
+\"G c #FFF780\",
+\"H c #F6CA11\",
+\"I c #E1AF03\",
+\"J c #F4E36D\",
+\"K c #FCF7A4\",
+\"L c #FFFEBB\",
+\"M c #FEFAA6\",
+\"N c #FFF990\",
+\"O c #FFF57E\",
+\"P c #FFEE6F\",
+\"Q c #FFEB61\",
+\"R c #FFE856\",
+\"S c #FFE34A\",
+\"T c #FBDD44\",
+\"U c #F7D535\",
+\"V c #EBBF13\",
+\"W c #D5A406\",
+\"X c #C99500\",
+\"Y c #F0DC5F\",
+\"Z c #F3E772\",
+\"` c #F7EC76\",
+\" . c #F6E56D\",
+\".. c #F6E369\",
+\"+. c #F6E264\",
+\"@. c #F5DF5C\",
+\"#. c #F3DB53\",
+\"$. c #F3D849\",
+\"%. c #EFD245\",
+\"&. c #ECCE3F\",
+\"*. c #E3B91F\",
+\"=. c #D3A40B\",
+\"-. c #C99600\",
+\";. c #C69200\",
+\">. c #EED95E\",
+\",. c #EDDA60\",
+\"'. c #F1DF64\",
+\"). c #F2DF5E\",
+\"!. c #F2DD57\",
+\"~. c #F2D94E\",
+\"{. c #F2D644\",
+\"]. c #EFD038\",
+\"^. c #ECCB34\",
+\"/. c #E6C430\",
+\"(. c #DFB71F\",
+\"_. c #D9AD17\",
+\":. c #CC9907\",
+\"<. c #C69000\",
+\"[. c #D39E00\",
+\"}. c #BB1503\",
+\"|. c #F9EA7D\",
+\"1. c #F6E57A\",
+\"2. c #F5E370\",
+\"3. c #F5DE62\",
+\"4. c #F9DF52\",
+\"5. c #FBDB3E\",
+\"6. c #FCD526\",
+\"7. c #FCCE0F\",
+\"8. c #F7C50A\",
+\"9. c #EEBA08\",
+\"0. c #E2AB03\",
+\"a. c #D7A000\",
+\"b. c #D59D00\",
+\"c. c #DFA901\",
+\"d. c #E7B402\",
+\"e. c #C91800\",
+\"f. c #F6E676\",
+\"g. c #FCF4A1\",
+\"h. c #FDF096\",
+\"i. c #FAE167\",
+\"j. c #F7D64F\",
+\"k. c #F7CF38\",
+\"l. c #F7CB26\",
+\"m. c #F6BF0C\",
+\"n. c #F1B905\",
+\"o. c #ECB309\",
+\"p. c #EBB60A\",
+\"q. c #F0BF0B\",
+\"r. c #F3C206\",
+\"s. c #E5B201\",
+\"t. c #CF9C01\",
+\"u. c #C21602\",
+\"v. c #C21703\",
+\"w. c #F2E067\",
+\"x. c #FBF78F\",
+\"y. c #FEF28A\",
+\"z. c #FEED74\",
+\"A. c #FFE85F\",
+\"B. c #FFE24D\",
+\"C. c #FFDE3A\",
+\"D. c #FED92F\",
+\"E. c #FCD325\",
+\"F. c #F8CD1A\",
+\"G. c #EDBD0A\",
+\"H. c #D9A701\",
+\"I. c #C79200\",
+\"J. c #D11D00\",
+\"K. c #EFDA64\",
+\"L. c #F7EF7F\",
+\"M. c #FCF47F\",
+\"N. c #FDEE6C\",
+\"O. c #FDE85B\",
+\"P. c #FDE249\",
+\"Q. c #FDDC36\",
+\"R. c #FCD423\",
+\"S. c #F9CC14\",
+\"T. c #F0C10E\",
+\"U. c #E6B507\",
+\"V. c #DCA900\",
+\"W. c #D29F00\",
+\"X. c #C69400\",
+\"Y. c #C99200\",
+\"Z. c #CC1B02\",
+\"`. c #C61A04\",
+\" + c #E1CF5F\",
+\".+ c #EAD862\",
+\"++ c #ECDB63\",
+\"@+ c #EFDC5E\",
+\"#+ c #EFD955\",
+\"$+ c #EFD74D\",
+\"%+ c #EFD444\",
+\"&+ c #F0D23E\",
+\"*+ c #EECE37\",
+\"=+ c #E8C731\",
+\"-+ c #E0B922\",
+\";+ c #D09E03\",
+\">+ c #CB9700\",
+\",+ c #C39100\",
+\"'+ c #C99400\",
+\")+ c #E12400\",
+\"!+ c #F2E47C\",
+\"~+ c #F8ED8C\",
+\"{+ c #F4E171\",
+\"]+ c #F0D65B\",
+\"^+ c #F0D24F\",
+\"/+ c #F1CF43\",
+\"(+ c #F2CD34\",
+\"_+ c #F2C824\",
+\":+ c #EEC527\",
+\"<+ c #E7BD23\",
+\"[+ c #DFAC12\",
+\"}+ c #DAA203\",
+\"|+ c #E5B202\",
+\"1+ c #EDBA01\",
+\"2+ c #D69F00\",
+\"3+ c #D21E01\",
+\"4+ c #D01C00\",
+\"5+ c #F2E16A\",
+\"6+ c #FBF59D\",
+\"7+ c #FEFBAA\",
+\"8+ c #FEF084\",
+\"9+ c #FCE567\",
+\"0+ c #FBDD50\",
+\"a+ c #F8D23B\",
+\"b+ c #F8CD28\",
+\"c+ c #EEB51C\",
+\"d+ c #DA8A13\",
+\"e+ c #E29A16\",
+\"f+ c #EDB111\",
+\"g+ c #E5AE08\",
+\"h+ c #D19C01\",
+\"i+ c #C79400\",
+\"j+ c #BF1603\",
+\"k+ c #DD2300\",
+\"l+ c #E6D261\",
+\"m+ c #FCF88C\",
+\"n+ c #FFF27A\",
+\"o+ c #FFEC6A\",
+\"p+ c #FFE655\",
+\"q+ c #FFE041\",
+\"r+ c #FFDA2B\",
+\"s+ c #E49D14\",
+\"t+ c #BA4F02\",
+\"u+ c #BB6A00\",
+\"v+ c #B37102\",
+\"w+ c #DD2200\",
+\"x+ c #CA1B02\",
+\"y+ c #E6DB78\",
+\"z+ c #FEFB8B\",
+\"A+ c #FFF470\",
+\"B+ c #FFEA56\",
+\"C+ c #FFE13E\",
+\"D+ c #FFDA24\",
+\"E+ c #FECF0A\",
+\"F+ c #F5BE01\",
+\"G+ c #D37800\",
+\"H+ c #D72000\",
+\"I+ c #C61802\",
+\"J+ c #EBD55C\",
+\"K+ c #FCE353\",
+\"L+ c #FFE33E\",
+\"M+ c #FFDB26\",
+\"N+ c #FFD20B\",
+\"O+ c #FCCB01\",
+\"P+ c #F0B900\",
+\"Q+ c #D47D00\",
+\"R+ c #E42500\",
+\"S+ c #EB2900\",
+\"T+ c #DF2301\",
+\"U+ c #E82700\",
+\"V+ c #D31F04\",
+\"W+ c #C71F01\",
+\"X+ c #EA2800\",
+\"Y+ c #E92800\",
+\"Z+ c #DD2301\",
+\"`+ c #E22501\",
+\" . . . . . . . \",
+\" . . . + @ # $ % & * . . . \",
+\" . = - ; > , ' ) ! ~ { ] ^ / . \",
+\". ( _ : < [ } | 1 2 3 4 5 6 7 8 . \",
+\". 9 0 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 D E F G s t u v w x y z H I . \",
+\". J K L M N O P Q R S T U V W X . \",
+\". Y Z ` ...+.@.#.$.%.&.*.=.-.;.. . . \",
+\". >.,.'.).!.~.{.].^./.(._.:.<.[.. . }.. \",
+\". |.1.2.3.4.5.6.7.8.9.0.a.b.c.d.. . e.. \",
+\". f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.. . u.v.. \",
+\". w.x.n y.z.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.`.. \",
+\". +.+++@+#+$+%+&+*+=+-+;+>+,+'+. . )+. \",
+\". !+~+{+]+^+/+(+_+:+<+[+}+|+1+2+. . 3+4+. \",
+\". 5+6+7+8+9+0+a+b+c+d+e+f+g+h+i+. j+k+. \",
+\". l+m+q n+o+p+q+r+s+. . . t+u+v+. w+x+. \",
+\" . y+z+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+`+. \",
+\" . . \",
+\" . \"};
+"
+ "XPM format image used as Commit icon")
+
+(defconst plsql-prev-mark-xpm "\
+/* XPM */
+static char * go_previous_xpm[] = {
+\"24 24 59 1\",
+\" c None\",
+\". c #000000\",
+\"+ c #355D96\",
+\"@ c #3C639B\",
+\"# c #6E92BF\",
+\"$ c #41679D\",
+\"% c #6990BE\",
+\"& c #6D94C2\",
+\"* c #456DA2\",
+\"= c #628BBC\",
+\"- c #4D7BB4\",
+\"; c #6991C0\",
+\"> c #4971A6\",
+\", c #5D87BA\",
+\"' c #4B7BB3\",
+\") c #4979B3\",
+\"! c #5884B9\",
+\"~ c #638CBC\",
+\"{ c #638BBC\",
+\"] c #6089BA\",
+\"^ c #4B73A9\",
+\"/ c #5883B8\",
+\"( c #4A7AB3\",
+\"_ c #618ABB\",
+\": c #4C74AB\",
+\"< c #547FB5\",
+\"[ c #4972A9\",
+\"} c #4D79B1\",
+\"| c #4171AD\",
+\"1 c #4071AD\",
+\"2 c #4070AD\",
+\"3 c #4171AC\",
+\"4 c #4071AC\",
+\"5 c #4070AC\",
+\"6 c #3F70AC\",
+\"7 c #3F70AB\",
+\"8 c #406FAC\",
+\"9 c #5781B5\",
+\"0 c #4A74AC\",
+\"a c #3E6CA8\",
+\"b c #3465A4\",
+\"c c #4E78AF\",
+\"d c #446FA8\",
+\"e c #4A75AD\",
+\"f c #3F6CA6\",
+\"g c #3C6BA7\",
+\"h c #3B6BA7\",
+\"i c #4471AB\",
+\"j c #4572AB\",
+\"k c #4672AC\",
+\"l c #4571AB\",
+\"m c #3A68A3\",
+\"n c #3B6AA7\",
+\"o c #406EA9\",
+\"p c #3564A0\",
+\"q c #3868A6\",
+\"r c #305E9D\",
+\"s c #3767A5\",
+\"t c #2E5D9B\",
+\" \",
+\" \",
+\" \",
+\" .. \",
+\" .+. \",
+\" .@#. \",
+\" .$%&. \",
+\" .*=-;......... \",
+\" .>,')!~{{{{{~]. \",
+\" .^/()))(((((('_. \",
+\" .:<)))))))))))),. \",
+\" .[}|1123455567589. \",
+\" .0abbbbbbbbbbbbc. \",
+\" .dabbbbbbbbbbbe. \",
+\" .fgbbhijjjjjkl. \",
+\" .mnbo......... \",
+\" .pqh. \",
+\" .rs. \",
+\" .t. \",
+\" .. \",
+\" . \",
+\" \",
+\" \",
+\" \"};
+"
+ "XPM format image used as Previous Mark icon")
+
+(defconst plsql-next-mark-xpm "\
+/* XPM */
+static char * go_next_xpm[] = {
+\"24 24 63 1\",
+\" c None\",
+\". c #000000\",
+\"+ c #365F97\",
+\"@ c #6B8FBE\",
+\"# c #41689E\",
+\"$ c #6990BF\",
+\"% c #466EA4\",
+\"& c #678EBD\",
+\"* c #4E7DB5\",
+\"= c #638CBC\",
+\"- c #4B72A7\",
+\"; c #5B83B5\",
+\"> c #628BBB\",
+\", c #5A86BA\",
+\"' c #4979B3\",
+\") c #4B7AB3\",
+\"! c #5E87B9\",
+\"~ c #4E76AA\",
+\"{ c #5B84B8\",
+\"] c #4E7CB5\",
+\"^ c #4A7AB3\",
+\"/ c #5883B7\",
+\"( c #5178AD\",
+\"_ c #5982B6\",
+\": c #4C7BB4\",
+\"< c #537FB5\",
+\"[ c #5079AE\",
+\"} c #507BB0\",
+\"| c #4272AD\",
+\"1 c #4070AC\",
+\"2 c #3F70AB\",
+\"3 c #3F70AC\",
+\"4 c #4071AC\",
+\"5 c #4171AC\",
+\"6 c #4070AD\",
+\"7 c #4071AD\",
+\"8 c #4171AD\",
+\"9 c #4D79B1\",
+\"0 c #4E76AD\",
+\"a c #4872AA\",
+\"b c #3767A5\",
+\"c c #3465A4\",
+\"d c #3D6CA8\",
+\"e c #4C76AD\",
+\"f c #2B548E\",
+\"g c #446FA8\",
+\"h c #3C6BA7\",
+\"i c #4772AA\",
+\"j c #29528E\",
+\"k c #3F6CA6\",
+\"l c #4471AB\",
+\"m c #4371AB\",
+\"n c #3B6BA7\",
+\"o c #416EA8\",
+\"p c #3F6CA7\",
+\"q c #3A69A6\",
+\"r c #3C6AA5\",
+\"s c #3B6AA5\",
+\"t c #3868A6\",
+\"u c #3765A2\",
+\"v c #3666A3\",
+\"w c #32619F\",
+\"x c #2F5D9B\",
+\" \",
+\" \",
+\" \",
+\" .. \",
+\" .+. \",
+\" .@#. \",
+\" .$$%. \",
+\" .........&*=-. \",
+\" .;>>>>>>=,')!~. \",
+\" .{]^^^^^^''''/(. \",
+\" ._:'''''''''''<[. \",
+\" .}|12311145677890. \",
+\" .abcccccccccccde. \",
+\" .gbcccccccccchi. \",
+\" .klmlllllhccno. \",
+\" .........pcqr. \",
+\" .stu. \",
+\" .vw. \",
+\" .x. \",
+\" .. \",
+\" . \",
+\" \",
+\" \",
+\" \"};
+"
+ "XPM format image used as Next Mark icon")
+
+(defconst sqlplus-kill-image
+ (create-image sqlplus-kill-xpm 'xpm t))
+
+(defconst sqlplus-cancel-image
+ (create-image sqlplus-cancel-xpm 'xpm t))
+
+(defconst sqlplus-commit-image
+ (create-image sqlplus-commit-xpm 'xpm t))
+
+(defconst sqlplus-rollback-image
+ (create-image sqlplus-rollback-xpm 'xpm t))
+
+(defconst plsql-prev-mark-image
+ (create-image plsql-prev-mark-xpm 'xpm t))
+
+(defconst plsql-next-mark-image
+ (create-image plsql-next-mark-xpm 'xpm t))
+
+(defvar sqlplus-mode-syntax-table nil
+ "Syntax table used while in sqlplus-mode.")
+
+(defvar sqlplus-suppress-show-output-buffer nil)
+
+;; Local in input buffers
+(defvar sqlplus-font-lock-keywords-1 nil)
+(make-variable-buffer-local 'sqlplus-font-lock-keywords-1)
+(defvar sqlplus-font-lock-keywords-2 nil)
+(make-variable-buffer-local 'sqlplus-font-lock-keywords-2)
+(defvar sqlplus-font-lock-keywords-3 nil)
+(make-variable-buffer-local 'sqlplus-font-lock-keywords-3)
+
+(defvar sqlplus-font-lock-defaults '((sqlplus-font-lock-keywords-1 sqlplus-font-lock-keywords-2 sqlplus-font-lock-keywords-3) nil t nil nil))
+
+(defvar sqlplus-oracle-extra-builtin-functions-re
+ (concat "\\b"
+ (regexp-opt '("acos" "asciistr" "asin" "atan" "atan2" "bfilename" "bin_to_num" "bitand" "cardinality" "cast" "coalesce" "collect"
+ "compose" "corr" "corr_s" "corr_k" "covar_pop" "covar_samp" "cume_dist" "current_date" "current_timestamp" "cv"
+ "dbtimezone" "decompose" "dense_rank" "depth" "deref" "empty_blob, empty_clob" "existsnode" "extract"
+ "extractvalue" "first" "first_value" "from_tz" "group_id" "grouping" "grouping_id" "iteration_number"
+ "lag" "last" "last_value" "lead" "lnnvl" "localtimestamp" "make_ref" "median" "nanvl" "nchr" "nls_charset_decl_len"
+ "nls_charset_id" "nls_charset_name" "ntile" "nullif" "numtodsinterval" "numtoyminterval" "nvl2" "ora_hash" "path"
+ "percent_rank" "percentile_cont" "percentile_disc" "powermultiset" "powermultiset_by_cardinality" "presentnnv"
+ "presentv" "previous" "rank" "ratio_to_report" "rawtonhex" "ref" "reftohex" "regexp_instr" "regexp_replace"
+ "regexp_substr" "regr_slope" "regr_intercept" "regr_count" "regr_r2" "regr_avgx" "regr_avgy" "regr_sxx" "regr_syy"
+ "regr_sxy" "remainder" "row_number" "rowidtonchar" "scn_to_timestamp" "sessiontimezone" "stats_binomial_test"
+ "stats_crosstab" "stats_f_test" "stats_ks_test" "stats_mode" "stats_mw_test" "stats_one_way_anova" "stats_t_test_one"
+ "stats_t_test_paired" "stats_t_test_indep" "stats_t_test_indepu" "stats_wsr_test" "stddev_pop" "stddev_samp"
+ "sys_connect_by_path" "sys_context" "sys_dburigen" "sys_extract_utc" "sys_guid" "sys_typeid" "sys_xmlagg" "sys_xmlgen"
+ "systimestamp" "timestamp_to_scn" "to_binary_double" "to_binary_float" "to_clob" "to_dsinterval" "to_lob" "to_nchar"
+ "to_nclob" "to_timestamp" "to_timestamp_tz" "to_yminterval" "treat" "tz_offset" "unistr" "updatexml" "value" "var_pop"
+ "var_samp" "width_bucket" "xmlagg" "xmlcolattval" "xmlconcat" "xmlelement" "xmlforest" "xmlsequence" "xmltransform") t)
+ "\\b"))
+(defvar sqlplus-oracle-extra-warning-words-re
+ (concat "\\b"
+ (regexp-opt '("access_into_null" "case_not_found" "collection_is_null" "rowtype_mismatch"
+ "self_is_null" "subscript_beyond_count" "subscript_outside_limit" "sys_invalid_rowid") t)
+ "\\b"))
+(defvar sqlplus-oracle-extra-keywords-re
+ (concat "\\b\\("
+ "\\(at\\s-+local\\|at\\s-+time\\s-+zone\\|to\\s-+second\\|to\\s-+month\\|is\\s-+present\\|a\\s-+set\\)\\|"
+ (regexp-opt '("case" "nan" "infinite" "equals_path" "empty" "likec" "like2" "like4" "member"
+ "regexp_like" "submultiset" "under_path" "mlslabel") t)
+ "\\)\\b"))
+(defvar sqlplus-oracle-extra-pseudocolumns-re
+ (concat "\\b"
+ (regexp-opt '("connect_by_iscycle" "connect_by_isleaf" "versions_starttime" "versions_startscn"
+ "versions_endtime" "versions_endscn" "versions_xid" "versions_operation" "object_id" "object_value" "ora_rowscn"
+ "xmldata") t)
+ "\\b"))
+(defvar sqlplus-oracle-plsql-extra-reserved-words-re
+ (concat "\\b"
+ (regexp-opt '("array" "at" "authid" "bulk" "char_base" "day" "do" "extends" "forall" "heap" "hour"
+ "interface" "isolation" "java" "limited" "minute" "mlslabel" "month" "natural" "naturaln" "nocopy" "number_base"
+ "ocirowid" "opaque" "operator" "organization" "pls_integer" "positive" "positiven" "range" "record" "release" "reverse"
+ "rowtype" "second" "separate" "space" "sql" "timezone_region" "timezone_abbr" "timezone_minute" "timezone_hour" "year"
+ "zone") t)
+ "\\b"))
+(defvar sqlplus-oracle-extra-types-re
+ (concat "\\b"
+ (regexp-opt '("nvarchar2" "binary_float" "binary_double" "timestamp" "interval" "interval_day" "urowid" "nchar" "clob" "nclob" "bfile") t)
+ "\\b"))
+
+(defvar sqlplus-commands-regexp-1 nil)
+(defvar sqlplus-commands-regexp-23 nil)
+(defvar sqlplus-system-variables-regexp-1 nil)
+(defvar sqlplus-system-variables-regexp-23 nil)
+(defvar sqlplus-v22-commands-font-lock-keywords-1 nil)
+(defvar sqlplus-v22-commands-font-lock-keywords-23 nil)
+(defvar font-lock-sqlplus-face nil)
+
+(defvar sqlplus-output-buffer-keymap nil
+ "Local in output buffer.")
+(make-variable-buffer-local 'sqlplus-output-buffer-keymap)
+
+(defvar sqlplus-kill-function-inhibitor nil)
+
+(defvar sqlplus-slip-separator-width 2
+ "Only for classic table style.")
+
+(defvar sqlplus-user-string-history nil)
+
+(defvar sqlplus-object-types '( "CONSUMER GROUP" "SEQUENCE" "SCHEDULE" "PROCEDURE" "OPERATOR" "WINDOW"
+ "PACKAGE" "LIBRARY" "PROGRAM" "PACKAGE BODY" "JAVA RESOURCE" "XML SCHEMA"
+ "JOB CLASS" "TRIGGER" "TABLE" "SYNONYM" "VIEW" "FUNCTION" "WINDOW GROUP"
+ "JAVA CLASS" "INDEXTYPE" "INDEX" "TYPE" "EVALUATION CONTEXT" ))
+
+(defvar sqlplus-end-of-source-sentinel "%%@@end-of-source-sentinel@@%%")
+
+(defconst sqlplus-system-variables
+ '("appi[nfo]" "array[size]" "auto[commit]" "autop[rint]" "autorecovery" "autot[race]" "blo[ckterminator]" "cmds[ep]"
+ "colsep" "com[patibility]" "con[cat]" "copyc[ommit]" "copytypecheck" "def[ine]" "describe" "echo" "editf[ile]"
+ "emb[edded]" "esc[ape]" "feed[back]" "flagger" "flu[sh]" "hea[ding]" "heads[ep]" "instance" "lin[esize]"
+ "lobof[fset]" "logsource" "long" "longc[hunksize]" "mark[up]" "newp[age]" "null" "numf[ormat]" "num[width]"
+ "pages[ize]" "pau[se]" "recsep" "recsepchar" "serverout[put]" "shift[inout]" "show[mode]" "sqlbl[anklines]"
+ "sqlc[ase]" "sqlco[ntinue]" "sqln[umber]" "sqlpluscompat[ibility]" "sqlpre[fix]" "sqlp[rompt]" "sqlt[erminator]"
+ "suf[fix]" "tab" "term[out]" "ti[me]" "timi[ng]" "trim[out]" "trims[pool]" "und[erline]" "ver[ify]" "wra[p]"))
+
+(defconst sqlplus-commands
+ '(("@[@]")
+ (("/" "r[un]"))
+ ("acc[ept]"
+ (font-lock-type-face "num[ber]" "char" "date" "binary_float" "binary_double")
+ (font-lock-keyword-face "for[mat]" "def[ault]" "[no]prompt" "hide"))
+ ("a[ppend]")
+ ("archive log"
+ (font-lock-keyword-face "list" "stop" "start" "next" "all" "to"))
+ ("attribute"
+ (font-lock-keyword-face "ali[as]" "cle[ar]" "for[mat]" "like" "on" "off"))
+ ("bre[ak]"
+ (font-lock-keyword-face "on" "row" "report" "ski[p]" "page" "nodup[licates]" "dup[licates]"))
+ ("bti[tle]"
+ (font-lock-keyword-face "on" "off")
+ (font-lock-builtin-face "bold" "ce[nter]" "col" "format" "le[ft]" "r[ight]" "s[kip]" "tab"))
+ ("c[hange]")
+ ("cl[ear]"
+ (font-lock-keyword-face "bre[aks]" "buff[er]" "col[umns]" "comp[utes]" "scr[een]" "sql" "timi[ng]"))
+ ("col[umn]"
+ (font-lock-keyword-face "ali[as]" "cle[ar]" "entmap" "on" "off" "fold_a[fter]" "fold_b[efore]" "for[mat]" "hea[ding]"
+ "jus[tify]" "l[eft]" "c[enter]" "r[ight]" "like" "newl[ine]" "new_v[alue]" "nopri[nt]" "pri[nt]"
+ "nul[l]" "old_v[alue]" "wra[pped]" "wor[d_wrapped]" "tru[ncated]"))
+ ("comp[ute]"
+ (font-lock-keyword-face "lab[el]" "of" "on" "report" "row")
+ (font-lock-builtin-face "avg" "cou[nt]" "min[imum]" "max[imum]" "num[ber]" "sum" "std" "var[iance]"))
+ ("conn[ect]"
+ (font-lock-keyword-face "as" "sysoper" "sysdba"))
+ ("copy")
+ ("def[ine]")
+ ("del"
+ (font-lock-keyword-face "last"))
+ ("desc[ribe]")
+ ("disc[onnect]")
+ ("ed[it]")
+ ("exec[ute]")
+ (("exit" "quit")
+ (font-lock-keyword-face "success" "failure" "warning" "commit" "rollback"))
+ ("get"
+ (font-lock-keyword-face "file" "lis[t]" "nol[ist]"))
+ ("help")
+ (("ho[st]" "!" "$"))
+ ("i[nput]")
+ ("l[ist]"
+ (font-lock-keyword-face "last"))
+ ("passw[ord]")
+ ("pau[se]")
+ ("pri[nt]")
+ ("pro[mpt]")
+ ("recover"
+ (font-lock-keyword-face "begin" "end" "backup" "automatic" "from" "logfile" "test" "allow" "corruption" "continue" "default" "cancel"
+ "standby" "database" "until" "time" "change" "using" "controlfile" "tablespace" "datafile"
+ "consistent" "with" "[no]parallel" "managed" "disconnect" "session" "[no]timeout" "[no]delay" "next" "no" "expire"
+ "current" "through" "thread" "sequence" "all" "archivelog" "last" "switchover" "immediate" "[no]wait"
+ "finish" "skip"))
+ ("rem[ark]")
+ ("repf[ooter]"
+ (font-lock-keyword-face "page" "on" "off")
+ (font-lock-builtin-face "bold" "ce[nter]" "col" "format" "le[ft]" "r[ight]" "s[kip]" "tab"))
+ ("reph[eader]"
+ (font-lock-keyword-face "page" "on" "off")
+ (font-lock-builtin-face "bold" "ce[nter]" "col" "format" "le[ft]" "r[ight]" "s[kip]" "tab"))
+ ("sav[e]"
+ (font-lock-keyword-face "file" "cre[ate]" "rep[lace]" "app[end]"))
+ ("set"
+ (font-lock-builtin-face sqlplus-system-variables)
+ (font-lock-keyword-face "on" "off" "immediate" "trace[only]" "explain" "statistics" "native" "v7" "v8" "all" "linenum" "indent"
+ "entry" "intermediate" "full" "local" "head" "html" "body" "table" "entmap" "spool" "[pre]format"
+ "none" "[word_]wrapped" "each" "truncated" "[in]visible" "mixed" "lower" "upper"))
+ ("sho[w]"
+ (font-lock-keyword-face "all" "bti[tle]" "err[ors]" "function" "procedure" "package[ body]" "trigger" "view" "type[ body]"
+ "dimension" "java class" "lno" "parameters" "pno" "recyc[lebin]" "rel[ease]" "repf[ooter]" "reph[eader]"
+ "sga" "spoo[l]" "sqlcode" "tti[tle]" "user")
+ (font-lock-builtin-face sqlplus-system-variables))
+ ("shutdown"
+ (font-lock-keyword-face "abort" "immediate" "normal" "transactional" "local"))
+ ("spo[ol]"
+ ("cre" "create" "rep" "replace" "app" "append" "off" "out"))
+ ("sta[rt]")
+ ("startup"
+ (font-lock-keyword-face "force" "restrict" "pfile" "quiet" "mount" "open" "nomount" "read" "only" "write" "recover"))
+ ("store"
+ (font-lock-keyword-face "set" "cre[ate]" "rep[lace]" "app[end]"))
+ ("timi[ng]"
+ (font-lock-keyword-face "start" "show" "stop"))
+ ("tti[tle]"
+ (font-lock-keyword-face "tti[tle]" "on" "off")
+ (font-lock-builtin-face "bold" "ce[nter]" "col" "format" "le[ft]" "r[ight]" "s[kip]" "tab"))
+ ("undef[ine]")
+ ("var[iable]"
+ (font-lock-type-face "number" "[n]char" "byte" "[n]varchar2" "[n]clob" "refcursor" "binary_float" "binary_double"))
+ ("whenever oserror"
+ (font-lock-keyword-face "exit" "success" "failure" "commit" "rollback" "continue" "commit" "rollback" "none"))
+ ("whenever sqlerror"
+ (font-lock-keyword-face "exit" "success" "failure" "warning" "commit" "rollback" "continue" "none"))))
+
+(defvar plsql-mode-map nil)
+
+(defstruct sqlplus-global-struct
+ font-lock-regexps
+ objects-alist
+ side-view-buffer
+ root-dir
+)
+
+(defvar sqlplus-global-structures (make-hash-table :test 'equal)
+ "Connect string -> sqlplus-global-struct")
+
+(defun sqlplus-get-objects-alist (&optional connect-string)
+ (let ((struct (gethash (car (refine-connect-string (or connect-string sqlplus-connect-string sqlplus-process-p)))
+ sqlplus-global-structures)))
+ (when struct
+ (sqlplus-global-struct-objects-alist struct))))
+
+(defun sqlplus-set-objects-alist (objects-alist &optional connect-string)
+ (let ((struct (gethash (car (refine-connect-string (or connect-string sqlplus-connect-string sqlplus-process-p)))
+ sqlplus-global-structures)))
+ (when struct
+ (setf (sqlplus-global-struct-objects-alist struct) objects-alist))))
+
+(defun sqlplus-get-font-lock-regexps (&optional connect-string)
+ (let ((struct (gethash (car (refine-connect-string (or connect-string sqlplus-connect-string sqlplus-process-p)))
+ sqlplus-global-structures)))
+ (when struct
+ (sqlplus-global-struct-font-lock-regexps struct))))
+
+(defun sqlplus-set-font-lock-regexps (font-lock-regexps &optional connect-string)
+ (let ((struct (gethash (car (refine-connect-string (or connect-string sqlplus-connect-string sqlplus-process-p)))
+ sqlplus-global-structures)))
+ (when struct
+ (setf (sqlplus-global-struct-font-lock-regexps struct) font-lock-regexps))))
+
+(defun sqlplus-get-side-view-buffer (&optional connect-string)
+ (let ((struct (gethash (car (refine-connect-string (or connect-string sqlplus-connect-string sqlplus-process-p)))
+ sqlplus-global-structures)))
+ (when struct
+ (sqlplus-global-struct-side-view-buffer struct))))
+
+(defun sqlplus-get-root-dir (&optional connect-string)
+ (let ((struct (gethash (car (refine-connect-string (or connect-string sqlplus-connect-string sqlplus-process-p)))
+ sqlplus-global-structures)))
+ (when struct
+ (sqlplus-global-struct-root-dir struct))))
+
+(defun sqlplus-set-root-dir (root-dir &optional connect-string)
+ (let ((struct (gethash (car (refine-connect-string (or connect-string sqlplus-connect-string sqlplus-process-p)))
+ sqlplus-global-structures)))
+ (when struct
+ (setf (sqlplus-global-struct-root-dir struct) root-dir))))
+
+;;; ---
+
+(defun sqlplus-initial-strings ()
+ (append sqlplus-initial-strings
+ (list
+ (concat "btitle left '" sqlplus-page-separator "'")
+ (concat "repfooter left '" sqlplus-repfooter "'")
+ (concat "set pagesize " (number-to-string sqlplus-pagesize)))))
+
+(defun sqlplus-connect-string-lessp (cs1 cs2)
+ "Compare two connect strings"
+ (let ((cs1-pair (split-string cs1 "@"))
+ (cs2-pair (split-string cs2 "@")))
+ (or (string< (cadr cs1-pair) (cadr cs2-pair))
+ (and (string= (cadr cs1-pair) (cadr cs2-pair))
+ (string< (car cs1-pair) (car cs2-pair))))))
+
+(defun sqlplus-divide-connect-strings ()
+ "Returns (active-connect-string-list . inactive-connect-string-list)"
+ (let* ((active-connect-strings
+ (sort (delq nil (mapcar (lambda (buffer)
+ (with-current-buffer buffer
+ (when (and (eq major-mode 'sqlplus-mode)
+ sqlplus-connect-string)
+ (let ((cs (car (refine-connect-string sqlplus-connect-string))))
+ (when (and (get-buffer (sqlplus-get-process-buffer-name cs))
+ (get-process (sqlplus-get-process-name cs)))
+ (downcase cs))))))
+ (buffer-list)))
+ 'sqlplus-connect-string-lessp))
+ (inactive-connect-strings
+ (sort (delq nil (mapcar (lambda (pair)
+ (unless (member (downcase (car pair)) active-connect-strings) (downcase (car pair))) )
+ sqlplus-connect-strings-alist))
+ 'sqlplus-connect-string-lessp)))
+ (setq active-connect-strings (remove-duplicates active-connect-strings :test 'equal))
+ (setq inactive-connect-strings (remove-duplicates inactive-connect-strings :test 'equal))
+ (cons active-connect-strings inactive-connect-strings)))
+
+(defun sqlplus-connections-menu (menu)
+ (condition-case err
+ (let* ((connect-strings-pair (sqlplus-divide-connect-strings))
+ (active-connect-strings (car connect-strings-pair))
+ (inactive-connect-strings (cdr connect-strings-pair)))
+ (append
+ (list ["New connection..." sqlplus t])
+ (list ["Tnsnames.ora" sqlplus-find-tnsnames t])
+ (list ["Command Line" sqlplus-command-line t])
+ (when (eq major-mode 'sqlplus-mode)
+ (list
+ "----"
+ ["Evaluate Statement" sqlplus-send-current sqlplus-connect-string]
+ ["Explain Statement" sqlplus-explain sqlplus-connect-string]
+ ["Evaluate Statement (HTML)" sqlplus-send-current-html sqlplus-connect-string]
+ ["Evaluate Region" sqlplus-send-region (and (mark) sqlplus-connect-string)]))
+ (when orcl-mode
+ (list
+ "----"
+ ["Send Commit" sqlplus-send-commit sqlplus-connect-string]
+ ["Send Rollback" sqlplus-send-rollback sqlplus-connect-string]
+ ["Restart Connection" sqlplus-restart-connection sqlplus-connect-string]
+ ["Show History" sqlplus-show-history sqlplus-connect-string]
+ ["Get Source from DB" sqlplus-get-source sqlplus-connect-string]
+ ["Interrupt Evaluation" sqlplus-send-interrupt sqlplus-connect-string]
+ ["Compare schema to filesystem" sqlplus-compare-schema-to-filesystem sqlplus-connect-string]
+ "----"
+ (list "Output"
+ ["Show window" sqlplus-buffer-display-window t]
+ "----"
+ ["Redisplay" sqlplus-buffer-redisplay-current t]
+ ["Previous" sqlplus-buffer-prev-command t]
+ ["Next" sqlplus-buffer-next-command t]
+ "----"
+ ["Scroll Right" sqlplus-buffer-scroll-right t]
+ ["Scroll Left" sqlplus-buffer-scroll-left t]
+ ["Scroll Down" sqlplus-buffer-scroll-down t]
+ ["Scroll Up" sqlplus-buffer-scroll-up t]
+ "----"
+ ["Bottom" sqlplus-buffer-bottom t]
+ ["Top" sqlplus-buffer-top t]
+ "----"
+ ["Erase" sqlplus-buffer-erase t])
+ ))
+ (when inactive-connect-strings
+ (append
+ (list "----")
+ (list (append (list "Recent Connections")
+ (mapcar (lambda (connect-string)
+ (vector connect-string (list 'apply ''sqlplus
+ (list 'sqlplus-read-connect-string connect-string)) t)) inactive-connect-strings)))))
+ (when active-connect-strings
+ (append
+ (list "----")
+ (mapcar (lambda (connect-string)
+ (vector connect-string (list 'apply ''sqlplus
+ (list 'sqlplus-read-connect-string connect-string)) t)) active-connect-strings)))
+ ))
+ (error (message (error-message-string err)))))
+
+(defun sqlplus-send-commit ()
+ "Send 'commit' command to SQL*Process."
+ (interactive)
+ (sqlplus-check-connection)
+ (sqlplus-execute sqlplus-connect-string "commit;" nil nil))
+
+(defun sqlplus-send-rollback ()
+ "Send 'rollback' command to SQL*Process."
+ (interactive)
+ (sqlplus-check-connection)
+ (sqlplus-execute sqlplus-connect-string "rollback;" nil nil))
+
+(defun sqlplus-show-history ()
+ "Show command history for current connection."
+ (interactive)
+ (sqlplus-check-connection)
+ (sqlplus-verify-buffer sqlplus-connect-string)
+ (switch-to-buffer (sqlplus-get-history-buffer sqlplus-connect-string)))
+
+(defun sqlplus-restart-connection ()
+ "Kill SQL*Plus process and start again."
+ (interactive)
+ (sqlplus-check-connection)
+ (sqlplus-verify-buffer sqlplus-connect-string)
+ (let ((connect-stringos sqlplus-connect-string))
+ (unwind-protect
+ (progn
+ (setq sqlplus-kill-function-inhibitor t)
+ (sqlplus-shutdown connect-stringos t))
+ (setq sqlplus-kill-function-inhibitor nil))
+ (sqlplus connect-stringos (sqlplus-get-input-buffer-name connect-stringos))))
+
+(define-skeleton plsql-begin
+ "begin..end skeleton"
+ "" ; interactor
+ "begin" ?\n
+ > _ ?\n
+ "end;" >)
+
+(define-skeleton plsql-loop
+ "loop..end loop skeleton"
+ "" ; interactor
+ "loop" ?\n
+ > _ ?\n
+ "end loop;" >)
+
+(define-skeleton plsql-if
+ "if..end if skeleton"
+ "" ; interactor
+ "if " _ " then" ?\n
+ > ?\n
+ "end if;" >)
+
+;;; SQLPLUS-mode Keymap -
+
+(unless orcl-mode-map
+ (setq orcl-mode-map (make-sparse-keymap))
+ (define-key orcl-mode-map "\C-c\C-o" 'sqlplus-buffer-display-window)
+ (define-key orcl-mode-map "\C-c\C-l" 'sqlplus-buffer-redisplay-current)
+ (define-key orcl-mode-map "\C-c\C-p" 'sqlplus-buffer-prev-command)
+ (define-key orcl-mode-map [C-S-up] 'sqlplus-buffer-prev-command)
+ (define-key orcl-mode-map "\C-c\C-n" 'sqlplus-buffer-next-command)
+ (define-key orcl-mode-map [C-S-down] 'sqlplus-buffer-next-command)
+ (define-key orcl-mode-map "\C-c\C-b" 'sqlplus-buffer-scroll-right)
+ (define-key orcl-mode-map [C-S-left] 'sqlplus-buffer-scroll-right)
+ (define-key orcl-mode-map "\C-c\C-f" 'sqlplus-buffer-scroll-left)
+ (define-key orcl-mode-map [C-S-right] 'sqlplus-buffer-scroll-left)
+ (define-key orcl-mode-map "\C-c\M-v" 'sqlplus-buffer-scroll-down)
+ (define-key orcl-mode-map "\C-c\C-v" 'sqlplus-buffer-scroll-up)
+ (define-key orcl-mode-map "\C-c>" 'sqlplus-buffer-bottom)
+ (define-key orcl-mode-map "\C-c<" 'sqlplus-buffer-top)
+ (define-key orcl-mode-map "\C-c\C-w" 'sqlplus-buffer-erase)
+ (define-key orcl-mode-map "\C-c\C-m" 'sqlplus-send-commit)
+ (define-key orcl-mode-map "\C-c\C-a" 'sqlplus-send-rollback)
+ (define-key orcl-mode-map "\C-c\C-k" 'sqlplus-restart-connection)
+ (define-key orcl-mode-map "\C-c\C-t" 'sqlplus-show-history)
+ (define-key orcl-mode-map "\C-c\C-s" 'sqlplus-get-source)
+ (define-key orcl-mode-map "\C-c\C-i" 'sqlplus-send-interrupt)
+ (define-key orcl-mode-map [S-return] 'sqlplus-send-user-string)
+ (define-key orcl-mode-map [tool-bar sqlplus-restart-connection]
+ (list 'menu-item "Restart connection" 'sqlplus-restart-connection :image sqlplus-kill-image))
+ (define-key orcl-mode-map [tool-bar sqlplus-cancel]
+ (list 'menu-item "Cancel" 'sqlplus-send-interrupt :image sqlplus-cancel-image))
+ (define-key orcl-mode-map [tool-bar sqlplus-rollback]
+ (list 'menu-item "Rollback" 'sqlplus-send-rollback :image sqlplus-rollback-image))
+ (define-key orcl-mode-map [tool-bar sqlplus-commit]
+ (list 'menu-item "Commit" 'sqlplus-send-commit :image sqlplus-commit-image)))
+
+(unless sqlplus-mode-map
+ (setq sqlplus-mode-map (make-sparse-keymap))
+ (define-key sqlplus-mode-map "\C-c\C-g" 'plsql-begin)
+ (define-key sqlplus-mode-map "\C-c\C-q" 'plsql-loop)
+ (define-key sqlplus-mode-map "\C-c\C-z" 'plsql-if)
+ (define-key sqlplus-mode-map "\C-c\C-r" 'sqlplus-send-region)
+ (define-key sqlplus-mode-map [C-return] 'sqlplus-send-current)
+ (define-key sqlplus-mode-map [M-return] 'sqlplus-explain)
+ (define-key sqlplus-mode-map "\C-c\C-e" 'sqlplus-send-current)
+ (define-key sqlplus-mode-map "\C-c\C-j" 'sqlplus-send-current-html)
+ (define-key sqlplus-mode-map [C-S-return] 'sqlplus-send-current-html)
+ (define-key sqlplus-mode-map "\M-." 'sqlplus-file-get-source)
+ (define-key sqlplus-mode-map [C-down-mouse-1] 'sqlplus-mouse-select-identifier)
+ (define-key sqlplus-mode-map [C-mouse-1] 'sqlplus-file-get-source-mouse)
+ )
+
+(easy-menu-add-item nil nil sqlplus-connections-menu t)
+
+(unless sqlplus-mode-syntax-table
+ (setq sqlplus-mode-syntax-table (make-syntax-table))
+ (modify-syntax-entry ?/ ". 14" sqlplus-mode-syntax-table) ; comment start
+ (modify-syntax-entry ?* ". 23" sqlplus-mode-syntax-table)
+ (modify-syntax-entry ?+ "." sqlplus-mode-syntax-table)
+ (modify-syntax-entry ?. "." sqlplus-mode-syntax-table)
+ (modify-syntax-entry ?\" "." sqlplus-mode-syntax-table)
+ (modify-syntax-entry ?\\ "." sqlplus-mode-syntax-table)
+ (modify-syntax-entry ?- ". 12b" sqlplus-mode-syntax-table)
+ (modify-syntax-entry ?\n "> b" sqlplus-mode-syntax-table)
+ (modify-syntax-entry ?= "." sqlplus-mode-syntax-table)
+ (modify-syntax-entry ?% "w" sqlplus-mode-syntax-table)
+ (modify-syntax-entry ?< "." sqlplus-mode-syntax-table)
+ (modify-syntax-entry ?> "." sqlplus-mode-syntax-table)
+ (modify-syntax-entry ?& "w" sqlplus-mode-syntax-table)
+ (modify-syntax-entry ?| "." sqlplus-mode-syntax-table)
+ (modify-syntax-entry ?_ "w" sqlplus-mode-syntax-table) ; _ is word char
+ (modify-syntax-entry ?\' "\"" sqlplus-mode-syntax-table))
+
+;;; SQL*Plus mode
+
+(defun connect-string-to-string ()
+ (let ((txt (or (car (refine-connect-string sqlplus-connect-string)) "disconnected"))
+ (result))
+ (if (string-match "^\\(.*?\\)\\(\\w*prod\\w*\\)$" txt)
+ (if (>= emacs-major-version 22)
+ (setq result (list (list :propertize (substring txt 0 (match-beginning 2)) 'face '((:foreground "blue")))
+ (list :propertize (substring txt (match-beginning 2)) 'face '((:foreground "red")(:weight bold)))))
+ (setq result (setq txt (propertize txt 'face '((:foreground "blue")))))
+ (put-text-property (match-beginning 2) (match-end 2) 'face '((:foreground "red")(:weight bold)) txt))
+ (setq result
+ (if (>= emacs-major-version 22)
+ (list :propertize txt 'face '((:foreground "blue")))
+ (setq txt (propertize txt 'face '((:foreground "blue")))))))
+ result))
+
+(defun sqlplus-font-lock (type-symbol limit)
+ (let ((sqlplus-font-lock-regexps (sqlplus-get-font-lock-regexps)))
+ (when sqlplus-font-lock-regexps
+ (let ((regexp (gethash type-symbol sqlplus-font-lock-regexps)))
+ (when regexp
+ (re-search-forward regexp limit t))))))
+
+;; Local in input buffer (sqlplus-mode)
+(defvar sqlplus-command-overlay nil)
+(make-variable-buffer-local 'sqlplus-command-overlay)
+(defvar sqlplus-begin-command-overlay-arrow-position nil)
+(make-variable-buffer-local 'sqlplus-begin-command-overlay-arrow-position)
+(defvar sqlplus-end-command-overlay-arrow-position nil)
+(make-variable-buffer-local 'sqlplus-end-command-overlay-arrow-position)
+
+(defun sqlplus-highlight-current-sqlplus-command()
+ (when (and window-system sqlplus-command-highlighting-style)
+ (let* ((pair (sqlplus-mark-current))
+ (begin (and (car pair) (save-excursion (goto-char (car pair)) (skip-chars-forward " \t\n") (point))))
+ (end (and (cdr pair) (save-excursion (goto-char (cdr pair)) (skip-chars-backward " \t\n") (beginning-of-line) (point))))
+ (point-line-beg (save-excursion (beginning-of-line) (point)))
+ (overlay-begin begin)
+ (overlay-end end))
+ (when (and begin end)
+ (when (< end point-line-beg)
+ (save-excursion (goto-char point-line-beg) (when (eobp) (insert "\n")))
+ (setq end point-line-beg)
+ (setq overlay-end end))
+ (when (or (>= begin end) (< (point) begin))
+ (when (or (< (point) begin) (> begin end))
+ (setq overlay-begin nil
+ overlay-end nil))
+ (setq begin nil
+ end nil)))
+ (if (and overlay-begin overlay-end (memq sqlplus-command-highlighting-style '(background fringe-and-background)))
+ (progn
+ (setq overlay-end (save-excursion
+ (goto-char overlay-end)
+ (beginning-of-line 2)
+ (point)))
+ (move-overlay sqlplus-command-overlay overlay-begin overlay-end))
+ (move-overlay sqlplus-command-overlay 1 1))
+ (if (memq sqlplus-command-highlighting-style '(fringe fringe-and-background))
+ (progn
+ (put 'sqlplus-begin-command-overlay-arrow-position 'overlay-arrow-bitmap 'top-left-angle)
+ (put 'sqlplus-end-command-overlay-arrow-position 'overlay-arrow-bitmap 'bottom-left-angle)
+ (set-marker sqlplus-begin-command-overlay-arrow-position begin)
+ (set-marker sqlplus-end-command-overlay-arrow-position end))
+ (set-marker sqlplus-begin-command-overlay-arrow-position nil)
+ (set-marker sqlplus-end-command-overlay-arrow-position nil)))))
+
+(defun sqlplus-find-begin-of-sqlplus-command ()
+ (save-excursion
+ (beginning-of-line)
+ (while (and (not (bobp)) (save-excursion (end-of-line 0) (skip-chars-backward " \t") (equal (char-before) ?-)))
+ (beginning-of-line 0))
+ (point)))
+
+(defun sqlplus-find-end-of-sqlplus-command ()
+ (save-excursion
+ (end-of-line)
+ (while (progn (skip-chars-backward " \t") (and (not (eobp)) (equal (char-before) ?-)))
+ (end-of-line 2))
+ (point)))
+
+(defun sqlplus-set-font-lock-emacs-structures-for-level (level mode-symbol)
+ (let ((result (append sql-mode-oracle-font-lock-keywords
+ (default-value (cond ((equal level 3) 'sqlplus-font-lock-keywords-3)
+ ((equal level 2) 'sqlplus-font-lock-keywords-2)
+ ((equal level 1) 'sqlplus-font-lock-keywords-1)
+ (t nil))))))
+ (when (featurep 'plsql)
+ (setq result (append (symbol-value 'plsql-oracle-font-lock-fix-re) result)))
+ (setq result
+ (append
+ ;; Names for schemas, tables, synonyms, views, columns, sequences, packages, triggers and indexes
+ (when (> level 2)
+ (mapcar (lambda (pair)
+ (let ((type-symbol (car pair))
+ (face (cadr pair)))
+ (cons (eval `(lambda (limit) (sqlplus-font-lock ',type-symbol limit))) face)))
+ sqlplus-syntax-faces))
+ ;; SQL*Plus
+ (when (eq mode-symbol 'sqlplus-mode)
+ (unless sqlplus-commands-regexp-1
+ (flet ((first-form-fun (cmds) (mapcar (lambda (name) (car (sqlplus-full-forms name))) cmds))
+ (all-forms-fun (cmds) (mapcan 'sqlplus-full-forms cmds))
+ (sqlplus-commands-regexp-fun (form-fun cmds) (concat "^" (regexp-opt (funcall form-fun cmds) t) "\\b"))
+ (sqlplus-system-variables-fun (form-fun vars) (concat "\\b" (regexp-opt (funcall form-fun vars) t) "\\b")))
+ (flet ((sqlplus-v22-commands-font-lock-keywords-fun
+ (form-fun)
+ (delq nil
+ (mapcar
+ (lambda (command-info)
+ (let* ((names (car command-info))
+ (names-list (if (listp names) names (list names)))
+ (sublists (cdr command-info)))
+ (when sublists
+ (append (list (sqlplus-commands-regexp-fun form-fun names-list))
+ (mapcar (lambda (sublist)
+ (let ((face (car sublist))
+ (regexp (concat "\\b"
+ (regexp-opt (mapcan (lambda (name) (sqlplus-full-forms name))
+ (mapcan (lambda (elem)
+ (if (symbolp elem)
+ (copy-list (symbol-value elem))
+ (list elem)))
+ (cdr sublist)))
+ t)
+ "\\b")))
+ (list regexp '(sqlplus-find-end-of-sqlplus-command) nil (list 1 face))))
+ sublists)
+ (list '("\\(\\w+\\)" (sqlplus-find-end-of-sqlplus-command) nil (1 font-lock-sqlplus-face)))))))
+ sqlplus-commands))))
+ (let ((commands (mapcan
+ (lambda (command-info) (let ((names (car command-info))) (if (listp names) (copy-list names) (list names))))
+ sqlplus-commands)))
+ (setq sqlplus-commands-regexp-1 (sqlplus-commands-regexp-fun 'first-form-fun commands))
+ (setq sqlplus-commands-regexp-23 (sqlplus-commands-regexp-fun 'all-forms-fun commands))
+ (if (<= emacs-major-version 21)
+ (setq sqlplus-system-variables-regexp-1 (sqlplus-system-variables-fun 'first-form-fun sqlplus-system-variables)
+ sqlplus-system-variables-regexp-23 (sqlplus-system-variables-fun 'all-forms-fun sqlplus-system-variables))
+ (setq sqlplus-v22-commands-font-lock-keywords-1 (sqlplus-v22-commands-font-lock-keywords-fun 'first-form-fun)
+ sqlplus-v22-commands-font-lock-keywords-23 (sqlplus-v22-commands-font-lock-keywords-fun 'all-forms-fun)))))))
+ (append (list
+ ;; Comments (REM command)
+ (cons "^\\(rem\\)\\b\\(.*?\\)$" '((1 font-lock-keyword-face nil nil) (2 font-lock-comment-face t nil)))
+ ;; Predefined SQL*Plus variables
+ (cons (concat "\\b"
+ (regexp-opt '("_CONNECT_IDENTIFIER" "_DATE" "_EDITOR" "_O_VERSION" "_O_RELEASE" "_PRIVILEGE"
+ "_SQLPLUS_RELEASE" "_USER") t)
+ "\\b")
+ 'font-lock-builtin-face)
+ ;; SQL*Plus commands (+ shortcuts if level >= 2)
+ (cons
+ (concat (if (>= level 2) sqlplus-commands-regexp-23 sqlplus-commands-regexp-1) "\\|^\\(@@\\|@\\|!\\|/\\|\\$\\)" )
+ 'font-lock-keyword-face))
+ (if (<= emacs-major-version 21)
+ ;; SQL*Plus system variables (+ shortcuts if level >= 2)
+ (list (cons (if (>= level 2) sqlplus-system-variables-regexp-23 sqlplus-system-variables-regexp-1) 'font-lock-builtin-face))
+ ;; ver. >= 22
+ (if (>= level 2) sqlplus-v22-commands-font-lock-keywords-23 sqlplus-v22-commands-font-lock-keywords-1))))
+ ; (cons "\\b\\([a-zA-Z$_#0-9]+\\)\\b\\.\\(\\b[a-zA-Z$_#0-9]+\\b\\)" '((1 font-lock-type-face nil nil)(2 font-lock-variable-name-face nil nil)))
+ (list
+ ;; Extra Oracle syntax highlighting, not recognized by sql-mode or plsql-mode
+ (cons sqlplus-oracle-extra-types-re 'font-lock-type-face)
+ (cons sqlplus-oracle-extra-warning-words-re 'font-lock-warning-face)
+ (cons sqlplus-oracle-extra-types-re 'font-lock-type-face)
+ (cons sqlplus-oracle-extra-keywords-re 'font-lock-keyword-face)
+ (cons sqlplus-oracle-plsql-extra-reserved-words-re 'font-lock-keyword-face)
+ (if (string-match "XEmacs\\|Lucid" emacs-version)
+ (cons sqlplus-oracle-extra-pseudocolumns-re 'font-lock-preprocessor-face)
+ (cons sqlplus-oracle-extra-pseudocolumns-re 'font-lock-builtin-face))
+ (if (string-match "XEmacs\\|Lucid" emacs-version)
+ (cons sqlplus-oracle-extra-builtin-functions-re 'font-lock-preprocessor-face)
+ (cons sqlplus-oracle-extra-builtin-functions-re 'font-lock-builtin-face))
+ ;; SQL*Plus variable names, like '&name' or '&&name'
+ (cons "\\(\\b&[&a-zA-Z$_#0-9]+\\b\\)" 'font-lock-variable-name-face))
+ result
+ ;; Function calls
+ (when (>= level 2)
+ (list (cons "\\b\\(\\([a-zA-Z$_#0-9]+\\b\\)\\.\\)?\\(\\b[a-zA-Z$_#0-9]+\\b\\)\\s-*("
+ '((2 font-lock-type-face nil t)
+ (3 font-lock-function-name-face nil nil)))))))
+ result))
+
+(defun sqlplus-mode nil
+ "Mode for editing and executing SQL*Plus commands. Entry into this mode runs the hook
+'sqlplus-mode-hook'.
+
+Use \\[sqlplus] to start the SQL*Plus interpreter.
+
+Just position the cursor on or near the SQL*Plus statement you
+wish to send and press '\\[sqlplus-send-current]' to run it and
+display the results.
+
+Mode Specific Bindings:
+
+\\{sqlplus-mode-map}"
+ (interactive)
+ (run-hooks 'change-major-mode-hook)
+ (setq major-mode 'sqlplus-mode
+ mode-name "SQL*Plus")
+ (use-local-map sqlplus-mode-map)
+ (set-syntax-table sqlplus-mode-syntax-table)
+ (make-local-variable 'comment-start)
+ (make-local-variable 'comment-end)
+ (setq comment-start "/* "
+ comment-end " */")
+ (orcl-mode 1)
+ (setq sqlplus-font-lock-keywords-1 (sqlplus-set-font-lock-emacs-structures-for-level 1 major-mode)
+ sqlplus-font-lock-keywords-2 (sqlplus-set-font-lock-emacs-structures-for-level 2 major-mode)
+ sqlplus-font-lock-keywords-3 (sqlplus-set-font-lock-emacs-structures-for-level 3 major-mode))
+ (when (featurep 'plsql)
+ (set (make-local-variable 'indent-line-function)
+ (lambda () (interactive) (condition-case err (funcall (symbol-function 'plsql-indent)) (error (message "Error: %S" err)))))
+ (set (make-local-variable 'indent-region-function) 'plsql-indent-region)
+ (set (make-local-variable 'align-mode-rules-list) 'plsql-align-rules-list))
+ (setq font-lock-defaults sqlplus-font-lock-defaults)
+ (unless sqlplus-connect-string
+ (let ((potential-connect-string (sqlplus-get-potential-connect-string (buffer-file-name))))
+ (when (and potential-connect-string
+ (get-process (sqlplus-get-process-name potential-connect-string)))
+ (setq sqlplus-connect-string potential-connect-string))))
+ (set (make-local-variable 'font-lock-extend-after-change-region-function)
+ (lambda (beg end old-len)
+ (cons (save-excursion (goto-char beg) (sqlplus-find-begin-of-sqlplus-command))
+ (save-excursion (goto-char end) (sqlplus-find-end-of-sqlplus-command)))))
+ (unless font-lock-sqlplus-face
+ (copy-face 'default 'font-lock-sqlplus-face)
+ (setq font-lock-sqlplus-face 'font-lock-sqlplus-face))
+ (turn-on-font-lock)
+ (unless frame-background-mode
+ (setq frame-background-mode (if (< (sqlplus-color-percentage (face-background 'default)) 50) 'dark 'light)))
+ (setq imenu-generic-expression '((nil "^--[ ]*\\([^;.\n]*\\)" 1)))
+ ;; if input buffer has sqlplus-mode then prepare it for command under cursor selection
+ (when (and (eq major-mode 'sqlplus-mode) (null sqlplus-begin-command-overlay-arrow-position))
+ (setq sqlplus-begin-command-overlay-arrow-position (make-marker)
+ sqlplus-end-command-overlay-arrow-position (make-marker)
+ sqlplus-command-overlay (make-overlay 1 1))
+ (overlay-put sqlplus-command-overlay 'face 'sqlplus-command-highlight-face)
+ (when (and (>= emacs-major-version 22) (not (memq 'sqlplus-begin-command-overlay-arrow-position overlay-arrow-variable-list)))
+ (push 'sqlplus-begin-command-overlay-arrow-position overlay-arrow-variable-list))
+ (when (and (>= emacs-major-version 22) (not (memq 'sqlplus-end-command-overlay-arrow-position overlay-arrow-variable-list)))
+ (push 'sqlplus-end-command-overlay-arrow-position overlay-arrow-variable-list))
+ (add-hook 'pre-command-hook (lambda ()
+ (set-marker sqlplus-begin-command-overlay-arrow-position nil)
+ (set-marker sqlplus-end-command-overlay-arrow-position nil))
+ nil t)
+ (add-hook 'post-command-hook (lambda ()
+ (sqlplus-clear-mouse-selection)
+ (set-marker sqlplus-begin-command-overlay-arrow-position nil)
+ (set-marker sqlplus-end-command-overlay-arrow-position nil))
+ nil t))
+ (run-hooks 'sqlplus-mode-hook))
+
+(defun sqlplus-color-percentage (color)
+ (truncate (* (/ (/ (reduce '+ (color-values color)) 3.0) 65535.0) 100.0)))
+
+(defun sqlplus-get-potential-connect-string (file-path)
+ (when file-path
+ (let* ((file-name (file-name-nondirectory file-path))
+ (extension (file-name-extension file-name))
+ (case-fold-search t))
+ (when (and extension
+ (string-match (concat "^" sqlplus-session-file-extension "$") extension)
+ (string-match "@" file-name))
+ (car (refine-connect-string (file-name-sans-extension file-name)))))))
+
+(defun sqlplus-check-connection ()
+ (if orcl-mode
+ (unless sqlplus-connect-string
+ (let* ((potential-connect-string (sqlplus-get-potential-connect-string (buffer-file-name)))
+ (connect-string (car (sqlplus-read-connect-string nil (or potential-connect-string
+ (caar (sqlplus-divide-connect-strings)))))))
+ (sqlplus connect-string (buffer-name))))
+ (error "Current buffer is not determined to communicate with Oracle")))
+
+;;; Utilitities
+
+(defun sqlplus-echo-in-buffer (buffer-name string &optional force-display hide-after-head)
+ "Displays string in the named buffer, creating the buffer if needed. If force-display is true, the buffer will appear
+if not already shown."
+ (let ((buffer (get-buffer buffer-name)))
+ (when buffer
+ (if force-display (display-buffer buffer))
+ (with-current-buffer buffer
+ (while (and (> (buffer-size) sqlplus-output-buffer-max-size)
+ (progn (goto-char (point-min))
+ (unless (eobp) (forward-char))
+ (re-search-forward (concat "^" (regexp-quote sqlplus-output-separator)) nil t)))
+ (delete-region 1 (- (point) (length sqlplus-output-separator))))
+
+ (goto-char (point-max))
+ (let ((start-point (point)))
+ (insert string)
+ (when hide-after-head
+ (let ((from-pos (string-match "\n" string))
+ (keymap (make-sparse-keymap))
+ overlay)
+ (when from-pos
+ (setq overlay (make-overlay (+ start-point from-pos) (- (+ start-point (length string)) 2)))
+ (when (or (not (consp buffer-invisibility-spec))
+ (not (assq 'hide-symbol buffer-invisibility-spec)))
+ (add-to-invisibility-spec '(hide-symbol . t)))
+ (overlay-put overlay 'invisible 'hide-symbol)
+ (put-text-property start-point (- (+ start-point (length string)) 2) 'help-echo string)
+ (put-text-property start-point (- (+ start-point (length string)) 2) 'mouse-face 'highlight)
+ (put-text-property start-point (- (+ start-point (length string)) 2) 'keymap sqlplus-output-buffer-keymap)))))
+ (if force-display
+ (set-window-point (get-buffer-window buffer-name) (point-max)))))))
+
+(defun sqlplus-verify-buffer (connect-string)
+ (let ((output-buffer-name (sqlplus-get-output-buffer-name connect-string))
+ (process-buffer-name (sqlplus-get-process-buffer-name connect-string)))
+ (when (not (get-buffer process-buffer-name))
+ (sqlplus-shutdown connect-string)
+ (error "No SQL*Plus session! Use 'M-x sqlplus' to start the SQL*Plus interpreter"))
+ (unless (get-buffer-process process-buffer-name)
+ (sqlplus-shutdown connect-string)
+ (error "Buffer '%s' is not talking to anybody!" output-buffer-name)))
+ t)
+
+(defun sqlplus-get-context (connect-string &optional id)
+ (let ((process-buffer (sqlplus-get-process-buffer-name connect-string)))
+ (when process-buffer
+ (with-current-buffer process-buffer
+ (when id
+ (while (and sqlplus-command-contexts
+ (not (equal (sqlplus-get-context-value (car sqlplus-command-contexts) :id) id)))
+ (setq sqlplus-command-contexts (cdr sqlplus-command-contexts))))
+ (car sqlplus-command-contexts)))))
+
+(defun sqlplus-get-context-value (context var-symbol)
+ (cdr (assq var-symbol context)))
+
+(defun sqlplus-set-context-value (context var-symbol value)
+ (let ((association (assq var-symbol context)))
+ (if association
+ (setcdr association value)
+ (setcdr context (cons (cons var-symbol value) (cdr context))))
+ context))
+
+(defun sqlplus-mark-current ()
+ "Marks the current SQL for sending to the SQL*Plus process. Marks are placed around a region defined by empty lines."
+ (let (begin end empty-line-p empty-line-p next-line-included tail-p)
+ (save-excursion
+ (beginning-of-line)
+ (setq empty-line-p (when (looking-at "^[ \t]*\\(\n\\|\\'\\)") (point)))
+ (setq next-line-included (and empty-line-p (save-excursion (skip-chars-forward " \t\n") (> (current-column) 0))))
+ (setq tail-p (and empty-line-p
+ (or (bobp) (save-excursion (beginning-of-line 0) (looking-at "^[ \t]*\n"))))))
+ (unless tail-p
+ (save-excursion
+ (end-of-line)
+ (re-search-backward "\\`\\|\n[\r\t ]*\n[^ \t]" nil t)
+ (skip-syntax-forward "-")
+ (setq begin (point)))
+ (save-excursion
+ (beginning-of-line)
+ (re-search-forward "\n[\r\t ]*\n[^ \t]\\|\\'" nil t)
+ (unless (zerop (length (match-string 0)))
+ (backward-char 1))
+ (skip-syntax-backward "-")
+ (setq end (or (and (not next-line-included) empty-line-p) (point)))))
+ (cons begin end)))
+
+;;; Transmission Commands
+
+(defun sqlplus-send-current (arg &optional html)
+ "Send the current SQL command(s) to the SQL*Plus process. With argument, show results in raw form."
+ (interactive "P")
+ (sqlplus-check-connection)
+ (when (buffer-file-name)
+ (condition-case err
+ (save-buffer)
+ (error (message (error-message-string err)))))
+ (let ((region (sqlplus-mark-current)))
+ (setq sqlplus-region-beginning-pos (car region)
+ sqlplus-region-end-pos (cdr region)))
+ (if (and sqlplus-region-beginning-pos sqlplus-region-end-pos)
+ (sqlplus-send-region arg sqlplus-region-beginning-pos sqlplus-region-end-pos nil html)
+ (error "Point doesn't indicate any command to execute")))
+
+(defun sqlplus-send-current-html (arg)
+ (interactive "P")
+ (sqlplus-send-current arg t))
+
+
+;;; SQLPLUS-Output Buffer Operations -
+
+(defun sqlplus--show-buffer (connect-string fcn args)
+ (let* ((output-buffer-name (sqlplus-get-output-buffer-name connect-string)))
+ (sqlplus-verify-buffer connect-string)
+ (if sqlplus-suppress-show-output-buffer
+ (with-current-buffer (get-buffer output-buffer-name)
+ (if fcn (condition-case err (apply fcn args) (error (message (error-message-string err))))))
+ (if (not (eq (window-buffer (selected-window)) (get-buffer output-buffer-name)))
+ (switch-to-buffer-other-window output-buffer-name))
+ (if fcn (condition-case err (apply fcn args) (error (message (error-message-string err))))))))
+
+(defun sqlplus-show-buffer (&optional connect-string fcn &rest args)
+ "Makes the SQL*Plus output buffer visible in the other window."
+ (interactive)
+ (setq connect-string (or connect-string sqlplus-connect-string))
+ (unless connect-string
+ (error "Current buffer is disconnected!"))
+ (let ((output-buffer-name (sqlplus-get-output-buffer-name connect-string)))
+ (if (and output-buffer-name
+ (eq (current-buffer) (get-buffer output-buffer-name)))
+ (sqlplus--show-buffer connect-string fcn args)
+ (save-excursion
+ (save-selected-window
+ (sqlplus--show-buffer connect-string fcn args))))))
+
+(fset 'sqlplus-buffer-display-window 'sqlplus-show-buffer)
+
+(defun sqlplus-buffer-scroll-up (&optional connect-string)
+ "Scroll-up in the SQL*Plus output buffer window."
+ (interactive)
+ (sqlplus-show-buffer (or connect-string sqlplus-connect-string) 'scroll-up))
+
+(defun sqlplus-buffer-scroll-down (&optional connect-string)
+ "Scroll-down in the SQL*Plus output buffer window."
+ (interactive)
+ (sqlplus-show-buffer (or connect-string sqlplus-connect-string) 'scroll-down))
+
+(defun sqlplus-scroll-left (num)
+ (call-interactively 'scroll-left))
+
+(defun sqlplus-scroll-right (num)
+ (call-interactively 'scroll-right))
+
+(defun sqlplus-buffer-scroll-left (num &optional connect-string)
+ "Scroll-left in the SQL*Plus output buffer window."
+ (interactive "p")
+ (sqlplus-show-buffer (or connect-string sqlplus-connect-string) 'sqlplus-scroll-left (* num (/ (window-width) 2))))
+
+(defun sqlplus-buffer-scroll-right (num &optional connect-string)
+ "Scroll-right in the SQL*Plus output buffer window."
+ (interactive "p")
+ (sqlplus-show-buffer (or connect-string sqlplus-connect-string) 'sqlplus-scroll-right (* num (/ (window-width) 2))))
+
+(defun sqlplus-buffer-mark-current (&optional connect-string)
+ "Mark the current position in the SQL*Plus output window."
+ (sqlplus-show-buffer (or connect-string sqlplus-connect-string) 'sqlplus-buffer-make-mark))
+
+(defun sqlplus-buffer-make-mark (&optional connect-string)
+ "Set the sqlplus-buffer-marker."
+ (setq sqlplus-buffer-mark (copy-marker (point))))
+
+(defun sqlplus-buffer-redisplay-current (&optional connect-string)
+ "Go to the current sqlplus-buffer-mark."
+ (interactive)
+ (sqlplus-show-buffer (or connect-string sqlplus-connect-string) 'sqlplus-goto-mark))
+
+(defun sqlplus-goto-mark ()
+ (goto-char sqlplus-buffer-mark)
+ (recenter 0))
+
+(defun sqlplus-buffer-top (&optional connect-string)
+ "Goto the top of the SQL*Plus output buffer."
+ (interactive)
+ (sqlplus-show-buffer (or connect-string sqlplus-connect-string) 'sqlplus-beginning-of-buffer))
+
+(defun sqlplus-beginning-of-buffer nil (goto-char (point-min)))
+
+(defun sqlplus-buffer-bottom (&optional connect-string)
+ "Goto the bottom of the SQL*Plus output buffer."
+ (interactive)
+ (sqlplus-show-buffer (or connect-string sqlplus-connect-string) 'sqlplus-end-of-buffer))
+
+(defun sqlplus-end-of-buffer nil (goto-char (point-max)) (unless sqlplus-suppress-show-output-buffer (recenter -1)))
+
+(defun sqlplus-buffer-erase (&optional connect-string)
+ "Clear the SQL output buffer."
+ (interactive)
+ (sqlplus-show-buffer (or connect-string sqlplus-connect-string) 'erase-buffer))
+
+(defun sqlplus-buffer-next-command (&optional connect-string)
+ "Search for the next command in the SQL*Plus output buffer."
+ (interactive)
+ (sqlplus-show-buffer (or connect-string sqlplus-connect-string) 'sqlplus-next-command))
+
+(defun sqlplus-next-command nil
+ "Search for the next command in the SQL*Plus output buffer."
+ (cond ((re-search-forward (concat "^" (regexp-quote sqlplus-output-separator)) nil t)
+ (forward-line 2)
+ (recenter 0))
+ (t (beep) (message "No more commands."))))
+
+(defun sqlplus-buffer-prev-command (&optional connect-string)
+ "Search for the previous command in the SQL*Plus output buffer."
+ (interactive)
+ (sqlplus-show-buffer (or connect-string sqlplus-connect-string) 'sqlplus-previous-command))
+
+(defun sqlplus-previous-command nil
+ "Search for the previous command in the SQL*Plus output buffer."
+ (let ((start (point)))
+ (re-search-backward (concat "^" (regexp-quote sqlplus-output-separator)) nil t)
+ (cond ((re-search-backward (concat "^" (regexp-quote sqlplus-output-separator)) nil t)
+ (forward-line 2)
+ (recenter 0))
+ (t
+ (message "No more commands.") (beep)
+ (goto-char start)))))
+
+(defun sqlplus-send-interrupt nil
+ "Send an interrupt the the SQL*Plus interpreter process."
+ (interactive)
+ (sqlplus-check-connection)
+ (let ((connect-string sqlplus-connect-string))
+ (sqlplus-verify-buffer connect-string)
+ (interrupt-process (get-process (sqlplus-get-process-name connect-string)))))
+
+
+;;; SQL Interpreter
+
+(defun refine-connect-string (connect-string &optional no-slash)
+ "Z connect stringa do SQL*Plusa wycina haslo, tj. np. 'ponaglenia/x@SID' -> ('ponaglenia@SID' . 'x')."
+ (let (result passwd)
+ (when connect-string
+ (setq result
+ (if (string-match "\\(\\`[^@/]*?\\)/\\([^/@:]*\\)\\(.*?\\'\\)" connect-string)
+ (progn
+ (setq passwd (match-string 2 connect-string))
+ (concat (match-string 1 connect-string) (match-string 3 connect-string)))
+ connect-string))
+ (when no-slash
+ (while (string-match "/" result)
+ (setq result (replace-match "!" nil t result)))))
+ (cons result passwd)))
+
+(defun sqlplus-get-output-buffer-name (connect-string)
+ (concat "*" (car (refine-connect-string connect-string)) "*"))
+
+(defun sqlplus-get-input-buffer-name (connect-string)
+ (concat (car (refine-connect-string connect-string)) (concat "." sqlplus-session-file-extension)))
+
+(defun sqlplus-get-history-buffer-name (connect-string)
+ (concat " " (car (refine-connect-string connect-string)) "-hist"))
+
+(defun sqlplus-get-process-buffer-name (connect-string)
+ (concat " " (car (refine-connect-string connect-string))))
+
+(defun sqlplus-get-process-name (connect-string)
+ (car (refine-connect-string connect-string)))
+
+(defun sqlplus-read-connect-string (&optional connect-string default-connect-string)
+ "Ask user for connect string with password, with DEFAULT-CONNECT-STRING proposed.
+DEFAULT-CONNECT-STRING nil means first inactive connect-string on sqlplus-connect-strings-alist.
+CONNECT-STRING non nil means ask for password only if CONNECT-STRING has no password itself.
+Returns (qualified-connect-string refined-connect-string)."
+ (unless default-connect-string
+ (let ((inactive-connect-strings (cdr (sqlplus-divide-connect-strings))))
+ (setq default-connect-string
+ (some (lambda (pair)
+ (when (member (car pair) inactive-connect-strings) (car pair)))
+ sqlplus-connect-strings-alist))))
+ (let* ((cs (downcase (or connect-string
+ (read-string (format "Connect string%s: " (if default-connect-string (format " [default %s]" default-connect-string) ""))
+ nil 'sqlplus-connect-string-history default-connect-string))))
+ (pair (refine-connect-string cs))
+ (refined-cs (car pair))
+ (password (cdr pair))
+ (was-password password)
+ (association (assoc refined-cs sqlplus-connect-strings-alist)))
+ (unless (or password current-prefix-arg)
+ (setq password (cdr association)))
+ (unless password
+ (setq password (read-passwd (format "Password for %s: " cs))))
+ (unless was-password
+ (if (string-match "@" cs)
+ (setq cs (replace-match (concat "/" password "@") t t cs))
+ (setq cs (concat cs "/" password))))
+ (list cs refined-cs)))
+
+(defun sqlplus (connect-string &optional input-buffer-name output-buffer-flag)
+ "Create SQL*Plus process connected to Oracle according to
+CONNECT-STRING, open (or create) input buffer with specified
+name (do not create if INPUT-BUFFER-NAME is nil).
+OUTPUT-BUFFER-FLAG has meanings: nil or SHOW-OUTPUT-BUFFER -
+create output buffer and show it, DONT-SHOW-OUTPUT-BUFFER -
+create output buffer but dont show it, DONT-CREATE-OUTPUT-BUFFER
+- dont create output buffer"
+ (interactive (let ((pair (sqlplus-read-connect-string)))
+ (list (car pair) (concat (cadr pair) (concat "." sqlplus-session-file-extension)))))
+ (set (make-local-variable 'comment-start-skip) "/\\*+ *\\|--+ *")
+ (set (make-local-variable 'comment-multi-line) t)
+ ;; create sqlplus-session-cache-dir if not exists
+ (when sqlplus-session-cache-dir
+ (condition-case err
+ (unless (file-directory-p sqlplus-session-cache-dir)
+ (make-directory sqlplus-session-cache-dir t))
+ (error (message (error-message-string err)))))
+ (let* ((was-input-buffer (and input-buffer-name (get-buffer input-buffer-name)))
+ (input-buffer (or was-input-buffer
+ (when input-buffer-name
+ (if sqlplus-session-cache-dir
+ (let ((buf (find-file-noselect
+ (concat
+ (file-name-as-directory sqlplus-session-cache-dir)
+ (car (refine-connect-string connect-string t))
+ (concat "." sqlplus-session-file-extension)))))
+ (condition-case nil
+ (with-current-buffer buf
+ (rename-buffer input-buffer-name))
+ (error nil))
+ buf)
+ (get-buffer-create input-buffer-name)))))
+ (output-buffer (or (and (not (eq output-buffer-flag 'dont-create-output-buffer))
+ (get-buffer-create (sqlplus-get-output-buffer-name connect-string)))
+ (get-buffer (sqlplus-get-output-buffer-name connect-string))))
+ (process-name (sqlplus-get-process-name connect-string))
+ (process-buffer-name (sqlplus-get-process-buffer-name connect-string))
+ (was-process (get-process process-name))
+ process-created
+ (process (or was-process
+ (let (proc)
+ (puthash (car (refine-connect-string connect-string))
+ (make-sqlplus-global-struct :font-lock-regexps (make-hash-table :test 'equal)
+ :side-view-buffer (when (featurep 'ide-skel) (sqlplus-create-side-view-buffer connect-string)))
+ sqlplus-global-structures)
+ ;; push current connect string to the beginning of sqlplus-connect-strings-alist
+ (let* ((refined-cs (refine-connect-string connect-string)))
+ (setq sqlplus-connect-strings-alist (delete* (car refined-cs) sqlplus-connect-strings-alist :test 'string= :key 'car))
+ (push refined-cs sqlplus-connect-strings-alist))
+ (sqlplus-get-history-buffer connect-string)
+ (when output-buffer
+ (with-current-buffer output-buffer
+ (erase-buffer)))
+ (setq process-created t
+ proc (start-process process-name process-buffer-name sqlplus-command connect-string))
+ (set-process-sentinel proc (lambda (process event)
+ (let ((proc-buffer (buffer-name (process-buffer process)))
+ (output-buffer (get-buffer (sqlplus-get-output-buffer-name (process-name process))))
+ err-msg
+ (exited-abnormally (string-match "\\`exited abnormally with code" event)))
+ (when output-buffer
+ (with-current-buffer output-buffer
+ (goto-char (point-max))
+ (insert (format "\n%s" event))
+ (when exited-abnormally
+ (setq sqlplus-connect-strings-alist
+ (delete* (car (refine-connect-string sqlplus-connect-string))
+ sqlplus-connect-strings-alist :test 'string= :key 'car))
+ (when proc-buffer
+ (with-current-buffer proc-buffer
+ (save-excursion
+ (goto-char (point-min))
+ (when (re-search-forward "^ORA-[0-9]+.*$" nil t)
+ (setq err-msg (match-string 0))))
+ (erase-buffer)))
+ (when err-msg
+ (insert (concat "\n" err-msg)))))))))
+ (process-kill-without-query proc (not sqlplus-kill-processes-without-query-on-exit-flag))
+ (set-process-filter proc 'sqlplus-process-filter)
+ (with-current-buffer (get-buffer process-buffer-name)
+ (setq sqlplus-process-p connect-string))
+ proc))))
+ (when output-buffer
+ (with-current-buffer output-buffer
+ (orcl-mode 1)
+ (set (make-local-variable 'line-move-ignore-invisible) t)
+ (setq sqlplus-output-buffer-keymap (make-sparse-keymap)
+ sqlplus-connect-string connect-string
+ truncate-lines t)
+ (define-key sqlplus-output-buffer-keymap "\C-m" (lambda () (interactive) (sqlplus-output-buffer-hide-show)))
+ (define-key sqlplus-output-buffer-keymap [S-mouse-2] (lambda (event) (interactive "@e") (sqlplus-output-buffer-hide-show)))
+ (local-set-key [S-return] 'sqlplus-send-user-string)))
+ (when input-buffer
+ (with-current-buffer input-buffer
+ (setq sqlplus-connect-string connect-string)))
+ ;; if input buffer was created then switch it to sqlplus-mode
+ (when (and input-buffer (not was-input-buffer))
+ (with-current-buffer input-buffer
+ (unless (eq major-mode 'sqlplus-mode)
+ (sqlplus-mode)))
+ (when font-lock-mode (font-lock-mode 1))
+ (set-window-buffer (sqlplus-get-workbench-window) input-buffer))
+ ;; if process was created then get information for font lock
+ (when process-created
+ (sqlplus-execute connect-string nil nil (sqlplus-initial-strings) 'no-echo)
+ (let ((plsql-font-lock-level (sqlplus-font-lock-value-in-major-mode font-lock-maximum-decoration 'plsql-mode))
+ (sqlplus-font-lock-level (sqlplus-font-lock-value-in-major-mode font-lock-maximum-decoration 'sqlplus-mode)))
+ (when (or (equal plsql-font-lock-level t) (equal sqlplus-font-lock-level t)
+ (and (numberp plsql-font-lock-level) (>= plsql-font-lock-level 2))
+ (and (numberp sqlplus-font-lock-level) (>= sqlplus-font-lock-level 2)))
+ (sqlplus-hidden-select connect-string
+ (concat "select distinct column_name, 'COLUMN', ' ' from user_tab_columns where column_name not like 'BIN$%'\n"
+ "union\n"
+ "select username, 'SCHEMA', ' ' from all_users where username not like 'BIN$%'\n"
+ "union\n"
+ "select object_name, object_type, decode( status, 'INVALID', 'I', ' ' ) from user_objects\n"
+ "where object_name not like 'BIN$%'\n"
+ "and object_type in ('VIEW', 'SEQUENCE', 'PACKAGE', 'TRIGGER', 'TABLE', 'SYNONYM', 'INDEX', 'FUNCTION', 'PROCEDURE');")
+ 'sqlplus-my-handler))))
+ (when input-buffer
+ (save-selected-window
+ (when (equal (selected-window) (sqlplus-get-side-window))
+ (select-window (sqlplus-get-workbench-window)))
+ (switch-to-buffer input-buffer)))
+ (let ((saved-window (cons (selected-window) (window-buffer (selected-window))))
+ (input-buffer (get-buffer (sqlplus-get-input-buffer-name connect-string))))
+ (when (or (eq output-buffer-flag 'show-output-buffer) (null output-buffer-flag))
+ (sqlplus-show-buffer connect-string))
+ (if (window-live-p (car saved-window))
+ (select-window (car saved-window))
+ (if (get-buffer-window (cdr saved-window))
+ (select-window (get-buffer-window (cdr saved-window)))
+ (when (and input-buffer
+ (get-buffer-window input-buffer))
+ (select-window (get-buffer-window input-buffer))))))
+ ;; executing initial sequence (between /* init */ and /* end */)
+ (when (and (not was-process) input-buffer)
+ (with-current-buffer input-buffer
+ (save-excursion
+ (goto-char (point-min))
+ (when (re-search-forward (concat "^" sqlplus-init-sequence-start-regexp "\\s-*\n\\(\\(.\\|\n\\)*?\\)\n" sqlplus-init-sequence-end-regexp) nil t)
+ (when (match-string 1)
+ (sqlplus-send-region nil (match-beginning 1) (match-end 1) t))))))))
+
+;; Command under cursor selection mechanism
+(when window-system
+ (run-with-idle-timer 0 t (lambda () (when (eq major-mode 'sqlplus-mode) (sqlplus-highlight-current-sqlplus-command))))
+ (run-with-idle-timer 1 t (lambda ()
+ (when (eq major-mode 'sqlplus-mode)
+ (if (>= (sqlplus-color-percentage (face-background 'default)) 50)
+ (set-face-attribute 'sqlplus-command-highlight-face nil
+ :background (sqlplus-shine-color (face-background 'default) (- sqlplus-command-highlighting-percentage)))
+ (set-face-attribute 'sqlplus-command-highlight-face nil
+ :background (sqlplus-shine-color (face-background 'default) sqlplus-command-highlighting-percentage)))))))
+
+(defun sqlplus-output-buffer-hide-show ()
+ (if (and (consp buffer-invisibility-spec)
+ (assq 'hide-symbol buffer-invisibility-spec))
+ (remove-from-invisibility-spec '(hide-symbol . t))
+ (add-to-invisibility-spec '(hide-symbol . t)))
+ (let ((overlay (car (overlays-at (point)))))
+ (when overlay
+ (goto-char (overlay-start overlay))
+ (beginning-of-line)))
+ (recenter 0))
+
+(defun sqlplus-font-lock-value-in-major-mode (alist mode-symbol)
+ (if (consp alist)
+ (cdr (or (assq mode-symbol alist) (assq t alist)))
+ alist))
+
+(defun sqlplus-get-history-buffer (connect-string)
+ (let* ((history-buffer-name (sqlplus-get-history-buffer-name connect-string))
+ (history-buffer (get-buffer history-buffer-name)))
+ (unless history-buffer
+ (setq history-buffer (get-buffer-create history-buffer-name))
+ (with-current-buffer history-buffer
+ (setq sqlplus-cs connect-string)
+ (add-hook 'kill-buffer-hook 'sqlplus-history-buffer-kill-function nil t)))
+ history-buffer))
+
+(defun sqlplus-history-buffer-kill-function ()
+ (when sqlplus-history-dir
+ (condition-case err
+ (progn
+ (unless (file-directory-p sqlplus-history-dir)
+ (make-directory sqlplus-history-dir t))
+ (append-to-file 1 (buffer-size) (concat (file-name-as-directory sqlplus-history-dir) (car (refine-connect-string sqlplus-cs t)) "-hist.txt")))
+ (error (message (error-message-string err))))))
+
+(defun sqlplus-soft-shutdown (connect-string)
+ (unless (some (lambda (buffer)
+ (with-current-buffer buffer
+ (and sqlplus-connect-string
+ (equal (car (refine-connect-string sqlplus-connect-string))
+ (car (refine-connect-string connect-string))))))
+ (buffer-list))
+ (sqlplus-shutdown connect-string)))
+
+(defun sqlplus-shutdown (connect-string &optional dont-kill-input-buffer)
+ "Kill input, output and process buffer for specified CONNECT-STRING."
+ (let ((input-buffers (delq nil (mapcar (lambda (buffer) (with-current-buffer buffer
+ (when (and (eq major-mode 'sqlplus-mode)
+ (equal (car (refine-connect-string sqlplus-connect-string))
+ (car (refine-connect-string connect-string))))
+ buffer))) (buffer-list))))
+ (output-buffer (get-buffer (sqlplus-get-output-buffer-name connect-string)))
+ (history-buffer (get-buffer (sqlplus-get-history-buffer-name connect-string)))
+ (process-buffer (get-buffer (sqlplus-get-process-buffer-name connect-string))))
+ (when history-buffer
+ (kill-buffer history-buffer))
+ (when (and process-buffer
+ (with-current-buffer process-buffer sqlplus-process-p))
+ (when (get-process (sqlplus-get-process-name connect-string))
+ (delete-process (sqlplus-get-process-name connect-string)))
+ (kill-buffer process-buffer))
+ (when (and output-buffer
+ (with-current-buffer output-buffer sqlplus-connect-string))
+ (when (buffer-file-name output-buffer)
+ (with-current-buffer output-buffer
+ (save-buffer)))
+ (kill-buffer output-buffer))
+ (dolist (input-buffer input-buffers)
+ (when (buffer-file-name input-buffer)
+ (with-current-buffer input-buffer
+ (save-buffer)))
+ (unless dont-kill-input-buffer
+ (kill-buffer input-buffer)))))
+
+(defun sqlplus-magic ()
+ (let (bottom-message pos)
+ (delete-region (point) (progn (beginning-of-line 3) (point)))
+ (setq bottom-message (buffer-substring (point) (save-excursion (end-of-line) (point))))
+ (setq pos (point))
+ (when (re-search-forward "^-------" nil t)
+ (delete-region pos (progn (beginning-of-line 2) (point)))
+ (while (re-search-forward "|" (save-excursion (end-of-line) (point)) t)
+ (save-excursion
+ (backward-char)
+ (if (or (bolp) (save-excursion (forward-char) (eolp)))
+ (while (member (char-after) '(?- ?|))
+ (delete-char 1)
+ (sqlplus-next-line))
+ (while (member (char-after) '(?- ?|))
+ (delete-char 1)
+ (insert " ")
+ (backward-char)
+ (sqlplus-next-line)))))
+ (beginning-of-line 3)
+ (re-search-forward "^---" nil t)
+ (goto-char (match-beginning 0))
+ (delete-region (point) (point-max))
+ (insert (format "%s\n\n%s\n" sqlplus-repfooter bottom-message))
+ )))
+
+
+(defun sqlplus-process-command-output (context connect-string begin end interrupted)
+ (let* ((output-buffer-name (sqlplus-get-output-buffer-name connect-string))
+ (output-buffer (get-buffer output-buffer-name))
+ (process-buffer (sqlplus-get-process-buffer-name connect-string))
+ str
+ error-list show-errors-p
+ slips-count
+ (user-function (sqlplus-get-context-value context :user-function))
+ (result-function (sqlplus-get-context-value context :result-table-function))
+ (last-compiled-file-path (sqlplus-get-context-value context :last-compiled-file-path))
+ (compilation-expected (sqlplus-get-context-value context :compilation-expected))
+ (columns-count (sqlplus-get-context-value context :columns-count))
+ (sql (sqlplus-get-context-value context :sql))
+ (original-buffer (current-buffer))
+ explain-plan
+ table-data)
+ (setq slips-count columns-count)
+ (with-temp-buffer
+ (insert-buffer-substring original-buffer begin end)
+ (goto-char (point-min))
+ (while (re-search-forward (concat "\n+" (regexp-quote sqlplus-page-separator) "\n") nil t)
+ (replace-match "\n"))
+ (goto-char (point-min))
+ (setq str (buffer-string))
+ (while (string-match (concat "^" (regexp-quote sqlplus-repfooter) "\n") str)
+ (setq str (replace-match "" nil t str)))
+
+ ;; compilation errors?
+ (goto-char (point-min))
+ (skip-chars-forward "\n\t ")
+ (when (and ;;(not (equal (point) (point-max)))
+ plsql-auto-parse-errors-flag
+ output-buffer
+ last-compiled-file-path
+ (re-search-forward "^\\(LINE/COL\\|\\(SP2\\|CPY\\|ORA\\)-[0-9]\\{4,5\\}:\\|No errors\\|Nie ma b..d.w\\|Keine Fehler\\|No hay errores\\|Identificateur erron\\|Nessun errore\\|N..o h.. erros\\)" nil t))
+ (goto-char (point-min))
+ (setq error-list (plsql-parse-errors last-compiled-file-path)
+ show-errors-p compilation-expected))
+
+ ;; explain?
+ (let ((case-fold-search t))
+ (goto-char (point-min))
+ (skip-chars-forward "\n\t ")
+ (when (and sql
+ (string-match "^[\n\t ]*explain\\>" sql)
+ (looking-at "Explained[.]"))
+ (delete-region (point-min) (point-max))
+ (setq str "")
+ (sqlplus--send connect-string
+ "select plan_table_output from table(dbms_xplan.display(null, null, 'TYPICAL'));"
+ nil
+ 'no-echo
+ nil)))
+
+ ;; plan table output?
+ (goto-char (point-min))
+ (skip-chars-forward "\n\t ")
+ (when (and (looking-at "^PLAN_TABLE_OUTPUT\n")
+ sqlplus-format-output-tables-flag
+ (not compilation-expected)
+ (not show-errors-p))
+ (sqlplus-magic) ;; TODO
+ (goto-char (point-min))
+ (re-search-forward "^[^\n]+" nil t)
+ (delete-region (point-min) (progn (beginning-of-line) (point)))
+ ;; (setq slips-count 1)
+ (setq explain-plan t)
+ (setq table-data (save-excursion (sqlplus-parse-output-table interrupted))))
+
+ ;; query result?
+ (goto-char (point-min))
+ (when (and sqlplus-format-output-tables-flag
+ (not compilation-expected)
+ (not table-data)
+ (not show-errors-p)
+ (not (re-search-forward "^LINE/COL\\>" nil t)))
+ (setq table-data (save-excursion (sqlplus-parse-output-table interrupted))))
+ (if user-function
+ (funcall user-function connect-string context (or table-data str))
+ (when output-buffer
+ (with-current-buffer output-buffer
+ (save-excursion
+ (goto-char (point-max))
+ (cond (show-errors-p
+ (insert str)
+ (plsql-display-errors (file-name-directory last-compiled-file-path) error-list)
+ (let* ((plsql-buf (get-file-buffer last-compiled-file-path))
+ (win (when plsql-buf (car (get-buffer-window-list plsql-buf)))))
+ (when win
+ (select-window win))))
+ ((and table-data
+ (car table-data))
+ (if result-function
+ (funcall result-function connect-string table-data)
+ (let ((b (point))
+ (warning-regexp (regexp-opt sqlplus-explain-plan-warning-regexps))
+ e)
+ (sqlplus-draw-table table-data slips-count)
+ (when interrupted (insert ". . .\n"))
+ (setq e (point))
+ (when explain-plan
+ (save-excursion
+ (goto-char b)
+ (while (re-search-forward warning-regexp nil t)
+ (add-text-properties (match-beginning 0) (match-end 0)
+ (list 'face (list (cons 'foreground-color "red") (list :weight 'bold)
+ (get-text-property (match-beginning 0) 'face))))))))))
+ (t
+ (insert str))))))))))
+
+(defun sqlplus-result-online (connect-string context string last-chunk)
+ (let ((output-buffer (sqlplus-get-output-buffer-name connect-string)))
+ (when output-buffer
+ (with-current-buffer output-buffer
+ (save-excursion
+ (goto-char (point-max))
+ (insert string))))))
+
+(defvar sqlplus-prompt-regexp (concat "^" (regexp-quote sqlplus-prompt-prefix) "\\([0-9]+\\)" (regexp-quote sqlplus-prompt-suffix)))
+
+(defvar sqlplus-page-separator-regexp (concat "^" (regexp-quote sqlplus-page-separator)))
+
+(defun sqlplus-process-filter (process string)
+ (with-current-buffer (process-buffer process)
+ (let* ((prompt-safe-len (+ (max (+ (length sqlplus-prompt-prefix) (length sqlplus-prompt-suffix)) (length sqlplus-page-separator)) 10))
+ current-context-id filter-input-processed
+ (connect-string sqlplus-process-p)
+ (chunk-begin-pos (make-marker))
+ (chunk-end-pos (make-marker))
+ (prompt-found (make-marker))
+ (context (sqlplus-get-context connect-string current-context-id))
+ (current-command-input-buffer-name (sqlplus-get-context-value context :current-command-input-buffer-name))
+ (current-command-input-buffer-names (when current-command-input-buffer-name (list current-command-input-buffer-name))))
+ (set-marker chunk-begin-pos (max 1 (- (point) prompt-safe-len)))
+ (goto-char (point-max))
+ (insert string)
+ (unless current-command-input-buffer-names
+ (setq current-command-input-buffer-names
+ (delq nil (mapcar (lambda (buffer) (with-current-buffer buffer
+ (when (and (memq major-mode '(sqlplus-mode plsql-mode))
+ sqlplus-connect-string
+ (equal (car (refine-connect-string sqlplus-connect-string))
+ (car (refine-connect-string connect-string))))
+ buffer))) (buffer-list)))))
+ ;; fan animation
+ (dolist (current-command-input-buffer-name current-command-input-buffer-names)
+ (let ((input-buffer (get-buffer current-command-input-buffer-name)))
+ (when input-buffer
+ (with-current-buffer input-buffer
+ (setq sqlplus-fan
+ (cond ((equal sqlplus-fan "|") "/")
+ ((equal sqlplus-fan "/") "-")
+ ((equal sqlplus-fan "-") "\\")
+ ((equal sqlplus-fan "\\") "|")))
+ (put-text-property 0 (length sqlplus-fan) 'face '((foreground-color . "red")) sqlplus-fan)
+ (put-text-property 0 (length sqlplus-fan) 'help-echo (sqlplus-get-context-value context :sql) sqlplus-fan)
+ (force-mode-line-update)))))
+ (unwind-protect
+ (while (not filter-input-processed)
+ (let* ((context (sqlplus-get-context connect-string current-context-id))
+ (dont-parse-result (sqlplus-get-context-value context :dont-parse-result))
+ (current-command-input-buffer-name (sqlplus-get-context-value context :current-command-input-buffer-name))
+ (result-function (sqlplus-get-context-value context :result-function))
+ (skip-to-the-end-of-command (sqlplus-get-context-value context :skip-to-the-end-of-command)))
+ (set-marker prompt-found nil)
+ (goto-char chunk-begin-pos)
+ (set-marker chunk-end-pos
+ (if (or (re-search-forward sqlplus-prompt-regexp nil t)
+ (re-search-forward "^SQL> " nil t))
+ (progn
+ (set-marker prompt-found (match-end 0))
+ (when (match-string 1)
+ (setq current-context-id (string-to-number (match-string 1))))
+ (match-beginning 0))
+ (point-max)))
+ (cond ((and (equal chunk-begin-pos chunk-end-pos) ; at the end of command
+ (marker-position prompt-found))
+ ;; deactivate fan
+ (dolist (current-command-input-buffer-name current-command-input-buffer-names)
+ (let ((input-buffer (get-buffer current-command-input-buffer-name)))
+ (when input-buffer
+ (with-current-buffer input-buffer
+ (remove-text-properties 0 (length sqlplus-fan) '(face nil) sqlplus-fan)
+ (force-mode-line-update)))))
+ (delete-region 1 prompt-found)
+ (when dont-parse-result
+ (funcall (or result-function 'sqlplus-result-online) connect-string context "" t))
+ (sqlplus-set-context-value context :skip-to-the-end-of-command nil)
+ (set-marker chunk-begin-pos 1))
+ ((equal chunk-begin-pos chunk-end-pos)
+ (when dont-parse-result
+ (delete-region 1 (point-max)))
+ (setq filter-input-processed t))
+ (dont-parse-result
+ (funcall (or result-function 'sqlplus-result-online)
+ connect-string
+ context
+ (buffer-substring chunk-begin-pos chunk-end-pos)
+ (marker-position prompt-found))
+ (set-marker chunk-begin-pos chunk-end-pos))
+ (t
+ (when (not skip-to-the-end-of-command)
+ (goto-char (max 1 (- chunk-begin-pos 4010)))
+ (let ((page-separator-found
+ (save-excursion (let ((pos (re-search-forward (concat sqlplus-page-separator-regexp "[^-]*\\(^-\\|^<th\\b\\)") nil t)))
+ (when (and pos
+ (or (not (marker-position prompt-found))
+ (< pos prompt-found)))
+ (match-beginning 0))))))
+ (when (or (marker-position prompt-found) page-separator-found)
+ (goto-char (or page-separator-found chunk-end-pos))
+ (let ((end-pos (point))
+ (cur-msg (or (current-message) "")))
+ (sqlplus-set-context-value context :skip-to-the-end-of-command page-separator-found)
+ (when page-separator-found
+ (interrupt-process)
+ (save-excursion
+ (re-search-backward "[^ \t\n]\n" nil t)
+ (setq end-pos (match-end 0))))
+ (if result-function
+ (save-excursion (funcall result-function context connect-string 1 end-pos page-separator-found))
+ (with-temp-message "Formatting output..."
+ (save-excursion (sqlplus-process-command-output context connect-string 1 end-pos page-separator-found)))
+ (message "%s" cur-msg))
+ (when page-separator-found
+ (delete-region 1 (+ page-separator-found (length sqlplus-page-separator)))
+ (set-marker chunk-end-pos 1))))))
+ (set-marker chunk-begin-pos chunk-end-pos)))))
+ (goto-char (point-max))
+ (set-marker chunk-begin-pos nil)
+ (set-marker chunk-end-pos nil)
+ (set-marker prompt-found nil)))))
+
+(defadvice switch-to-buffer (around switch-to-buffer-around-advice (buffer-or-name &optional norecord))
+ ad-do-it
+ (when (and sqlplus-connect-string
+ (eq major-mode 'sqlplus-mode))
+ (let ((side-window (sqlplus-get-side-window))
+ (output-buffer (get-buffer (sqlplus-get-output-buffer-name sqlplus-connect-string))))
+ (when (and side-window
+ (not (eq (window-buffer) output-buffer)))
+ (save-selected-window
+ (switch-to-buffer-other-window output-buffer))))))
+(ad-activate 'switch-to-buffer)
+
+(defun sqlplus-kill-function ()
+ (unless sqlplus-kill-function-inhibitor
+ ;; shutdown connection if it is SQL*Plus output buffer or SQL*Plus process buffer
+ (if (or (and sqlplus-connect-string (equal (buffer-name) (sqlplus-get-output-buffer-name sqlplus-connect-string)))
+ sqlplus-process-p)
+ (sqlplus--enqueue-task 'sqlplus-shutdown (or sqlplus-connect-string sqlplus-process-p))
+ ;; input buffer or another buffer connected to SQL*Plus - possibly shutdown
+ (when sqlplus-connect-string
+ (let ((counter 0)
+ (scs sqlplus-connect-string))
+ (dolist (buffer (buffer-list))
+ (with-current-buffer buffer
+ (when (equal sqlplus-connect-string scs) (incf counter))))
+ (when (<= counter 2)
+ (let* ((process (get-process (sqlplus-get-process-name sqlplus-connect-string))))
+ (when (or (not process)
+ (memq (process-status process) '(exit signal))
+ (y-or-n-p (format "Kill SQL*Plus process %s " (car (refine-connect-string sqlplus-connect-string)))))
+ (sqlplus--enqueue-task 'sqlplus-shutdown sqlplus-connect-string)))))))))
+
+(defun sqlplus-emacs-kill-function ()
+ ;; save and kill all sqlplus-mode buffers
+ (let (buffers-to-kill)
+ (dolist (buffer (buffer-list))
+ (with-current-buffer buffer
+ (when (and sqlplus-connect-string
+ (eq major-mode 'sqlplus-mode))
+ (when (buffer-file-name)
+ (save-buffer))
+ (push buffer buffers-to-kill))))
+ (setq sqlplus-kill-function-inhibitor t)
+ (condition-case nil
+ (unwind-protect
+ (dolist (buffer buffers-to-kill)
+ (kill-buffer buffer))
+ (setq sqlplus-kill-function-inhibitor nil))
+ (error nil))
+ t))
+
+(push 'sqlplus-emacs-kill-function kill-emacs-query-functions)
+
+(add-hook 'kill-buffer-hook 'sqlplus-kill-function)
+
+;; kill all history buffers so that they can save themselves
+(add-hook 'kill-emacs-hook (lambda ()
+ (dolist (buf (copy-list (buffer-list)))
+ (when (and (string-match "@.*-hist" (buffer-name buf))
+ (with-current-buffer buf sqlplus-cs))
+ (kill-buffer buf)))))
+
+(defun sqlplus-find-output-table (interrupted)
+ "Search for table in last SQL*Plus command result, and return
+list (BEGIN END MSG) for first and last table char, or nil if
+table is not found."
+ (let (begin end)
+ (goto-char (point-min))
+ (when (re-search-forward "^[^\n]+\n\\( \\)?-" nil t)
+ (let (msg
+ (indent (when (match-string 1) -1))) ; result of 'describe' sqlplus command
+ (forward-line -1)
+ ;; (untabify (point) (buffer-size))
+ (setq begin (point))
+ (when indent
+ (indent-rigidly begin (point-max) indent)
+ (goto-char begin))
+ (if indent
+ (progn
+ (goto-char (point-max))
+ (skip-chars-backward "\n\t ")
+ (setq end (point))
+ (goto-char (point-max)))
+ (or (re-search-forward (concat "^" (regexp-quote sqlplus-repfooter) "\n[\n\t ]*") nil t)
+ (when interrupted (re-search-forward "\\'" nil t))) ; \\' means end of buffer
+ (setq end (match-beginning 0))
+ (setq msg (buffer-substring (match-end 0) (point-max))))
+ (list begin end msg)))))
+
+(defstruct col-desc
+ id ; from 0
+ name ; column name
+ start-pos ; char column number
+ end-pos ; char column number
+ max-width ; max. column width
+ preferred-width ; preferred column width
+ min-prefix-len ; min. prefix (spaces only)
+ numeric ; y if column is numeric, n if is not, nil if don't know
+ has-eol ; temporary value for processing current row
+)
+
+(defun sqlplus-previous-line ()
+ (let ((col (current-column)))
+ (forward-line -1)
+ (move-to-column col t)))
+
+(defun sqlplus-next-line ()
+ (let ((col (current-column)))
+ (forward-line 1)
+ (move-to-column col t)))
+
+(defun sqlplus--correct-column-name (max-col-no)
+ (let ((counter 0)
+ (big (1- (save-excursion (beginning-of-line) (point)))))
+ (skip-chars-forward " ")
+ (when (re-search-forward " [^ \n]" (+ big max-col-no) t)
+ (backward-char)
+ (while (< (point) (+ big max-col-no))
+ (setq counter (1+ counter))
+ (insert " ")))
+ counter))
+
+(defun sqlplus-parse-output-table (interrupted)
+ "Parse table and return list (COLUMN-INFOS ROWS MSG) where
+COLUMN-INFOS is a col-desc structures list, ROWS is a table of
+records (record is a list of strings). Return nil if table is
+not detected."
+ (let ((region (sqlplus-find-output-table interrupted)))
+ (when region
+ (let ((begin (car region))
+ (end (cadr region))
+ (last-msg (caddr region))
+ (col-counter 0)
+ column-infos rows
+ (record-lines 1)
+ finish)
+ ;; (message "'%s'\n'%s'" (buffer-substring begin end) last-msg)
+ (goto-char begin)
+ ;; we are at the first char of column name
+ ;; move to the first char of '-----' column separator
+ (beginning-of-line 2)
+ (while (not finish)
+ (if (equal (char-after) ?-)
+ ;; at the first column separator char
+ (let* ((beg (point))
+ (col-begin (current-column))
+ (col-max-width (skip-chars-forward "-"))
+ ;; after last column separator char
+ (ed (point))
+ (col-end (+ col-begin col-max-width))
+ (col-name (let* ((b (progn
+ (goto-char beg)
+ (sqlplus-previous-line)
+ (save-excursion
+ (let ((counter (sqlplus--correct-column-name (1+ col-end))))
+ (setq beg (+ beg counter))
+ (setq ed (+ ed counter))))
+ (point)))
+ (e (+ b col-max-width)))
+ (skip-chars-forward " \t")
+ (setq b (point))
+ (goto-char (min (save-excursion (end-of-line) (point)) e))
+ (skip-chars-backward " \t")
+ (setq e (point))
+ (if (> e b)
+ (buffer-substring b e)
+ "")))
+ (col-preferred-width (string-width col-name)))
+ ;; (put-text-property 0 (length col-name) 'face '(bold) col-name)
+ (push (make-col-desc :id col-counter :name col-name :start-pos col-begin
+ :end-pos col-end :max-width col-max-width :preferred-width col-preferred-width :min-prefix-len col-max-width)
+ column-infos)
+ (incf col-counter)
+ (goto-char ed)
+ (if (equal (char-after) ?\n)
+ (progn
+ (beginning-of-line 3)
+ (incf record-lines))
+ (forward-char)))
+ (setq finish t)))
+ (decf record-lines)
+ (setq column-infos (nreverse column-infos))
+ (forward-line -1)
+
+ ;; at the first char of first data cell.
+ ;; table parsing...
+ (while (< (point) end)
+ (let (record last-start-pos)
+ (dolist (column-info column-infos)
+ (let ((start-pos (col-desc-start-pos column-info))
+ (end-pos (col-desc-end-pos column-info))
+ width len value b e l)
+ (when (and last-start-pos
+ (<= start-pos last-start-pos))
+ (forward-line))
+ (setq last-start-pos start-pos)
+ (move-to-column start-pos)
+ (setq b (point))
+ (move-to-column end-pos)
+ (setq e (point))
+ (move-to-column start-pos)
+ (setq l (skip-chars-forward " " e))
+ (when (and (col-desc-min-prefix-len column-info)
+ (< l (- e b))
+ (< l (col-desc-min-prefix-len column-info)))
+ (setf (col-desc-min-prefix-len column-info)
+ (if (looking-at "[0-9]") l nil)))
+ (move-to-column end-pos)
+ (skip-chars-backward " " b)
+ (setq value (if (> (point) b) (buffer-substring b (point)) ""))
+ (setq len (length value)
+ width (string-width value))
+ (when (and sqlplus-select-result-max-col-width
+ (> len sqlplus-select-result-max-col-width))
+ (setq value (concat (substring value 0 sqlplus-select-result-max-col-width) "...")
+ len (length value)
+ width (string-width value)))
+ (when (> width (col-desc-preferred-width column-info))
+ (setf (col-desc-preferred-width column-info) width))
+ (when (and (< l (- e b))
+ (memq (col-desc-numeric column-info) '(nil y)))
+ (setf (col-desc-numeric column-info)
+ (if (string-match "\\` *[-+0-9Ee.,$]+\\'" value) 'y 'n)))
+ (push value record)))
+ (forward-line)
+ (when (> record-lines 1)
+ (forward-line))
+ (setq last-start-pos nil
+ record (nreverse record))
+ (push record rows)))
+ (setq rows (nreverse rows))
+ (list column-infos rows last-msg)))))
+
+(defun sqlplus-draw-table (lst &optional slips-count)
+ "SLIPS-COUNT (nil means compute automatically)."
+ ;; current buffer: SQL*Plus output buffer
+ (when window-system
+ (if (>= (sqlplus-color-percentage (face-background 'default)) 50)
+ (progn
+ (set-face-attribute 'sqlplus-table-head-face nil
+ :background (sqlplus-shine-color (face-background 'default) -70) :foreground (face-background 'default))
+ (set-face-attribute 'sqlplus-table-even-rows-face nil
+ :background (sqlplus-shine-color (face-background 'default) -20) :overline (face-background 'default))
+ (set-face-attribute 'sqlplus-table-odd-rows-face nil
+ :background (sqlplus-shine-color (face-background 'default) -30) :overline (face-background 'default)))
+ (set-face-attribute 'sqlplus-table-head-face nil
+ :background (sqlplus-shine-color (face-background 'default) +70) :foreground (face-background 'default))
+ (set-face-attribute 'sqlplus-table-even-rows-face nil
+ :background (sqlplus-shine-color (face-background 'default) +20) :overline (face-background 'default))
+ (set-face-attribute 'sqlplus-table-odd-rows-face nil
+ :background (sqlplus-shine-color (face-background 'default) +30) :overline (face-background 'default))))
+ (let* ((column-infos (car lst))
+ (rows (cadr lst))
+ (slip-width 0)
+ (table-header-height 1)
+ (table-area-width (1- (let ((side-window (sqlplus-get-side-window))) (if side-window (window-width side-window) (frame-width)))))
+ ;; may be nil, which means no limit
+ (table-area-height (let ((side-window (sqlplus-get-side-window)))
+ (when side-window
+ (- (window-height side-window) 2 (if mode-line-format 1 0) (if header-line-format 1 0)))))
+ (column-separator-width (if sqlplus-elegant-style 1.2 (max (length sqlplus-table-col-separator) (length sqlplus-table-col-head-separator))))
+ rows-per-slip ;; data rows per slip
+ (slip-separator-width (if sqlplus-elegant-style 1.5 sqlplus-slip-separator-width))
+ (slip-separator (make-string (max 0 (if sqlplus-elegant-style 1 sqlplus-slip-separator-width)) ?\ ))
+ (last-msg (caddr lst)))
+ (when sqlplus-elegant-style
+ (put-text-property 0 1 'display (cons 'space (list :width slip-separator-width)) slip-separator))
+ (when (<= table-area-height table-header-height)
+ (setq table-area-height nil))
+ (when (and window-system sqlplus-elegant-style table-area-height (> table-area-height 3))
+ ;; overline makes glyph higher...
+ (setq table-area-height (- table-area-height (round (/ (* 20.0 (- table-area-height 3)) (face-attribute 'default :height))))))
+ (when column-infos
+ (goto-char (point-max))
+ (beginning-of-line)
+ ;; slip width (without separator between slips)
+ (dolist (col-info column-infos)
+ (when (col-desc-min-prefix-len col-info)
+ (setf (col-desc-preferred-width col-info) (max (string-width (col-desc-name col-info))
+ (- (col-desc-preferred-width col-info) (col-desc-min-prefix-len col-info)))))
+ (incf slip-width (+ (col-desc-preferred-width col-info) column-separator-width)))
+ (when (> slip-width 0)
+ (setq slip-width (+ (- slip-width column-separator-width) (if sqlplus-elegant-style 1.0 0))))
+ ;; computing slip count if not known yet
+ (unless slips-count
+ (setq slips-count
+ (if table-area-height (min (ceiling (/ (float (length rows)) (max 1 (- table-area-height table-header-height 2))))
+ (max 1 (floor (/ (float table-area-width) (+ slip-width slip-separator-width)))))
+ 1)))
+ (setq slips-count (max 1 (min slips-count (length rows)))) ; slip count <= data rows
+ (setq rows-per-slip (ceiling (/ (float (length rows)) slips-count)))
+ (when (> rows-per-slip 0)
+ (setq slips-count (max 1 (min (ceiling (/ (float (length rows)) rows-per-slip)) slips-count))))
+
+ (let ((table-begin-point (point)))
+ (dotimes (slip-no slips-count)
+ (let ((row-no 0)
+ (slip-begin-point (point))
+ (rows-processed 0))
+ ;; column names
+ (dolist (col-info column-infos)
+ (let* ((col-name (col-desc-name col-info))
+ (spaces (max 0 (- (col-desc-preferred-width col-info) (string-width col-name))))
+ (last-col-p (>= (1+ (col-desc-id col-info)) (length column-infos)))
+ (val (format (if sqlplus-elegant-style " %s%s %s" "%s%s%s")
+ col-name
+ (make-string spaces ?\ )
+ (if last-col-p "" (if sqlplus-elegant-style " " sqlplus-table-col-separator)))))
+ (put-text-property 0 (if (or (not sqlplus-elegant-style) last-col-p) (length val) (1- (length val)))
+ 'face 'sqlplus-table-head-face val)
+ (when sqlplus-elegant-style
+ (put-text-property 0 1 'display '(space . (:width 0.5)) val)
+ (put-text-property (- (length val) (if last-col-p 1 2)) (- (length val) (if last-col-p 0 1)) 'display '(space . (:width 0.5)) val)
+ (unless last-col-p
+ (put-text-property (- (length val) 1) (length val) 'display '(space . (:width 0.2)) val)))
+ (insert val)))
+ (insert slip-separator)
+ (insert "\n")
+ ;; data rows
+ (while (and (< rows-processed rows-per-slip)
+ rows)
+ (let ((row (car rows)))
+ (setq rows (cdr rows))
+ (incf rows-processed)
+ (let ((col-infos column-infos))
+ (dolist (value row)
+ (let* ((col-info (car col-infos))
+ (numeric-p (eq (col-desc-numeric col-info) 'y))
+ (min-prefix (col-desc-min-prefix-len col-info)))
+ (when (and min-prefix
+ value
+ (>= (length value) min-prefix))
+ (setq value (substring value min-prefix)))
+ (let* ((spaces (max 0 (- (col-desc-preferred-width col-info) (string-width value))))
+ (val (if numeric-p
+ (format (if sqlplus-elegant-style " %s%s %s" "%s%s%s")
+ (make-string spaces ?\ )
+ value
+ (if (cdr col-infos) (if sqlplus-elegant-style " " sqlplus-table-col-separator) ""))
+ (format (if sqlplus-elegant-style " %s%s %s" "%s%s%s")
+ value
+ (make-string spaces ?\ )
+ (if (cdr col-infos) (if sqlplus-elegant-style " " sqlplus-table-col-separator) "")))))
+ (put-text-property 0 (if (and sqlplus-elegant-style (cdr col-infos)) (- (length val) 1) (length val))
+ 'face (if (evenp row-no)
+ 'sqlplus-table-even-rows-face
+ 'sqlplus-table-odd-rows-face) val)
+ (when sqlplus-elegant-style
+ (put-text-property 0 1 'display '(space . (:width 0.5)) val)
+ (put-text-property (- (length val) (if (cdr col-infos) 2 1))
+ (- (length val) (if (cdr col-infos) 1 0))
+ 'display '(space . (:width 0.5)) val)
+ (when (cdr col-infos)
+ (put-text-property (- (length val) 1) (length val) 'display '(space . (:width 0.2)) val)))
+ (setq col-infos (cdr col-infos))
+ (insert val))))
+ (incf row-no)
+ (insert slip-separator)
+ (insert "\n"))))
+ (when (> slip-no 0)
+ (delete-backward-char 1)
+ (let ((slip-end-point (point)))
+ (kill-rectangle slip-begin-point slip-end-point)
+ (delete-region slip-begin-point (point-max))
+ (goto-char table-begin-point)
+ (end-of-line)
+ (yank-rectangle)
+ (goto-char (point-max))
+ ))))
+ (goto-char (point-max))
+ (when (and last-msg (> (length last-msg) 0))
+ (unless sqlplus-elegant-style (insert "\n"))
+ (let ((s (format "%s\n\n" (replace-regexp-in-string "\n+" " " last-msg))))
+ (when sqlplus-elegant-style
+ (put-text-property (- (length s) 2) (1- (length s)) 'display '(space . (:height 1.5)) s))
+ (insert s)))))))
+
+(defun sqlplus-send-user-string (str)
+ (interactive (progn (sqlplus-check-connection)
+ (if sqlplus-connect-string
+ (list (read-string "Send to process: " nil 'sqlplus-user-string-history ""))
+ (error "Works only in SQL*Plus buffer"))))
+ (let ((connect-string sqlplus-connect-string))
+ (sqlplus-verify-buffer connect-string)
+ (let* ((process (get-process (sqlplus-get-process-name connect-string)))
+ (output-buffer-name (sqlplus-get-output-buffer-name connect-string)))
+ (sqlplus-echo-in-buffer output-buffer-name (concat str "\n"))
+ (send-string process (concat str "\n")))))
+
+(defun sqlplus-prepare-update-alist (table-data)
+ (let ((column-infos (car table-data))
+ (rows (cadr table-data))
+ (msg (caddr table-data))
+ alist)
+ (dolist (row rows)
+ (let* ((object-name (car row))
+ (object-type (intern (downcase (cadr row))))
+ (status (caddr row))
+ (regexp-list (cdr (assq object-type alist)))
+ (pair (cons object-name (equal status "I"))))
+ (if regexp-list
+ (setcdr regexp-list (cons pair (cdr regexp-list)))
+ (setq regexp-list (list pair))
+ (setq alist (cons (cons object-type regexp-list) alist)))))
+ alist))
+
+(defun sqlplus-my-update-handler (connect-string table-data)
+ (let ((alist (sqlplus-prepare-update-alist table-data)))
+ (when (featurep 'ide-skel)
+ (funcall 'sqlplus-side-view-update-data connect-string alist))))
+
+(defun sqlplus-my-handler (connect-string table-data)
+ (let ((alist (sqlplus-prepare-update-alist table-data))
+ (sqlplus-font-lock-regexps (sqlplus-get-font-lock-regexps connect-string)))
+ (sqlplus-set-objects-alist alist connect-string)
+ (when (featurep 'ide-skel)
+ (funcall 'sqlplus-side-view-update-data connect-string alist))
+ (clrhash sqlplus-font-lock-regexps)
+ (dolist (lst sqlplus-syntax-faces)
+ (let* ((object-type (car lst))
+ (regexp-list (append (caddr lst) (mapcar 'car (cdr (assq object-type alist))))))
+ (when regexp-list
+ (puthash object-type (concat "\\b" (regexp-opt regexp-list t) "\\b") sqlplus-font-lock-regexps))))
+ (let ((map sqlplus-font-lock-regexps))
+ (mapc (lambda (buffer)
+ (with-current-buffer buffer
+ (when (and (memq major-mode '(sqlplus-mode plsql-mode))
+ (equal sqlplus-connect-string connect-string))
+ (when font-lock-mode (font-lock-mode 1)))))
+ (buffer-list)))))
+
+(defun sqlplus-get-source-function (connect-string context string last-chunk)
+ (let* ((source-text (sqlplus-get-context-value context :source-text))
+ (source-type (sqlplus-get-context-value context :source-type))
+ (source-name (sqlplus-get-context-value context :source-name))
+ (source-extension (sqlplus-get-context-value context :source-extension))
+ (name (concat (upcase source-name) "." source-extension))
+ finish)
+ (unless (sqlplus-get-context-value context :finished)
+ (setq source-text (concat source-text string))
+ (sqlplus-set-context-value context :source-text source-text)
+ (when last-chunk
+ (if (string-match (regexp-quote sqlplus-end-of-source-sentinel) source-text)
+ (when (< (length source-text) (+ (length sqlplus-end-of-source-sentinel) 5))
+ (setq last-chunk nil
+ finish "There is no such database object"))
+ (setq last-chunk nil)))
+ (when last-chunk
+ (setq finish t))
+ (when finish
+ (sqlplus-set-context-value context :finished t)
+ (if (stringp finish)
+ (message finish)
+ (with-temp-buffer
+ (insert source-text)
+ (goto-char (point-min))
+ (re-search-forward (regexp-quote sqlplus-end-of-source-sentinel) nil t)
+ (replace-match "")
+ (goto-char (point-max))
+ (forward-comment (- (buffer-size)))
+ (when (equal source-type "TABLE")
+ (goto-char (point-min))
+ (insert (format "table %s\n(\n" source-name))
+ (goto-char (point-max))
+ (delete-region (re-search-backward "," nil t) (point-max))
+ (insert "\n);"))
+ (insert "\n/\n")
+ (unless (member source-type '("SEQUENCE" "TABLE" "SYNONYM" "INDEX"))
+ (insert "show err\n"))
+ (goto-char (point-min))
+ (insert "create " (if (member source-type '("INDEX" "SEQUENCE" "TABLE")) "" "or replace "))
+ (setq source-text (buffer-string)))
+ (with-current-buffer (get-buffer-create name)
+ (setq buffer-read-only nil)
+ (erase-buffer)
+ (insert source-text)
+ (goto-char (point-min))
+ (set-visited-file-name (concat (file-name-as-directory temporary-file-directory)
+ (concat (make-temp-name (sqlplus-canonize-file-name (concat (upcase source-name) "_") "[$]")) "." source-extension)))
+ (rename-buffer name)
+ (condition-case err
+ (funcall (symbol-function 'plsql-mode))
+ (error nil))
+ (setq sqlplus-connect-string connect-string
+ buffer-read-only sqlplus-source-buffer-readonly-by-default-flag)
+ (save-buffer)
+ (save-selected-window
+ (let ((win (selected-window)))
+ (when (or (equal win (sqlplus-get-side-window))
+ (and (fboundp 'ide-skel-side-view-window-p)
+ (funcall 'ide-skel-side-view-window-p win)))
+ (setq win (sqlplus-get-workbench-window)))
+ (set-window-buffer win (current-buffer))))))))))
+
+(defun sqlplus-get-source (connect-string name type &optional schema-name)
+ "Fetch source for database object NAME in current or specified SCHEMA-NAME, and show the source in new buffer.
+Possible TYPE values are in 'sqlplus-object-types'."
+ (interactive (let* ((thing (thing-at-point 'symbol))
+ (obj-raw-name (read-string (concat "Object name" (if thing (concat " [default " thing "]") "") ": ")
+ nil
+ 'sqlplus-get-source-history (when thing thing)))
+ (completion-ignore-case t)
+ (type (completing-read "Object type: " (mapcar (lambda (type) (cons type nil)) sqlplus-object-types) nil t)))
+ (string-match "^\\(\\([^.]+\\)[.]\\)?\\(.*\\)$" obj-raw-name)
+ (list sqlplus-connect-string (match-string 3 obj-raw-name) type (match-string 2 obj-raw-name))))
+ (setq type (upcase type))
+ (let* ((sql
+ (cond ((equal type "SEQUENCE")
+ (format (concat "select 'sequence %s' || sequence_name || "
+ "decode( increment_by, 1, '', ' increment by ' || increment_by ) || "
+ "case when increment_by > 0 and max_value >= (1.0000E+27)-1 or increment_by < 0 and max_value = -1 then '' "
+ "else decode( max_value, null, ' nomaxvalue', ' maxvalue ' || max_value) end || "
+ "case when increment_by > 0 and min_value = 1 or increment_by < 0 and min_value <= (-1.0000E+26)+1 then '' "
+ "else decode( min_value, null, ' nominvalue', ' minvalue ' || min_value) end || "
+ "decode( cycle_flag, 'Y', ' cycle', '' ) || "
+ "decode( cache_size, 20, '', 0, ' nocache', ' cache ' || cache_size ) || "
+ "decode( order_flag, 'Y', ' order', '' ) "
+ "from %s where sequence_name = '%s'%s;")
+ (if schema-name (concat (upcase schema-name) ".") "")
+ (if schema-name "all_sequences" "user_sequences")
+ (upcase name)
+ (if schema-name (format " and sequence_owner = '%s'" (upcase schema-name)) "")))
+ ((equal type "TABLE")
+ (format (concat "select ' ' || column_name || ' ' || data_type || "
+ "decode( data_type,"
+ " 'VARCHAR2', '(' || to_char( data_length, 'fm9999' ) || ')',"
+ " 'NUMBER', decode( data_precision,"
+ " null, '',"
+ " '(' || to_char( data_precision, 'fm9999' ) || decode( data_scale,"
+ " null, '',"
+ " 0, '',"
+ " ',' || data_scale ) || ')' ),"
+ " '') || "
+ "decode( nullable, 'Y', ' not null', '') || ','"
+ "from all_tab_columns "
+ "where owner = %s and table_name = '%s' "
+ "order by column_id;")
+ (if schema-name (concat "'" (upcase schema-name) "'") "user")
+ (upcase name)))
+ ((equal type "SYNONYM")
+ (format (concat "select "
+ "decode( owner, 'PUBLIC', 'public ', '' ) || 'synonym ' || "
+ "decode( owner, 'PUBLIC', '', user, '', owner || '.' ) || synonym_name || ' for ' || "
+ "decode( table_owner, user, '', table_owner || '.' ) || table_name || "
+ "decode( db_link, null, '', '@' || db_link ) "
+ "from all_synonyms where (owner = 'PUBLIC' or owner = %s) and synonym_name = '%s';")
+ (if schema-name (concat "'" (upcase schema-name) "'") "user")
+ (upcase name)))
+ ((equal type "VIEW")
+ (if schema-name (format "select 'view %s.' || view_name || ' as ', text from all_views where owner = '%s' and view_name = '%s';"
+ (upcase schema-name) (upcase schema-name) (upcase name))
+ (format "select 'view ' || view_name || ' as ', text from user_views where view_name = '%s';" (upcase name))))
+ ((or (equal type "PROCEDURE")
+ (equal type "FUNCTION"))
+ (if schema-name (format "select text from all_source where owner = '%s' and name = '%s' and type in ('PROCEDURE', 'FUNCTION') order by line;"
+ (upcase schema-name) (upcase name))
+ (format "select text from user_source where name = '%s' and type in ('PROCEDURE', 'FUNCTION') order by line;"
+ (upcase name))))
+ (t
+ (if schema-name (format "select text from all_source where owner = '%s' and name = '%s' and type = '%s' order by line;"
+ (upcase schema-name) (upcase name) (upcase type))
+ (format "select text from user_source where name = '%s' and type = '%s' order by line;"
+ (upcase name) (upcase type))))))
+ (prolog-commands (list "set echo off"
+ "set newpage 0"
+ "set space 0"
+ "set pagesize 0"
+ "set feedback off"
+ "set long 4000"
+ "set longchunksize 4000"
+ "set wrap on"
+ "set heading off"
+ "set trimspool on"
+ "set linesize 4000"
+ "set timing off"))
+ (extension (if (equal (downcase type) "package") "pks" "sql"))
+ (source-buffer-name (concat " " (upcase name) "." extension))
+ (context-options (list (cons :dont-parse-result 'dont-parse)
+ (cons :source-text nil)
+ (cons :source-type type)
+ (cons :source-name name)
+ (cons :source-extension extension)
+ (cons :result-function 'sqlplus-get-source-function))))
+ (sqlplus-execute connect-string sql context-options prolog-commands t t)
+ (sqlplus-execute connect-string (format "select '%s' from dual;" sqlplus-end-of-source-sentinel) context-options prolog-commands t t)))
+
+(defun sqlplus-canonize-file-name (file-name regexp)
+ (while (string-match regexp file-name)
+ (setq file-name (replace-match "!" nil t file-name)))
+ file-name)
+
+(defun sqlplus-define-user-variables (string)
+ (when string
+ (let (variables-list
+ define-commands
+ (index 0))
+ (while (setq index (string-match "&+\\(\\(\\sw\\|\\s_\\)+\\)" string index))
+ (let ((var-name (match-string 1 string)))
+ (setq index (+ 2 index))
+ (unless (member var-name variables-list)
+ (push var-name variables-list))))
+ (dolist (var-name (reverse variables-list))
+ (let* ((default-value (gethash var-name sqlplus-user-variables nil))
+ (value (read-string (format (concat "Variable value for %s" (if default-value (format " [default: %s]" default-value) "") ": ") var-name)
+ nil 'sqlplus-user-variables-history default-value)))
+ (unless value
+ (error "There is no value for %s defined" var-name))
+ (setq define-commands (cons (format "define %s=%s" var-name value) define-commands))
+ (puthash var-name value sqlplus-user-variables)))
+ define-commands)))
+
+(defun sqlplus-parse-region (start end)
+ (let ((sql (buffer-substring start end)))
+ (save-excursion
+ ;; Strip whitespace from beginning and end, just to be neat.
+ (if (string-match "\\`[ \t\n]+" sql)
+ (setq sql (substring sql (match-end 0))))
+ (if (string-match "[ \t\n]+\\'" sql)
+ (setq sql (substring sql 0 (match-beginning 0))))
+ (setq sql (replace-regexp-in-string "^[ \t]*--.*[\n]?" "" sql))
+ (when (zerop (length sql))
+ (error "Nothing to send"))
+ ;; Now the string should end with an sqlplus-terminator.
+ (if (not (string-match "\\(;\\|/\\|[.]\\)\\'" sql))
+ (setq sql (concat sql ";"))))
+ sql))
+
+(defun sqlplus-show-html-fun (context connect-string begin end interrupted)
+ (let ((output-file (expand-file-name (substitute-in-file-name sqlplus-html-output-file-name)))
+ (sql (sqlplus-get-context-value context :htmlized-html-command))
+ (html (buffer-substring begin end))
+ (header-html (eval sqlplus-html-output-header)))
+ (let ((case-fold-search t))
+ (while (and (string-match "\\`[ \t\n]*\\(<br>\\|<p>\\)?" html) (match-string 0 html) (> (length (match-string 0 html)) 0))
+ (setq html (replace-match "" nil t html)))
+ (when (> (length html) 0)
+ (sqlplus-execute connect-string "" nil '("set markup html off") 'no-echo 'dont-show-output-buffer)
+ (find-file output-file)
+ (erase-buffer)
+ (insert (concat "<html>\n"
+ "<head>\n"
+ " <meta http-equiv=\"content-type\" content=\"text/html; charset=" sqlplus-html-output-encoding "\">\n"
+ (sqlplus-get-context-value context :head) "\n"
+ "</head>\n"
+ "<body " (sqlplus-get-context-value context :body) ">\n"
+ (if header-html header-html "")
+ (if sqlplus-html-output-sql sql "")
+ "<p>"
+ html "\n"
+ "</body>\n"
+ "</html>"))
+ (goto-char (point-min))
+ (save-buffer)))))
+
+(defun sqlplus-refine-html (html remove-entities)
+ (string-match "\\`\"?\\(\\(.\\|\n\\)*?\\)\"?[ \t\n]*\\'" html)
+ (setq html (match-string 1 html))
+ (if remove-entities
+ (progn
+ (while (string-match "&quot;" html) (setq html (replace-match "\"" nil t html)))
+ (while (string-match "&lt;" html) (setq html (replace-match "<" nil t html)))
+ (while (string-match "&gt;" html) (setq html (replace-match ">" nil t html)))
+ (while (string-match "&amp;" html) (setq html (replace-match "&" nil t html))))
+ (while (string-match "&" html) (setq html (replace-match "&amp;" nil t html)))
+ (while (string-match ">" html) (setq html (replace-match "&gt;" nil t html)))
+ (while (string-match "<" html) (setq html (replace-match "&lt;" nil t html)))
+ (while (string-match "\"" html) (setq html (replace-match "&quot;" nil t html))))
+ (string-match "\\`\"?\\(\\(.\\|\n\\)*?\\)\"?[ \t\n]*\\'" html)
+ (setq html (match-string 1 html))
+ html)
+
+(defun sqlplus-show-markup-fun (context connect-string begin end interrupted)
+ (goto-char begin)
+ (let ((head "")
+ (body "")
+ preformat)
+ (when (re-search-forward (concat "\\bHEAD\\b[ \t\n]*\\(\\(.\\|\n\\)*\\)[ \t\n]*"
+ "\\bBODY\\b[ \t\n]*\\(\\(.\\|\n\\)*\\)[ \t\n]*"
+ "\\bTABLE\\b\\(.\\|\n\\)*PREFORMAT[ \t\n]+\\(ON\\|OFF\\)\\b") nil t)
+ (setq head (match-string 1)
+ body (match-string 3)
+ preformat (string= (downcase (match-string 6)) "on"))
+ (setq head (sqlplus-refine-html head t)
+ body (sqlplus-refine-html body t))
+ (let ((context-options (list (cons :result-function 'sqlplus-show-html-fun)
+ (cons :current-command-input-buffer-name (sqlplus-get-context-value context :current-command-input-buffer-name))
+ (cons :html-command (sqlplus-get-context-value context :html-command))
+ (cons :htmlized-html-command (sqlplus-get-context-value context :htmlized-html-command))
+ (cons :head head)
+ (cons :body body)))
+ (prolog-commands (list "set wrap on"
+ (format "set linesize %S" (if preformat (1- (frame-width)) 4000))
+ "set pagesize 50000"
+ "btitle off"
+ "repfooter off"
+ "set markup html on")))
+ (sqlplus-execute connect-string (sqlplus-get-context-value context :html-command) context-options prolog-commands 'no-echo 'dont-show-output-buffer)))))
+
+(defun sqlplus-htmlize (begin end)
+ (let (result)
+ (when (featurep 'htmlize)
+ (let* ((htmlize-output-type 'font)
+ (buffer (funcall (symbol-function 'htmlize-region) begin end)))
+ (with-current-buffer buffer
+ (goto-char 1)
+ (re-search-forward "<pre>[ \t\n]*\\(\\(.\\|\n\\)*?\\)[ \t\n]*</pre>" nil t)
+ (setq result (concat "<pre>" (match-string 1) "</pre>")))
+ (kill-buffer buffer)))
+ (unless result
+ (setq result (sqlplus-refine-html (buffer-substring begin end) nil)))
+ result))
+
+(defun sqlplus--send (connect-string sql &optional arg no-echo html start end)
+ (if html
+ (let* ((context-options (list (cons :result-function 'sqlplus-show-markup-fun)
+ (cons :current-command-input-buffer-name (buffer-name))
+ (cons :html-command sql)
+ (cons :htmlized-html-command (if (and (eq sqlplus-html-output-sql 'elegant) (featurep 'htmlize))
+ (sqlplus-htmlize start end)
+ (sqlplus-refine-html sql nil))))))
+ (sqlplus-execute connect-string "show markup\n" context-options nil 'no-echo 'dont-show-output-buffer))
+ (let* ((no-parse (consp arg))
+ (context-options (list (cons :dont-parse-result (consp arg))
+ (cons :columns-count (if (integerp arg)
+ (if (zerop arg) nil arg)
+ (if sqlplus-multi-output-tables-default-flag nil 1)))
+ (cons :current-command-input-buffer-name (buffer-name))))
+ (prolog-commands (list (format "set wrap %s" (if no-parse "on" sqlplus-default-wrap))
+ (format "set linesize %s" (if (consp arg) (1- (frame-width)) 4000))
+ (format "set pagesize %S" (if no-parse 50000 sqlplus-pagesize))
+ (format "btitle %s"
+ (if no-parse "off" (concat "left '" sqlplus-page-separator "'")))
+ (format "repfooter %s"
+ (if no-parse "off" (concat "left '" sqlplus-repfooter "'"))))))
+ (sqlplus-execute connect-string sql context-options prolog-commands no-echo))))
+
+(defun sqlplus-explain ()
+ (interactive)
+ (sqlplus-check-connection)
+ (when (buffer-file-name)
+ (condition-case err
+ (save-buffer)
+ (error (message (error-message-string err)))))
+ (let* ((region (sqlplus-mark-current)))
+ (setq sqlplus-region-beginning-pos (car region)
+ sqlplus-region-end-pos (cdr region))
+ (if (and sqlplus-region-beginning-pos sqlplus-region-end-pos)
+ (let ((sql (sqlplus-parse-region (car region) (cdr region)))
+ (case-fold-search t))
+ (if (string-match "^[\n\t ]*explain[\n\t ]+plan[\t\t ]+for\\>" sql)
+ (sqlplus--send sqlplus-connect-string sql nil nil nil)
+ (setq sql (concat (sqlplus-fontify-string sqlplus-connect-string "explain plan for ") sql))
+ (sqlplus--send sqlplus-connect-string sql nil nil nil)))
+ (error "Point doesn't indicate any command to execute"))))
+
+(defun sqlplus-send-region (arg start end &optional no-echo html)
+ "Send a region to the SQL*Plus process."
+ (interactive "P\nr")
+ (sqlplus-check-connection)
+ (sqlplus--send sqlplus-connect-string (sqlplus-parse-region start end) arg no-echo html start end))
+
+(defun sqlplus-user-command (connect-string sql result-proc)
+ (let* ((context-options (list (cons :user-function result-proc)
+ (cons :columns-count 1)))
+ (prolog-commands (list (format "set wrap %s" sqlplus-default-wrap)
+ "set linesize 4000"
+ "set timing off"
+ "set pagesize 50000"
+ "btitle off"
+ (format "repfooter %s" (concat "left '" sqlplus-repfooter "'")))))
+ (sqlplus-execute connect-string sql context-options prolog-commands 'no-echo 'dont-show-output-buffer)))
+
+
+(defun sqlplus-hidden-select (connect-string sql result-proc)
+ (let* ((context-options (list (cons :result-table-function result-proc)
+ (cons :columns-count 1)))
+ (prolog-commands (list (format "set wrap %s" sqlplus-default-wrap)
+ "set linesize 4000"
+ "set pagesize 50000"
+ "btitle off"
+ (format "repfooter %s" (concat "left '" sqlplus-repfooter "'")))))
+ (sqlplus-execute connect-string sql context-options prolog-commands 'no-echo 'dont-show-output-buffer)))
+
+;; "appi[nfo]" -> '("appinfo" "appi")
+(defun sqlplus-full-forms (name)
+ (if (string-match "\\`\\([^[]*\\)?\\[\\([^]]+\\)\\]\\([^]]*\\)?\\'" name)
+ (list (replace-match "\\1\\2\\3" t nil name)
+ (replace-match "\\1\\3" t nil name))
+ (list name)))
+
+(defun sqlplus-get-canonical-command-name (name)
+ (let ((association (assoc (downcase name) sqlplus-system-variables)))
+ (if association (cdr association) name)))
+
+
+(defun sqlplus-execute (connect-string sql context-options prolog-commands &optional no-echo dont-show-output-buffer)
+ (sqlplus-verify-buffer connect-string)
+ (let* ((process-buffer-name (sqlplus-get-process-buffer-name connect-string))
+ (process-buffer (get-buffer process-buffer-name))
+ (output-buffer-name (sqlplus-get-output-buffer-name connect-string))
+ (echo-prolog (concat "\n" sqlplus-output-separator " " (current-time-string) "\n\n"))
+ (process (get-buffer-process process-buffer-name))
+ set-prolog-commands commands command-no
+ (history-buffer (sqlplus-get-history-buffer connect-string))
+ (defines (sqlplus-define-user-variables sql)))
+ (setq prolog-commands (append (sqlplus-initial-strings) prolog-commands))
+ (when process-buffer
+ (with-current-buffer process-buffer
+ (setq command-no sqlplus-command-seq)
+ (incf sqlplus-command-seq)
+ (setq context-options (append (list (cons :id command-no) (cons :sql sql)) (copy-list context-options)))
+ (setq sqlplus-command-contexts (reverse (cons context-options (reverse sqlplus-command-contexts))))))
+ ;; move all "set" commands from prolog-commands to set-prolog-commands
+ (setq prolog-commands (delq nil (mapcar (lambda (command) (if (string-match "^\\s-*[sS][eE][tT]\\s-+" command)
+ (progn
+ (setq set-prolog-commands
+ (append set-prolog-commands
+ (list (substring command (length (match-string 0 command))))))
+ nil)
+ command))
+ prolog-commands)))
+ ;; remove duplicates commands from prolog-commands (last entries win)
+ (let (spc-alist)
+ (dolist (command prolog-commands)
+ (let* ((name (progn (string-match "^\\S-+" command) (downcase (match-string 0 command))))
+ (association (assoc name spc-alist)))
+ (if (and association (not (equal name "define")))
+ (setcdr association command)
+ (setq spc-alist (cons (cons name command) spc-alist)))))
+ (setq prolog-commands (mapcar (lambda (pair) (cdr pair)) (reverse spc-alist))))
+
+ (setq prolog-commands (append prolog-commands defines))
+ (setq set-prolog-commands (append (list (format "sqlprompt '%s%S%s'" sqlplus-prompt-prefix command-no sqlplus-prompt-suffix)) set-prolog-commands))
+
+ ;; remove duplicates from set-prolog-commands (last entries win)
+ (let (spc-alist)
+ (dolist (set-command set-prolog-commands)
+ (let* ((name (progn (string-match "^\\S-+" set-command) (downcase (sqlplus-get-canonical-command-name (match-string 0 set-command)))))
+ (association (assoc name spc-alist)))
+ (if association
+ (setcdr association set-command)
+ (setq spc-alist (cons (cons name set-command) spc-alist)))))
+ (setq set-prolog-commands (mapcar (lambda (pair) (cdr pair)) (reverse spc-alist))))
+
+ (setq commands (concat (mapconcat 'identity (append
+ (list (concat "set " (mapconcat 'identity set-prolog-commands " ")))
+ prolog-commands
+ (list sql)) "\n")
+ "\n"))
+ (when history-buffer
+ (with-current-buffer history-buffer
+ (goto-char (point-max))
+ (insert echo-prolog)
+ (insert (concat commands "\n"))))
+ (let ((saved-window (cons (selected-window) (window-buffer (selected-window))))
+ (input-buffer (get-buffer (sqlplus-get-input-buffer-name connect-string))))
+ (unless no-echo
+ (sqlplus-echo-in-buffer output-buffer-name echo-prolog)
+ (let ((old-suppress-show-output-buffer sqlplus-suppress-show-output-buffer))
+ (unwind-protect
+ (save-selected-window
+ (setq sqlplus-suppress-show-output-buffer dont-show-output-buffer)
+ (when (and output-buffer-name
+ (get-buffer output-buffer-name))
+ (with-current-buffer (get-buffer output-buffer-name)
+ (sqlplus-buffer-bottom connect-string)
+ (sqlplus-buffer-mark-current connect-string))))
+ (setq sqlplus-suppress-show-output-buffer old-suppress-show-output-buffer)))
+ (sqlplus-echo-in-buffer output-buffer-name (concat sql "\n\n") nil t)
+ (save-selected-window
+ (unless dont-show-output-buffer
+ (when (and output-buffer-name
+ (get-buffer output-buffer-name))
+ (with-current-buffer (get-buffer output-buffer-name)
+ (sqlplus-buffer-redisplay-current connect-string))))))
+ (if (window-live-p (car saved-window))
+ (select-window (car saved-window))
+ (if (get-buffer-window (cdr saved-window))
+ (select-window (get-buffer-window (cdr saved-window)))
+ (when (and input-buffer
+ (get-buffer-window input-buffer))
+ (select-window (get-buffer-window input-buffer))))))
+ (send-string process commands)))
+
+(defun sqlplus-fontify-string (connect-string string)
+ (let* ((input-buffer-name (sqlplus-get-input-buffer-name connect-string))
+ (input-buffer (when input-buffer-name (get-buffer input-buffer-name)))
+ (result string))
+ (when (and input-buffer (buffer-live-p input-buffer))
+ (with-current-buffer input-buffer
+ (save-excursion
+ (goto-char (point-max))
+ (let ((pos (point)))
+ (insert "\n\n")
+ (insert string)
+ (font-lock-fontify-block (+ (count "\n" string) 2))
+ (setq result (buffer-substring (+ pos 2) (point-max)))
+ (delete-region pos (point-max))))))
+ result))
+
+(defvar plsql-mark-backward-list nil)
+
+(unless plsql-mode-map
+ (setq plsql-mode-map (copy-keymap sql-mode-map))
+ (define-key plsql-mode-map "\M-." 'sqlplus-file-get-source)
+ (define-key plsql-mode-map [C-down-mouse-1] 'sqlplus-mouse-select-identifier)
+ (define-key plsql-mode-map [C-mouse-1] 'sqlplus-file-get-source-mouse)
+ (define-key plsql-mode-map "\C-c\C-g" 'plsql-begin)
+ (define-key plsql-mode-map "\C-c\C-q" 'plsql-loop)
+ (define-key plsql-mode-map "\C-c\C-z" 'plsql-if)
+ (define-key plsql-mode-map "\C-c\C-c" 'plsql-compile)
+ (define-key plsql-mode-map [tool-bar plsql-prev-mark]
+ (list 'menu-item "Previous mark" 'plsql-prev-mark
+ :image plsql-prev-mark-image
+ :enable 'plsql-mark-backward-list)))
+
+(defvar plsql-continue-anyway nil
+ "Local in input buffer (plsql-mode).")
+(make-variable-buffer-local 'plsql-continue-anyway)
+
+(defun sqlplus-switch-to-buffer (buffer-or-path &optional line-no)
+ (if (fboundp 'ide-skel-select-buffer)
+ (funcall 'ide-skel-select-buffer buffer-or-path line-no)
+ (let ((buffer (or (and (bufferp buffer-or-path) buffer-or-path)
+ (find-file-noselect buffer-or-path))))
+ (switch-to-buffer buffer)
+ (goto-line line-no))))
+
+(defun plsql-prev-mark ()
+ (interactive)
+ (let (finish)
+ (while (and plsql-mark-backward-list
+ (not finish))
+ (let* ((marker (pop plsql-mark-backward-list))
+ (buffer (marker-buffer marker))
+ (point (marker-position marker)))
+ (set-marker marker nil)
+ (when (and buffer
+ (or (not (eq (current-buffer) buffer))
+ (not (eql (point) point))))
+ (sqlplus-switch-to-buffer buffer)
+ (goto-char point)
+ (setq finish t))))
+ ;; (message "BACK: %S -- FORWARD: %S" plsql-mark-backward-list plsql-mark-forward-list)
+ (force-mode-line-update)
+ (sit-for 0)))
+
+(defun sqlplus-mouse-select-identifier (event)
+ (interactive "@e")
+ (with-selected-window (posn-window (event-start event))
+ (save-excursion
+ (let* ((point (posn-point (event-start event)))
+ (identifier (progn (goto-char point) (thing-at-point 'symbol)))
+ (ident-regexp (when identifier (regexp-quote identifier))))
+ (push (point-marker) plsql-mark-backward-list)
+ (when ident-regexp
+ (save-excursion
+ (while (not (looking-at ident-regexp))
+ (backward-char))
+ (sqlplus-mouse-set-selection (current-buffer) (point) (+ (point) (length identifier)) 'highlight)))))))
+
+(defun sqlplus-file-get-source-mouse (event)
+ (interactive "@e")
+ (let (ident)
+ (with-selected-window (posn-window (event-start event))
+ (save-excursion
+ (goto-char (posn-point (event-start event)))
+ (setq ident (thing-at-point 'symbol))))
+ (sqlplus-file-get-source sqlplus-connect-string ident nil)
+ (sit-for 0)))
+
+(defun plsql-compile (&optional arg)
+ "Save buffer and send its content to SQL*Plus.
+You must enter connect-string if buffer is disconnected; with
+argument you can change connect-string even for connected
+buffer."
+ (interactive "P")
+ (let (aborted
+ exists-show-error-command
+ (case-fold-search t))
+ (save-window-excursion
+ (save-excursion
+ ;; ask for "/" and "show err" if absent
+ (let ((old-point (point))
+ show-err-needed
+ exists-run-command best-point finish)
+ (goto-char (point-min))
+ (setq show-err-needed (let ((case-fold-search t))
+ (re-search-forward "create\\([ \t\n]+or[ \t\n]+replace\\)?[ \t\n]+\\(package\\|procedure\\|function\\|trigger\\|view\\|type\\)" nil t)))
+ (goto-char (point-max))
+ (forward-comment (- (buffer-size)))
+ (re-search-backward "^\\s-*show\\s-+err" nil t)
+ (forward-comment (- (buffer-size)))
+ (condition-case nil (forward-char) (error nil))
+ (setq best-point (point))
+ (goto-char (point-min))
+ (setq exists-run-command (re-search-forward "^\\s-*/[^*]" nil t))
+ (goto-char (point-min))
+ (setq exists-show-error-command (or (not show-err-needed) (re-search-forward "^\\s-*show\\s-+err" nil t)))
+ (while (and (not plsql-continue-anyway) (or (not exists-run-command) (not exists-show-error-command)) (not finish))
+ (goto-char best-point)
+ (let ((c (read-char
+ (format "Cannot find %s. (I)nsert it at point, (A)bort, (C)ontinue anyway"
+ (concat (unless exists-run-command "\"/\"")
+ (unless (or exists-run-command exists-show-error-command) " and ")
+ (unless exists-show-error-command "\"show err\""))))))
+ (cond ((memq c '(?i ?I))
+ (unless exists-run-command (insert "/\n"))
+ (unless exists-show-error-command (insert "show err\n"))
+ (setq finish t))
+ ((memq c '(?a ?A))
+ (setq aborted t
+ finish t))
+ ((memq c '(?c ?C))
+ (setq plsql-continue-anyway t)
+ (setq finish t))))))))
+ (unless aborted
+ (save-buffer)
+ (let* ((buffer (current-buffer))
+ (input-buffer-name (buffer-name))
+ (file-path (sqlplus-file-truename (buffer-file-name)))
+ (compilation-buffer (get-buffer sqlplus-plsql-compilation-results-buffer-name))
+ (context-options (list (cons :last-compiled-file-path file-path)
+ (cons :current-command-input-buffer-name input-buffer-name)
+ (cons :compilation-expected exists-show-error-command)))
+ (prolog-commands (list (format "set wrap %s" sqlplus-default-wrap)
+ "set linesize 4000"
+ (format "set pagesize %S" sqlplus-pagesize)
+ (format "btitle %s" (concat "left '" sqlplus-page-separator "'"))
+ (format "repfooter %s" (concat "left '" sqlplus-repfooter "'")))))
+ (when (or (not sqlplus-connect-string)
+ arg)
+ (setq sqlplus-connect-string (car (sqlplus-read-connect-string nil (caar (sqlplus-divide-connect-strings))))))
+ (sqlplus sqlplus-connect-string nil (when plsql-auto-parse-errors-flag 'dont-show-output-buffer))
+ (set-buffer buffer)
+ (force-mode-line-update)
+ (when font-lock-mode (font-lock-mode 1))
+ (when compilation-buffer
+ (with-current-buffer compilation-buffer
+ (let ((inhibit-read-only t))
+ (erase-buffer))))
+ (setq prolog-commands (append prolog-commands (sqlplus-define-user-variables (buffer-string))))
+ (sqlplus-execute sqlplus-connect-string (concat "@" file-path) context-options prolog-commands nil exists-show-error-command)))))
+
+(defun plsql-parse-errors (last-compiled-file-path)
+ (let ((file-name (file-name-nondirectory last-compiled-file-path))
+ error-list)
+ (put-text-property 0 (length file-name) 'face 'font-lock-warning-face file-name)
+ (save-excursion
+ (when (re-search-forward "^LINE/COL\\>" nil t)
+ (beginning-of-line 3)
+ (while (re-search-forward "^\\([0-9]+\\)/\\([0-9]+\\)\\s-*\\(\\(.\\|\n\\)*?\\)[\r\t ]*\n\\([\r\t ]*\\(\n\\|\\'\\)\\|[0-9]+\\)" nil t)
+ (let ((line-no (match-string 1))
+ (column-no (match-string 2))
+ (errmsg (match-string 3))
+ label)
+ (goto-char (match-beginning 5))
+ (while (string-match "\\s-\\s-+" errmsg)
+ (setq errmsg (replace-match " " nil t errmsg)))
+ (put-text-property 0 (length line-no) 'face 'font-lock-variable-name-face line-no)
+ (put-text-property 0 (length column-no) 'face 'font-lock-variable-name-face column-no)
+ (setq label (concat file-name ":" line-no ":" column-no ": " errmsg))
+ (put-text-property 0 (length label) 'mouse-face 'highlight label)
+ (push label error-list)))))
+ (save-excursion
+ (while (re-search-forward "\\s-\\([0-9]+\\):\n\\(ORA-[0-9]+[^\n]*\\)\n" nil t)
+ (let ((line-no (match-string 1))
+ (errmsg (match-string 2))
+ label)
+ (put-text-property 0 (length line-no) 'face 'font-lock-variable-name-face line-no)
+ (setq label (concat file-name ":" line-no ": " errmsg))
+ (put-text-property 0 (length label) 'mouse-face 'highlight label)
+ (push label error-list))))
+ (save-excursion
+ (while (re-search-forward "\\(\\(SP2\\|CPY\\)-[0-9]+:[^\n]*\\)\n" nil t)
+ (let ((errmsg (match-string 1))
+ label)
+ (setq label (concat file-name ":" errmsg))
+ (put-text-property 0 (length label) 'mouse-face 'highlight label)
+ (push label error-list))))
+ error-list))
+
+(defun plsql-display-errors (dir error-list)
+ (let ((buffer (get-buffer-create sqlplus-plsql-compilation-results-buffer-name)))
+ (save-selected-window
+ (save-excursion
+ (set-buffer buffer)
+ (let ((inhibit-read-only t))
+ (erase-buffer)
+ (setq default-directory dir)
+ (insert (format "cd %s\n" default-directory))
+ (insert (format "Compilation results\n"))
+ (compilation-minor-mode 1)
+ (dolist (msg (reverse error-list))
+ (insert msg)
+ (insert "\n"))
+ (insert (format "\n(%s errors)\n" (length error-list))))
+ (when (and error-list (fboundp 'compile-reinitialize-errors) (funcall (symbol-function 'compile-reinitialize-errors) t)))
+ (switch-to-buffer-other-window buffer)
+ (goto-line 1)
+ (goto-line 3)))))
+
+
+(defun sqlplus-file-truename (file-name)
+ (if file-name
+ (file-truename file-name)
+ file-name))
+
+(defun sqlplus--hidden-buffer-name-p (buffer-name)
+ (equal (elt buffer-name 0) 32))
+
+(defun sqlplus-get-workbench-window ()
+ "Return upper left window"
+ (if (fboundp 'ide-get-workbench-window)
+ (funcall (symbol-function 'ide-get-workbench-window))
+ (let (best-window)
+ (dolist (win (copy-list (window-list nil 1)))
+ (when (not (sqlplus--hidden-buffer-name-p (buffer-name (window-buffer win))))
+ (if (null best-window)
+ (setq best-window win)
+ (let* ((best-window-coords (window-edges best-window))
+ (win-coords (window-edges win)))
+ (when (or (< (cadr win-coords) (cadr best-window-coords))
+ (and (= (cadr win-coords) (cadr best-window-coords))
+ (< (car win-coords) (car best-window-coords))))
+ (setq best-window win))))))
+ ;; (message "BEST-WINDOW: %S" best-window)
+ best-window)))
+
+(defun sqlplus-get-side-window ()
+ "Return bottom helper window, or nil if not found"
+ (if (fboundp 'ide-get-side-window)
+ (funcall (symbol-function 'ide-get-side-window))
+ (let* ((workbench-window (sqlplus-get-workbench-window))
+ best-window)
+ (dolist (win (copy-list (window-list nil 1)))
+ (when (and (not (sqlplus--hidden-buffer-name-p (buffer-name (window-buffer win))))
+ (not (eq win workbench-window)))
+ (if (null best-window)
+ (setq best-window win)
+ (when (> (cadr (window-edges win)) (cadr (window-edges best-window)))
+ (setq best-window win)))))
+ best-window)))
+
+(defvar sqlplus--idle-tasks nil)
+
+(defun sqlplus--enqueue-task (fun &rest params)
+ (setq sqlplus--idle-tasks (reverse (cons (cons fun params) (reverse sqlplus--idle-tasks)))))
+
+(defun sqlplus--execute-tasks ()
+ (dolist (task sqlplus--idle-tasks)
+ (let ((fun (car task))
+ (params (cdr task)))
+ (condition-case var
+ (apply fun params)
+ (error (message (error-message-string var))))))
+ (setq sqlplus--idle-tasks nil))
+
+(add-hook 'post-command-hook 'sqlplus--execute-tasks)
+
+(defvar sqlplus-mouse-selection nil)
+
+(defun sqlplus-mouse-set-selection (buffer begin end mouse-face)
+ (interactive "@e")
+ (let ((old-buffer-modified-p (buffer-modified-p)))
+ (when (buffer-live-p buffer)
+ (with-current-buffer buffer
+ (unwind-protect
+ (put-text-property begin end 'mouse-face mouse-face)
+ (set-buffer-modified-p old-buffer-modified-p)
+ (setq sqlplus-mouse-selection (when mouse-face (list buffer begin end))))))))
+
+(defun sqlplus-clear-mouse-selection ()
+ (when (and sqlplus-mouse-selection
+ (eq (event-basic-type last-input-event) 'mouse-1)
+ (not (memq 'down (event-modifiers last-input-event))))
+ (sqlplus-mouse-set-selection (car sqlplus-mouse-selection) (cadr sqlplus-mouse-selection) (caddr sqlplus-mouse-selection) nil)))
+
+(add-hook 'plsql-mode-hook
+ (lambda ()
+ (modify-syntax-entry ?. "." sql-mode-syntax-table)
+ (setq sqlplus-font-lock-keywords-1 (sqlplus-set-font-lock-emacs-structures-for-level 1 major-mode))
+ (setq sqlplus-font-lock-keywords-2 (sqlplus-set-font-lock-emacs-structures-for-level 2 major-mode))
+ (setq sqlplus-font-lock-keywords-3 (sqlplus-set-font-lock-emacs-structures-for-level 3 major-mode))
+ (setq font-lock-defaults '((sqlplus-font-lock-keywords-1 sqlplus-font-lock-keywords-2 sqlplus-font-lock-keywords-3)
+ nil t ((?_ . "w") (?$ . "w") (?# . "w") (?& . "w"))))
+ (orcl-mode 1)
+ (use-local-map plsql-mode-map) ; std
+ (add-hook 'post-command-hook 'sqlplus-clear-mouse-selection nil t)))
+
+(setq recentf-exclude (cons (concat "^" (regexp-quote (file-name-as-directory temporary-file-directory)))
+ (when (boundp 'recentf-exclude)
+ recentf-exclude)))
+
+(when (fboundp 'ide-register-persistent-var)
+ (funcall (symbol-function 'ide-register-persistent-var) 'sqlplus-connect-strings-alist
+ ;; save proc
+ (lambda (alist)
+ (mapcar (lambda (pair)
+ (if sqlplus-save-passwords
+ pair
+ (cons (car pair) nil)))
+ alist))
+ ;; load proc
+ (lambda (alist)
+ (setq sqlplus-connect-string-history (mapcar (lambda (pair) (car pair)) alist))
+ alist)))
+
+(defun get-all-dirs (root-dir)
+ (let ((list-to-see (list root-dir))
+ result-list)
+ (while list-to-see
+ (let* ((dir (pop list-to-see))
+ (children (directory-files dir t)))
+ (push dir result-list)
+ (dolist (child children)
+ (when (and (not (string-match "^[.]+"(file-name-nondirectory child)))
+ (file-directory-p child))
+ (push child list-to-see)))))
+ result-list))
+
+(defun sqlplus-command-line ()
+ (interactive)
+ (if (comint-check-proc "*SQL*")
+ (pop-to-buffer "*SQL*")
+ (let* ((pair (sqlplus-read-connect-string nil (when sqlplus-connect-string (car (refine-connect-string sqlplus-connect-string)))))
+ (qualified-cs (car pair))
+ (refined-cs (cadr pair))
+ (password (cdr (refine-connect-string qualified-cs))))
+ (if (string-match "^\\([^@]*\\)@\\(.*\\)$" refined-cs)
+ (let ((old-sql-get-login-fun (symbol-function 'sql-get-login)))
+ (setq sql-user (match-string 1 refined-cs)
+ sql-password password
+ sql-database (match-string 2 refined-cs))
+ (unwind-protect
+ (progn
+ (fset 'sql-get-login (lambda (&rest whatever) nil))
+ (sql-oracle))
+ (fset 'sql-get-login old-sql-get-login-fun)))
+ (error "Connect string must be in form login@sid")))))
+
+(defun sqlplus-find-tnsnames ()
+ (interactive)
+ (let* ((ora-home-dir (or (getenv "ORACLE_HOME") (error "Environment variable ORACLE_HOME not set")))
+ found
+ (list-to-see (list ora-home-dir)))
+ (while (and (not found) list-to-see)
+ (let* ((dir (pop list-to-see))
+ (children (condition-case nil (directory-files dir t) (error nil))))
+ (dolist (child children)
+ (unless found
+ (if (string-match "admin.tnsnames\.ora$" child)
+ (progn
+ (setq found t)
+ (find-file child))
+ (if (and (not (string-match "^[.]+" (file-name-nondirectory child)))
+ (file-directory-p child))
+ (push child list-to-see)))))))
+ (unless found
+ (message "File tnsnames.ora not found"))))
+
+(defun sqlplus-remove-help-echo (list)
+ "Remove all HELP-ECHO properties from mode-line format value"
+ (when (listp list)
+ (if (eq (car list) :propertize)
+ (while list
+ (when (eq (cadr list) 'help-echo)
+ (setcdr list (cdddr list)))
+ (setq list (cdr list)))
+ (dolist (elem list) (sqlplus-remove-help-echo elem)))))
+
+(when (>= emacs-major-version 22)
+ (sqlplus-remove-help-echo mode-line-modes))
+
+(defun sqlplus-get-project-root-dir (path)
+ (let ((path (file-truename (substitute-in-file-name path)))
+ dir)
+ (if (file-directory-p path)
+ (progn
+ (setq path (file-name-as-directory path))
+ (setq dir path))
+ (setq dir (file-name-as-directory (file-name-directory path))))
+ (let ((last-project-dir dir)
+ (dir-list (split-string dir "/"))
+ is-project)
+ (while (directory-files dir t (concat "^" "\\(\\.svn\\|CVS\\)$") t)
+ (setq is-project t
+ last-project-dir (file-name-as-directory dir)
+ dir (file-name-as-directory (file-name-directory (directory-file-name dir)))))
+ (when is-project
+ (let ((list (nthcdr (1- (length (split-string last-project-dir "/"))) dir-list)))
+ (cond ((equal (car list) "trunk")
+ (setq last-project-dir (concat last-project-dir "trunk/")))
+ ((member (car list) '("branches" "tags"))
+ (setq last-project-dir (concat last-project-dir (car list) "/" (when (cdr list) (concat (cadr list) "/")))))
+ (t)))
+ (setq dir last-project-dir)))
+ dir))
+
+(defvar sqlplus-search-buffer-name "*search*")
+
+(defvar sqlplus-object-types-regexps
+ '(
+ ("TABLE" . "\\bcreate\\s+table\\s+[^(]*?\\b#\\b")
+ ("VIEW" . "\\bview\\s+.*?\\b#\\b")
+ ("INDEX" . "\\b(constraint|index)\\s+.*?\\b#\\b")
+ ("TRIGGER" . "\\btrigger\\s+.*?\\b#\\b")
+ ("SEQUENCE" . "\\bsequence\\s+.*?\\b#\\b")
+ ("SYNONYM" . "\\bsynonym\\s+.*?\\b#\\b")
+ ("SCHEMA" . "\\bcreate\\b.*?\\buser\\b.*?\\b#\\b")
+ ("PROCEDURE" . "\\b(procedure|function)\\b[^(]*?\\b#\\b")
+ ("PACKAGE" . "\\bpackage\\s+.*?\\b#\\b")))
+
+(defvar sqlplus-root-dir-history nil)
+
+(defvar sqlplus-compare-report-buffer-name "*Comparation Report*")
+
+(defun sqlplus-compare-schema-to-filesystem (&optional arg)
+ (interactive "P")
+ (let* ((connect-string sqlplus-connect-string)
+ (objects-alist (sqlplus-get-objects-alist sqlplus-connect-string))
+ (report-buffer (get-buffer-create sqlplus-compare-report-buffer-name))
+ (types-length (- (length objects-alist) 2))
+ (root-dir (or (sqlplus-get-root-dir connect-string)
+ (sqlplus-set-project-for-connect-string connect-string)
+ (error "Root dir not set")))
+ (counter 0))
+ (unless objects-alist
+ (error "Not ready yet - try again later"))
+ (save-excursion
+ (switch-to-buffer-other-window report-buffer))
+ (with-current-buffer report-buffer
+ (let ((inhibit-read-only t))
+ (erase-buffer)
+ (insert (format "%s %s vs. %s\n\n" (current-time-string) (car (refine-connect-string connect-string)) root-dir))
+ (sit-for 0)))
+ (dolist (pair objects-alist)
+ (let ((type (upcase (format "%s" (car pair))))
+ (names (cdr pair)))
+ (unless (member type '("SCHEMA" "COLUMN"))
+ (incf counter)
+ (message (format "%s (%d/%d)..." type counter types-length))
+ (dolist (name-pair names)
+ (let* ((name (car name-pair))
+ (grep-result (sqlplus-file-get-source sqlplus-connect-string name type 'batch-mode)))
+ (with-current-buffer report-buffer
+ (let ((inhibit-read-only t))
+ (goto-char (point-max))
+ (cond ((eql (length grep-result) 0)
+ (insert (format "%s %s: not found\n" type name))
+ (sit-for 0))
+ ((and arg
+ (> (length grep-result) 1))
+ (insert (format "%s %s:\n" type name))
+ (dolist (list grep-result)
+ (insert (format " %s:%d %s\n" (car list) (cadr list) (caddr list))))
+ (sit-for 0))
+ (t)))))))))
+ (message "Done.")
+ (with-current-buffer report-buffer
+ (goto-char (point-min)))))
+
+(defun sqlplus-proj-find-files (dir file-predicate &optional dir-predicate)
+ (setq dir (file-name-as-directory (file-truename (substitute-in-file-name dir))))
+ (let (result-list)
+ (mapcar (lambda (path)
+ (if (file-directory-p path)
+ (when (and (file-accessible-directory-p path)
+ (or (null dir-predicate)
+ (funcall dir-predicate path)))
+ (setq result-list (append result-list (sqlplus-proj-find-files path file-predicate dir-predicate))))
+ (when (or (null file-predicate)
+ (funcall file-predicate path))
+ (push path result-list))))
+ (delete (concat (file-name-as-directory dir) ".")
+ (delete (concat (file-name-as-directory dir) "..")
+ (directory-files dir t nil t))))
+ result-list))
+
+(defvar sqlplus-proj-ignored-extensions '("semantic.cache"))
+
+(defun sqlplus-mode-file-regexp-list (mode-symbol-list)
+ (delq nil (mapcar (lambda (element)
+ (let ((fun-name (if (listp (cdr element)) (cadr element) (cdr element))))
+ (when (memq fun-name mode-symbol-list) (cons (car element) fun-name))))
+ auto-mode-alist)))
+
+(defun sqlplus-find-project-files (root-dir mode-symbol-list predicate)
+ (let ((obj-file-regexp-list (delq nil (mapcar (lambda (element)
+ (let ((len (length element)))
+ (unless (and (> len 0)
+ (equal (elt element (1- len)) ?/))
+ (concat (regexp-quote element) "$"))))
+ (append sqlplus-proj-ignored-extensions completion-ignored-extensions))))
+ (mode-file-regexp-list (sqlplus-mode-file-regexp-list mode-symbol-list))) ; (file-path-regexp . major-mode-function-symbol)
+ (when (and mode-symbol-list
+ (not mode-file-regexp-list))
+ (error (format "No rules for %s major modes in auto-mode-alist." (mapconcat 'identity mode-symbol-list ", "))))
+ (sqlplus-proj-find-files root-dir
+ (lambda (file-name)
+ (and (not (string-match "#" file-name))
+ (not (string-match "semantic.cache" file-name))
+ (or (and (not mode-symbol-list)
+ (not (some (lambda (regexp)
+ (string-match regexp file-name))
+ obj-file-regexp-list)))
+ (and mode-symbol-list
+ (some (lambda (element)
+ (let ((freg (if (string-match "[$]" (car element))
+ (car element)
+ (concat (car element) "$"))))
+ (when (string-match freg file-name)
+ (cdr element))))
+ mode-file-regexp-list)))
+ (or (not predicate)
+ (funcall predicate file-name))))
+ (lambda (dir-path)
+ (not (string-match "/\\(\\.svn\\|CVS\\)$" dir-path))))))
+
+
+(defun sqlplus-file-get-source (connect-string object-name object-type &optional batch-mode)
+ (interactive
+ (progn
+ (push (point-marker) plsql-mark-backward-list)
+ (list sqlplus-connect-string (thing-at-point 'symbol) nil)))
+ (unless object-name
+ (error "Nothing to search"))
+ (let* ((root-dir (or (and (not object-type)
+ (eq major-mode 'plsql-mode)
+ (buffer-file-name)
+ (sqlplus-get-project-root-dir (buffer-file-name)))
+ (sqlplus-get-root-dir connect-string)
+ (sqlplus-set-project-for-connect-string connect-string)
+ (error "Root dir not set")))
+ (mode-symbol-list '(plsql-mode sql-mode))
+ (files-to-grep (sqlplus-find-project-files root-dir mode-symbol-list nil))
+ (temp-file-path (concat (file-name-as-directory temporary-file-directory) (make-temp-name "ide-")))
+ (search-buffer (get-buffer sqlplus-search-buffer-name))
+ (regexp (let ((index 0)
+ (len (length object-name))
+ result)
+ (setq result
+ (if object-type
+ (let ((type (cond ((equal object-type "FUNCTION") "PROCEDURE")
+ ((equal object-type "PACKAGE BODY") "PACKAGE")
+ (t object-type))))
+ (cdr (assoc type sqlplus-object-types-regexps)))
+ (mapconcat 'cdr sqlplus-object-types-regexps "|")))
+ (unless result
+ (error "Not implemented"))
+ (while (and (< index (length result))
+ (string-match "#" result index))
+ (setq index (+ (match-beginning 0) len))
+ (setq result (replace-match object-name t t result)))
+ (setq index 0)
+ (while (and (< index (length result))
+ (string-match "[$]\\(\\\\b\\)?" result index))
+ (setq index (+ (match-end 0) 1))
+ (setq result (replace-match "\\$" t t result)))
+ result))
+ grep-command
+ grep-result)
+ (when search-buffer
+ (with-current-buffer search-buffer
+ (let ((inhibit-read-only t))
+ (erase-buffer))))
+ ;; (message "Object type: %S, object name: %S, regexp: %S" object-type object-name regexp)
+ (with-temp-file temp-file-path
+ (dolist (path files-to-grep)
+ (insert (concat "'" path "'\n"))))
+ (let* ((grep-command (format "cat %s | xargs grep -nHiE -e '%s'" temp-file-path regexp))
+ (raw-grep-result (split-string (shell-command-to-string grep-command) "\n" t))
+ (grep-result (delq nil (mapcar (lambda (line)
+ (string-match "^\\(.*?\\):\\([0-9]+\\):\\(.*\\)$" line)
+ (let* ((path (match-string 1 line))
+ (line-no (string-to-number (match-string 2 line)))
+ (text (match-string 3 line))
+ (text2 text)
+ (syn-table (copy-syntax-table))
+ (case-fold-search t))
+ (modify-syntax-entry ?$ "w" syn-table)
+ (modify-syntax-entry ?# "w" syn-table)
+ (modify-syntax-entry ?_ "w" syn-table)
+ (with-syntax-table syn-table
+ (when (and (or (and (not object-type)
+ (> (length raw-grep-result) 1))
+ (equal object-type "SYNONYM"))
+ (string-match "\\<\\(for\\|from\\|on\\|as\\)\\>" text2))
+ (setq text2 (substring text2 0 (match-beginning 0))))
+ ;; (message "GREP-RESULT: %s" text2)
+ (unless (or (not (string-match (concat "\\<" (regexp-quote object-name) "\\>") text2))
+ (string-match (concat "\\(--\\|\\<pro\\>\\|\\<prompt\\>\\|\\<drop\\>\\|\\<grant\\>\\).*\\<"
+ (regexp-quote object-name) "\\>") text2)
+ (and (or (and (not object-type)
+ (> (length raw-grep-result) 1))
+ (equal object-type "TRIGGER"))
+ (string-match "\\<\\(alter\\|disable\\|enable\\)\\>" text2))
+ (and (or (and (not object-type)
+ (string-match "\\<package\\>" text2)
+ current-prefix-arg)
+ (equal object-type "PACKAGE"))
+ (string-match "\\<body\\>" text2))
+ (and (or (and (not object-type)
+ (string-match "\\<package\\>" text2)
+ (not current-prefix-arg))
+ (equal object-type "PACKAGE BODY"))
+ (not (string-match "\\<body\\>" text2)))
+ (and (not object-type)
+ (not current-prefix-arg)
+ (string-match "[.]pks$" path)))
+ (list path line-no text)))))
+ raw-grep-result))))
+ (if batch-mode
+ grep-result
+ (cond ((not grep-result)
+ (error "Not found"))
+ ((eql (length grep-result) 1)
+ (sqlplus-switch-to-buffer (caar grep-result) (cadar grep-result))
+ (when connect-string
+ (setq sqlplus-connect-string connect-string)))
+ (t
+ (let ((search-buffer (get-buffer-create sqlplus-search-buffer-name)))
+ (with-current-buffer search-buffer
+ (setq buffer-read-only t)
+ (let ((inhibit-read-only t))
+ (setq default-directory root-dir)
+ (erase-buffer)
+ (insert "Root dir: ")
+ (sqlplus-proj-insert-with-face root-dir 'font-lock-keyword-face)
+ (insert "; Range: ")
+ (sqlplus-proj-insert-with-face (mapconcat (lambda (sym) (sqlplus-mode-name-stringify sym)) mode-symbol-list ", ")
+ 'font-lock-keyword-face)
+ (insert "; Object type: ")
+ (sqlplus-proj-insert-with-face (or object-type "unspecified") 'font-lock-keyword-face)
+ (insert "; Object name: ")
+ (sqlplus-proj-insert-with-face object-name 'font-lock-keyword-face)
+ (insert "\n\n")
+ (compilation-minor-mode 1)
+ (dolist (result grep-result)
+ (let ((relative-path (concat "./" (file-relative-name (car result) root-dir)))
+ (line-no (cadr result))
+ (text (caddr result)))
+ (put-text-property 0 (length relative-path) 'mouse-face 'highlight relative-path)
+ (insert relative-path)
+ (insert (format ":%S:1 %s\n" line-no text))))
+ (insert (format "\n%d matches found." (length grep-result)))
+ (goto-char (point-min))
+ (when (and grep-result (fboundp 'compile-reinitialize-errors) (funcall (symbol-function 'compile-reinitialize-errors) t)))
+ (switch-to-buffer-other-window search-buffer)
+ (goto-line 1)
+ (goto-line 3))))))))))
+
+(defun sqlplus-mode-name-stringify (mode-name)
+ (let ((name (format "%s" mode-name)))
+ (replace-regexp-in-string "-" " "
+ (capitalize
+ (if (string-match "^\\(.*\\)-mode" name)
+ (match-string 1 name)
+ name)))))
+
+(defun sqlplus-proj-insert-with-face (string face)
+ (let ((point (point)))
+ (insert string)
+ (let ((overlay (make-overlay point (point))))
+ (overlay-put overlay 'face face))))
+
+(defun sqlplus-set-project-for-connect-string (connect-string)
+ (if (featurep 'ide-skel)
+ ;; Prepare sqlplus-root-dir-history (file-name-history) for user convenience
+ ;; 0. previous project root
+ ;; 1. current editor file project root
+ ;; 2. previous choices
+ ;; 3. new project roots
+ (let* ((prev-proj-root-dir (sqlplus-get-root-dir connect-string))
+ (last-sel-window (funcall 'ide-skel-get-last-selected-window))
+ (editor-file-proj-root-dir (when last-sel-window
+ (let* ((buffer (window-buffer last-sel-window))
+ (path (and buffer (buffer-file-name buffer)))
+ (project (and path (car (funcall 'ide-skel-proj-get-project-create path)))))
+ (when (funcall 'ide-skel-project-p project)
+ (funcall 'ide-skel-project-root-path project))))))
+ (setq sqlplus-root-dir-history
+ (delete-dups
+ (delq nil
+ (mapcar (lambda (dir)
+ (when dir
+ (directory-file-name (file-truename (substitute-in-file-name dir)))))
+ (append
+ (list editor-file-proj-root-dir prev-proj-root-dir)
+ sqlplus-root-dir-history
+ (mapcar (lambda (project) (funcall 'ide-skel-project-root-path project))
+ (symbol-value 'ide-skel-projects)))))))
+ (let* ((file-name-history (cdr sqlplus-root-dir-history))
+ (use-file-dialog nil)
+ (dir (directory-file-name (file-truename (substitute-in-file-name
+ (read-directory-name (format "Root dir for %s: " (car (refine-connect-string connect-string)))
+ (car sqlplus-root-dir-history)
+ (car sqlplus-root-dir-history)
+ t
+ nil))))))
+ (funcall 'ide-skel-proj-get-project-create dir)
+ (sqlplus-set-root-dir dir connect-string)
+ (message (format "Root dir for %s set to %s" (car (refine-connect-string connect-string)) dir))
+ dir))
+ (let* ((use-file-dialog nil)
+ (dir (directory-file-name (file-truename (substitute-in-file-name
+ (read-directory-name (format "Root dir for %s: " (car (refine-connect-string connect-string)))
+ nil nil t nil))))))
+ (sqlplus-set-root-dir dir connect-string)
+ (message (format "Root dir for %s set to %s" (car (refine-connect-string connect-string)) dir))
+ dir)))
+
+;;; Plugin for ide-skel.el
+
+(defstruct sqlplus-tab
+ id
+ name ; tab name
+ symbol ; view/sequence/schema/trigger/index/table/package/synonym/procedure
+ help-string
+ (display-start 1) ; display-start in side view window
+ (data nil) ; '(("name" . status)...), where status t means 'invalid'
+ draw-function ; parameters: sqlplus-tab
+ click-function ; parameters: event "@e"
+ (errors-count 0)
+ (refresh-in-progress t)
+ update-select)
+
+(defvar sqlplus-side-view-connect-string nil)
+(make-variable-buffer-local 'sqlplus-side-view-connect-string)
+
+(defvar sqlplus-side-view-active-tab nil)
+(make-variable-buffer-local 'sqlplus-side-view-active-tab)
+
+(defvar sqlplus-side-view-tabset nil)
+(make-variable-buffer-local 'sqlplus-side-view-tabset)
+
+(defface sqlplus-side-view-face '((t :inherit variable-pitch :height 0.8))
+ "Default face used in right view"
+ :group 'sqlplus)
+
+(defvar sqlplus-side-view-keymap nil)
+(unless sqlplus-side-view-keymap
+ (setq sqlplus-side-view-keymap (make-sparse-keymap))
+ (define-key sqlplus-side-view-keymap [mode-line down-mouse-1] 'ignore)
+ (define-key sqlplus-side-view-keymap [mode-line mouse-1] 'sqlplus-side-view-tab-click))
+
+(defun sqlplus-side-view-tab-click (event)
+ (interactive "@e")
+ (with-selected-window (posn-window (event-start event))
+ (let* ((previous-sel-tab-info (nth sqlplus-side-view-active-tab sqlplus-side-view-tabset))
+ (target (posn-string (event-start event)))
+ (tab-info (get-text-property (cdr target) 'tab-info (car target))))
+ (setf (sqlplus-tab-display-start previous-sel-tab-info) (line-number-at-pos (window-start)))
+ (setq sqlplus-side-view-active-tab (sqlplus-tab-id tab-info))
+ (sqlplus-side-view-redraw (current-buffer) t)
+ (sqlplus-side-view-buffer-mode-line))))
+
+(defun sqlplus-side-view-buffer-mode-line ()
+ (let* ((separator (propertize " "
+ 'face 'header-line
+ 'display '(space :width 0.2)
+ 'pointer 'arrow)))
+ (setq mode-line-format
+ (concat separator
+ (mapconcat (lambda (tab)
+ (let ((face (if (eq (sqlplus-tab-id tab) sqlplus-side-view-active-tab)
+ 'tabbar-selected
+ 'tabbar-unselected))
+ (help-echo (concat (sqlplus-tab-help-string tab)
+ (if (> (sqlplus-tab-errors-count tab) 0)
+ (format "\n(%s error%s)" (sqlplus-tab-errors-count tab)
+ (if (> (sqlplus-tab-errors-count tab) 1) "s" ""))
+ ""))))
+ (propertize (format " %s " (sqlplus-tab-name tab))
+ 'local-map sqlplus-side-view-keymap
+ 'tab-info tab
+ 'help-echo help-echo
+ 'mouse-face 'tabbar-highlight
+ 'face (if (> (sqlplus-tab-errors-count tab) 0)
+ (list '(foreground-color . "red") face)
+ face)
+ 'pointer 'hand)))
+ sqlplus-side-view-tabset
+ separator)
+ separator))))
+
+(defun sqlplus-side-view-click-on-default-handler (event)
+ (interactive "@e")
+ (with-selected-window (posn-window (event-start event))
+ (let* ((posn-point (posn-point (event-start event)))
+ (object-name (get-text-property posn-point 'object-name))
+ (object-type (get-text-property posn-point 'object-type))
+ (type (car event)))
+ (when (eq type 'mouse-3)
+ (setq type (car (x-popup-menu t (append (list 'keymap object-name)
+ (list '(sqlplus-refresh-side-view-buffer "Refresh" t))
+ (list '(mouse-1 "Get source from Oracle" t))
+ (list '(M-mouse-1 "Search source in filesystem" t))
+ (list (list 'C-M-mouse-1 (concat "Set root dir for " (car (refine-connect-string sqlplus-side-view-connect-string))) t))
+ )))))
+ (cond ((eq type 'mouse-1)
+ (sqlplus-get-source sqlplus-side-view-connect-string object-name object-type))
+ ((eq type 'M-mouse-1)
+ (sqlplus-file-get-source sqlplus-side-view-connect-string object-name object-type))
+ ((eq type 'C-M-mouse-1)
+ (sqlplus-set-project-for-connect-string sqlplus-side-view-connect-string))
+ ((eq type nil))
+ (t
+ (condition-case err
+ (funcall type)
+ (error nil)))))))
+
+(defun sqlplus-side-view-click-on-index-handler (event)
+ (interactive "@e")
+ (with-selected-window (posn-window (event-start event))
+ (let* ((posn-point (posn-point (event-start event)))
+ (object-name (get-text-property posn-point 'object-name))
+ (object-type (get-text-property posn-point 'object-type))
+ (type (car event)))
+ (when (eq type 'mouse-3)
+ (setq type (car (x-popup-menu t (append (list 'keymap object-name)
+ (list '(sqlplus-refresh-side-view-buffer "Refresh" t))
+ (list '(mouse-1 "Get source from Oracle" t))
+ (list '(M-mouse-1 "Search source in filesystem" t))
+ (list (list 'C-M-mouse-1 (concat "Set root dir for " (car (refine-connect-string sqlplus-side-view-connect-string))) t))
+ )))))
+ (cond ((eq type 'mouse-1)
+ (sqlplus-get-source sqlplus-side-view-connect-string object-name object-type))
+ ((eq type 'M-mouse-1)
+ (sqlplus-file-get-source sqlplus-side-view-connect-string object-name object-type))
+ ((eq type 'C-M-mouse-1)
+ (sqlplus-set-project-for-connect-string sqlplus-side-view-connect-string))
+ ((eq type nil))
+ (t
+ (condition-case err
+ (funcall type)
+ (error nil)))))))
+
+(defun sqlplus-side-view-click-on-schema-handler (event)
+ (interactive "@e")
+ (with-selected-window (posn-window (event-start event))
+ (let* ((posn-point (posn-point (event-start event)))
+ (object-name (get-text-property posn-point 'object-name))
+ (object-type (get-text-property posn-point 'object-type))
+ (last-selected-win (funcall 'ide-skel-get-last-selected-window))
+ (type (car event)))
+ (when (eq type 'mouse-3)
+ (setq type (car (x-popup-menu t (append (list 'keymap object-name)
+ (list '(sqlplus-refresh-side-view-buffer "Refresh" t))
+ (list '(mouse-1 "Connect to schema" t))
+ (list '(M-mouse-1 "Search source in filesystem" t))
+ (list (list 'C-M-mouse-1 (concat "Set root dir for " (car (refine-connect-string sqlplus-side-view-connect-string))) t))
+ )))))
+ (cond ((eq type 'mouse-1)
+ (when (string-match "@.*$" sqlplus-side-view-connect-string)
+ (let* ((cs (downcase (concat object-name (match-string 0 sqlplus-side-view-connect-string))))
+ (pair (sqlplus-read-connect-string cs cs)))
+ (select-window (or last-selected-win (funcall 'ide-skel-get-editor-window)))
+ (sqlplus (car pair) (concat (cadr pair) (concat "." sqlplus-session-file-extension))))))
+ ((eq type 'M-mouse-1)
+ (sqlplus-file-get-source sqlplus-side-view-connect-string object-name object-type))
+ ((eq type 'C-M-mouse-1)
+ (sqlplus-set-project-for-connect-string sqlplus-side-view-connect-string))
+ ((eq type nil))
+ (t
+ (condition-case err
+ (funcall type)
+ (error nil))))
+ (select-window (funcall 'ide-skel-get-last-selected-window)))))
+
+(defun sqlplus-side-view-click-on-table-handler (event)
+ (interactive "@e")
+ (with-selected-window (posn-window (event-start event))
+ (let* ((posn-point (posn-point (event-start event)))
+ (object-name (get-text-property posn-point 'object-name))
+ (object-type (get-text-property posn-point 'object-type))
+ (type (car event)))
+ (when (eq type 'mouse-3)
+ (setq type (car (x-popup-menu t (append (list 'keymap object-name)
+ (list '(sqlplus-refresh-side-view-buffer "Refresh" t))
+ (list '(mouse-1 "Show description" t))
+ (list '(C-mouse-1 "Select *" t))
+ (list '(S-mouse-1 "Get source from Oracle" t))
+ (list '(M-mouse-1 "Search source in filesystem" t))
+ (list (list 'C-M-mouse-1 (concat "Set root dir for " (car (refine-connect-string sqlplus-side-view-connect-string))) t))
+ )))))
+ (cond ((eq type 'mouse-1)
+ (sqlplus-execute sqlplus-side-view-connect-string
+ (sqlplus-fontify-string sqlplus-side-view-connect-string (format "desc %s;" object-name))
+ nil nil))
+ ((eq type 'C-mouse-1)
+ (sqlplus-execute sqlplus-side-view-connect-string
+ (sqlplus-fontify-string sqlplus-side-view-connect-string (format "select * from %s;" object-name))
+ nil nil))
+ ((eq type 'S-mouse-1)
+ (sqlplus-get-source sqlplus-side-view-connect-string object-name object-type))
+ ((eq type 'M-mouse-1)
+ (sqlplus-file-get-source sqlplus-side-view-connect-string object-name object-type))
+ ((eq type 'C-M-mouse-1)
+ (sqlplus-set-project-for-connect-string sqlplus-side-view-connect-string))
+ ((eq type nil))
+ (t
+ (condition-case err
+ (funcall type)
+ (error nil))))
+ (select-window (funcall 'ide-skel-get-last-selected-window)))))
+
+(defun sqlplus-side-view-click-on-package-handler (event)
+ (interactive "@e")
+ (with-selected-window (posn-window (event-start event))
+ (let* ((posn-point (posn-point (event-start event)))
+ (object-name (get-text-property posn-point 'object-name))
+ (object-type (get-text-property posn-point 'object-type))
+ (type (car event)))
+ (when (eq type 'mouse-3)
+ (setq type (car (x-popup-menu t (append (list 'keymap object-name)
+ (list '(sqlplus-refresh-side-view-buffer "Refresh" t))
+ (list '(S-mouse-1 "Get package header from Oracle" t))
+ (list '(mouse-1 "Get package body from Oracle" t))
+ (list '(S-M-mouse-1 "Search header source in filesystem" t))
+ (list '(M-mouse-1 "Search body source in filesystem" t))
+ (list (list 'C-M-mouse-1 (concat "Set root dir for " (car (refine-connect-string sqlplus-side-view-connect-string))) t))
+ )))))
+ (cond ((eq type 'S-mouse-1)
+ (sqlplus-get-source sqlplus-side-view-connect-string object-name object-type))
+ ((eq type 'mouse-1)
+ (sqlplus-get-source sqlplus-side-view-connect-string object-name "PACKAGE BODY"))
+ ((eq type 'M-mouse-1)
+ (sqlplus-file-get-source sqlplus-side-view-connect-string object-name "PACKAGE BODY"))
+ ((eq type 'S-M-mouse-1)
+ (sqlplus-file-get-source sqlplus-side-view-connect-string object-name "PACKAGE"))
+ ((eq type 'C-M-mouse-1)
+ (sqlplus-set-project-for-connect-string sqlplus-side-view-connect-string))
+ ((eq type nil))
+ (t
+ (condition-case err
+ (funcall type)
+ (error nil)))))))
+
+(defun sqlplus-side-view-default-draw-panel (tab-info click-function)
+ (let ((pairs (sort (sqlplus-tab-data tab-info)
+ (lambda (pair1 pair2) (string< (car pair1) (car pair2)))))
+ (type-name (upcase (symbol-name (sqlplus-tab-symbol tab-info)))))
+ (dolist (pair pairs)
+ (let* ((label (format " % -100s" (car pair)))
+ (km (make-sparse-keymap)))
+ (define-key km [down-mouse-1] 'ignore)
+ (define-key km [mouse-1] click-function)
+ (define-key km [C-down-mouse-1] 'ignore)
+ (define-key km [C-mouse-1] click-function)
+ (define-key km [S-down-mouse-1] 'ignore)
+ (define-key km [S-mouse-1] click-function)
+ (define-key km [down-mouse-3] 'ignore)
+ (define-key km [mouse-3] click-function)
+ (setq label (propertize label
+ 'mouse-face 'ide-skel-highlight-face
+ 'face (if (cdr pair)
+ '(sqlplus-side-view-face (foreground-color . "red"))
+ 'sqlplus-side-view-face)
+ 'local-map km
+ 'pointer 'hand
+ 'object-name (car pair)
+ 'object-type type-name))
+ (insert label)
+ (insert "\n")))))
+
+(defun sqlplus-refresh-side-view-buffer ()
+ (let* ((tab-info (nth sqlplus-side-view-active-tab sqlplus-side-view-tabset))
+ (update-select (sqlplus-tab-update-select tab-info)))
+ (unless (sqlplus-tab-refresh-in-progress tab-info)
+ (sqlplus-hidden-select sqlplus-side-view-connect-string update-select 'sqlplus-my-update-handler))))
+
+(defun sqlplus-get-default-update-select (symbol)
+ (concat "select object_name, object_type, decode( status, 'INVALID', 'I', ' ' ) from user_objects\n"
+ "where object_name not like 'BIN$%'\n"
+ (format "and object_type = '%s';" (upcase (symbol-name symbol)))))
+
+(defun sqlplus-create-side-view-buffer (connect-string)
+ (let* ((original-connect-string connect-string)
+ (connect-string (car (refine-connect-string connect-string)))
+ (buffer (funcall 'ide-skel-get-side-view-buffer-create
+ (concat " Ide Skel Right View SQL " connect-string)
+ 'right "SQL" (concat "SQL Panel for " connect-string)
+ (lambda (editor-buffer)
+ (let ((connect-string sqlplus-side-view-connect-string))
+ (with-current-buffer editor-buffer
+ (and connect-string
+ (equal (car (refine-connect-string sqlplus-connect-string))
+ (car (refine-connect-string connect-string)))
+ )))))))
+ (with-current-buffer buffer
+ (set 'ide-skel-tabbar-menu-function
+ (lambda ()
+ (let ((tab-info (nth sqlplus-side-view-active-tab sqlplus-side-view-tabset)))
+ (list
+ (unless (sqlplus-tab-refresh-in-progress tab-info)
+ '(sqlplus-refresh-side-view-buffer "Refresh" t))))))
+ (setq sqlplus-side-view-connect-string original-connect-string
+ sqlplus-side-view-active-tab 0
+ sqlplus-side-view-tabset
+ (list
+ (make-sqlplus-tab :id 0 :name "Tab" :symbol 'table :help-string "Tables" :draw-function 'sqlplus-side-view-default-draw-panel
+ :update-select (sqlplus-get-default-update-select 'table)
+ :click-function 'sqlplus-side-view-click-on-table-handler)
+ (make-sqlplus-tab :id 1 :name "Vie" :symbol 'view :help-string "Views" :draw-function 'sqlplus-side-view-default-draw-panel
+ :update-select (sqlplus-get-default-update-select 'view)
+ :click-function 'sqlplus-side-view-click-on-table-handler)
+ (make-sqlplus-tab :id 2 :name "Idx" :symbol 'index :help-string "Indexes" :draw-function 'sqlplus-side-view-default-draw-panel
+ :update-select (sqlplus-get-default-update-select 'index)
+ :click-function 'sqlplus-side-view-click-on-index-handler)
+ (make-sqlplus-tab :id 3 :name "Tri" :symbol 'trigger :help-string "Triggers" :draw-function 'sqlplus-side-view-default-draw-panel
+ :update-select (sqlplus-get-default-update-select 'trigger)
+ :click-function 'sqlplus-side-view-click-on-default-handler)
+ (make-sqlplus-tab :id 4 :name "Seq" :symbol 'sequence :help-string "Sequences" :draw-function 'sqlplus-side-view-default-draw-panel
+ :update-select (sqlplus-get-default-update-select 'sequence)
+ :click-function 'sqlplus-side-view-click-on-default-handler)
+ (make-sqlplus-tab :id 5 :name "Syn" :symbol 'synonym :help-string "Synonyms" :draw-function 'sqlplus-side-view-default-draw-panel
+ :update-select (sqlplus-get-default-update-select 'synonym)
+ :click-function 'sqlplus-side-view-click-on-default-handler)
+ (make-sqlplus-tab :id 6 :name "Pkg" :symbol 'package :help-string "PL/SQL Packages" :draw-function 'sqlplus-side-view-default-draw-panel
+ :update-select (sqlplus-get-default-update-select 'package)
+ :click-function 'sqlplus-side-view-click-on-package-handler)
+ (make-sqlplus-tab :id 7 :name "Prc" :symbol 'procedure :help-string "PL/SQL Functions & Procedures" :draw-function 'sqlplus-side-view-default-draw-panel
+ :update-select (concat "select object_name, object_type, decode( status, 'INVALID', 'I', ' ' ) from user_objects\n"
+ "where object_name not like 'BIN$%'\n"
+ "and object_type in ('FUNCTION', 'PROCEDURE');")
+ :click-function 'sqlplus-side-view-click-on-default-handler)
+ (make-sqlplus-tab :id 8 :name "Sch" :symbol 'schema :help-string "Schemas" :draw-function 'sqlplus-side-view-default-draw-panel
+ :update-select "select username, 'SCHEMA', ' ' from all_users where username not like 'BIN$%';"
+ :click-function 'sqlplus-side-view-click-on-schema-handler)
+ ))
+ (sqlplus-side-view-buffer-mode-line))
+ buffer))
+
+(defun sqlplus-side-view-redraw (sql-view-buffer &optional window-start-from-tab-info)
+ (with-current-buffer sql-view-buffer
+ (let* ((point (point))
+ (tab-info (nth sqlplus-side-view-active-tab sqlplus-side-view-tabset))
+ (window-start (when (and (symbol-value 'ide-skel-current-right-view-window)
+ (eq (window-buffer (symbol-value 'ide-skel-current-right-view-window)) (current-buffer)))
+ (if window-start-from-tab-info
+ (sqlplus-tab-display-start tab-info)
+ (line-number-at-pos (window-start (symbol-value 'ide-skel-current-right-view-window)))))))
+ (let ((inhibit-read-only t))
+ (setq buffer-read-only nil)
+ (erase-buffer)
+ (when (sqlplus-tab-draw-function tab-info)
+ (funcall (sqlplus-tab-draw-function tab-info) tab-info (sqlplus-tab-click-function tab-info))))
+ (if window-start
+ (let ((pos (save-excursion
+ (goto-line window-start)
+ (beginning-of-line)
+ (point))))
+ (set-window-start (symbol-value 'ide-skel-current-right-view-window) pos)
+ (setf (sqlplus-tab-display-start tab-info) window-start))
+ (goto-char point)
+ (beginning-of-line)))))
+
+(defun sqlplus-side-view-update-data (connect-string alist)
+ (let* ((connect-string (car (refine-connect-string connect-string)))
+ (sql-view-buffer (sqlplus-get-side-view-buffer connect-string))
+ was-proc)
+ (when sql-view-buffer
+ (with-current-buffer sql-view-buffer
+ (dolist (pair alist)
+ (let* ((symbol (if (eq (car pair) 'function) 'procedure (car pair)))
+ (data-list (cdr pair))
+ (tab-info (some (lambda (tab)
+ (when (eq (sqlplus-tab-symbol tab) symbol)
+ tab))
+ sqlplus-side-view-tabset)))
+ (when tab-info
+ (setf (sqlplus-tab-refresh-in-progress tab-info) nil)
+ (setf (sqlplus-tab-data tab-info)
+ (if (and (eq symbol 'procedure)
+ was-proc)
+ (append (sqlplus-tab-data tab-info) (copy-list data-list))
+ data-list))
+ (when (eq symbol 'procedure)
+ (setq was-proc t))
+ (setf (sqlplus-tab-errors-count tab-info)
+ (count t (mapcar 'cdr data-list)))
+ (when (eql sqlplus-side-view-active-tab (sqlplus-tab-id tab-info))
+ (sqlplus-side-view-redraw (current-buffer))))))
+ (sqlplus-side-view-buffer-mode-line)
+ (force-mode-line-update)))))
+
+(defun sqlplus-side-view-window-function (side event &rest list)
+ (when (and (eq side 'right)
+ (symbol-value 'ide-skel-current-right-view-window)
+ (with-current-buffer (symbol-value 'ide-skel-current-editor-buffer)
+ sqlplus-connect-string))
+ (cond ((memq event '(show editor-buffer-changed))
+ (let ((sql-view-buffer (sqlplus-get-side-view-buffer (with-current-buffer (symbol-value 'ide-skel-current-editor-buffer)
+ sqlplus-connect-string))))
+ (when sql-view-buffer
+ (with-current-buffer sql-view-buffer
+ (set 'ide-skel-tabbar-enabled t)
+ (funcall 'ide-skel-side-window-switch-to-buffer (symbol-value 'ide-skel-current-right-view-window) sql-view-buffer)))))))
+ nil)
+
+(add-hook 'ide-skel-side-view-window-functions 'sqlplus-side-view-window-function)
+
+
+(provide 'sqlplus)
+
+;;; sqlplus.el ends here
diff --git a/.emacs.d/themes/color-theme-example.el b/.emacs.d/themes/color-theme-example.el
new file mode 100644
index 0000000..f73b4f6
--- /dev/null
+++ b/.emacs.d/themes/color-theme-example.el
@@ -0,0 +1,22 @@
+(eval-when-compile
+ (require 'color-theme))
+
+(defun color-theme-example ()
+ "Example theme. Carbon copy of color-theme-gnome contributed by Jonadab."
+ (interactive)
+ (color-theme-install
+ '(color-theme-example
+ ((foreground-color . "wheat")
+ (background-color . "darkslategrey")
+ (background-mode . dark))
+ (default ((t (nil))))
+ (region ((t (:foreground "cyan" :background "dark cyan"))))
+ (underline ((t (:foreground "yellow" :underline t))))
+ (modeline ((t (:foreground "dark cyan" :background "wheat"))))
+ (modeline-buffer-id ((t (:foreground "dark cyan" :background "wheat"))))
+ (modeline-mousable ((t (:foreground "dark cyan" :background "wheat"))))
+ (modeline-mousable-minor-mode ((t (:foreground "dark cyan" :background "wheat"))))
+ (italic ((t (:foreground "dark red" :italic t))))
+ (bold-italic ((t (:foreground "dark red" :bold t :italic t))))
+ (font-lock-comment-face ((t (:foreground "Firebrick"))))
+ (bold ((t (:bold)))))))
diff --git a/.emacs.d/themes/color-theme-library.el b/.emacs.d/themes/color-theme-library.el
new file mode 100644
index 0000000..d194708
--- /dev/null
+++ b/.emacs.d/themes/color-theme-library.el
@@ -0,0 +1,13539 @@
+;;; color-theme-library.el --- The real color theme functions
+
+;; Copyright (C) 2005, 2006 Xavier Maillard <zedek@gnu.org>
+;; Copyright (C) 2005, 2006 Brian Palmer <bpalmer@gmail.com>
+
+;; Version: 0.0.9
+;; Keywords: faces
+;; Author: Brian Palmer, Xavier Maillard
+;; Maintainer: Xavier Maillard <zedek@gnu.org>
+;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ColorTheme
+
+;; This file is not (YET) part of GNU Emacs.
+
+;; This is free software; you can redistribute it and/or modify it under
+;; the terms of the GNU General Public License as published by the Free
+;; Software Foundation; either version 2, or (at your option) any later
+;; version.
+;;
+;; This is distributed in the hope that it will be useful, but WITHOUT
+;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+;; for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING. If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+;; MA 02111-1307, USA.
+
+;; Code:
+(eval-when-compile
+ (require 'color-theme))
+
+(defun color-theme-gnome ()
+ "Wheat on darkslategrey scheme.
+From one version of Emacs in RH6 and Gnome, modified by Jonadab."
+ (interactive)
+ (color-theme-install
+ '(color-theme-gnome
+ ((foreground-color . "wheat")
+ (background-color . "darkslategrey")
+ (background-mode . dark))
+ (default ((t (nil))))
+ (region ((t (:foreground "cyan" :background "dark cyan"))))
+ (underline ((t (:foreground "yellow" :underline t))))
+ (modeline ((t (:foreground "dark cyan" :background "wheat"))))
+ (modeline-buffer-id ((t (:foreground "dark cyan" :background "wheat"))))
+ (modeline-mousable ((t (:foreground "dark cyan" :background "wheat"))))
+ (modeline-mousable-minor-mode ((t (:foreground "dark cyan" :background "wheat"))))
+ (italic ((t (:foreground "dark red" :italic t))))
+ (bold-italic ((t (:foreground "dark red" :bold t :italic t))))
+ (font-lock-comment-face ((t (:foreground "Firebrick"))))
+ (bold ((t (:bold)))))))
+
+(defun color-theme-blue-gnus ()
+ "Color theme for gnus and message faces only.
+This is intended for other color themes to use (eg. `color-theme-gnome2'
+and `color-theme-blue-sea')."
+ (interactive)
+ (color-theme-install
+ '(color-theme-blue-gnus
+ nil
+ (gnus-cite-attribution-face ((t (:lforeground "lemon chiffon" :bold t))))
+ (gnus-cite-face-1 ((t (:foreground "LightSalmon"))))
+ (gnus-cite-face-2 ((t (:foreground "Khaki"))))
+ (gnus-cite-face-3 ((t (:foreground "Coral"))))
+ (gnus-cite-face-4 ((t (:foreground "yellow green"))))
+ (gnus-cite-face-5 ((t (:foreground "dark khaki"))))
+ (gnus-cite-face-6 ((t (:foreground "bisque"))))
+ (gnus-cite-face-7 ((t (:foreground "peru"))))
+ (gnus-cite-face-8 ((t (:foreground "light coral"))))
+ (gnus-cite-face-9 ((t (:foreground "plum"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (:italic t))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:bold t :underline t))))
+ (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t))))
+ (gnus-emphasis-underline-italic ((t (:italic t :underline t))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "White"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "White"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "light cyan"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "light cyan"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "LightBlue"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "LightBlue"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "Aquamarine"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "Aquamarine"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "White"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "White"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "light cyan"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "light cyan"))))
+ (gnus-group-news-3-empty-face ((t (:foreground "LightBlue"))))
+ (gnus-group-news-3-face ((t (:bold t :foreground "LightBlue"))))
+ (gnus-group-news-4-empty-face ((t (:foreground "Aquamarine"))))
+ (gnus-group-news-4-face ((t (:bold t :foreground "Aquamarine"))))
+ (gnus-group-news-5-empty-face ((t (:foreground "MediumAquamarine"))))
+ (gnus-group-news-5-face ((t (:bold t :foreground "MediumAquamarine"))))
+ (gnus-group-news-6-empty-face ((t (:foreground "MediumAquamarine"))))
+ (gnus-group-news-6-face ((t (:bold t :foreground "MediumAquamarine"))))
+ (gnus-group-news-low-empty-face ((t (:foreground "MediumAquamarine"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "MediumAquamarine"))))
+ (gnus-header-content-face ((t (:foreground "LightSkyBlue3"))))
+ (gnus-header-from-face ((t (:bold t :foreground "light cyan"))))
+ (gnus-header-name-face ((t (:bold t :foreground "LightBlue"))))
+ (gnus-header-newsgroups-face ((t (:bold t :foreground "MediumAquamarine"))))
+ (gnus-header-subject-face ((t (:bold t :foreground "light cyan"))))
+ (gnus-signature-face ((t (:foreground "Grey"))))
+ (gnus-splash-face ((t (:foreground "ForestGreen"))))
+ (gnus-summary-cancelled-face ((t (:background "Black" :foreground "Yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "MediumAquamarine"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "Aquamarine"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "LightSalmon"))))
+ (gnus-summary-high-unread-face ((t (:bold t :foreground "beige"))))
+ (gnus-summary-low-ancient-face ((t (:foreground "DimGray"))))
+ (gnus-summary-low-read-face ((t (:foreground "slate gray"))))
+ (gnus-summary-low-ticked-face ((t (:foreground "Pink"))))
+ (gnus-summary-low-unread-face ((t (:foreground "LightGray"))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "MediumAquamarine"))))
+ (gnus-summary-normal-read-face ((t (:foreground "Aquamarine"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "LightSalmon"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:background "DarkSlateBlue"))))
+ (message-cited-text-face ((t (:foreground "LightSalmon"))))
+ (message-header-cc-face ((t (:foreground "light cyan"))))
+ (message-header-name-face ((t (:foreground "LightBlue"))))
+ (message-header-newsgroups-face ((t (:bold t :foreground "MediumAquamarine"))))
+ (message-header-other-face ((t (:foreground "MediumAquamarine"))))
+ (message-header-subject-face ((t (:bold t :foreground "light cyan"))))
+ (message-header-to-face ((t (:bold t :foreground "light cyan"))))
+ (message-header-xheader-face ((t (:foreground "MediumAquamarine"))))
+ (message-separator-face ((t (:foreground "chocolate")))))))
+
+(defun color-theme-dark-gnus ()
+ "Color theme for gnus and message faces only.
+This is intended for other color themes to use
+\(eg. `color-theme-late-night')."
+ (interactive)
+ (color-theme-install
+ '(color-theme-blue-gnus
+ nil
+ (gnus-cite-attribution-face ((t (:foreground "#bbb"))))
+ (gnus-cite-face-1 ((t (:foreground "#aaa"))))
+ (gnus-cite-face-2 ((t (:foreground "#aaa"))))
+ (gnus-cite-face-3 ((t (:foreground "#aaa"))))
+ (gnus-cite-face-4 ((t (:foreground "#aaa"))))
+ (gnus-cite-face-5 ((t (:foreground "#aaa"))))
+ (gnus-cite-face-6 ((t (:foreground "#aaa"))))
+ (gnus-cite-face-7 ((t (:foreground "#aaa"))))
+ (gnus-cite-face-8 ((t (:foreground "#aaa"))))
+ (gnus-cite-face-9 ((t (:foreground "#aaa"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t))))
+ (gnus-emphasis-highlight-words ((t (:foreground "#ccc"))))
+ (gnus-emphasis-italic ((t (:italic t))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:bold t :underline t))))
+ (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t))))
+ (gnus-emphasis-underline-italic ((t (:italic t :underline t))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "#999"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "#999"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "#999"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "#999"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "#888"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "#888"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "#777"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "#777"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "#999"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "#999"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "#888"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "#888"))))
+ (gnus-group-news-3-empty-face ((t (:foreground "#777"))))
+ (gnus-group-news-3-face ((t (:bold t :foreground "#777"))))
+ (gnus-group-news-4-empty-face ((t (:foreground "#666"))))
+ (gnus-group-news-4-face ((t (:bold t :foreground "#666"))))
+ (gnus-group-news-5-empty-face ((t (:foreground "#666"))))
+ (gnus-group-news-5-face ((t (:bold t :foreground "#666"))))
+ (gnus-group-news-6-empty-face ((t (:foreground "#666"))))
+ (gnus-group-news-6-face ((t (:bold t :foreground "#666"))))
+ (gnus-group-news-low-empty-face ((t (:foreground "#666"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "#666"))))
+ (gnus-header-content-face ((t (:foreground "#888"))))
+ (gnus-header-from-face ((t (:bold t :foreground "#888"))))
+ (gnus-header-name-face ((t (:bold t :foreground "#777"))))
+ (gnus-header-newsgroups-face ((t (:bold t :foreground "#777"))))
+ (gnus-header-subject-face ((t (:bold t :foreground "#999"))))
+ (gnus-signature-face ((t (:foreground "#444"))))
+ (gnus-splash-face ((t (:foreground "#ccc"))))
+ (gnus-summary-cancelled-face ((t (:background "#555" :foreground "#000"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "#555"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "#666"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "#777"))))
+ (gnus-summary-high-unread-face ((t (:bold t :foreground "#888"))))
+ (gnus-summary-low-ancient-face ((t (:foreground "#444"))))
+ (gnus-summary-low-read-face ((t (:foreground "#555"))))
+ (gnus-summary-low-ticked-face ((t (:foreground "#666"))))
+ (gnus-summary-low-unread-face ((t (:foreground "#777"))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "#555"))))
+ (gnus-summary-normal-read-face ((t (:foreground "#666"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "#777"))))
+ (gnus-summary-normal-unread-face ((t (:foreground "#888"))))
+ (gnus-summary-selected-face ((t (:background "#333"))))
+ (message-cited-text-face ((t (:foreground "#aaa"))))
+ (message-header-cc-face ((t (:foreground "#888"))))
+ (message-header-name-face ((t (:bold t :foreground "#777"))))
+ (message-header-newsgroups-face ((t (:bold t :foreground "#777"))))
+ (message-header-other-face ((t (:foreground "#666"))))
+ (message-header-subject-face ((t (:bold t :foreground "#999"))))
+ (message-header-to-face ((t (:bold t :foreground "#777"))))
+ (message-header-xheader-face ((t (:foreground "#666"))))
+ (message-separator-face ((t (:foreground "#999")))))))
+
+(defun color-theme-blue-eshell ()
+ "Color theme for eshell faces only.
+This is intended for other color themes to use (eg. `color-theme-gnome2')."
+ (interactive)
+ (color-theme-install
+ '(color-theme-blue-eshell
+ nil
+ (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed"))))
+ (eshell-ls-backup-face ((t (:foreground "Grey"))))
+ (eshell-ls-clutter-face ((t (:foreground "DimGray"))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "MediumSlateBlue"))))
+ (eshell-ls-executable-face ((t (:foreground "Coral"))))
+ (eshell-ls-missing-face ((t (:foreground "black"))))
+ (eshell-ls-picture-face ((t (:foreground "Violet")))) ; non-standard face
+ (eshell-ls-product-face ((t (:foreground "LightSalmon"))))
+ (eshell-ls-readonly-face ((t (:foreground "Aquamarine"))))
+ (eshell-ls-special-face ((t (:foreground "Gold"))))
+ (eshell-ls-symlink-face ((t (:foreground "White"))))
+ (eshell-ls-text-face ((t (:foreground "medium aquamarine")))) ; non-standard face
+ (eshell-ls-todo-face ((t (:bold t :foreground "aquamarine")))) ; non-standard face
+ (eshell-ls-unreadable-face ((t (:foreground "DimGray"))))
+ (eshell-prompt-face ((t (:foreground "powder blue")))))))
+
+(defun color-theme-salmon-font-lock ()
+ "Color theme for font-lock faces only.
+This is intended for other color themes to use (eg. `color-theme-gnome2')."
+ (interactive)
+ (color-theme-install
+ '(color-theme-salmon-font-lock
+ nil
+ (font-lock-builtin-face ((t (:bold t :foreground "PaleGreen"))))
+ (font-lock-comment-face ((t (:foreground "LightBlue"))))
+ (font-lock-constant-face ((t (:foreground "Aquamarine"))))
+ (font-lock-doc-string-face ((t (:foreground "LightSalmon"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "Aquamarine"))))
+ (font-lock-keyword-face ((t (:foreground "Salmon"))))
+ (font-lock-preprocessor-face ((t (:foreground "Salmon"))))
+ (font-lock-reference-face ((t (:foreground "pale green"))))
+ (font-lock-string-face ((t (:foreground "LightSalmon"))))
+ (font-lock-type-face ((t (:bold t :foreground "YellowGreen"))))
+ (font-lock-variable-name-face ((t (:bold t :foreground "Aquamarine"))))
+ (font-lock-warning-face ((t (:bold t :foreground "red")))))))
+
+(defun color-theme-dark-font-lock ()
+ "Color theme for font-lock faces only.
+This is intended for other color themes to use (eg. `color-theme-late-night')."
+ (interactive)
+ (color-theme-install
+ '(color-theme-dark-font-lock
+ nil
+ (font-lock-builtin-face ((t (:bold t :foreground "#777"))))
+ (font-lock-comment-face ((t (:foreground "#555"))))
+ (font-lock-constant-face ((t (:foreground "#777"))))
+ (font-lock-doc-string-face ((t (:foreground "#777"))))
+ (font-lock-doc-face ((t (:foreground "#777"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "#777"))))
+ (font-lock-keyword-face ((t (:foreground "#777"))))
+ (font-lock-preprocessor-face ((t (:foreground "#777"))))
+ (font-lock-reference-face ((t (:foreground "#777"))))
+ (font-lock-string-face ((t (:foreground "#777"))))
+ (font-lock-type-face ((t (:bold t))))
+ (font-lock-variable-name-face ((t (:bold t :foreground "#888"))))
+ (font-lock-warning-face ((t (:bold t :foreground "#999")))))))
+
+(defun color-theme-dark-info ()
+ "Color theme for info, help and apropos faces.
+This is intended for other color themes to use (eg. `color-theme-late-night')."
+ (interactive)
+ (color-theme-install
+ '(color-theme-dark-info
+ nil
+ (info-header-node ((t (:foreground "#666"))))
+ (info-header-xref ((t (:foreground "#666"))))
+ (info-menu-5 ((t (:underline t))))
+ (info-menu-header ((t (:bold t :foreground "#666"))))
+ (info-node ((t (:bold t :foreground "#888"))))
+ (info-xref ((t (:bold t :foreground "#777")))))))
+
+(defun color-theme-gnome2 ()
+ "Wheat on darkslategrey scheme.
+`color-theme-gnome' started it all.
+
+This theme supports standard faces, font-lock, eshell, info, message,
+gnus, custom, widget, woman, diary, cperl, bbdb, and erc. This theme
+includes faces for Emacs and XEmacs.
+
+The theme does not support w3 faces because w3 faces can be controlled
+by your default style sheet.
+
+This is what you should put in your .Xdefaults file, if you want to
+change the colors of the menus in Emacs 20 as well:
+
+emacs*Background: DarkSlateGray
+emacs*Foreground: Wheat"
+ (interactive)
+ (color-theme-blue-gnus)
+ (let ((color-theme-is-cumulative t))
+ (color-theme-blue-erc)
+ (color-theme-blue-eshell)
+ (color-theme-salmon-font-lock)
+ (color-theme-salmon-diff)
+ (color-theme-install
+ '(color-theme-gnome2
+ ((foreground-color . "wheat")
+ (background-color . "darkslategrey")
+ (mouse-color . "Grey")
+ (cursor-color . "LightGray")
+ (border-color . "black")
+ (background-mode . dark))
+ ((apropos-keybinding-face . underline)
+ (apropos-label-face . italic)
+ (apropos-match-face . secondary-selection)
+ (apropos-property-face . bold-italic)
+ (apropos-symbol-face . info-xref)
+ (goto-address-mail-face . message-header-to-face)
+ (goto-address-mail-mouse-face . secondary-selection)
+ (goto-address-url-face . info-xref)
+ (goto-address-url-mouse-face . highlight)
+ (list-matching-lines-face . bold)
+ (view-highlight-face . highlight))
+ (default ((t (nil))))
+ (bbdb-company ((t (:foreground "pale green"))))
+ (bbdb-name ((t (:bold t :foreground "pale green"))))
+ (bbdb-field-name ((t (:foreground "medium sea green"))))
+ (bbdb-field-value ((t (:foreground "dark sea green"))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t :foreground "beige"))))
+ (calendar-today-face ((t (:underline t))))
+ (comint-highlight-prompt ((t (:foreground "medium aquamarine"))))
+ (cperl-array-face ((t (:foreground "Yellow"))))
+ (cperl-hash-face ((t (:foreground "White"))))
+ (cperl-nonoverridable-face ((t (:foreground "SkyBlue"))))
+ (custom-button-face ((t (:underline t :foreground "MediumSlateBlue"))))
+ (custom-documentation-face ((t (:foreground "Grey"))))
+ (custom-group-tag-face ((t (:foreground "MediumAquamarine"))))
+ (custom-state-face ((t (:foreground "LightSalmon"))))
+ (custom-variable-tag-face ((t (:foreground "Aquamarine"))))
+ (diary-face ((t (:foreground "IndianRed"))))
+ (dired-face-directory ((t (:bold t :foreground "sky blue"))))
+ (dired-face-permissions ((t (:foreground "aquamarine"))))
+ (dired-face-flagged ((t (:foreground "tomato"))))
+ (dired-face-marked ((t (:foreground "light salmon"))))
+ (dired-face-executable ((t (:foreground "green yellow"))))
+ (fringe ((t (:background "darkslategrey"))))
+ (highlight ((t (:background "PaleGreen" :foreground "DarkGreen"))))
+ (highline-face ((t (:background "SeaGreen"))))
+ (holiday-face ((t (:background "DimGray"))))
+ (hyper-apropos-hyperlink ((t (:bold t :foreground "DodgerBlue1"))))
+ (hyper-apropos-documentation ((t (:foreground "LightSalmon"))))
+ (info-header-xref ((t (:foreground "DodgerBlue1" :bold t))))
+ (info-menu-5 ((t (:underline t))))
+ (info-node ((t (:underline t :bold t :foreground "DodgerBlue1"))))
+ (info-xref ((t (:bold t :foreground "DodgerBlue1"))))
+ (isearch ((t (:background "sea green"))))
+ (italic ((t (:italic t))))
+ (menu ((t (:foreground "wheat" :background "darkslategrey"))))
+ (modeline ((t (:background "dark olive green" :foreground "wheat"))))
+ (modeline-buffer-id ((t (:background "dark olive green" :foreground "beige"))))
+ (modeline-mousable ((t (:background "dark olive green" :foreground "yellow green"))))
+ (modeline-mousable-minor-mode ((t (:background "dark olive green" :foreground "wheat"))))
+ (region ((t (:background "dark cyan" :foreground "cyan"))))
+ (secondary-selection ((t (:background "Aquamarine" :foreground "SlateBlue"))))
+ (show-paren-match-face ((t (:bold t :background "Aquamarine" :foreground "steel blue"))))
+ (show-paren-mismatch-face ((t (:background "Red" :foreground "White"))))
+ (underline ((t (:underline t))))
+ (widget-field-face ((t (:foreground "LightBlue"))))
+ (widget-inactive-face ((t (:foreground "DimGray"))))
+ (widget-single-line-field-face ((t (:foreground "LightBlue"))))
+ (w3m-anchor-face ((t (:bold t :foreground "DodgerBlue1"))))
+ (w3m-arrived-anchor-face ((t (:bold t :foreground "DodgerBlue3"))))
+ (w3m-header-line-location-title-face ((t (:foreground "beige" :background "dark olive green"))))
+ (w3m-header-line-location-content-face ((t (:foreground "wheat" :background "dark olive green"))))
+ (woman-bold-face ((t (:bold t))))
+ (woman-italic-face ((t (:foreground "beige"))))
+ (woman-unknown-face ((t (:foreground "LightSalmon"))))
+ (zmacs-region ((t (:background "dark cyan" :foreground "cyan"))))))))
+
+(defun color-theme-simple-1 ()
+ "Black background.
+Doesn't mess with most faces, but does turn on dark background mode."
+ (interactive)
+ (color-theme-install
+ '(color-theme-simple-1
+ ((foreground-color . "white")
+ (background-color . "black")
+ (cursor-color . "indian red")
+ (background-mode . dark))
+ (default ((t (nil))))
+ (modeline ((t (:foreground "black" :background "white"))))
+ (modeline-buffer-id ((t (:foreground "black" :background "white"))))
+ (modeline-mousable ((t (:foreground "black" :background "white"))))
+ (modeline-mousable-minor-mode ((t (:foreground "black" :background "white"))))
+ (underline ((t (:underline t))))
+ (region ((t (:background "grey")))))))
+
+(defun color-theme-jonadabian ()
+ "Dark blue background.
+Supports standard faces, font-lock, highlight-changes, widget and
+custom."
+ (interactive)
+ (color-theme-install
+ '(color-theme-jonadabian
+ ((foreground-color . "#CCBB77")
+ (cursor-color . "medium turquoise")
+ (background-color . "#000055")
+ (background-mode . dark))
+ (default ((t (nil))))
+ (modeline ((t (:foreground "cyan" :background "#007080"))))
+ (modeline-buffer-id ((t (:foreground "cyan" :background "#007080"))))
+ (modeline-mousable ((t (:foreground "cyan" :background "#007080"))))
+ (modeline-mousable-minor-mode ((t (:foreground "cyan" :background "#007080"))))
+ (underline ((t (:underline t))))
+ (region ((t (:background "#004080"))))
+ (font-lock-keyword-face ((t (:foreground "#00BBBB"))))
+ (font-lock-comment-face ((t (:foreground "grey50" :bold t :italic t))))
+ (font-lock-string-face ((t (:foreground "#10D010"))))
+ (font-lock-constant-face ((t (:foreground "indian red"))))
+ (highlight-changes-face ((t (:background "navy"))))
+ (highlight-changes-delete-face ((t (:foreground "red" :background "navy"))))
+ (widget-field-face ((t (:foreground "black" :background "grey35"))))
+ (widget-inactive-face ((t (:foreground "gray"))))
+ (custom-button-face ((t (:foreground "yellow" :background "dark blue"))))
+ (custom-state-face ((t (:foreground "mediumaquamarine"))))
+ (custom-face-tag-face ((t (:foreground "goldenrod" :underline t))))
+ (custom-documentation-face ((t (:foreground "#10D010"))))
+ (custom-set-face ((t (:foreground "#2020D0")))))))
+
+(defun color-theme-ryerson ()
+ "White on midnightblue scheme.
+Used at Ryerson Polytechnic University in the Electronic Engineering department."
+ (interactive)
+ (color-theme-install
+ '(color-theme-ryerson
+ ((foreground-color . "white")
+ (background-color . "midnightblue")
+ (cursor-color . "red")
+ (background-mode . dark))
+ (default ((t (nil))))
+ (modeline ((t (:foreground "black" :background "slategray3"))))
+ (modeline-buffer-id ((t (:foreground "black" :background "slategray3"))))
+ (modeline-mousable ((t (:foreground "black" :background "slategray3"))))
+ (modeline-mousable-minor-mode ((t (:foreground "black" :background "slategray3"))))
+ (underline ((t (:underline t))))
+ (region ((t (:foreground "black" :background "slategray3")))))))
+
+(defun color-theme-wheat ()
+ "Default colors on a wheat background.
+Calls the standard color theme function `color-theme-standard' in order
+to reset all faces."
+ (interactive)
+ (color-theme-standard)
+ (let ((color-theme-is-cumulative t))
+ (color-theme-install
+ '(color-theme-wheat
+ ((background-color . "Wheat"))))))
+
+(defun color-theme-standard ()
+ "Emacs default colors.
+If you are missing standard faces in this theme, please notify the maintainer."
+ (interactive)
+ ;; Note that some of the things that make up a color theme are
+ ;; actually variable settings!
+ (color-theme-install
+ '(color-theme-standard
+ ((foreground-color . "black")
+ (background-color . "white")
+ (mouse-color . "black")
+ (cursor-color . "black")
+ (border-color . "black")
+ (background-mode . light))
+ ((Man-overstrike-face . bold)
+ (Man-underline-face . underline)
+ (apropos-keybinding-face . underline)
+ (apropos-label-face . italic)
+ (apropos-match-face . secondary-selection)
+ (apropos-property-face . bold-italic)
+ (apropos-symbol-face . bold)
+ (goto-address-mail-face . italic)
+ (goto-address-mail-mouse-face . secondary-selection)
+ (goto-address-url-face . bold)
+ (goto-address-url-mouse-face . highlight)
+ (help-highlight-face . underline)
+ (list-matching-lines-face . bold)
+ (view-highlight-face . highlight))
+ (default ((t (nil))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:bold t :italic t))))
+ (calendar-today-face ((t (:underline t))))
+ (cperl-array-face ((t (:foreground "Blue" :background "lightyellow2" :bold t))))
+ (cperl-hash-face ((t (:foreground "Red" :background "lightyellow2" :bold t :italic t))))
+ (cperl-nonoverridable-face ((t (:foreground "chartreuse3"))))
+ (custom-button-face ((t (nil))))
+ (custom-changed-face ((t (:foreground "white" :background "blue"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:foreground "blue" :underline t))))
+ (custom-group-tag-face-1 ((t (:foreground "red" :underline t))))
+ (custom-invalid-face ((t (:foreground "yellow" :background "red"))))
+ (custom-modified-face ((t (:foreground "white" :background "blue"))))
+ (custom-rogue-face ((t (:foreground "pink" :background "black"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:foreground "blue" :background "white"))))
+ (custom-state-face ((t (:foreground "dark green"))))
+ (custom-variable-button-face ((t (:bold t :underline t))))
+ (custom-variable-tag-face ((t (:foreground "blue" :underline t))))
+ (diary-face ((t (:foreground "red"))))
+ (ediff-current-diff-face-A ((t (:foreground "firebrick" :background "pale green"))))
+ (ediff-current-diff-face-Ancestor ((t (:foreground "Black" :background "VioletRed"))))
+ (ediff-current-diff-face-B ((t (:foreground "DarkOrchid" :background "Yellow"))))
+ (ediff-current-diff-face-C ((t (:foreground "Navy" :background "Pink"))))
+ (ediff-even-diff-face-A ((t (:foreground "Black" :background "light grey"))))
+ (ediff-even-diff-face-Ancestor ((t (:foreground "White" :background "Grey"))))
+ (ediff-even-diff-face-B ((t (:foreground "White" :background "Grey"))))
+ (ediff-even-diff-face-C ((t (:foreground "Black" :background "light grey"))))
+ (ediff-fine-diff-face-A ((t (:foreground "Navy" :background "sky blue"))))
+ (ediff-fine-diff-face-Ancestor ((t (:foreground "Black" :background "Green"))))
+ (ediff-fine-diff-face-B ((t (:foreground "Black" :background "cyan"))))
+ (ediff-fine-diff-face-C ((t (:foreground "Black" :background "Turquoise"))))
+ (ediff-odd-diff-face-A ((t (:foreground "White" :background "Grey"))))
+ (ediff-odd-diff-face-Ancestor ((t (:foreground "Black" :background "light grey"))))
+ (ediff-odd-diff-face-B ((t (:foreground "Black" :background "light grey"))))
+ (ediff-odd-diff-face-C ((t (:foreground "White" :background "Grey"))))
+ (eshell-ls-archive-face ((t (:foreground "Orchid" :bold t))))
+ (eshell-ls-backup-face ((t (:foreground "OrangeRed"))))
+ (eshell-ls-clutter-face ((t (:foreground "OrangeRed" :bold t))))
+ (eshell-ls-directory-face ((t (:foreground "Blue" :bold t))))
+ (eshell-ls-executable-face ((t (:foreground "ForestGreen" :bold t))))
+ (eshell-ls-missing-face ((t (:foreground "Red" :bold t))))
+ (eshell-ls-product-face ((t (:foreground "OrangeRed"))))
+ (eshell-ls-readonly-face ((t (:foreground "Brown"))))
+ (eshell-ls-special-face ((t (:foreground "Magenta" :bold t))))
+ (eshell-ls-symlink-face ((t (:foreground "DarkCyan" :bold t))))
+ (eshell-ls-unreadable-face ((t (:foreground "Grey30"))))
+ (eshell-prompt-face ((t (:foreground "Red" :bold t))))
+ (eshell-test-failed-face ((t (:foreground "OrangeRed" :bold t))))
+ (eshell-test-ok-face ((t (:foreground "Green" :bold t))))
+ (excerpt ((t (:italic t))))
+ (fixed ((t (:bold t))))
+ (flyspell-duplicate-face ((t (:foreground "Gold3" :bold t :underline t))))
+ (flyspell-incorrect-face ((t (:foreground "OrangeRed" :bold t :underline t))))
+ (font-lock-builtin-face ((t (:foreground "Orchid"))))
+ (font-lock-comment-face ((t (:foreground "Firebrick"))))
+ (font-lock-constant-face ((t (:foreground "CadetBlue"))))
+ (font-lock-function-name-face ((t (:foreground "Blue"))))
+ (font-lock-keyword-face ((t (:foreground "Purple"))))
+ (font-lock-string-face ((t (:foreground "RosyBrown"))))
+ (font-lock-type-face ((t (:foreground "ForestGreen"))))
+ (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod"))))
+ (font-lock-warning-face ((t (:foreground "Red" :bold t))))
+ (fringe ((t (:background "grey95"))))
+ (gnus-cite-attribution-face ((t (:italic t))))
+ (gnus-cite-face-1 ((t (:foreground "MidnightBlue"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "firebrick"))))
+ (gnus-cite-face-3 ((t (:foreground "dark green"))))
+ (gnus-cite-face-4 ((t (:foreground "OrangeRed"))))
+ (gnus-cite-face-5 ((t (:foreground "dark khaki"))))
+ (gnus-cite-face-6 ((t (:foreground "dark violet"))))
+ (gnus-cite-face-7 ((t (:foreground "SteelBlue4"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-bold-italic ((t (:bold t :italic t))))
+ (gnus-emphasis-italic ((t (:italic t))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:bold t :underline t))))
+ (gnus-emphasis-underline-bold-italic ((t (:bold t :italic t :underline t))))
+ (gnus-emphasis-underline-italic ((t (:italic t :underline t))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3"))))
+ (gnus-group-mail-1-face ((t (:foreground "DeepPink3" :bold t))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3"))))
+ (gnus-group-mail-2-face ((t (:foreground "HotPink3" :bold t))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "magenta4"))))
+ (gnus-group-mail-3-face ((t (:foreground "magenta4" :bold t))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4"))))
+ (gnus-group-mail-low-face ((t (:foreground "DeepPink4" :bold t))))
+ (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen"))))
+ (gnus-group-news-1-face ((t (:foreground "ForestGreen" :bold t))))
+ (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4"))))
+ (gnus-group-news-2-face ((t (:foreground "CadetBlue4" :bold t))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen"))))
+ (gnus-group-news-low-face ((t (:foreground "DarkGreen" :bold t))))
+ (gnus-header-content-face ((t (:foreground "indianred4" :italic t))))
+ (gnus-header-from-face ((t (:foreground "red3"))))
+ (gnus-header-name-face ((t (:foreground "maroon"))))
+ (gnus-header-newsgroups-face ((t (:foreground "MidnightBlue" :italic t))))
+ (gnus-header-subject-face ((t (:foreground "red4"))))
+ (gnus-signature-face ((t (:italic t))))
+ (gnus-splash-face ((t (:foreground "ForestGreen"))))
+ (gnus-summary-cancelled-face ((t (:foreground "yellow" :background "black"))))
+ (gnus-summary-high-ancient-face ((t (:foreground "RoyalBlue" :bold t))))
+ (gnus-summary-high-read-face ((t (:foreground "DarkGreen" :bold t))))
+ (gnus-summary-high-ticked-face ((t (:foreground "firebrick" :bold t))))
+ (gnus-summary-high-unread-face ((t (:bold t))))
+ (gnus-summary-low-ancient-face ((t (:foreground "RoyalBlue" :italic t))))
+ (gnus-summary-low-read-face ((t (:foreground "DarkGreen" :italic t))))
+ (gnus-summary-low-ticked-face ((t (:foreground "firebrick" :italic t))))
+ (gnus-summary-low-unread-face ((t (:italic t))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "DarkGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "firebrick"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (highlight ((t (:background "darkseagreen2"))))
+ (highlight-changes-delete-face ((t (:foreground "red" :underline t))))
+ (highlight-changes-face ((t (:foreground "red"))))
+ (highline-face ((t (:background "paleturquoise"))))
+ (holiday-face ((t (:background "pink"))))
+ (info-menu-5 ((t (:underline t))))
+ (info-node ((t (:bold t :italic t))))
+ (info-xref ((t (:bold t))))
+ (italic ((t (:italic t))))
+ (makefile-space-face ((t (:background "hotpink"))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:foreground "MidnightBlue"))))
+ (message-header-name-face ((t (:foreground "cornflower blue"))))
+ (message-header-newsgroups-face ((t (:foreground "blue4" :bold t :italic t))))
+ (message-header-other-face ((t (:foreground "steel blue"))))
+ (message-header-subject-face ((t (:foreground "navy blue" :bold t))))
+ (message-header-to-face ((t (:foreground "MidnightBlue" :bold t))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (modeline ((t (:foreground "white" :background "black"))))
+ (modeline-buffer-id ((t (:foreground "white" :background "black"))))
+ (modeline-mousable ((t (:foreground "white" :background "black"))))
+ (modeline-mousable-minor-mode ((t (:foreground "white" :background "black"))))
+ (region ((t (:background "gray"))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:foreground "white" :background "purple"))))
+ (speedbar-button-face ((t (:foreground "green4"))))
+ (speedbar-directory-face ((t (:foreground "blue4"))))
+ (speedbar-file-face ((t (:foreground "cyan4"))))
+ (speedbar-highlight-face ((t (:background "green"))))
+ (speedbar-selected-face ((t (:foreground "red" :underline t))))
+ (speedbar-tag-face ((t (:foreground "brown"))))
+ (term-black ((t (:foreground "black"))))
+ (term-blackbg ((t (:background "black"))))
+ (term-blue ((t (:foreground "blue"))))
+ (term-bluebg ((t (:background "blue"))))
+ (term-bold ((t (:bold t))))
+ (term-cyan ((t (:foreground "cyan"))))
+ (term-cyanbg ((t (:background "cyan"))))
+ (term-default-bg ((t (nil))))
+ (term-default-bg-inv ((t (nil))))
+ (term-default-fg ((t (nil))))
+ (term-default-fg-inv ((t (nil))))
+ (term-green ((t (:foreground "green"))))
+ (term-greenbg ((t (:background "green"))))
+ (term-invisible ((t (nil))))
+ (term-invisible-inv ((t (nil))))
+ (term-magenta ((t (:foreground "magenta"))))
+ (term-magentabg ((t (:background "magenta"))))
+ (term-red ((t (:foreground "red"))))
+ (term-redbg ((t (:background "red"))))
+ (term-underline ((t (:underline t))))
+ (term-white ((t (:foreground "white"))))
+ (term-whitebg ((t (:background "white"))))
+ (term-yellow ((t (:foreground "yellow"))))
+ (term-yellowbg ((t (:background "yellow"))))
+ (underline ((t (:underline t))))
+ (vcursor ((t (:foreground "blue" :background "cyan" :underline t))))
+ (vhdl-font-lock-attribute-face ((t (:foreground "Orchid"))))
+ (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue"))))
+ (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4"))))
+ (vhdl-font-lock-function-face ((t (:foreground "Orchid4"))))
+ (vhdl-font-lock-prompt-face ((t (:foreground "Red" :bold t))))
+ (vhdl-font-lock-reserved-words-face ((t (:foreground "Orange" :bold t))))
+ (vhdl-font-lock-translate-off-face ((t (:background "LightGray"))))
+ (vhdl-speedbar-architecture-face ((t (:foreground "Blue"))))
+ (vhdl-speedbar-architecture-selected-face ((t (:foreground "Blue" :underline t))))
+ (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod"))))
+ (vhdl-speedbar-configuration-selected-face ((t (:foreground "DarkGoldenrod" :underline t))))
+ (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen"))))
+ (vhdl-speedbar-entity-selected-face ((t (:foreground "ForestGreen" :underline t))))
+ (vhdl-speedbar-instantiation-face ((t (:foreground "Brown"))))
+ (vhdl-speedbar-instantiation-selected-face ((t (:foreground "Brown" :underline t))))
+ (vhdl-speedbar-package-face ((t (:foreground "Grey50"))))
+ (vhdl-speedbar-package-selected-face ((t (:foreground "Grey50" :underline t))))
+ (viper-minibuffer-emacs-face ((t (:foreground "Black" :background "darkseagreen2"))))
+ (viper-minibuffer-insert-face ((t (:foreground "Black" :background "pink"))))
+ (viper-minibuffer-vi-face ((t (:foreground "DarkGreen" :background "grey"))))
+ (viper-replace-overlay-face ((t (:foreground "Black" :background "darkseagreen2"))))
+ (viper-search-face ((t (:foreground "Black" :background "khaki"))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "gray85")))))))
+
+(defun color-theme-fischmeister ()
+ "The light colors on a grey blackground.
+Sebastian Fischmeister <sfischme@nexus.lzk.tuwien.ac.at>"
+ (interactive)
+ (color-theme-install
+ '(color-theme-fischmeister
+ ((foreground-color . "black")
+ (background-color . "gray80")
+ (mouse-color . "red")
+ (cursor-color . "yellow")
+ (border-color . "black")
+ (background-mode . light))
+ (default ((t (nil))))
+ (modeline ((t (:foreground "gray80" :background "black"))))
+ (modeline-buffer-id ((t (:foreground "gray80" :background "black"))))
+ (modeline-mousable ((t (:foreground "gray80" :background "black"))))
+ (modeline-mousable-minor-mode ((t (:foreground "gray80" :background "black"))))
+ (highlight ((t (:background "darkseagreen2"))))
+ (bold ((t (:bold t))))
+ (italic ((t (:italic t))))
+ (bold-italic ((t (:bold t :italic t))))
+ (region ((t (:background "gray"))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (underline ((t (:underline t))))
+ (show-paren-match-face ((t (:foreground "yellow" :background "darkgreen"))))
+ (show-paren-mismatch-face ((t (:foreground "white" :background "red"))))
+ (font-lock-comment-face ((t (:foreground "FireBrick" :bold t :italic t))))
+ (font-lock-string-face ((t (:foreground "DarkSlateBlue" :italic t))))
+ (font-lock-keyword-face ((t (:foreground "navy"))))
+ (font-lock-builtin-face ((t (:foreground "white"))))
+ (font-lock-function-name-face ((t (:foreground "Blue"))))
+ (font-lock-variable-name-face ((t (:foreground "Darkblue"))))
+ (font-lock-type-face ((t (:foreground "darkgreen"))))
+ (font-lock-constant-face ((t (:foreground "CadetBlue"))))
+ (font-lock-warning-face ((t (:foreground "Orchid" :bold t))))
+ (font-lock-reference-face ((t (:foreground "SteelBlue")))))))
+
+(defun color-theme-sitaramv-solaris ()
+ "White on a midnight blue background. Lots of yellow and orange.
+Includes faces for font-lock, widget, custom, speedbar, message, gnus,
+eshell."
+ (interactive)
+ (color-theme-install
+ '(color-theme-sitaramv-solaris
+ ((foreground-color . "white")
+ (background-color . "MidnightBlue")
+ (mouse-color . "yellow")
+ (cursor-color . "magenta2")
+ (border-color . "black")
+ (background-mode . dark))
+ (default ((t (nil))))
+ (modeline ((t (:foreground "black" :background "gold2"))))
+ (modeline-buffer-id ((t (:foreground "black" :background "gold2"))))
+ (modeline-mousable ((t (:foreground "black" :background "gold2"))))
+ (modeline-mousable-minor-mode ((t (:foreground "black" :background "gold2"))))
+ (highlight ((t (:foreground "black" :background "Aquamarine"))))
+ (bold ((t (:bold t))))
+ (italic ((t (:italic t))))
+ (bold-italic ((t (:bold t :italic t))))
+ (region ((t (:foreground "black" :background "snow3"))))
+ (secondary-selection ((t (:foreground "black" :background "aquamarine"))))
+ (underline ((t (:underline t))))
+ (lazy-highlight-face ((t (:foreground "yellow"))))
+ (font-lock-comment-face ((t (:foreground "orange" :italic t))))
+ (font-lock-string-face ((t (:foreground "orange"))))
+ (font-lock-keyword-face ((t (:foreground "green"))))
+ (font-lock-builtin-face ((t (:foreground "LightSteelBlue"))))
+ (font-lock-function-name-face ((t (:foreground "cyan" :bold t))))
+ (font-lock-variable-name-face ((t (:foreground "white"))))
+ (font-lock-type-face ((t (:foreground "cyan"))))
+ (font-lock-constant-face ((t (:foreground "Aquamarine"))))
+ (font-lock-warning-face ((t (:foreground "Pink" :bold t))))
+ (widget-documentation-face ((t (:foreground "lime green"))))
+ (widget-button-face ((t (:bold t))))
+ (widget-field-face ((t (:background "dim gray"))))
+ (widget-single-line-field-face ((t (:background "dim gray"))))
+ (widget-inactive-face ((t (:foreground "light gray"))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (custom-invalid-face ((t (:foreground "yellow" :background "red"))))
+ (custom-rogue-face ((t (:foreground "pink" :background "black"))))
+ (custom-modified-face ((t (:foreground "white" :background "blue"))))
+ (custom-set-face ((t (:foreground "blue" :background "white"))))
+ (custom-changed-face ((t (:foreground "white" :background "blue"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-button-face ((t (nil))))
+ (custom-documentation-face ((t (nil))))
+ (custom-state-face ((t (:foreground "lime green"))))
+ (custom-variable-tag-face ((t (:foreground "light blue" :underline t))))
+ (custom-variable-button-face ((t (:bold t :underline t))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face-1 ((t (:foreground "pink" :underline t))))
+ (custom-group-tag-face ((t (:foreground "light blue" :underline t))))
+ (speedbar-button-face ((t (:foreground "green3"))))
+ (speedbar-file-face ((t (:foreground "cyan"))))
+ (speedbar-directory-face ((t (:foreground "light blue"))))
+ (speedbar-tag-face ((t (:foreground "yellow"))))
+ (speedbar-selected-face ((t (:foreground "red" :underline t))))
+ (speedbar-highlight-face ((t (:background "sea green"))))
+ (font-lock-doc-string-face ((t (:foreground "Plum1" :bold t))))
+ (font-lock-exit-face ((t (:foreground "green"))))
+ (ff-paths-non-existant-file-face ((t (:foreground "NavyBlue" :bold t))))
+ (show-paren-match-face ((t (:background "red"))))
+ (show-paren-mismatch-face ((t (:foreground "white" :background "purple"))))
+ (message-header-to-face ((t (:foreground "green2" :bold t))))
+ (message-header-cc-face ((t (:foreground "LightGoldenrod" :bold t))))
+ (message-header-subject-face ((t (:foreground "green3"))))
+ (message-header-newsgroups-face ((t (:foreground "yellow" :bold t :italic t))))
+ (message-header-other-face ((t (:foreground "Salmon"))))
+ (message-header-name-face ((t (:foreground "green3"))))
+ (message-header-xheader-face ((t (:foreground "GreenYellow"))))
+ (message-separator-face ((t (:foreground "Tan"))))
+ (message-cited-text-face ((t (:foreground "Gold"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (gnus-group-news-1-face ((t (:foreground "PaleTurquoise" :bold t))))
+ (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise"))))
+ (gnus-group-news-2-face ((t (:foreground "turquoise" :bold t))))
+ (gnus-group-news-2-empty-face ((t (:foreground "turquoise"))))
+ (gnus-group-news-3-face ((t (:bold t))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-low-face ((t (:foreground "DarkTurquoise" :bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise"))))
+ (gnus-group-mail-1-face ((t (:foreground "aquamarine1" :bold t))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1"))))
+ (gnus-group-mail-2-face ((t (:foreground "aquamarine2" :bold t))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2"))))
+ (gnus-group-mail-3-face ((t (:foreground "aquamarine3" :bold t))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3"))))
+ (gnus-group-mail-low-face ((t (:foreground "aquamarine4" :bold t))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4"))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (gnus-summary-cancelled-face ((t (:foreground "yellow" :background "black"))))
+ (gnus-summary-high-ticked-face ((t (:foreground "pink" :bold t))))
+ (gnus-summary-low-ticked-face ((t (:foreground "pink" :italic t))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "pink"))))
+ (gnus-summary-high-ancient-face ((t (:foreground "SkyBlue" :bold t))))
+ (gnus-summary-low-ancient-face ((t (:foreground "SkyBlue" :italic t))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue"))))
+ (gnus-summary-high-unread-face ((t (:bold t))))
+ (gnus-summary-low-unread-face ((t (:italic t))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-high-read-face ((t (:foreground "PaleGreen" :bold t))))
+ (gnus-summary-low-read-face ((t (:foreground "PaleGreen" :italic t))))
+ (gnus-summary-normal-read-face ((t (:foreground "PaleGreen"))))
+ (gnus-splash-face ((t (:foreground "Brown"))))
+ (eshell-ls-directory-face ((t (:foreground "SkyBlue" :bold t))))
+ (eshell-ls-symlink-face ((t (:foreground "Cyan" :bold t))))
+ (eshell-ls-executable-face ((t (:foreground "Green" :bold t))))
+ (eshell-ls-readonly-face ((t (:foreground "Pink"))))
+ (eshell-ls-unreadable-face ((t (:foreground "DarkGrey"))))
+ (eshell-ls-special-face ((t (:foreground "Magenta" :bold t))))
+ (eshell-ls-missing-face ((t (:foreground "Red" :bold t))))
+ (eshell-ls-archive-face ((t (:foreground "Orchid" :bold t))))
+ (eshell-ls-backup-face ((t (:foreground "LightSalmon"))))
+ (eshell-ls-product-face ((t (:foreground "LightSalmon"))))
+ (eshell-ls-clutter-face ((t (:foreground "OrangeRed" :bold t))))
+ (eshell-prompt-face ((t (:foreground "Pink" :bold t))))
+ (term-default-fg ((t (nil))))
+ (term-default-bg ((t (nil))))
+ (term-default-fg-inv ((t (nil))))
+ (term-default-bg-inv ((t (nil))))
+ (term-bold ((t (:bold t))))
+ (term-underline ((t (:underline t))))
+ (term-invisible ((t (nil))))
+ (term-invisible-inv ((t (nil))))
+ (term-black ((t (:foreground "black"))))
+ (term-red ((t (:foreground "red"))))
+ (term-green ((t (:foreground "green"))))
+ (term-yellow ((t (:foreground "yellow"))))
+ (term-blue ((t (:foreground "blue"))))
+ (term-magenta ((t (:foreground "magenta"))))
+ (term-cyan ((t (:foreground "cyan"))))
+ (term-white ((t (:foreground "white"))))
+ (term-blackbg ((t (:background "black"))))
+ (term-redbg ((t (:background "red"))))
+ (term-greenbg ((t (:background "green"))))
+ (term-yellowbg ((t (:background "yellow"))))
+ (term-bluebg ((t (:background "blue"))))
+ (term-magentabg ((t (:background "magenta"))))
+ (term-cyanbg ((t (:background "cyan"))))
+ (term-whitebg ((t (:background "white"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-italic ((t (:italic t))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:bold t :underline t))))
+ (gnus-emphasis-underline-italic ((t (:italic t :underline t))))
+ (gnus-emphasis-bold-italic ((t (:bold t :italic t))))
+ (gnus-emphasis-underline-bold-italic ((t (:bold t :italic t :underline t))))
+ (gnus-emphasis-highlight-words ((t (:foreground "yellow" :background "black"))))
+ (gnus-signature-face ((t (:italic t))))
+ (gnus-header-from-face ((t (:foreground "spring green"))))
+ (gnus-header-subject-face ((t (:foreground "yellow" :bold t))))
+ (gnus-header-newsgroups-face ((t (:foreground "SeaGreen3" :bold t :italic t))))
+ (gnus-header-name-face ((t (:foreground "pink"))))
+ (gnus-header-content-face ((t (:foreground "lime green" :italic t))))
+ (gnus-cite-attribution-face ((t (:italic t))))
+ (gnus-cite-face-1 ((t (:foreground "light blue"))))
+ (gnus-cite-face-2 ((t (:foreground "light cyan"))))
+ (gnus-cite-face-3 ((t (:foreground "light yellow"))))
+ (gnus-cite-face-4 ((t (:foreground "light pink"))))
+ (gnus-cite-face-5 ((t (:foreground "pale green"))))
+ (gnus-cite-face-6 ((t (:foreground "beige"))))
+ (gnus-cite-face-7 ((t (:foreground "orange"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise")))))))
+
+(defun color-theme-sitaramv-nt ()
+ "Black foreground on white background.
+Includes faces for font-lock, widget, custom, speedbar."
+ (interactive)
+ (color-theme-install
+ '(color-theme-sitaramv-nt
+ ((foreground-color . "black")
+ (background-color . "white")
+ (mouse-color . "sienna3")
+ (cursor-color . "HotPink")
+ (border-color . "Blue")
+ (background-mode . light))
+ (default ((t (nil))))
+ (modeline ((t (:foreground "black" :background "gold2"))))
+ (modeline-buffer-id ((t (:foreground "black" :background "gold2"))))
+ (modeline-mousable ((t (:foreground "black" :background "gold2"))))
+ (modeline-mousable-minor-mode ((t (:foreground "black" :background "gold2"))))
+ (highlight ((t (:foreground "black" :background "darkseagreen2"))))
+ (bold ((t (:bold t))))
+ (italic ((t (:italic t))))
+ (bold-italic ((t (:bold t :italic t))))
+ (region ((t (:foreground "black" :background "snow3"))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (underline ((t (:underline t))))
+ (lazy-highlight-face ((t (:foreground "dark magenta" :bold t))))
+ (font-lock-comment-face ((t (:foreground "ForestGreen" :italic t))))
+ (font-lock-string-face ((t (:foreground "red"))))
+ (font-lock-keyword-face ((t (:foreground "blue" :bold t))))
+ (font-lock-builtin-face ((t (:foreground "black"))))
+ (font-lock-function-name-face ((t (:foreground "dark magenta" :bold t))))
+ (font-lock-variable-name-face ((t (:foreground "black"))))
+ (font-lock-type-face ((t (:foreground "blue"))))
+ (font-lock-constant-face ((t (:foreground "CadetBlue"))))
+ (font-lock-warning-face ((t (:foreground "Red" :bold t))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-button-face ((t (:bold t))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-single-line-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (custom-invalid-face ((t (:foreground "yellow" :background "red"))))
+ (custom-rogue-face ((t (:foreground "pink" :background "black"))))
+ (custom-modified-face ((t (:foreground "white" :background "blue"))))
+ (custom-set-face ((t (:foreground "blue" :background "white"))))
+ (custom-changed-face ((t (:foreground "white" :background "blue"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-button-face ((t (nil))))
+ (custom-documentation-face ((t (nil))))
+ (custom-state-face ((t (:foreground "dark green"))))
+ (custom-variable-tag-face ((t (:foreground "blue" :underline t))))
+ (custom-variable-button-face ((t (:bold t :underline t))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face-1 ((t (:foreground "red" :underline t))))
+ (custom-group-tag-face ((t (:foreground "blue" :underline t))))
+ (speedbar-button-face ((t (:foreground "green4"))))
+ (speedbar-file-face ((t (:foreground "cyan4"))))
+ (speedbar-directory-face ((t (:foreground "blue4"))))
+ (speedbar-tag-face ((t (:foreground "brown"))))
+ (speedbar-selected-face ((t (:foreground "red" :underline t))))
+ (speedbar-highlight-face ((t (:background "green"))))
+ (ff-paths-non-existant-file-face ((t (:foreground "NavyBlue" :bold t))))
+ (show-paren-match-face ((t (:background "light blue"))))
+ (show-paren-mismatch-face ((t (:foreground "white" :background "purple")))))))
+
+(defun color-theme-billw ()
+ "Cornsilk on black.
+Includes info, diary, font-lock, eshell, sgml, message, gnus,
+widget, custom, latex, ediff."
+ (interactive)
+ (color-theme-install
+ '(color-theme-billw
+ ((foreground-color . "cornsilk")
+ (background-color . "black")
+ (mouse-color . "black")
+ (cursor-color . "white")
+ (border-color . "black")
+ (background-mode . dark))
+ (default ((t (nil))))
+ (modeline ((t (:foreground "black" :background "wheat"))))
+ (modeline-buffer-id ((t (:foreground "black" :background "wheat"))))
+ (modeline-mousable ((t (:foreground "black" :background "wheat"))))
+ (modeline-mousable-minor-mode ((t (:foreground "black" :background "wheat"))))
+ (highlight ((t (:foreground "wheat" :background "darkslategray"))))
+ (bold ((t (:bold t))))
+ (italic ((t (:italic t))))
+ (bold-italic ((t (:bold t :italic t))))
+ (region ((t (:background "dimgray"))))
+ (secondary-selection ((t (:background "deepskyblue4"))))
+ (underline ((t (:underline t))))
+ (info-node ((t (:foreground "yellow" :bold t :italic t))))
+ (info-menu-5 ((t (:underline t))))
+ (info-xref ((t (:foreground "yellow" :bold t))))
+ (diary-face ((t (:foreground "orange"))))
+ (calendar-today-face ((t (:underline t))))
+ (holiday-face ((t (:background "red"))))
+ (show-paren-match-face ((t (:background "deepskyblue4"))))
+ (show-paren-mismatch-face ((t (:foreground "white" :background "red"))))
+ (font-lock-comment-face ((t (:foreground "gold"))))
+ (font-lock-string-face ((t (:foreground "orange"))))
+ (font-lock-keyword-face ((t (:foreground "cyan1"))))
+ (font-lock-builtin-face ((t (:foreground "LightSteelBlue"))))
+ (font-lock-function-name-face ((t (:foreground "mediumspringgreen"))))
+ (font-lock-variable-name-face ((t (:foreground "light salmon"))))
+ (font-lock-type-face ((t (:foreground "yellow1"))))
+ (font-lock-constant-face ((t (:foreground "salmon"))))
+ (font-lock-warning-face ((t (:foreground "gold" :bold t))))
+ (blank-space-face ((t (:background "LightGray"))))
+ (blank-tab-face ((t (:foreground "black" :background "cornsilk"))))
+ (highline-face ((t (:background "gray35"))))
+ (eshell-ls-directory-face ((t (:foreground "green" :bold t))))
+ (eshell-ls-symlink-face ((t (:foreground "Cyan" :bold t))))
+ (eshell-ls-executable-face ((t (:foreground "orange" :bold t))))
+ (eshell-ls-readonly-face ((t (:foreground "gray"))))
+ (eshell-ls-unreadable-face ((t (:foreground "DarkGrey"))))
+ (eshell-ls-special-face ((t (:foreground "Magenta" :bold t))))
+ (eshell-ls-missing-face ((t (:foreground "Red" :bold t))))
+ (eshell-ls-archive-face ((t (:foreground "Orchid" :bold t))))
+ (eshell-ls-backup-face ((t (:foreground "LightSalmon"))))
+ (eshell-ls-product-face ((t (:foreground "LightSalmon"))))
+ (eshell-ls-clutter-face ((t (:foreground "blue" :bold t))))
+ (sgml-start-tag-face ((t (:foreground "mediumspringgreen"))))
+ (custom-button-face ((t (:foreground "white"))))
+ (sgml-ignored-face ((t (:foreground "gray20" :background "gray60"))))
+ (sgml-doctype-face ((t (:foreground "orange"))))
+ (sgml-sgml-face ((t (:foreground "yellow"))))
+ (vc-annotate-face-0046FF ((t (:foreground "wheat" :background "black"))))
+ (custom-documentation-face ((t (:foreground "white"))))
+ (sgml-end-tag-face ((t (:foreground "greenyellow"))))
+ (linemenu-face ((t (:background "gray30"))))
+ (sgml-entity-face ((t (:foreground "gold"))))
+ (message-header-to-face ((t (:foreground "floral white" :bold t))))
+ (message-header-cc-face ((t (:foreground "ivory"))))
+ (message-header-subject-face ((t (:foreground "papaya whip" :bold t))))
+ (message-header-newsgroups-face ((t (:foreground "lavender blush" :bold t :italic t))))
+ (message-header-other-face ((t (:foreground "pale turquoise"))))
+ (message-header-name-face ((t (:foreground "light sky blue"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-separator-face ((t (:foreground "sandy brown"))))
+ (message-cited-text-face ((t (:foreground "plum1"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (gnus-group-news-1-face ((t (:foreground "white" :bold t))))
+ (gnus-group-news-1-empty-face ((t (:foreground "white"))))
+ (gnus-group-news-2-face ((t (:foreground "lightcyan" :bold t))))
+ (gnus-group-news-2-empty-face ((t (:foreground "lightcyan"))))
+ (gnus-group-news-3-face ((t (:foreground "tan" :bold t))))
+ (gnus-group-news-3-empty-face ((t (:foreground "tan"))))
+ (gnus-group-news-4-face ((t (:foreground "white" :bold t))))
+ (gnus-group-news-4-empty-face ((t (:foreground "white"))))
+ (gnus-group-news-5-face ((t (:foreground "wheat" :bold t))))
+ (gnus-group-news-5-empty-face ((t (:foreground "wheat"))))
+ (gnus-group-news-6-face ((t (:foreground "tan" :bold t))))
+ (gnus-group-news-6-empty-face ((t (:foreground "tan"))))
+ (gnus-group-news-low-face ((t (:foreground "DarkTurquoise" :bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise"))))
+ (gnus-group-mail-1-face ((t (:foreground "white" :bold t))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "gray80"))))
+ (gnus-group-mail-2-face ((t (:foreground "lightcyan" :bold t))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "lightcyan"))))
+ (gnus-group-mail-3-face ((t (:foreground "tan" :bold t))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "tan"))))
+ (gnus-group-mail-low-face ((t (:foreground "aquamarine4" :bold t))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4"))))
+ (gnus-summary-selected-face ((t (:background "deepskyblue4" :underline t))))
+ (gnus-summary-cancelled-face ((t (:foreground "black" :background "gray"))))
+ (gnus-summary-high-ticked-face ((t (:foreground "gray70" :bold t))))
+ (gnus-summary-low-ticked-face ((t (:foreground "gray70" :bold t))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "gray70" :bold t))))
+ (gnus-summary-high-ancient-face ((t (:foreground "SkyBlue" :bold t))))
+ (gnus-summary-low-ancient-face ((t (:foreground "SkyBlue" :italic t))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue"))))
+ (gnus-summary-high-unread-face ((t (:bold t))))
+ (gnus-summary-low-unread-face ((t (:italic t))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-high-read-face ((t (:foreground "PaleGreen" :bold t))))
+ (gnus-summary-low-read-face ((t (:foreground "PaleGreen" :italic t))))
+ (gnus-summary-normal-read-face ((t (:foreground "PaleGreen"))))
+ (gnus-splash-face ((t (:foreground "gold"))))
+ (font-latex-bold-face ((t (nil))))
+ (font-latex-italic-face ((t (nil))))
+ (font-latex-math-face ((t (nil))))
+ (font-latex-sedate-face ((t (:foreground "Gray85"))))
+ (font-latex-string-face ((t (:foreground "orange"))))
+ (font-latex-warning-face ((t (:foreground "gold"))))
+ (widget-documentation-face ((t (:foreground "lime green"))))
+ (widget-button-face ((t (:bold t))))
+ (widget-field-face ((t (:background "gray20"))))
+ (widget-single-line-field-face ((t (:background "gray20"))))
+ (widget-inactive-face ((t (:foreground "wheat"))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (custom-invalid-face ((t (:foreground "yellow" :background "red"))))
+ (custom-rogue-face ((t (:foreground "pink" :background "black"))))
+ (custom-modified-face ((t (:foreground "white" :background "blue"))))
+ (custom-set-face ((t (:foreground "blue"))))
+ (custom-changed-face ((t (:foreground "wheat" :background "skyblue"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-state-face ((t (:foreground "light green"))))
+ (custom-variable-tag-face ((t (:foreground "skyblue" :underline t))))
+ (custom-variable-button-face ((t (:bold t :underline t))))
+ (custom-face-tag-face ((t (:foreground "white" :underline t))))
+ (custom-group-tag-face-1 ((t (:foreground "pink" :underline t))))
+ (custom-group-tag-face ((t (:foreground "skyblue" :underline t))))
+ (swbuff-current-buffer-face ((t (:foreground "red" :bold t))))
+ (ediff-current-diff-face-A ((t (:foreground "firebrick" :background "pale green"))))
+ (ediff-current-diff-face-B ((t (:foreground "DarkOrchid" :background "Yellow"))))
+ (ediff-current-diff-face-C ((t (:foreground "white" :background "indianred"))))
+ (ediff-current-diff-face-Ancestor ((t (:foreground "Black" :background "VioletRed"))))
+ (ediff-fine-diff-face-A ((t (:foreground "Navy" :background "sky blue"))))
+ (ediff-fine-diff-face-B ((t (:foreground "Black" :background "cyan"))))
+ (ediff-fine-diff-face-C ((t (:foreground "Black" :background "Turquoise"))))
+ (ediff-fine-diff-face-Ancestor ((t (:foreground "Black" :background "Green"))))
+ (ediff-even-diff-face-A ((t (:foreground "Black" :background "light grey"))))
+ (ediff-even-diff-face-B ((t (:foreground "White" :background "Grey"))))
+ (ediff-even-diff-face-C ((t (:foreground "Black" :background "light grey"))))
+ (ediff-even-diff-face-Ancestor ((t (:foreground "White" :background "Grey"))))
+ (ediff-odd-diff-face-A ((t (:foreground "White" :background "Grey"))))
+ (ediff-odd-diff-face-B ((t (:foreground "Black" :background "light grey"))))
+ (ediff-odd-diff-face-C ((t (:foreground "White" :background "Grey"))))
+ (ediff-odd-diff-face-Ancestor ((t (:foreground "Black" :background "light grey"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-italic ((t (:italic t))))
+ (gnus-emphasis-underline ((t (:foreground "white" :background "goldenrod4"))))
+ (gnus-emphasis-underline-bold ((t (:foreground "black" :background "yellow" :bold t :underline t))))
+ (gnus-emphasis-underline-italic ((t (:foreground "black" :background "yellow" :italic t :underline t))))
+ (gnus-emphasis-bold-italic ((t (:bold t :italic t))))
+ (gnus-emphasis-underline-bold-italic ((t (:foreground "black" :background "yellow" :bold t :italic t :underline t))))
+ (gnus-emphasis-highlight-words ((t (:foreground "yellow" :background "black"))))
+ (gnus-signature-face ((t (:italic t))))
+ (gnus-header-from-face ((t (:foreground "wheat"))))
+ (gnus-header-subject-face ((t (:foreground "wheat" :bold t))))
+ (gnus-header-newsgroups-face ((t (:foreground "wheat" :italic t))))
+ (gnus-header-name-face ((t (:foreground "white"))))
+ (gnus-header-content-face ((t (:foreground "tan" :italic t))))
+ (gnus-filterhist-face-1 ((t (nil))))
+ (gnus-splash ((t (:foreground "Brown"))))
+ (gnus-cite-attribution-face ((t (:italic t))))
+ (gnus-cite-face-1 ((t (:foreground "light blue"))))
+ (gnus-cite-face-2 ((t (:foreground "light cyan"))))
+ (gnus-cite-face-3 ((t (:foreground "light yellow"))))
+ (gnus-cite-face-4 ((t (:foreground "light pink"))))
+ (gnus-cite-face-5 ((t (:foreground "pale green"))))
+ (gnus-cite-face-6 ((t (:foreground "beige"))))
+ (gnus-cite-face-7 ((t (:foreground "orange"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise")))))))
+
+(defun color-theme-retro-green (&optional color func)
+ "Plain green on black faces for those longing for the good old days."
+ (interactive)
+ ;; Build a list of faces without parameters
+ (let ((old-faces (face-list))
+ (faces)
+ (face)
+ (foreground (or color "green")))
+ (dolist (face old-faces)
+ (cond ((memq face '(bold bold-italic))
+ (add-to-list 'faces `(,face (( t (:bold t))))))
+ ((memq face '(italic underline show-paren-mismatch-face))
+ (add-to-list 'faces `(,face (( t (:underline t))))))
+ ((memq face '(modeline modeline-buffer-id modeline-mousable
+ modeline-mousable-minor-mode highlight region
+ secondary-selection show-paren-match-face))
+ (add-to-list 'faces `(,face (( t (:foreground "black"
+ :background ,foreground
+ :inverse t))))))
+ (t
+ (add-to-list 'faces `(,face (( t (nil))))))))
+ (color-theme-install
+ (append
+ (list (or func 'color-theme-retro-green)
+ (list (cons 'foreground-color foreground)
+ (cons 'background-color "black")
+ (cons 'mouse-color foreground)
+ (cons 'cursor-color foreground)
+ (cons 'border-color foreground)
+ (cons 'background-mode 'dark)))
+ faces))))
+
+(defun color-theme-retro-orange ()
+ "Plain orange on black faces for those longing for the good old days."
+ (interactive)
+ (color-theme-retro-green "orange" 'color-theme-retro-orange))
+
+(defun color-theme-subtle-hacker ()
+ "Subtle Hacker Color Theme.
+Based on gnome2, but uses white for important things like comments,
+and less of the unreadable tomato. By Colin Walters <levanti@verbum.org>"
+ (interactive)
+ (color-theme-gnome2)
+ (let ((color-theme-is-cumulative t))
+ (color-theme-install
+ '(color-theme-subtle-hacker
+ nil
+ nil
+ (custom-state-face ((t (:foreground "Coral"))))
+ (diary-face ((t (:bold t :foreground "IndianRed"))))
+ (eshell-ls-clutter-face ((t (:bold t :foreground "DimGray"))))
+ (eshell-ls-executable-face ((t (:bold t :foreground "Coral"))))
+ (eshell-ls-missing-face ((t (:bold t :foreground "black"))))
+ (eshell-ls-special-face ((t (:bold t :foreground "Gold"))))
+ (eshell-ls-symlink-face ((t (:bold t :foreground "White"))))
+ (font-lock-comment-face ((t (:foreground "White"))))
+ (font-lock-constant-face ((t (:bold t :foreground "Aquamarine"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "MediumSlateBlue"))))
+ (font-lock-string-face ((t (:italic t :foreground "LightSalmon"))))
+ (font-lock-variable-name-face ((t (:italic t :bold t :foreground "Aquamarine"))))
+ (gnus-cite-face-1 ((t (:foreground "dark khaki"))))
+ (gnus-cite-face-2 ((t (:foreground "chocolate"))))
+ (gnus-cite-face-3 ((t (:foreground "tomato"))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "light cyan"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "light cyan"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "turquoise"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "turquoise"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "tomato"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "tomato"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "dodger blue"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "dodger blue"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "green yellow"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "green yellow"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "dark orange"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "dark orange"))))
+ (gnus-group-news-3-empty-face ((t (:foreground "tomato"))))
+ (gnus-group-news-3-face ((t (:bold t :foreground "tomato"))))
+ (gnus-group-news-low-empty-face ((t (:foreground "yellow green"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "yellow green"))))
+ (gnus-header-name-face ((t (:bold t :foreground "DodgerBlue1"))))
+ (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3"))))
+ (gnus-signature-face ((t (:foreground "salmon"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "forest green"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "burlywood"))))
+ (gnus-summary-high-unread-face ((t (:italic t :bold t :foreground "cyan"))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "chocolate"))))
+ (gnus-summary-low-read-face ((t (:foreground "light sea green"))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "chocolate"))))
+ (gnus-summary-low-unread-face ((t (:italic t :foreground "light sea green"))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "khaki"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "sandy brown"))))
+ (gnus-summary-normal-unread-face ((t (:foreground "aquamarine"))))
+ (message-cited-text-face ((t (:foreground "White"))))
+ (message-header-name-face ((t (:foreground "DodgerBlue1"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3"))))
+ (message-header-other-face ((t (:foreground "LightSkyBlue3"))))
+ (message-header-xheader-face ((t (:foreground "DodgerBlue3"))))))))
+
+(defun color-theme-pok-wog ()
+ "Low-contrast White-on-Gray by S.Pokrovsky.
+
+The following might be a good addition to your .Xdefaults file:
+
+Emacs.pane.menubar.background: darkGrey
+Emacs.pane.menubar.foreground: black"
+ (interactive)
+ (color-theme-install
+ '(color-theme-pok-wog
+ ((foreground-color . "White")
+ (background-color . "DarkSlateGray")
+ (mouse-color . "gold")
+ (cursor-color . "Cyan")
+ (border-color . "black")
+ (background-mode . dark))
+ (default ((t (nil))))
+ (bold ((t (:bold t :foreground "Wheat"))))
+ (bold-italic ((t (:italic t :bold t :foreground "wheat"))))
+ (calendar-today-face ((t (:underline t :foreground "white"))))
+ (diary-face ((t (:foreground "red"))))
+ (font-lock-builtin-face ((t (:bold t :foreground "cyan"))))
+ (font-lock-comment-face ((t (:foreground "Gold"))))
+ (font-lock-constant-face ((t (:bold t :foreground "LightSteelBlue"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "Yellow"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "Cyan"))))
+ (font-lock-string-face ((t (:foreground "Khaki"))))
+ (font-lock-type-face ((t (:bold t :foreground "Cyan"))))
+ (font-lock-variable-name-face ((t (:foreground "LightGoldenrod"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Pink"))))
+ (gnus-cite-attribution-face ((t (:bold t :foreground "Wheat"))))
+ (gnus-cite-face-1 ((t (:foreground "wheat"))))
+ (gnus-cite-face-10 ((t (:foreground "wheat"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "cyan"))))
+ (gnus-cite-face-3 ((t (:foreground "light yellow"))))
+ (gnus-cite-face-4 ((t (:foreground "light pink"))))
+ (gnus-cite-face-5 ((t (:foreground "pale green"))))
+ (gnus-cite-face-6 ((t (:foreground "beige"))))
+ (gnus-cite-face-7 ((t (:foreground "orange"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t :foreground "wheat"))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (:italic t :foreground "white"))))
+ (gnus-emphasis-underline ((t (:underline t :foreground "white"))))
+ (gnus-emphasis-underline-bold ((t (:underline t :bold t :foreground "wheat"))))
+ (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t))))
+ (gnus-emphasis-underline-italic ((t (:underline t :italic t :foreground "white"))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "Salmon"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "gold"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "Wheat"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "turquoise"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "turquoise"))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t :foreground "Wheat"))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise"))))
+ (gnus-header-content-face ((t (:italic t :foreground "Wheat"))))
+ (gnus-header-from-face ((t (:foreground "light yellow"))))
+ (gnus-header-name-face ((t (:foreground "cyan"))))
+ (gnus-header-newsgroups-face ((t (:italic t :foreground "yellow"))))
+ (gnus-header-subject-face ((t (:bold t :foreground "Gold"))))
+ (gnus-signature-face ((t (:italic t :foreground "wheat"))))
+ (gnus-splash-face ((t (:foreground "orange"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink"))))
+ (gnus-summary-high-unread-face ((t (:bold t :foreground "gold"))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue"))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen"))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink"))))
+ (gnus-summary-low-unread-face ((t (:italic t))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "PaleGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "pink"))))
+ (gnus-summary-normal-unread-face ((t (:foreground "wheat"))))
+ (gnus-summary-selected-face ((t (:underline t :foreground "white"))))
+ (highlight ((t (:background "Blue" :foreground "white"))))
+ (highline-face ((t (:background "black" :foreground "white"))))
+ (holiday-face ((t (:background "pink" :foreground "white"))))
+ (info-menu-5 ((t (:underline t))))
+ (info-node ((t (:italic t :bold t :foreground "white"))))
+ (info-xref ((t (:bold t :foreground "wheat"))))
+ (italic ((t (:italic t :foreground "white"))))
+ (makefile-space-face ((t (:background "hotpink"))))
+ (message-cited-text-face ((t (:foreground "green"))))
+ (message-header-cc-face ((t (:bold t :foreground "Aquamarine"))))
+ (message-header-name-face ((t (:foreground "Gold"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow"))))
+ (message-header-other-face ((t (:foreground "lightGray"))))
+ (message-header-subject-face ((t (:foreground "Yellow"))))
+ (message-header-to-face ((t (:bold t :foreground "green2"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:bold t :foreground "khaki"))))
+ (message-separator-face ((t (:background "aquamarine" :foreground "black"))))
+ (modeline ((t (:background "DarkGray" :foreground "Black"))))
+ (modeline-buffer-id ((t (:background "DarkGray" :foreground "Black"))))
+ (modeline-mousable ((t (:background "DarkGray" :foreground "Black"))))
+ (modeline-mousable-minor-mode ((t (:background "DarkGray" :foreground "Black"))))
+ (paren-mismatch-face ((t (:background "DeepPink" :foreground "white"))))
+ (paren-no-match-face ((t (:background "yellow" :foreground "white"))))
+ (region ((t (:background "MediumSlateBlue" :foreground "white"))))
+ (secondary-selection ((t (:background "Sienna" :foreground "white"))))
+ (show-paren-match-face ((t (:background "turquoise" :foreground "white"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (speedbar-button-face ((t (:bold t :foreground "magenta"))))
+ (speedbar-directory-face ((t (:bold t :foreground "orchid"))))
+ (speedbar-file-face ((t (:foreground "pink"))))
+ (speedbar-highlight-face ((t (:background "black"))))
+ (speedbar-selected-face ((t (:underline t :foreground "cyan"))))
+ (speedbar-tag-face ((t (:foreground "yellow"))))
+ (swbuff-current-buffer-face ((t (:bold t :foreground "red"))))
+ (underline ((t (:underline t :foreground "white"))))
+ (widget-button-face ((t (:bold t :foreground "wheat"))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "lime green"))))
+ (widget-field-face ((t (:background "dim gray" :foreground "white"))))
+ (widget-inactive-face ((t (:foreground "light gray"))))
+ (widget-single-line-field-face ((t (:background "dim gray" :foreground "white")))))))
+
+(defun color-theme-pok-wob ()
+ "White-on-Black by S. Pokrovsky.
+
+The following might be a good addition to your .Xdefaults file:
+
+Emacs.pane.menubar.background: darkGrey
+Emacs.pane.menubar.foreground: black"
+ (interactive)
+; (setq term-default-fg-color "white"
+; term-default-bg "black")
+ (color-theme-install
+ '(color-theme-pok-wob
+ ((foreground-color . "white")
+ (background-color . "black")
+ (mouse-color . "gold")
+ (cursor-color . "yellow")
+ (border-color . "black")
+ (background-mode . dark))
+ (default ((t (nil))))
+ (bold ((t (:bold t :foreground "light gray"))))
+ (bold-italic ((t (:italic t :bold t :foreground "cyan"))))
+ (calendar-today-face ((t (:underline t :foreground "white"))))
+ (custom-button-face ((t (nil))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:underline t))))
+ (custom-group-tag-face-1 ((t (:underline t))))
+ (custom-invalid-face ((t (:background "red" :foreground "white"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (nil))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:underline t))))
+ (diary-face ((t (:foreground "gold"))))
+ (font-lock-builtin-face ((t (:bold t :foreground "cyan"))))
+ (font-lock-comment-face ((t (:foreground "Gold"))))
+ (font-lock-constant-face ((t (:bold t :foreground "LightSteelBlue"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "gold"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "Cyan"))))
+ (font-lock-string-face ((t (:foreground "Khaki"))))
+ (font-lock-type-face ((t (:bold t :foreground "Cyan"))))
+ (font-lock-variable-name-face ((t (:italic t :foreground "gold"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Pink"))))
+ (gnus-cite-attribution-face ((t (:underline t :foreground "beige"))))
+ (gnus-cite-face-1 ((t (:foreground "gold"))))
+ (gnus-cite-face-10 ((t (:foreground "coral"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "wheat"))))
+ (gnus-cite-face-3 ((t (:foreground "light pink"))))
+ (gnus-cite-face-4 ((t (:foreground "khaki"))))
+ (gnus-cite-face-5 ((t (:foreground "pale green"))))
+ (gnus-cite-face-6 ((t (:foreground "beige"))))
+ (gnus-cite-face-7 ((t (:foreground "orange"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t :foreground "light gray"))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t :foreground "cyan"))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "gold"))))
+ (gnus-emphasis-italic ((t (:italic t :foreground "cyan"))))
+ (gnus-emphasis-underline ((t (:underline t :foreground "white"))))
+ (gnus-emphasis-underline-bold ((t (:underline t :bold t :foreground "white"))))
+ (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t :foreground "white"))))
+ (gnus-emphasis-underline-italic ((t (:underline t :italic t :foreground "white"))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "Magenta"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "Magenta"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "Cyan"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "Cyan"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "Wheat"))))
+ (gnus-group-mail-low-face ((t (:foreground "aquamarine4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "turquoise"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "turquoise"))))
+ (gnus-group-news-3-empty-face ((t (:foreground "wheat"))))
+ (gnus-group-news-3-face ((t (:bold t :foreground "Wheat"))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "MediumAquamarine"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "MediumAquamarine"))))
+ (gnus-header-content-face ((t (:italic t :foreground "Wheat"))))
+ (gnus-header-from-face ((t (:foreground "light yellow"))))
+ (gnus-header-name-face ((t (:foreground "Wheat"))))
+ (gnus-header-newsgroups-face ((t (:italic t :foreground "gold"))))
+ (gnus-header-subject-face ((t (:bold t :foreground "Gold"))))
+ (gnus-signature-face ((t (:italic t :foreground "white"))))
+ (gnus-splash-face ((t (:foreground "orange"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "orange"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "red"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "coral"))))
+ (gnus-summary-high-unread-face ((t (:bold t :foreground "gold"))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue"))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "red"))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "coral"))))
+ (gnus-summary-low-unread-face ((t (:italic t :foreground "white"))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "PaleGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "pink"))))
+ (gnus-summary-normal-unread-face ((t (:foreground "white"))))
+ (gnus-summary-selected-face ((t (:underline t :foreground "white"))))
+ (highlight ((t (:background "Blue" :foreground "white"))))
+ (highline-face ((t (:background "dark slate gray" :foreground "white"))))
+ (holiday-face ((t (:background "red" :foreground "white"))))
+ (info-menu-5 ((t (:underline t))))
+ (info-node ((t (:italic t :bold t :foreground "white"))))
+ (info-xref ((t (:bold t :foreground "light gray"))))
+ (italic ((t (:italic t :foreground "cyan"))))
+ (makefile-space-face ((t (:background "hotpink" :foreground "white"))))
+ (message-cited-text-face ((t (:foreground "green"))))
+ (message-header-cc-face ((t (:bold t :foreground "Aquamarine"))))
+ (message-header-name-face ((t (:foreground "Gold"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "gold"))))
+ (message-header-other-face ((t (:foreground "lightGray"))))
+ (message-header-subject-face ((t (:foreground "Yellow"))))
+ (message-header-to-face ((t (:bold t :foreground "green2"))))
+ (message-header-xheader-face ((t (:foreground "sky blue"))))
+ (message-mml-face ((t (:bold t :foreground "khaki"))))
+ (message-separator-face ((t (:background "aquamarine" :foreground "black"))))
+ (modeline ((t (:background "dark gray" :foreground "black"))))
+ (modeline-buffer-id ((t (:background "dark gray" :foreground "black"))))
+ (modeline-mousable ((t (:background "dark gray" :foreground "black"))))
+ (modeline-mousable-minor-mode ((t (:background "dark gray" :foreground "black"))))
+ (paren-mismatch-face ((t (:bold t :background "white" :foreground "red"))))
+ (paren-no-match-face ((t (:bold t :background "white" :foreground "red"))))
+ (region ((t (:background "MediumSlateBlue" :foreground "white"))))
+ (secondary-selection ((t (:background "Sienna" :foreground "white"))))
+ (show-paren-match-face ((t (:background "purple" :foreground "white"))))
+ (show-paren-mismatch-face ((t (:bold t :background "white" :foreground "red"))))
+ (speedbar-button-face ((t (nil))))
+ (speedbar-directory-face ((t (nil))))
+ (speedbar-file-face ((t (:bold t))))
+ (speedbar-highlight-face ((t (nil))))
+ (speedbar-selected-face ((t (:underline t))))
+ (speedbar-tag-face ((t (nil))))
+ (swbuff-current-buffer-face ((t (:bold t :foreground "red"))))
+ (underline ((t (:underline t :foreground "white"))))
+ (widget-button-face ((t (:bold t :foreground "coral"))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "lime green"))))
+ (widget-field-face ((t (:background "dim gray" :foreground "white"))))
+ (widget-inactive-face ((t (:foreground "light gray"))))
+ (widget-single-line-field-face ((t (:background "dim gray" :foreground "white")))))))
+
+(defun color-theme-blue-sea ()
+ "The grey on midnight blue theme.
+
+Includes faces for apropos, font-lock (Emacs and XEmacs), speedbar,
+custom, widget, info, flyspell, gnus, message, man, woman, dired.
+
+This is what you should put in your .Xdefaults file, if you want to
+change the colors of the menus:
+
+emacs*Background: DarkSlateGray
+emacs*Foreground: Wheat"
+ (interactive)
+ (color-theme-blue-gnus)
+ (let ((color-theme-is-cumulative t))
+ (color-theme-blue-erc)
+ (color-theme-install
+ '(color-theme-blue-sea
+ ((background-color . "MidnightBlue")
+ (background-mode . dark)
+ (border-color . "Grey")
+ (cursor-color . "Grey")
+ (foreground-color . "Grey")
+ (mouse-color . "Grey"))
+ ((Man-overstrike-face . woman-bold-face)
+ (Man-underline-face . woman-italic-face))
+ (default ((t (nil))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:bold t :foreground "beige"))))
+ (calendar-today-face ((t (:underline t))))
+ (cperl-array-face ((t (:foreground "light salmon" :bold t))))
+ (cperl-hash-face ((t (:foreground "beige" :bold t :italic t))))
+ (cperl-nonoverridable-face ((t (:foreground "aquamarine"))))
+ (custom-button-face ((t (:foreground "gainsboro"))))
+ (custom-changed-face ((t (:foreground "white" :background "blue"))))
+ (custom-documentation-face ((t (:foreground "light blue"))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:foreground "pale turquoise" :bold t))))
+ (custom-group-tag-face-1 ((t (:foreground "pale turquoise" :underline t))))
+ (custom-invalid-face ((t (:foreground "yellow" :background "red"))))
+ (custom-modified-face ((t (:foreground "white" :background "blue"))))
+ (custom-rogue-face ((t (:foreground "pink" :background "black"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:foreground "blue" :background "white"))))
+ (custom-state-face ((t (:foreground "light salmon"))))
+ (custom-variable-button-face ((t (:bold t :underline t))))
+ (custom-variable-tag-face ((t (:foreground "turquoise" :bold t))))
+ (diary-face ((t (:foreground "red"))))
+ (dired-face-directory ((t (:bold t :foreground "sky blue"))))
+ (dired-face-permissions ((t (:foreground "aquamarine"))))
+ (dired-face-flagged ((t (:foreground "tomato"))))
+ (dired-face-marked ((t (:foreground "light salmon"))))
+ (dired-face-executable ((t (:foreground "green yellow"))))
+ (eshell-ls-archive-face ((t (:bold t :foreground "medium purple"))))
+ (eshell-ls-backup-face ((t (:foreground "dim gray"))))
+ (eshell-ls-clutter-face ((t (:foreground "dim gray"))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "medium slate blue"))))
+ (eshell-ls-executable-face ((t (:bold t :foreground "aquamarine"))))
+ (eshell-ls-missing-face ((t (:foreground "black"))))
+ (eshell-ls-picture-face ((t (:foreground "violet"))))
+ (eshell-ls-product-face ((t (:foreground "light steel blue"))))
+ (eshell-ls-readonly-face ((t (:foreground "aquamarine"))))
+ (eshell-ls-special-face ((t (:foreground "gold"))))
+ (eshell-ls-symlink-face ((t (:foreground "white"))))
+ (eshell-ls-unreadable-face ((t (:foreground "dim gray"))))
+ (eshell-prompt-face ((t (:foreground "light sky blue" :bold t))))
+ (excerpt ((t (:italic t))))
+ (fixed ((t (:bold t))))
+ (flyspell-duplicate-face ((t (:foreground "Gold3" :bold t :underline t))))
+ (flyspell-incorrect-face ((t (:foreground "OrangeRed" :bold t :underline t))))
+ (font-lock-builtin-face ((t (:foreground "aquamarine"))))
+ (font-lock-comment-face ((t (:foreground "light blue"))))
+ (font-lock-constant-face ((t (:foreground "pale green"))))
+ (font-lock-doc-string-face ((t (:foreground "sky blue"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "aquamarine"))))
+ (font-lock-keyword-face ((t (:foreground "pale turquoise" :bold t))))
+ (font-lock-reference-face ((t (:foreground "pale green"))))
+ (font-lock-string-face ((t (:foreground "light sky blue"))))
+ (font-lock-type-face ((t (:foreground "sky blue" :bold t))))
+ (font-lock-variable-name-face ((t (:foreground "turquoise" :bold t))))
+ (font-lock-warning-face ((t (:foreground "Red" :bold t))))
+ (fringe ((t (:background "MidnightBlue"))))
+ (header-line ((t (:background "#002" :foreground "cornflower blue"))))
+ (highlight ((t (:background "dark slate blue" :foreground "light blue"))))
+ (highline-face ((t (:background "DeepSkyBlue4"))))
+ (holiday-face ((t (:background "pink"))))
+ (info-menu-5 ((t (:underline t))))
+ (info-node ((t (:bold t))))
+ (info-xref ((t (:bold t :foreground "sky blue"))))
+ (isearch ((t (:background "slate blue"))))
+ (italic ((t (:foreground "sky blue"))))
+ (makefile-space-face ((t (:background "hotpink"))))
+ (menu ((t (:background "MidnightBlue" :foreground "Grey"))))
+ (modeline ((t (:foreground "wheat" :background "slate blue"))))
+ (mode-line-inactive ((t (:background "dark slate blue" :foreground "wheat"))))
+ (modeline-buffer-id ((t (:foreground "beige" :background "slate blue"))))
+ (modeline-mousable ((t (:foreground "light cyan" :background "slate blue"))))
+ (modeline-mousable-minor-mode ((t (:foreground "wheat" :background "slate blue"))))
+ (region ((t (:background "DarkSlateBlue"))))
+ (secondary-selection ((t (:background "steel blue"))))
+ (show-paren-match-face ((t (:foreground "white" :background "light slate blue"))))
+ (show-paren-mismatch-face ((t (:foreground "white" :background "red"))))
+ (speedbar-button-face ((t (:foreground "seashell2"))))
+ (speedbar-directory-face ((t (:foreground "seashell3"))))
+ (speedbar-file-face ((t (:foreground "seashell4"))))
+ (speedbar-highlight-face ((t (:background "dark slate blue" :foreground "wheat"))))
+ (speedbar-selected-face ((t (:foreground "seashell1" :underline t))))
+ (speedbar-tag-face ((t (:foreground "antique white"))))
+ (tool-bar ((t (:background "MidnightBlue" :foreground "Grey" :box (:line-width 1 :style released-button)))))
+ (underline ((t (:underline t))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "light blue"))))
+ (widget-field-face ((t (:background "RoyalBlue4" :foreground "wheat"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "slate blue" :foreground "wheat"))))
+ (woman-bold-face ((t (:foreground "sky blue" :bold t))))
+ (woman-italic-face ((t (:foreground "deep sky blue"))))
+ (woman-unknown-face ((t (:foreground "LightSalmon"))))
+ (zmacs-region ((t (:background "DarkSlateBlue"))))))))
+
+(defun color-theme-rotor ()
+ "Black on Beige color theme by Jinwei Shen, created 2000-06-08.
+Supports default faces, font-lock, custom, widget, message, man,
+show-paren, viper."
+ (interactive)
+ (color-theme-install
+ '(color-theme-rotor
+ ((background-color . "Beige")
+ (background-mode . light)
+ (border-color . "black")
+ (cursor-color . "Maroon")
+ (foreground-color . "Black")
+ (mouse-color . "Black"))
+ ((Man-overstrike-face . font-lock-function-name-face)
+ (Man-underline-face . font-lock-type-face)
+ (list-matching-lines-face . bold)
+ (rmail-highlight-face . font-lock-function-name-face)
+ (watson-attribution-face . italic)
+ (watson-url-face . bold)
+ (watson-url-mouse-face . highlight))
+ (default ((t (nil))))
+ (bold ((t (:bold t :background "grey40" :foreground "yellow"))))
+ (bold-italic ((t (:italic t :bold t :foreground "yellow green"))))
+ (custom-button-face ((t (nil))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:underline t :foreground "blue"))))
+ (custom-group-tag-face-1 ((t (:underline t :foreground "red"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "dark green"))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:underline t :foreground "blue"))))
+ (font-lock-builtin-face ((t (:foreground "Orchid"))))
+ (font-lock-comment-face ((t (:foreground "MediumBlue"))))
+ (font-lock-constant-face ((t (:foreground "CadetBlue"))))
+ (font-lock-function-name-face ((t (:foreground "MediumSlateBlue"))))
+ (font-lock-keyword-face ((t (:foreground "#80a0ff"))))
+ (font-lock-string-face ((t (:foreground "red"))))
+ (font-lock-type-face ((t (:foreground "ForestGreen"))))
+ (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red"))))
+ (highlight ((t (:background "PaleGreen" :foreground "black"))))
+ (italic ((t (:italic t :foreground "yellow3"))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:foreground "MidnightBlue"))))
+ (message-header-name-face ((t (:foreground "cornflower blue"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4"))))
+ (message-header-other-face ((t (:foreground "steel blue"))))
+ (message-header-subject-face ((t (:bold t :foreground "navy blue"))))
+ (message-header-to-face ((t (:bold t :foreground "MidnightBlue"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (modeline ((t (:background "wheat" :foreground "DarkOliveGreen"))))
+ (modeline-buffer-id ((t (:background "wheat" :foreground "DarkOliveGreen"))))
+ (modeline-mousable ((t (:background "wheat" :foreground "DarkOliveGreen"))))
+ (modeline-mousable-minor-mode ((t (:background "wheat" :foreground "DarkOliveGreen"))))
+ (nil ((t (nil))))
+ (region ((t (:background "dark cyan" :foreground "cyan"))))
+ (secondary-selection ((t (:background "Turquoise" :foreground "black"))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (underline ((t (:underline t))))
+ (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black"))))
+ (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen"))))
+ (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-search-face ((t (:background "khaki" :foreground "Black"))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "gray85")))))))
+
+(defun color-theme-pierson ()
+ "Black on White color theme by Dan L. Pierson, created 2000-06-08.
+Supports default faces, font-lock, show-paren."
+ (interactive)
+ (color-theme-install
+ '(color-theme-pierson
+ ((background-color . "AntiqueWhite")
+ (background-mode . light)
+ (border-color . "black")
+ (cursor-color . "Orchid")
+ (foreground-color . "black")
+ (mouse-color . "Orchid"))
+ ((list-matching-lines-face . bold))
+ (default ((t (nil))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t))))
+ (font-lock-builtin-face ((t (:foreground "Orchid"))))
+ (font-lock-comment-face ((t (:foreground "ForestGreen"))))
+ (font-lock-constant-face ((t (:foreground "CadetBlue"))))
+ (font-lock-function-name-face ((t (:foreground "blue3"))))
+ (font-lock-keyword-face ((t (:foreground "Blue"))))
+ (font-lock-string-face ((t (:foreground "Firebrick"))))
+ (font-lock-type-face ((t (:foreground "Purple"))))
+ (font-lock-variable-name-face ((t (:foreground "blue3"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red"))))
+ (highlight ((t (:background "darkseagreen2"))))
+ (italic ((t (:italic t))))
+ (modeline ((t (:foreground "antiquewhite" :background "black"))))
+ (modeline-mousable-minor-mode ((t (:foreground "antiquewhite" :background "black"))))
+ (modeline-mousable ((t (:foreground "antiquewhite" :background "black"))))
+ (modeline-buffer-id ((t (:foreground "antiquewhite" :background "black"))))
+ (region ((t (:background "gray"))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (underline ((t (:underline t)))))))
+
+(defun color-theme-xemacs ()
+ "XEmacs standard colors.
+If you are missing standard faces in this theme, please notify the maintainer.
+Currently, this theme includes the standard faces and font-lock faces, including
+some faces used in Emacs only but which are needed to recreate the look of the
+XEmacs color theme."
+ (interactive)
+ (color-theme-install
+ '(color-theme-xemacs
+ ((background-color . "gray80")
+ (background-mode . light)
+ (background-toolbar-color . "#cf3ccf3ccf3c")
+ (border-color . "#000000000000")
+ (bottom-toolbar-shadow-color . "#79e77df779e7")
+ (cursor-color . "Red3")
+ (foreground-color . "black")
+ (top-toolbar-shadow-color . "#fffffbeeffff"))
+ (default ((t (nil))))
+ (blue ((t (:foreground "blue"))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t))))
+ (border-glyph ((t (nil))))
+ (custom-button-face ((t (:bold t))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:underline t :foreground "blue"))))
+ (custom-group-tag-face-1 ((t (:underline t :foreground "red"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "dark green"))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:underline t :foreground "blue"))))
+ (dired-face-boring ((t (:foreground "Gray65"))))
+ (dired-face-directory ((t (:bold t))))
+ (dired-face-executable ((t (:foreground "SeaGreen"))))
+ (dired-face-flagged ((t (:background "LightSlateGray"))))
+ (dired-face-marked ((t (:background "PaleVioletRed"))))
+ (dired-face-permissions ((t (:background "grey75" :foreground "black"))))
+ (dired-face-setuid ((t (:foreground "Red"))))
+ (dired-face-socket ((t (:foreground "magenta"))))
+ (dired-face-symlink ((t (:foreground "cyan"))))
+ (font-lock-builtin-face ((t (:foreground "red3"))))
+ (font-lock-comment-face ((t (:foreground "blue4"))))
+ (font-lock-constant-face ((t (:foreground "red3"))))
+ (font-lock-doc-string-face ((t (:foreground "green4"))))
+ (font-lock-function-name-face ((t (:foreground "brown4"))))
+ (font-lock-keyword-face ((t (:foreground "red4"))))
+ (font-lock-preprocessor-face ((t (:foreground "blue3"))))
+ (font-lock-reference-face ((t (:foreground "red3"))))
+ (font-lock-string-face ((t (:foreground "green4"))))
+ (font-lock-type-face ((t (:foreground "steelblue"))))
+ (font-lock-variable-name-face ((t (:foreground "magenta4"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red"))))
+ (green ((t (:foreground "green"))))
+ (gui-button-face ((t (:background "grey75" :foreground "black"))))
+ (gui-element ((t (:background "Gray80"))))
+ (highlight ((t (:background "darkseagreen2"))))
+ (info-node ((t (:italic t :bold t))))
+ (info-xref ((t (:bold t))))
+ (isearch ((t (:background "paleturquoise"))))
+ (italic ((t (:italic t))))
+ (left-margin ((t (nil))))
+ (list-mode-item-selected ((t (:background "gray68"))))
+ (modeline ((t (:background "Gray80"))))
+ (modeline-buffer-id ((t (:background "Gray80" :foreground "blue4"))))
+ (modeline-mousable ((t (:background "Gray80" :foreground "firebrick"))))
+ (modeline-mousable-minor-mode ((t (:background "Gray80" :foreground "green4"))))
+ (paren-blink-off ((t (:foreground "gray80"))))
+ (paren-match ((t (:background "darkseagreen2"))))
+ (paren-mismatch ((t (:background "DeepPink" :foreground "black"))))
+ (pointer ((t (nil))))
+ (primary-selection ((t (:background "gray65"))))
+ (red ((t (:foreground "red"))))
+ (region ((t (:background "gray65"))))
+ (right-margin ((t (nil))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (text-cursor ((t (:background "Red3" :foreground "gray80"))))
+ (toolbar ((t (:background "Gray80"))))
+ (underline ((t (:underline t))))
+ (vertical-divider ((t (:background "Gray80"))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (yellow ((t (:foreground "yellow"))))
+ (zmacs-region ((t (:background "gray65")))))))
+
+(defun color-theme-jsc-light ()
+ "Color theme by John S Cooper, created 2000-06-08."
+ (interactive)
+ (color-theme-install
+ '(color-theme-jsc-light
+ ((background-color . "white")
+ (background-mode . light)
+ (border-color . "black")
+ (cursor-color . "Red")
+ (foreground-color . "black")
+ (mouse-color . "black"))
+ ((gnus-mouse-face . highlight)
+ (list-matching-lines-face . bold)
+ (view-highlight-face . highlight))
+ (default ((t (nil))))
+ (bold ((t (:bold t :foreground "red3"))))
+ (bold-italic ((t (:italic t :bold t :foreground "red"))))
+ (custom-button-face ((t (nil))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:underline t :foreground "blue"))))
+ (custom-group-tag-face-1 ((t (:underline t :foreground "red"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "dark green"))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:underline t :foreground "blue"))))
+ (font-lock-builtin-face ((t (:foreground "Orchid"))))
+ (font-lock-comment-face ((t (:italic t :bold t :foreground "Red3"))))
+ (font-lock-constant-face ((t (:foreground "navy"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "Blue"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "Purple"))))
+ (font-lock-string-face ((t (:foreground "Green4"))))
+ (font-lock-type-face ((t (:foreground "Navy"))))
+ (font-lock-variable-name-face ((t (:foreground "Tan4"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red"))))
+ (gnus-cite-attribution-face ((t (:italic t))))
+ (gnus-cite-face-1 ((t (:foreground "MidnightBlue"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "firebrick"))))
+ (gnus-cite-face-3 ((t (:foreground "dark green"))))
+ (gnus-cite-face-4 ((t (:foreground "OrangeRed"))))
+ (gnus-cite-face-5 ((t (:foreground "dark khaki"))))
+ (gnus-cite-face-6 ((t (:foreground "dark violet"))))
+ (gnus-cite-face-7 ((t (:foreground "SteelBlue4"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (:italic t))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:underline t :bold t))))
+ (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t))))
+ (gnus-emphasis-underline-italic ((t (:underline t :italic t))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "magenta4"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "blue2"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "blue2"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4"))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-header-content-face ((t (:italic t :foreground "blue"))))
+ (gnus-header-from-face ((t (:foreground "red3"))))
+ (gnus-header-name-face ((t (:foreground "red3"))))
+ (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue"))))
+ (gnus-header-subject-face ((t (:bold t :foreground "red"))))
+ (gnus-signature-face ((t (:foreground "pink"))))
+ (gnus-splash-face ((t (:foreground "Brown"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "navy"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick"))))
+ (gnus-summary-high-unread-face ((t (:bold t :foreground "blue"))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue"))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen"))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick"))))
+ (gnus-summary-low-unread-face ((t (:italic t))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "red3"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "black"))))
+ (gnus-summary-normal-unread-face ((t (:bold t :foreground "red3"))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (highlight ((t (:background "antiquewhite" :foreground "blue"))))
+ (italic ((t (:italic t))))
+ (makefile-space-face ((t (:background "hotpink"))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:foreground "MidnightBlue"))))
+ (message-header-name-face ((t (:foreground "cornflower blue"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4"))))
+ (message-header-other-face ((t (:foreground "steel blue"))))
+ (message-header-subject-face ((t (:bold t :foreground "navy blue"))))
+ (message-header-to-face ((t (:bold t :foreground "MidnightBlue"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (modeline ((t (:background "plum" :foreground "black"))))
+ (modeline-buffer-id ((t (:background "plum" :foreground "black"))))
+ (modeline-mousable ((t (:background "plum" :foreground "black"))))
+ (modeline-mousable-minor-mode ((t (:background "plum" :foreground "black"))))
+ (region ((t (:background "plum"))))
+ (secondary-selection ((t (:background "palegreen"))))
+ (show-paren-match-face ((t (:background "plum"))))
+ (show-paren-mismatch-face ((t (:background "navy" :foreground "white"))))
+ (speedbar-button-face ((t (:foreground "green4"))))
+ (speedbar-directory-face ((t (:foreground "blue4"))))
+ (speedbar-file-face ((t (:foreground "cyan4"))))
+ (speedbar-highlight-face ((t (:background "green"))))
+ (speedbar-selected-face ((t (:underline t :foreground "red"))))
+ (speedbar-tag-face ((t (:foreground "brown"))))
+ (underline ((t (:underline t))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "gray85")))))))
+
+(defun color-theme-jsc-dark ()
+ "Color theme by John S Cooper, created 2000-06-11."
+ (interactive)
+ (color-theme-install
+ '(color-theme-jsc-dark
+ ((background-color . "black")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "white")
+ (foreground-color . "cornsilk")
+ (mouse-color . "black"))
+ ((gnus-mouse-face . highlight)
+ (goto-address-mail-face . italic)
+ (goto-address-mail-mouse-face . secondary-selection)
+ (goto-address-url-face . bold)
+ (goto-address-url-mouse-face . highlight)
+ (list-matching-lines-face . bold)
+ (view-highlight-face . highlight))
+ (blank-space-face ((t (:background "LightGray"))))
+ (blank-tab-face ((t (:background "cornsilk" :foreground "black"))))
+ (default ((t (nil))))
+ (bold ((t (:bold t :foreground "white"))))
+ (bold-italic ((t (:italic t :bold t))))
+ (calendar-today-face ((t (:underline t))))
+ (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue"))))
+ (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red"))))
+ (cperl-nonoverridable-face ((t (:foreground "chartreuse3"))))
+ (custom-button-face ((t (:foreground "white"))))
+ (custom-changed-face ((t (:background "skyblue" :foreground "wheat"))))
+ (custom-documentation-face ((t (:foreground "white"))))
+ (custom-face-tag-face ((t (:underline t :foreground "white"))))
+ (custom-group-tag-face ((t (:underline t :foreground "skyblue"))))
+ (custom-group-tag-face-1 ((t (:underline t :foreground "pink"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:foreground "blue"))))
+ (custom-state-face ((t (:foreground "light green"))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:underline t :foreground "skyblue"))))
+ (diary-face ((t (:bold t :foreground "orange"))))
+ (font-lock-builtin-face ((t (:bold t :foreground "LightSteelBlue"))))
+ (font-lock-comment-face ((t (:italic t :foreground "red"))))
+ (font-lock-constant-face ((t (:bold t :foreground "salmon"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "orange"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "gold"))))
+ (font-lock-string-face ((t (:italic t :foreground "orange"))))
+ (font-lock-type-face ((t (:bold t :foreground "gold"))))
+ (font-lock-variable-name-face ((t (:italic t :bold t :foreground "light salmon"))))
+ (font-lock-warning-face ((t (:bold t :foreground "gold"))))
+ (gnus-cite-attribution-face ((t (:italic t))))
+ (gnus-cite-face-1 ((t (:foreground "light cyan"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "light blue"))))
+ (gnus-cite-face-3 ((t (:foreground "light yellow"))))
+ (gnus-cite-face-4 ((t (:foreground "light pink"))))
+ (gnus-cite-face-5 ((t (:foreground "pale green"))))
+ (gnus-cite-face-6 ((t (:foreground "beige"))))
+ (gnus-cite-face-7 ((t (:foreground "orange"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (:italic t))))
+ (gnus-emphasis-underline ((t (:background "goldenrod4" :foreground "white"))))
+ (gnus-emphasis-underline-bold ((t (:underline t :bold t :background "yellow" :foreground "black"))))
+ (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t :background "yellow" :foreground "black"))))
+ (gnus-emphasis-underline-italic ((t (:underline t :italic t :background "yellow" :foreground "black"))))
+ (gnus-filterhist-face-1 ((t (nil))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "gray80"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "white"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "lightcyan"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "lightcyan"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "tan"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "tan"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "white"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "white"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "lightcyan"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "lightcyan"))))
+ (gnus-group-news-3-empty-face ((t (:foreground "tan"))))
+ (gnus-group-news-3-face ((t (:bold t :foreground "tan"))))
+ (gnus-group-news-4-empty-face ((t (:foreground "white"))))
+ (gnus-group-news-4-face ((t (:bold t :foreground "white"))))
+ (gnus-group-news-5-empty-face ((t (:foreground "wheat"))))
+ (gnus-group-news-5-face ((t (:bold t :foreground "wheat"))))
+ (gnus-group-news-6-empty-face ((t (:foreground "tan"))))
+ (gnus-group-news-6-face ((t (:bold t :foreground "tan"))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise"))))
+ (gnus-header-content-face ((t (:italic t :foreground "plum1"))))
+ (gnus-header-from-face ((t (:bold t :foreground "wheat"))))
+ (gnus-header-name-face ((t (:bold t :foreground "gold"))))
+ (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "wheat"))))
+ (gnus-header-subject-face ((t (:bold t :foreground "red"))))
+ (gnus-signature-face ((t (:italic t :foreground "maroon"))))
+ (gnus-splash ((t (:foreground "Brown"))))
+ (gnus-splash-face ((t (:foreground "gold"))))
+ (gnus-summary-cancelled-face ((t (:background "gray" :foreground "black"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "gray70"))))
+ (gnus-summary-high-unread-face ((t (:italic t :bold t))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue"))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen"))))
+ (gnus-summary-low-ticked-face ((t (:italic t :bold t :foreground "gray70"))))
+ (gnus-summary-low-unread-face ((t (:italic t))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "PaleGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:bold t :foreground "gray70"))))
+ (gnus-summary-normal-unread-face ((t (:bold t))))
+ (gnus-summary-selected-face ((t (:underline t :background "deepskyblue4"))))
+ (highlight ((t (:background "darkslategray" :foreground "wheat"))))
+ (highlight-changes-delete-face ((t (:underline t :foreground "red"))))
+ (highlight-changes-face ((t (:foreground "red"))))
+ (highline-face ((t (:background "gray35"))))
+ (holiday-face ((t (:background "red"))))
+ (info-menu-5 ((t (:underline t))))
+ (info-node ((t (:italic t :bold t :foreground "yellow"))))
+ (info-xref ((t (:bold t :foreground "plum"))))
+ (italic ((t (:italic t))))
+ (lazy-highlight-face ((t (:bold t :foreground "dark magenta"))))
+ (linemenu-face ((t (:background "gray30"))))
+ (makefile-space-face ((t (:background "hotpink"))))
+ (message-cited-text-face ((t (:foreground "plum1"))))
+ (message-header-cc-face ((t (:bold t :foreground "ivory"))))
+ (message-header-name-face ((t (:foreground "light sky blue"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "lavender blush"))))
+ (message-header-other-face ((t (:foreground "pale turquoise"))))
+ (message-header-subject-face ((t (:bold t :foreground "papaya whip"))))
+ (message-header-to-face ((t (:bold t :foreground "floral white"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:bold t :foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "sandy brown"))))
+ (modeline ((t (:background "tan" :foreground "black"))))
+ (modeline-buffer-id ((t (:background "tan" :foreground "black"))))
+ (modeline-mousable ((t (:background "tan" :foreground "black"))))
+ (modeline-mousable-minor-mode ((t (:background "tan" :foreground "black"))))
+ (paren-mismatch-face ((t (:bold t :background "white" :foreground "red"))))
+ (paren-no-match-face ((t (:bold t :background "white" :foreground "red"))))
+ (region ((t (:background "slategrey"))))
+ (secondary-selection ((t (:background "deepskyblue4"))))
+ (sgml-doctype-face ((t (:foreground "orange"))))
+ (sgml-end-tag-face ((t (:foreground "greenyellow"))))
+ (sgml-entity-face ((t (:foreground "gold"))))
+ (sgml-ignored-face ((t (:background "gray60" :foreground "gray20"))))
+ (sgml-sgml-face ((t (:foreground "yellow"))))
+ (sgml-start-tag-face ((t (:foreground "mediumspringgreen"))))
+ (show-paren-match-face ((t (:background "deepskyblue4"))))
+ (show-paren-mismatch-face ((t (:bold t :background "red" :foreground "white"))))
+ (speedbar-button-face ((t (:foreground "green4"))))
+ (speedbar-directory-face ((t (:foreground "blue4"))))
+ (speedbar-file-face ((t (:bold t :foreground "cyan4"))))
+ (speedbar-highlight-face ((t (:background "green"))))
+ (speedbar-selected-face ((t (:underline t :foreground "red"))))
+ (speedbar-tag-face ((t (:foreground "brown"))))
+ (underline ((t (:underline t))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "lime green"))))
+ (widget-field-face ((t (:background "gray20"))))
+ (widget-inactive-face ((t (:foreground "wheat"))))
+ (widget-single-line-field-face ((t (:background "gray20"))))
+ (woman-bold-face ((t (:bold t))))
+ (woman-italic-face ((t (:foreground "beige"))))
+ (woman-unknown-face ((t (:foreground "LightSalmon")))))))
+
+(defun color-theme-greiner ()
+ "Color theme by Kevin Greiner, created 2000-06-13.
+Black on Beige, supports default, font-lock, speedbar, custom, widget
+faces. Designed to be easy on the eyes, particularly on Win32
+computers which commonly have white window backgrounds."
+ (interactive)
+ (color-theme-install
+ '(color-theme-greiner
+ ((background-color . "beige")
+ (background-mode . light)
+ (border-color . "black")
+ (cursor-color . "black")
+ (foreground-color . "black")
+ (mouse-color . "black"))
+ ((list-matching-lines-face . bold))
+ (default ((t (nil))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t))))
+ (custom-button-face ((t (nil))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:underline t :foreground "blue"))))
+ (custom-group-tag-face-1 ((t (:underline t :foreground "red"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "dark green"))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:underline t :foreground "blue"))))
+ (font-lock-builtin-face ((t (:foreground "blue4"))))
+ (font-lock-comment-face ((t (:foreground "Firebrick"))))
+ (font-lock-constant-face ((t (:foreground "CadetBlue"))))
+ (font-lock-function-name-face ((t (:foreground "Blue"))))
+ (font-lock-keyword-face ((t (:foreground "royal blue"))))
+ (font-lock-string-face ((t (:foreground "RosyBrown"))))
+ (font-lock-type-face ((t (:foreground "ForestGreen"))))
+ (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red"))))
+ (highlight ((t (:background "darkseagreen2"))))
+ (info-menu-5 ((t (:underline t))))
+ (info-node ((t (:italic t :bold t))))
+ (info-xref ((t (:bold t))))
+ (italic ((t (:italic t))))
+ (modeline ((t (:background "black" :foreground "white"))))
+ (modeline-mousable-minor-mode ((t (:background "black" :foreground "white"))))
+ (modeline-mousable ((t (:background "black" :foreground "white"))))
+ (modeline-buffer-id ((t (:background "black" :foreground "white"))))
+ (region ((t (:background "gray"))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (speedbar-button-face ((t (:foreground "green4"))))
+ (speedbar-directory-face ((t (:foreground "blue4"))))
+ (speedbar-file-face ((t (:foreground "cyan4"))))
+ (speedbar-highlight-face ((t (:background "green"))))
+ (speedbar-selected-face ((t (:underline t :foreground "red"))))
+ (speedbar-tag-face ((t (:foreground "brown"))))
+ (underline ((t (:underline t))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "gray85")))))))
+
+(defun color-theme-jb-simple ()
+ "Color theme by jeff, created 2000-06-14.
+Uses white background and bold for many things"
+ (interactive)
+ (color-theme-install
+ '(color-theme-jb-simple
+ ((background-color . "white")
+ (background-mode . light)
+ (background-toolbar-color . "#cf3ccf3ccf3c")
+ (border-color . "black")
+ (bottom-toolbar-shadow-color . "#79e77df779e7")
+ (cursor-color . "black")
+ (foreground-color . "black")
+ (mouse-color . "black")
+ (top-toolbar-shadow-color . "#fffffbeeffff"))
+ ((gnus-mouse-face . highlight)
+ (list-matching-lines-face . bold)
+ (rmail-highlight-face . font-lock-function-name-face)
+ (view-highlight-face . highlight))
+ (default ((t (nil))))
+ (blank-space-face ((t (nil))))
+ (blank-tab-face ((t (nil))))
+ (blue ((t (nil))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t))))
+ (border-glyph ((t (nil))))
+ (calendar-today-face ((t (:underline t))))
+ (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue"))))
+ (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red"))))
+ (cperl-nonoverridable-face ((t (:foreground "chartreuse3"))))
+ (custom-button-face ((t (:bold t))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:underline t :bold t :foreground "blue"))))
+ (custom-group-tag-face-1 ((t (:underline t :foreground "red"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "dark green"))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:underline t :bold t :foreground "blue"))))
+ (diary-face ((t (:bold t :foreground "red"))))
+ (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick"))))
+ (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black"))))
+ (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid"))))
+ (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy"))))
+ (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black"))))
+ (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black"))))
+ (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy"))))
+ (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black"))))
+ (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black"))))
+ (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black"))))
+ (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White"))))
+ (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black"))))
+ (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black"))))
+ (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White"))))
+ (erc-action-face ((t (:bold t))))
+ (erc-bold-face ((t (:bold t))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (nil))))
+ (erc-error-face ((t (:bold t))))
+ (erc-input-face ((t (nil))))
+ (erc-inverse-face ((t (nil))))
+ (erc-notice-face ((t (nil))))
+ (erc-pal-face ((t (nil))))
+ (erc-prompt-face ((t (nil))))
+ (erc-underline-face ((t (nil))))
+ (eshell-ls-archive-face ((t (:bold t :foreground "Orchid"))))
+ (eshell-ls-backup-face ((t (:foreground "OrangeRed"))))
+ (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed"))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "Blue"))))
+ (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen"))))
+ (eshell-ls-missing-face ((t (:bold t :foreground "Red"))))
+ (eshell-ls-picture-face ((t (nil))))
+ (eshell-ls-product-face ((t (:foreground "OrangeRed"))))
+ (eshell-ls-readonly-face ((t (:foreground "Brown"))))
+ (eshell-ls-special-face ((t (:bold t :foreground "Magenta"))))
+ (eshell-ls-symlink-face ((t (:bold t :foreground "DarkCyan"))))
+ (eshell-ls-unreadable-face ((t (:foreground "Grey30"))))
+ (eshell-prompt-face ((t (:bold t :foreground "Red"))))
+ (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed"))))
+ (eshell-test-ok-face ((t (:bold t :foreground "Green"))))
+ (excerpt ((t (:italic t))))
+ (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue"))))
+ (fixed ((t (:bold t))))
+ (flyspell-duplicate-face ((t (:underline t :bold t :foreground "Gold3"))))
+ (flyspell-incorrect-face ((t (:underline t :bold t :foreground "OrangeRed"))))
+ (font-latex-bold-face ((t (nil))))
+ (font-latex-italic-face ((t (nil))))
+ (font-latex-math-face ((t (nil))))
+ (font-latex-sedate-face ((t (nil))))
+ (font-latex-string-face ((t (nil))))
+ (font-latex-warning-face ((t (nil))))
+ (font-lock-builtin-face ((t (:bold t :foreground "Orchid"))))
+ (font-lock-comment-face ((t (:italic t :bold t :foreground "blue4"))))
+ (font-lock-constant-face ((t (:bold t :foreground "CadetBlue"))))
+ (font-lock-doc-string-face ((t (:italic t :bold t :foreground "blue4"))))
+ (font-lock-exit-face ((t (nil))))
+ (font-lock-function-name-face ((t (:bold t :foreground "brown4"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "black"))))
+ (font-lock-preprocessor-face ((t (:foreground "blue3"))))
+ (font-lock-reference-face ((t (:foreground "red3"))))
+ (font-lock-string-face ((t (:italic t :bold t :foreground "green4"))))
+ (font-lock-type-face ((t (:bold t :foreground "steelblue"))))
+ (font-lock-variable-name-face ((t (:italic t :bold t :foreground "magenta4"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red"))))
+ (gnus-cite-attribution-face ((t (:italic t :bold t))))
+ (gnus-cite-face-1 ((t (:foreground "MidnightBlue"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "firebrick"))))
+ (gnus-cite-face-3 ((t (:foreground "dark green"))))
+ (gnus-cite-face-4 ((t (:foreground "OrangeRed"))))
+ (gnus-cite-face-5 ((t (:foreground "dark khaki"))))
+ (gnus-cite-face-6 ((t (:foreground "dark violet"))))
+ (gnus-cite-face-7 ((t (:foreground "SteelBlue4"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t))))
+ (gnus-emphasis-highlight-words ((t (nil))))
+ (gnus-emphasis-italic ((t (:italic t))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:underline t :bold t))))
+ (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t))))
+ (gnus-emphasis-underline-italic ((t (:underline t :italic t))))
+ (gnus-filterhist-face-1 ((t (nil))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "magenta4"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4"))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-header-content-face ((t (:italic t :foreground "indianred4"))))
+ (gnus-header-from-face ((t (:bold t :foreground "red3"))))
+ (gnus-header-name-face ((t (:bold t :foreground "maroon"))))
+ (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "MidnightBlue"))))
+ (gnus-header-subject-face ((t (:bold t :foreground "red4"))))
+ (gnus-signature-face ((t (:italic t))))
+ (gnus-splash ((t (nil))))
+ (gnus-splash-face ((t (:foreground "ForestGreen"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick"))))
+ (gnus-summary-high-unread-face ((t (:italic t :bold t))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue"))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen"))))
+ (gnus-summary-low-ticked-face ((t (:italic t :bold t :foreground "firebrick"))))
+ (gnus-summary-low-unread-face ((t (:italic t))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "DarkGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:bold t :foreground "firebrick"))))
+ (gnus-summary-normal-unread-face ((t (:bold t))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (green ((t (nil))))
+ (gui-button-face ((t (:background "grey75"))))
+ (gui-element ((t (:background "Gray80"))))
+ (highlight ((t (:background "darkseagreen2"))))
+ (highlight-changes-delete-face ((t (:underline t :foreground "red"))))
+ (highlight-changes-face ((t (:foreground "red"))))
+ (highline-face ((t (:background "paleturquoise"))))
+ (holiday-face ((t (:background "pink"))))
+ (html-helper-italic-face ((t (:italic t))))
+ (info-menu-5 ((t (:underline t))))
+ (info-node ((t (:italic t :bold t))))
+ (info-xref ((t (:bold t))))
+ (isearch ((t (nil))))
+ (italic ((t (:italic t))))
+ (lazy-highlight-face ((t (:bold t :foreground "dark magenta"))))
+ (left-margin ((t (nil))))
+ (linemenu-face ((t (nil))))
+ (list-mode-item-selected ((t (nil))))
+ (makefile-space-face ((t (:background "hotpink"))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:bold t :foreground "MidnightBlue"))))
+ (message-header-name-face ((t (:foreground "cornflower blue"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4"))))
+ (message-header-other-face ((t (:foreground "steel blue"))))
+ (message-header-subject-face ((t (:bold t :foreground "navy blue"))))
+ (message-header-to-face ((t (:bold t :foreground "MidnightBlue"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:bold t))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (modeline ((t (:background "darkblue" :foreground "yellow"))))
+ (modeline-buffer-id ((t (:background "black" :foreground "white"))))
+ (modeline-mousable ((t (:background "black" :foreground "white"))))
+ (modeline-mousable-minor-mode ((t (:background "black" :foreground "white"))))
+ (nil ((t (nil))))
+ (paren-mismatch-face ((t (:bold t))))
+ (paren-no-match-face ((t (:bold t))))
+ (pointer ((t (nil))))
+ (primary-selection ((t (nil))))
+ (red ((t (nil))))
+ (region ((t (:background "gray"))))
+ (right-margin ((t (nil))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (sgml-doctype-face ((t (nil))))
+ (sgml-end-tag-face ((t (nil))))
+ (sgml-entity-face ((t (nil))))
+ (sgml-ignored-face ((t (nil))))
+ (sgml-sgml-face ((t (nil))))
+ (sgml-start-tag-face ((t (nil))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:bold t :background "purple" :foreground "white"))))
+ (speedbar-button-face ((t (:bold t :foreground "green4"))))
+ (speedbar-directory-face ((t (:bold t :foreground "blue4"))))
+ (speedbar-file-face ((t (:bold t :foreground "cyan4"))))
+ (speedbar-highlight-face ((t (:background "green"))))
+ (speedbar-selected-face ((t (:underline t :foreground "red"))))
+ (speedbar-tag-face ((t (:foreground "brown"))))
+ (swbuff-current-buffer-face ((t (:bold t))))
+ (term-black ((t (:foreground "black"))))
+ (term-blackbg ((t (:background "black"))))
+ (term-blue ((t (:foreground "blue"))))
+ (term-bluebg ((t (:background "blue"))))
+ (term-bold ((t (:bold t))))
+ (term-cyan ((t (:foreground "cyan"))))
+ (term-cyanbg ((t (:background "cyan"))))
+ (term-default-bg ((t (nil))))
+ (term-default-bg-inv ((t (nil))))
+ (term-default-fg ((t (nil))))
+ (term-default-fg-inv ((t (nil))))
+ (term-green ((t (:foreground "green"))))
+ (term-greenbg ((t (:background "green"))))
+ (term-invisible ((t (nil))))
+ (term-invisible-inv ((t (nil))))
+ (term-magenta ((t (:foreground "magenta"))))
+ (term-magentabg ((t (:background "magenta"))))
+ (term-red ((t (:foreground "red"))))
+ (term-redbg ((t (:background "red"))))
+ (term-underline ((t (:underline t))))
+ (term-white ((t (:foreground "white"))))
+ (term-whitebg ((t (:background "white"))))
+ (term-yellow ((t (:foreground "yellow"))))
+ (term-yellowbg ((t (:background "yellow"))))
+ (text-cursor ((t (nil))))
+ (toolbar ((t (nil))))
+ (underline ((t (:underline t))))
+ (vc-annotate-face-0046FF ((t (nil))))
+ (vcursor ((t (:underline t :background "cyan" :foreground "blue"))))
+ (vertical-divider ((t (nil))))
+ (vhdl-font-lock-attribute-face ((t (:foreground "Orchid"))))
+ (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue"))))
+ (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4"))))
+ (vhdl-font-lock-function-face ((t (:foreground "Orchid4"))))
+ (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red"))))
+ (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange"))))
+ (vhdl-font-lock-translate-off-face ((t (:background "LightGray"))))
+ (vhdl-speedbar-architecture-face ((t (:foreground "Blue"))))
+ (vhdl-speedbar-architecture-selected-face ((t (:underline t :foreground "Blue"))))
+ (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod"))))
+ (vhdl-speedbar-configuration-selected-face ((t (:underline t :foreground "DarkGoldenrod"))))
+ (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen"))))
+ (vhdl-speedbar-entity-selected-face ((t (:underline t :foreground "ForestGreen"))))
+ (vhdl-speedbar-instantiation-face ((t (:foreground "Brown"))))
+ (vhdl-speedbar-instantiation-selected-face ((t (:underline t :foreground "Brown"))))
+ (vhdl-speedbar-package-face ((t (:foreground "Grey50"))))
+ (vhdl-speedbar-package-selected-face ((t (:underline t :foreground "Grey50"))))
+ (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black"))))
+ (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen"))))
+ (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-search-face ((t (:background "khaki" :foreground "Black"))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "gray85"))))
+ (woman-bold-face ((t (:bold t))))
+ (woman-italic-face ((t (nil))))
+ (woman-unknown-face ((t (nil))))
+ (yellow ((t (nil))))
+ (zmacs-region ((t (nil)))))))
+
+(defun color-theme-beige-diff ()
+ "Brownish faces for diff and change-log modes.
+This is intended for other color themes to use (eg. `color-theme-gnome2'
+and `color-theme-blue-sea')."
+ (color-theme-install
+ '(color-theme-beige-diff
+ nil
+ (change-log-acknowledgement-face ((t (:foreground "firebrick"))))
+ (change-log-conditionals-face ((t (:foreground "khaki" :background "sienna"))))
+ (change-log-date-face ((t (:foreground "gold"))))
+ (change-log-email-face ((t (:foreground "khaki" :underline t))))
+ (change-log-file-face ((t (:bold t :foreground "lemon chiffon"))))
+ (change-log-function-face ((t (:foreground "khaki" :background "sienna"))))
+ (change-log-list-face ((t (:foreground "wheat"))))
+ (change-log-name-face ((t (:bold t :foreground "light goldenrod"))))
+ (diff-added-face ((t (nil))))
+ (diff-changed-face ((t (nil))))
+ (diff-context-face ((t (:foreground "grey50"))))
+ (diff-file-header-face ((t (:bold t :foreground "lemon chiffon"))))
+ (diff-function-face ((t (:foreground "grey50"))))
+ (diff-header-face ((t (:foreground "lemon chiffon"))))
+ (diff-hunk-header-face ((t (:foreground "light goldenrod"))))
+ (diff-index-face ((t (:bold t :underline t))))
+ (diff-nonexistent-face ((t (:bold t :background "grey70" :weight bold))))
+ (diff-removed-face ((t (nil))))
+ (log-view-message-face ((t (:foreground "lemon chiffon")))))))
+
+(defun color-theme-standard-ediff ()
+ "Standard colors for ediff faces.
+This is intended for other color themes to use
+\(eg. `color-theme-goldenrod')."
+ (color-theme-install
+ '(color-theme-beige-diff
+ nil
+ (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick"))))
+ (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black"))))
+ (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid"))))
+ (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy"))))
+ (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black"))))
+ (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black"))))
+ (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy"))))
+ (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black"))))
+ (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black"))))
+ (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black"))))
+ (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White"))))
+ (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black"))))
+ (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black"))))
+ (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White")))))))
+
+(defun color-theme-beige-eshell ()
+ "Brownish colors for eshell faces only.
+This is intended for other color themes to use (eg. `color-theme-goldenrod')."
+ (color-theme-install
+ '(color-theme-beige-eshell
+ nil
+ (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed"))))
+ (eshell-ls-backup-face ((t (:foreground "Grey"))))
+ (eshell-ls-clutter-face ((t (:foreground "DimGray"))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "dark khaki"))))
+ (eshell-ls-executable-face ((t (:foreground "Coral"))))
+ (eshell-ls-missing-face ((t (:foreground "black"))))
+ (eshell-ls-picture-face ((t (:foreground "gold")))) ; non-standard face
+ (eshell-ls-product-face ((t (:foreground "dark sea green"))))
+ (eshell-ls-readonly-face ((t (:foreground "light steel blue"))))
+ (eshell-ls-special-face ((t (:foreground "gold"))))
+ (eshell-ls-symlink-face ((t (:foreground "peach puff"))))
+ (eshell-ls-text-face ((t (:foreground "moccasin")))) ; non-standard face
+ (eshell-ls-todo-face ((t (:bold t :foreground "yellow green")))) ; non-standard face
+ (eshell-ls-unreadable-face ((t (:foreground "DimGray"))))
+ (eshell-prompt-face ((t (:foreground "lemon chiffon")))))))
+
+(defun color-theme-goldenrod ()
+ "Brown color theme. Very different from the others.
+Supports standard, font-lock and info faces, and it uses
+`color-theme-blue-gnus', `color-theme-blue-erc' , and
+`color-theme-beige-diff'."
+ (interactive)
+ (color-theme-blue-gnus)
+ (let ((color-theme-is-cumulative t))
+ (color-theme-blue-erc)
+ (color-theme-beige-diff)
+ (color-theme-beige-eshell)
+ (color-theme-install
+ '(color-theme-goldenrod
+ ((background-color . "black")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "light goldenrod")
+ (foreground-color . "goldenrod")
+ (mouse-color . "goldenrod"))
+ ((goto-address-mail-face . info-xref)
+ (list-matching-lines-face . bold)
+ (view-highlight-face . highlight))
+ (default ((t (nil))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t :foreground "lavender"))))
+ (font-lock-builtin-face ((t (:foreground "pale goldenrod"))))
+ (font-lock-comment-face ((t (:foreground "indian red"))))
+ (font-lock-constant-face ((t (:foreground "pale green"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "lemon chiffon"))))
+ (font-lock-keyword-face ((t (:foreground "wheat"))))
+ (font-lock-string-face ((t (:foreground "gold"))))
+ (font-lock-type-face ((t (:foreground "dark khaki" :bold t))))
+ (font-lock-variable-name-face ((t (:bold t :foreground "khaki"))))
+ (font-lock-warning-face ((t (:bold t :foreground "orange red"))))
+ (fringe ((t (:background "gray25"))))
+ (header-line ((t (:background "gray20" :foreground "gray70"))))
+ (highlight ((t (:background "dark slate blue"))))
+ (info-menu-5 ((t (:underline t))))
+ (info-node ((t (:bold t))))
+ (info-xref ((t (:bold t :foreground "pale goldenrod"))))
+ (isearch ((t (:background "SeaGreen4"))))
+ (isearch-lazy-highlight-face ((t (:background "DarkOliveGreen4"))))
+ (italic ((t (:italic t :foreground "lavender"))))
+ (menu ((t (:background "gray25" :foreground "lemon chiffon"))))
+ (modeline ((t (:background "gray40" :foreground "lemon chiffon" :box (:line-width 1 :style released-button)))))
+ (modeline-buffer-id ((t (:background "AntiqueWhite4" :foreground "lemon chiffon"))))
+ (modeline-mousable ((t (:background "AntiqueWhite4" :foreground "lemon chiffon"))))
+ (modeline-mousable-minor-mode ((t (:background "wheat" :foreground "lemon chiffon"))))
+ (mode-line-inactive ((t (:background "gray20" :foreground "lemon chiffon" :box (:line-width 1 :style released-button)))))
+ (region ((t (:background "dark olive green"))))
+ (secondary-selection ((t (:background "dark green"))))
+ (tool-bar ((t (:background "gray25" :foreground "lemon chiffon" :box (:line-width 1 :style released-button)))))
+ (underline ((t (:underline t))))))))
+
+(defun color-theme-ramangalahy ()
+ "Color theme by Solofo Ramangalahy, created 2000-10-18.
+Black on light grey, includes faces for vm, ispell, gnus,
+dired, display-time, cperl, font-lock, widget, x-symbol."
+ (interactive)
+ (color-theme-install
+ '(color-theme-ramangalahy
+ ((background-color . "lightgrey")
+ (background-mode . light)
+ (background-toolbar-color . "#bfbfbfbfbfbf")
+ (border-color . "#000000000000")
+ (bottom-toolbar-shadow-color . "#737373737373")
+ (cursor-color . "blue")
+ (foreground-color . "black")
+ (top-toolbar-shadow-color . "#e6e6e6e6e6e6"))
+ ((gnus-mouse-face . highlight)
+ (goto-address-mail-face . info-xref)
+ (ispell-highlight-face . highlight)
+ (notes-bold-face . notes-bold-face)
+ (setnu-line-number-face . bold)
+ (tinyreplace-:face . highlight)
+ (vm-highlight-url-face . bold-italic)
+ (vm-highlighted-header-face . bold)
+ (vm-mime-button-face . gui-button-face)
+ (vm-summary-highlight-face . bold))
+ (default ((t (nil))))
+ (bbdb-company ((t (nil))))
+ (blue ((t (:foreground "blue"))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t))))
+ (border-glyph ((t (nil))))
+ (cperl-here-face ((t (:foreground "green4"))))
+ (cperl-pod-face ((t (:foreground "brown4"))))
+ (cperl-pod-head-face ((t (:foreground "steelblue"))))
+ (custom-button-face ((t (:bold t))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:underline t :foreground "blue"))))
+ (custom-group-tag-face-1 ((t (:underline t :foreground "red"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "dark green"))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:underline t :foreground "blue"))))
+ (dired-face-boring ((t (:foreground "Gray65"))))
+ (dired-face-directory ((t (:bold t))))
+ (dired-face-executable ((t (:foreground "SeaGreen"))))
+ (dired-face-flagged ((t (:background "LightSlateGray"))))
+ (dired-face-marked ((t (:background "PaleVioletRed"))))
+ (dired-face-permissions ((t (:background "grey75" :foreground "black"))))
+ (dired-face-setuid ((t (:foreground "Red"))))
+ (dired-face-socket ((t (:foreground "magenta"))))
+ (dired-face-symlink ((t (:foreground "blue"))))
+ (display-time-mail-balloon-enhance-face ((t (:background "orange"))))
+ (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue"))))
+ (display-time-time-balloon-face ((t (:foreground "red"))))
+ (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue"))))
+ (font-lock-comment-face ((t (:bold t :foreground "purple"))))
+ (font-lock-doc-string-face ((t (:bold t :foreground "slateblue"))))
+ (font-lock-emphasized-face ((t (:bold t :background "lightyellow2"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "blue"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "violetred"))))
+ (font-lock-other-emphasized-face ((t (:italic t :bold t :background "lightyellow2"))))
+ (font-lock-other-type-face ((t (:bold t :foreground "orange3"))))
+ (font-lock-preprocessor-face ((t (:bold t :foreground "mediumblue"))))
+ (font-lock-reference-face ((t (:foreground "red3"))))
+ (font-lock-string-face ((t (:foreground "green4"))))
+ (font-lock-type-face ((t (:bold t :foreground "steelblue"))))
+ (font-lock-variable-name-face ((t (:foreground "magenta4"))))
+ (font-lock-warning-face ((t (:bold t :background "yellow" :foreground "Red"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-bold-italic ((t (nil))))
+ (gnus-emphasis-italic ((t (nil))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:underline t :bold t))))
+ (gnus-emphasis-underline-bold-italic ((t (:underline t))))
+ (gnus-emphasis-underline-italic ((t (:underline t))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "magenta4"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4"))))
+ (gnus-group-news-3-empty-face ((t (:foreground "DeepPink4"))))
+ (gnus-group-news-3-face ((t (:bold t :foreground "DeepPink4"))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-header-content-face ((t (:foreground "indianred4"))))
+ (gnus-header-from-face ((t (:foreground "red3"))))
+ (gnus-header-name-face ((t (:foreground "maroon"))))
+ (gnus-header-newsgroups-face ((t (:foreground "MidnightBlue"))))
+ (gnus-header-subject-face ((t (:foreground "red4"))))
+ (gnus-signature-face ((t (:bold t))))
+ (gnus-splash-face ((t (:foreground "ForestGreen"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick"))))
+ (gnus-summary-high-unread-face ((t (:bold t))))
+ (gnus-summary-low-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-low-read-face ((t (:foreground "DarkGreen"))))
+ (gnus-summary-low-ticked-face ((t (:foreground "firebrick"))))
+ (gnus-summary-low-unread-face ((t (nil))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "DarkGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "firebrick"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (gnus-x-face ((t (:background "lightgrey" :foreground "black"))))
+ (green ((t (:foreground "green"))))
+ (gui-button-face ((t (:background "grey75" :foreground "black"))))
+ (gui-element ((t (:background "lightgrey"))))
+ (highlight ((t (:background "darkseagreen2"))))
+ (info-node ((t (:underline t :bold t :foreground "mediumpurple"))))
+ (info-xref ((t (:underline t :bold t :foreground "#0000ee"))))
+ (isearch ((t (:background "paleturquoise"))))
+ (italic ((t (:italic t))))
+ (left-margin ((t (nil))))
+ (list-mode-item-selected ((t (:background "gray68" :foreground "black"))))
+ (message-cited-text ((t (:foreground "slategrey"))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:foreground "MidnightBlue"))))
+ (message-header-contents ((t (:italic t))))
+ (message-header-name-face ((t (:foreground "cornflower blue"))))
+ (message-header-newsgroups-face ((t (:bold t :foreground "blue4"))))
+ (message-header-other-face ((t (:foreground "steel blue"))))
+ (message-header-subject-face ((t (:bold t :foreground "navy blue"))))
+ (message-header-to-face ((t (:bold t :foreground "MidnightBlue"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-headers ((t (:bold t))))
+ (message-highlighted-header-contents ((t (:bold t))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (message-url ((t (:bold t))))
+ (modeline ((t (:bold t :background "Gray75" :foreground "Black"))))
+ (modeline-buffer-id ((t (:bold t :background "Gray75" :foreground "blue4"))))
+ (modeline-mousable ((t (:bold t :background "Gray75" :foreground "firebrick"))))
+ (modeline-mousable-minor-mode ((t (:bold t :background "Gray75" :foreground "green4"))))
+ (paren-blink-off ((t (:foreground "lightgrey"))))
+ (paren-match ((t (:background "darkseagreen2"))))
+ (paren-mismatch ((t (:background "DeepPink" :foreground "black"))))
+ (pointer ((t (:foreground "blue"))))
+ (primary-selection ((t (:background "gray65"))))
+ (red ((t (:foreground "red"))))
+ (region ((t (:background "black" :foreground "white"))))
+ (right-margin ((t (nil))))
+ (searchm-buffer ((t (:bold t :background "white" :foreground "red"))))
+ (searchm-button ((t (:bold t :background "CadetBlue" :foreground "white"))))
+ (searchm-field ((t (:background "grey89"))))
+ (searchm-field-label ((t (:bold t))))
+ (searchm-highlight ((t (:bold t :background "darkseagreen2" :foreground "black"))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (template-message-face ((t (:bold t))))
+ (text-cursor ((t (:background "blue" :foreground "lightgrey"))))
+ (toolbar ((t (nil))))
+ (underline ((t (:underline t))))
+ (vertical-divider ((t (nil))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (x-face ((t (:background "white" :foreground "black"))))
+ (x-symbol-adobe-fontspecific-face ((t (nil))))
+ (x-symbol-face ((t (nil))))
+ (x-symbol-heading-face ((t (:underline t :bold t :foreground "green4"))))
+ (x-symbol-info-face ((t (:foreground "green4"))))
+ (x-symbol-invisible-face ((t (nil))))
+ (x-symbol-revealed-face ((t (:background "pink"))))
+ (yellow ((t (:foreground "yellow"))))
+ (zmacs-region ((t (:background "yellow")))))))
+
+(defun color-theme-raspopovic ()
+ "Color theme by Pedja Raspopovic, created 2000-10-19.
+Includes faces for dired, font-lock, info, paren."
+ (interactive)
+ (color-theme-install
+ '(color-theme-raspopovic
+ ((background-color . "darkblue")
+ (background-mode . light)
+ (background-toolbar-color . "#bfbfbfbfbfbf")
+ (border-color . "#000000000000")
+ (bottom-toolbar-shadow-color . "#737373737373")
+ (cursor-color . "Red3")
+ (foreground-color . "yellow")
+ (top-toolbar-shadow-color . "#e6e6e6e6e6e6"))
+ ((setnu-line-number-face . bold)
+ (goto-address-mail-face . info-xref))
+ (default ((t (nil))))
+ (blue ((t (:background "darkblue" :foreground "blue"))))
+ (bold ((t (:bold t :background "darkblue" :foreground "yellow"))))
+ (bold-italic ((t (:bold t :background "darkblue" :foreground "red3"))))
+ (comint-input-face ((t (:foreground "deepskyblue"))))
+ (dired-face-boring ((t (:foreground "Gray65"))))
+ (dired-face-directory ((t (:foreground "lightgreen"))))
+ (dired-face-executable ((t (:foreground "indianred"))))
+ (dired-face-flagged ((t (:background "LightSlateGray"))))
+ (dired-face-marked ((t (:background "darkblue" :foreground "deepskyblue"))))
+ (dired-face-permissions ((t (:background "darkblue" :foreground "white"))))
+ (dired-face-setuid ((t (:foreground "Red"))))
+ (dired-face-socket ((t (:foreground "magenta"))))
+ (dired-face-symlink ((t (:foreground "grey95"))))
+ (font-lock-comment-face ((t (:background "darkblue" :foreground "lightgreen"))))
+ (font-lock-doc-string-face ((t (:background "darkblue" :foreground "darkseagreen"))))
+ (font-lock-function-name-face ((t (:bold t :background "darkblue" :foreground "indianred"))))
+ (font-lock-keyword-face ((t (:background "darkblue" :foreground "skyblue"))))
+ (font-lock-preprocessor-face ((t (:background "darkblue" :foreground "orange"))))
+ (font-lock-reference-face ((t (:background "darkblue" :foreground "deepskyblue"))))
+ (font-lock-string-face ((t (:background "darkblue" :foreground "lightgrey"))))
+ (font-lock-type-face ((t (:background "darkblue" :foreground "orange"))))
+ (font-lock-variable-name-face ((t (:background "darkblue" :foreground "white"))))
+ (green ((t (:background "darkblue" :foreground "green"))))
+ (gui-button-face ((t (:background "grey75" :foreground "black"))))
+ (highlight ((t (:background "yellow" :foreground "darkblue"))))
+ (info-node ((t (:bold t :background "darkblue" :foreground "red3"))))
+ (info-xref ((t (:bold t :background "darkblue" :foreground "yellow"))))
+ (isearch ((t (:background "yellow" :foreground "darkblue"))))
+ (isearch-secondary ((t (:foreground "red3"))))
+ (italic ((t (:background "darkblue" :foreground "red3"))))
+ (left-margin ((t (:background "darkblue" :foreground "yellow"))))
+ (list-mode-item-selected ((t (:background "gray68" :foreground "yellow"))))
+ (makefile-space-face ((t (:background "hotpink"))))
+ (modeline ((t (:background "Gray75" :foreground "Black"))))
+ (modeline-buffer-id ((t (:background "Gray75" :foreground "blue"))))
+ (modeline-mousable ((t (:background "Gray75" :foreground "red"))))
+ (modeline-mousable-minor-mode ((t (:background "Gray75" :foreground "green4"))))
+ (paren-blink-off ((t (:foreground "darkblue"))))
+ (paren-match ((t (:background "yellow" :foreground "darkblue"))))
+ (paren-mismatch ((t (:background "DeepPink" :foreground "yellow"))))
+ (pointer ((t (:background "darkblue" :foreground "red3"))))
+ (primary-selection ((t (:background "yellow" :foreground "darkblue"))))
+ (red ((t (:background "darkblue" :foreground "red"))))
+ (right-margin ((t (:background "darkblue" :foreground "yellow"))))
+ (secondary-selection ((t (:background "darkblue" :foreground "yellow"))))
+ (shell-option-face ((t (:background "darkblue" :foreground "cyan2"))))
+ (shell-output-2-face ((t (:background "darkblue" :foreground "darkseagreen"))))
+ (shell-output-3-face ((t (:background "darkblue" :foreground "lightgrey"))))
+ (shell-output-face ((t (:background "darkblue" :foreground "white"))))
+ (shell-prompt-face ((t (:background "darkblue" :foreground "red"))))
+ (text-cursor ((t (:background "Red3" :foreground "white"))))
+ (underline ((t (:underline t :background "darkblue" :foreground "yellow"))))
+ (vvb-face ((t (:background "pink" :foreground "black"))))
+ (yellow ((t (:background "darkblue" :foreground "yellow"))))
+ (zmacs-region ((t (:background "gray" :foreground "black")))))))
+
+(defun color-theme-taylor ()
+ "Color theme by Art Taylor, created 2000-10-20.
+Wheat on black. Includes faces for font-lock, gnus, paren."
+ (interactive)
+ (color-theme-install
+ '(color-theme-taylor
+ ((background-color . "black")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "red")
+ (foreground-color . "wheat")
+ (mouse-color . "black"))
+ ((gnus-mouse-face . highlight)
+ (list-matching-lines-face . bold)
+ (view-highlight-face . highlight))
+ (default ((t (nil))))
+ (bold ((t (:bold t :background "grey40" :foreground "yellow"))))
+ (bold-italic ((t (:italic t :bold t :foreground "yellow green"))))
+ (fl-comment-face ((t (:foreground "medium purple"))))
+ (fl-function-name-face ((t (:foreground "green"))))
+ (fl-keyword-face ((t (:foreground "LightGreen"))))
+ (fl-string-face ((t (:foreground "light coral"))))
+ (fl-type-face ((t (:foreground "cyan"))))
+ (font-lock-builtin-face ((t (:foreground "LightSteelBlue"))))
+ (font-lock-comment-face ((t (:foreground "OrangeRed"))))
+ (font-lock-constant-face ((t (:foreground "Aquamarine"))))
+ (font-lock-function-name-face ((t (:foreground "LightSkyBlue"))))
+ (font-lock-keyword-face ((t (:foreground "Cyan"))))
+ (font-lock-string-face ((t (:foreground "LightSalmon"))))
+ (font-lock-type-face ((t (:foreground "PaleGreen"))))
+ (font-lock-variable-name-face ((t (:foreground "LightGoldenrod"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Pink"))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "turquoise"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "turquoise"))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise"))))
+ (gnus-splash-face ((t (:foreground "Brown"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink"))))
+ (gnus-summary-high-unread-face ((t (:bold t))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue"))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen"))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink"))))
+ (gnus-summary-low-unread-face ((t (:italic t))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "PaleGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "pink"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (highlight ((t (:background "black" :foreground "black"))))
+ (italic ((t (:italic t :foreground "yellow3"))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:bold t :foreground "green4"))))
+ (message-header-name-face ((t (:foreground "DarkGreen"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow"))))
+ (message-header-other-face ((t (:foreground "#b00000"))))
+ (message-header-subject-face ((t (:foreground "green3"))))
+ (message-header-to-face ((t (:bold t :foreground "green2"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "blue3"))))
+ (modeline ((t (:background "wheat" :foreground "black"))))
+ (modeline-buffer-id ((t (:background "wheat" :foreground "black"))))
+ (modeline-mousable ((t (:background "wheat" :foreground "black"))))
+ (modeline-mousable-minor-mode ((t (:background "wheat" :foreground "black"))))
+ (region ((t (:background "blue"))))
+ (secondary-selection ((t (:background "darkslateblue" :foreground "black"))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (underline ((t (:underline t))))
+ (xref-keyword-face ((t (:foreground "blue"))))
+ (xref-list-default-face ((t (nil))))
+ (xref-list-pilot-face ((t (:foreground "navy"))))
+ (xref-list-symbol-face ((t (:foreground "navy")))))))
+
+(defun color-theme-marquardt ()
+ "Color theme by Colin Marquardt, created 2000-10-25.
+Black on bisque, a light color. Based on some settings from Robin S. Socha.
+Features some color changes to programming languages, especially vhdl-mode.
+You might also want to put something like
+ Emacs*Foreground: Black
+ Emacs*Background: bisque2
+in your ~/.Xdefaults."
+ (interactive)
+ (color-theme-install
+ '(color-theme-marquardt
+ ((background-color . "bisque")
+ (background-mode . light)
+ (background-toolbar-color . "bisque")
+ (border-color . "#000000000000")
+ (bottom-toolbar-shadow-color . "#909099999999")
+ (cursor-color . "Red3")
+ (foreground-color . "black")
+ (top-toolbar-shadow-color . "#ffffffffffff"))
+ (default ((t (nil))))
+ (blue ((t (:foreground "blue"))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:bold t))))
+ (border-glyph ((t (nil))))
+ (calendar-today-face ((t (:underline t))))
+ (diary-face ((t (:foreground "red"))))
+ (display-time-mail-balloon-enhance-face ((t (:background "orange"))))
+ (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue"))))
+ (display-time-time-balloon-face ((t (:foreground "red"))))
+ (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue"))))
+ (font-lock-comment-face ((t (:foreground "gray50"))))
+ (font-lock-doc-string-face ((t (:foreground "green4"))))
+ (font-lock-function-name-face ((t (:foreground "darkorange"))))
+ (font-lock-keyword-face ((t (:foreground "blue3"))))
+ (font-lock-preprocessor-face ((t (:foreground "blue3"))))
+ (font-lock-reference-face ((t (:foreground "red3"))))
+ (font-lock-special-comment-face ((t (:foreground "blue4"))))
+ (font-lock-special-keyword-face ((t (:foreground "red4"))))
+ (font-lock-string-face ((t (:foreground "green4"))))
+ (font-lock-type-face ((t (:foreground "steelblue"))))
+ (font-lock-variable-name-face ((t (:foreground "black"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red"))))
+ (green ((t (:foreground "green"))))
+ (gui-button-face ((t (:background "grey75" :foreground "black"))))
+ (gui-element ((t (:background "azure1" :foreground "Black"))))
+ (highlight ((t (:background "darkseagreen2" :foreground "blue"))))
+ (holiday-face ((t (:background "pink" :foreground "black"))))
+ (info-node ((t (:bold t))))
+ (info-xref ((t (:bold t))))
+ (isearch ((t (:background "yellow" :foreground "red"))))
+ (italic ((t (:bold t))))
+ (left-margin ((t (nil))))
+ (list-mode-item-selected ((t (:background "gray68" :foreground "black"))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:foreground "MidnightBlue"))))
+ (message-header-name-face ((t (:foreground "cornflower blue"))))
+ (message-header-newsgroups-face ((t (:bold t :foreground "blue4"))))
+ (message-header-other-face ((t (:foreground "steel blue"))))
+ (message-header-subject-face ((t (:bold t :foreground "navy blue"))))
+ (message-header-to-face ((t (:bold t :foreground "MidnightBlue"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (modeline ((t (:background "bisque2" :foreground "steelblue4"))))
+ (modeline-buffer-id ((t (:background "bisque2" :foreground "blue4"))))
+ (modeline-mousable ((t (:background "bisque2" :foreground "firebrick"))))
+ (modeline-mousable-minor-mode ((t (:background "bisque2" :foreground "green4"))))
+ (paren-blink-off ((t (:foreground "azure1"))))
+ (paren-face ((t (:background "lightgoldenrod"))))
+ (paren-match ((t (:background "bisque2"))))
+ (paren-mismatch ((t (:background "DeepPink" :foreground "black"))))
+ (paren-mismatch-face ((t (:background "DeepPink"))))
+ (paren-no-match-face ((t (:background "yellow"))))
+ (pointer ((t (:background "white" :foreground "blue"))))
+ (primary-selection ((t (:background "gray65"))))
+ (red ((t (:foreground "red"))))
+ (right-margin ((t (nil))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (shell-option-face ((t (:foreground "gray50"))))
+ (shell-output-2-face ((t (:foreground "green4"))))
+ (shell-output-3-face ((t (:foreground "green4"))))
+ (shell-output-face ((t (:bold t))))
+ (shell-prompt-face ((t (:foreground "blue3"))))
+ (speedbar-button-face ((t (:foreground "green4"))))
+ (speedbar-directory-face ((t (:foreground "blue4"))))
+ (speedbar-file-face ((t (:foreground "cyan4"))))
+ (speedbar-highlight-face ((t (:background "green"))))
+ (speedbar-selected-face ((t (:underline t :foreground "red"))))
+ (speedbar-tag-face ((t (:foreground "brown"))))
+ (text-cursor ((t (:background "Red3" :foreground "bisque"))))
+ (toolbar ((t (:background "Gray80"))))
+ (underline ((t (:underline t))))
+ (vertical-divider ((t (nil))))
+ (vhdl-font-lock-attribute-face ((t (:foreground "Orchid"))))
+ (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue"))))
+ (vhdl-font-lock-enumvalue-face ((t (:foreground "SaddleBrown"))))
+ (vhdl-font-lock-function-face ((t (:foreground "DarkCyan"))))
+ (vhdl-font-lock-generic-/constant-face ((t (:foreground "Gold3"))))
+ (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red"))))
+ (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange"))))
+ (vhdl-font-lock-translate-off-face ((t (:background "LightGray"))))
+ (vhdl-font-lock-type-face ((t (:foreground "ForestGreen"))))
+ (vhdl-font-lock-variable-face ((t (:foreground "Grey50"))))
+ (vhdl-speedbar-architecture-face ((t (:foreground "Blue"))))
+ (vhdl-speedbar-architecture-selected-face ((t (:underline t :foreground "Blue"))))
+ (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod"))))
+ (vhdl-speedbar-configuration-selected-face ((t (:underline t :foreground "DarkGoldenrod"))))
+ (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen"))))
+ (vhdl-speedbar-entity-selected-face ((t (:underline t :foreground "ForestGreen"))))
+ (vhdl-speedbar-instantiation-face ((t (:foreground "Brown"))))
+ (vhdl-speedbar-instantiation-selected-face ((t (:underline t :foreground "Brown"))))
+ (vhdl-speedbar-package-face ((t (:foreground "Grey50"))))
+ (vhdl-speedbar-package-selected-face ((t (:underline t :foreground "Grey50"))))
+ (vhdl-speedbar-subprogram-face ((t (:foreground "Orchid4"))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (yellow ((t (:foreground "yellow"))))
+ (zmacs-region ((t (:background "steelblue" :foreground "yellow")))))))
+
+(defun color-theme-parus ()
+ "Color theme by Jon K Hellan, created 2000-11-01.
+White on dark blue color theme.
+
+There is some redundancy in the X resources, but I do not have time to
+find out which should go or which should stay:
+
+Emacs*dialog*Background: midnightblue
+Emacs*dialog*Foreground: white
+Emacs*popup*Background: midnightblue
+Emacs*popup*Foreground: white
+emacs*background: #00005a
+emacs*cursorColor: gray90
+emacs*foreground: White
+emacs.dialog*.background: midnightblue
+emacs.menu*.background: midnightblue
+emacs.pane.menubar.background: midnightblue"
+ (interactive)
+ (color-theme-install
+ '(color-theme-parus
+ ((background-color . "#00005a")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "yellow")
+ (foreground-color . "White")
+ (mouse-color . "yellow"))
+ ((gnus-mouse-face . highlight)
+ (list-matching-lines-face . bold)
+ (paren-face . bold)
+ (paren-mismatch-face . paren-mismatch-face)
+ (paren-no-match-face . paren-no-match-face)
+ (view-highlight-face . highlight))
+ (default ((t (nil))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t))))
+ (font-latex-bold-face ((t (:bold t :foreground "OliveDrab"))))
+ (font-latex-italic-face ((t (:italic t :foreground "OliveDrab"))))
+ (font-latex-math-face ((t (:foreground "burlywood"))))
+ (font-latex-sedate-face ((t (:foreground "LightGray"))))
+ (font-latex-string-face ((t (:foreground "LightSalmon"))))
+ (font-latex-warning-face ((t (:foreground "Pink"))))
+ (font-lock-builtin-face ((t (:foreground "#e0e0ff"))))
+ (font-lock-reference-face ((t (:foreground "#e0e0ff"))))
+ (font-lock-comment-face ((t (:foreground "#FFd1d1"))))
+ (font-lock-constant-face ((t (:foreground "Aquamarine"))))
+ (font-lock-preprocessor-face ((t (:foreground "Aquamarine"))))
+ (font-lock-function-name-face ((t (:foreground "#b2e4ff"))))
+ (font-lock-keyword-face ((t (:foreground "#a0ffff"))))
+ (font-lock-string-face ((t (:foreground "#efca10"))))
+ (font-lock-doc-string-face ((t (:foreground "#efca10"))))
+ (font-lock-type-face ((t (:foreground "PaleGreen"))))
+ (font-lock-variable-name-face ((t (:foreground "LightGoldenrod"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Pink"))))
+ (gnus-cite-attribution-face ((t (:italic t))))
+ (gnus-cite-face-1 ((t (:foreground "#dfdfff"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "light cyan"))))
+ (gnus-cite-face-3 ((t (:foreground "light yellow"))))
+ (gnus-cite-face-4 ((t (:foreground "light pink"))))
+ (gnus-cite-face-5 ((t (:foreground "pale green"))))
+ (gnus-cite-face-6 ((t (:foreground "beige"))))
+ (gnus-cite-face-7 ((t (:foreground "orange"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (:italic t))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:underline t :bold t))))
+ (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t))))
+ (gnus-emphasis-underline-italic ((t (:underline t :italic t))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "turquoise"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "turquoise"))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise"))))
+ (gnus-header-content-face ((t (:italic t :foreground "#90f490"))))
+ (gnus-header-from-face ((t (:foreground "#aaffaa"))))
+ (gnus-header-name-face ((t (:foreground "#c7e3c7"))))
+ (gnus-header-newsgroups-face ((t (:italic t :foreground "yellow"))))
+ (gnus-header-subject-face ((t (:foreground "#a0f0a0"))))
+ (gnus-signature-face ((t (:italic t))))
+ (gnus-splash-face ((t (:foreground "Brown"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink"))))
+ (gnus-summary-high-unread-face ((t (:bold t))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue"))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen"))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink"))))
+ (gnus-summary-low-unread-face ((t (:italic t))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "PaleGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "pink"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (highlight ((t (:background "darkolivegreen"))))
+ (italic ((t (:italic t))))
+ (message-cited-text-face ((t (:foreground "#dfdfff"))))
+ (message-header-cc-face ((t (:bold t :foreground "#a0f0a0"))))
+ (message-header-name-face ((t (:foreground "#c7e3c7"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow"))))
+ (message-header-other-face ((t (:foreground "#db9b9b"))))
+ (message-header-subject-face ((t (:foreground "#a0f0a0"))))
+ (message-header-to-face ((t (:bold t :foreground "#aaffaa"))))
+ (message-header-xheader-face ((t (:foreground "#e2e2ff"))))
+ (message-mml-face ((t (:foreground "#abdbab"))))
+ (message-separator-face ((t (:foreground "#dfdfff"))))
+ (modeline ((t (:background "White" :foreground "#00005a"))))
+ (modeline-buffer-id ((t (:background "White" :foreground "#00005a"))))
+ (modeline-mousable ((t (:background "White" :foreground "#00005a"))))
+ (modeline-mousable-minor-mode ((t (:background "White" :foreground "#00005a"))))
+ (paren-mismatch-face ((t (:background "DeepPink"))))
+ (paren-no-match-face ((t (:background "yellow"))))
+ (region ((t (:background "blue"))))
+ (primary-selection ((t (:background "blue"))))
+ (isearch ((t (:background "blue"))))
+ (secondary-selection ((t (:background "darkslateblue"))))
+ (underline ((t (:underline t))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "lime green"))))
+ (widget-field-face ((t (:background "dim gray"))))
+ (widget-inactive-face ((t (:foreground "light gray"))))
+ (widget-single-line-field-face ((t (:background "dim gray")))))))
+
+(defun color-theme-high-contrast ()
+ "High contrast color theme, maybe for the visually impaired.
+Watch out! This will set a very large font-size!
+
+If you want to modify the font as well, you should customize variable
+`color-theme-legal-frame-parameters' to \"\\(color\\|mode\\|font\\|height\\|width\\)$\".
+The default setting will prevent color themes from installing specific
+fonts."
+ (interactive)
+ (color-theme-standard)
+ (let ((color-theme-is-cumulative t))
+ (color-theme-install
+ '(color-theme-high-contrast
+ ((cursor-color . "red")
+ (width . 60)
+ (height . 25)
+ (background . dark))
+ (default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight bold :height 240 :width normal :family "adobe-courier"))))
+
+ (bold ((t (:bold t :underline t))))
+ (bold-italic ((t (:bold t :underline t))))
+ (font-lock-builtin-face ((t (:bold t :foreground "Red"))))
+ (font-lock-comment-face ((t (:bold t :foreground "Firebrick"))))
+ (font-lock-constant-face ((t (:bold t :underline t :foreground "Blue"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "Blue"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "Purple"))))
+ (font-lock-string-face ((t (:bold t :foreground "DarkGreen"))))
+ (font-lock-type-face ((t (:bold t :foreground "ForestGreen"))))
+ (font-lock-variable-name-face ((t (:bold t :foreground "DarkGoldenrod"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red"))))
+ (highlight ((t (:background "black" :foreground "white" :bold 1))))
+ (info-menu-5 ((t (:underline t :bold t))))
+ (info-node ((t (:bold t))))
+ (info-xref ((t (:bold t ))))
+ (italic ((t (:bold t :underline t))))
+ (modeline ((t (:background "black" :foreground "white" :bold 1))))
+ (modeline-buffer-id ((t (:background "black" :foreground "white" :bold 1))))
+ (modeline-mousable ((t (:background "black" :foreground "white" :bold 1))))
+ (modeline-mousable-minor-mode ((t (:background "black" :foreground "white" :bold 1))))
+ (region ((t (:background "black" :foreground "white" :bold 1))))
+ (secondary-selection ((t (:background "black" :foreground "white" :bold 1))))
+ (underline ((t (:bold t :underline t))))))))
+
+(defun color-theme-infodoc ()
+ "Color theme by Frederic Giroud, created 2001-01-18.
+Black on wheat scheme. Based on infodoc (xemacs variant distribution),
+with my favorit fontlock color."
+ (interactive)
+ (color-theme-install
+ '(color-theme-infodoc
+ ((background-color . "wheat")
+ (background-mode . light)
+ (background-toolbar-color . "#000000000000")
+ (border-color . "#000000000000")
+ (bottom-toolbar-shadow-color . "#000000000000")
+ (cursor-color . "red")
+ (foreground-color . "black")
+ (top-toolbar-shadow-color . "#ffffffffffff"))
+ nil
+ (default ((t (:bold t))))
+ (blue ((t (:bold t :foreground "blue"))))
+ (bold ((t (:background "wheat" :foreground "black"))))
+ (bold-italic ((t (:bold t :background "wheat" :foreground "black"))))
+ (border-glyph ((t (:bold t))))
+ (calendar-today-face ((t (:underline t :bold t))))
+ (custom-button-face ((t (nil))))
+ (custom-changed-face ((t (:bold t :background "blue" :foreground "white"))))
+ (custom-documentation-face ((t (:bold t :background "wheat" :foreground "purple4"))))
+ (custom-face-tag-face ((t (:underline t :bold t))))
+ (custom-group-tag-face ((t (:underline t :bold t :background "wheat" :foreground "blue"))))
+ (custom-group-tag-face-1 ((t (:underline t :bold t :background "wheat" :foreground "red"))))
+ (custom-invalid-face ((t (:bold t :background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:bold t :background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:bold t :background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t :bold t))))
+ (custom-set-face ((t (:bold t :background "white" :foreground "blue"))))
+ (custom-state-face ((t (:bold t :background "wheat" :foreground "dark green"))))
+ (custom-variable-button-face ((t (:underline t))))
+ (custom-variable-tag-face ((t (:underline t :bold t :background "wheat" :foreground "blue"))))
+ (diary-face ((t (:bold t :foreground "red"))))
+ (display-time-mail-balloon-enhance-face ((t (:bold t :background "wheat" :foreground "black"))))
+ (display-time-mail-balloon-gnus-group-face ((t (:bold t :background "wheat" :foreground "blue"))))
+ (display-time-time-balloon-face ((t (:bold t :background "light salmon" :foreground "dark green"))))
+ (font-lock-comment-face ((t (:bold t :background "wheat" :foreground "turquoise4"))))
+ (font-lock-doc-string-face ((t (:bold t :background "wheat" :foreground "purple4"))))
+ (font-lock-function-name-face ((t (:bold t :background "wheat" :foreground "blue4"))))
+ (font-lock-keyword-face ((t (:bold t :background "wheat" :foreground "dark orchid"))))
+ (font-lock-preprocessor-face ((t (:bold t :background "wheat" :foreground "orchid4"))))
+ (font-lock-reference-face ((t (:bold t :background "wheat" :foreground "red3"))))
+ (font-lock-string-face ((t (:bold t :background "wheat" :foreground "dark goldenrod"))))
+ (font-lock-type-face ((t (:bold t :background "wheat" :foreground "brown"))))
+ (font-lock-variable-name-face ((t (:bold t :background "wheat" :foreground "chocolate"))))
+ (font-lock-warning-face ((t (:bold t :background "wheat" :foreground "black"))))
+ (gdb-arrow-face ((t (:bold t :background "LightGreen" :foreground "black"))))
+ (green ((t (:bold t :foreground "green"))))
+ (gui-button-face ((t (:bold t :background "wheat" :foreground "red"))))
+ (gui-element ((t (:bold t :background "wheat" :foreground "black"))))
+ (highlight ((t (:bold t :background "darkseagreen2" :foreground "dark green"))))
+ (holiday-face ((t (:bold t :background "pink" :foreground "black"))))
+ (hproperty:but-face ((t (:bold t :background "wheat" :foreground "medium violet red"))))
+ (hproperty:flash-face ((t (:bold t :background "wheat" :foreground "gray80"))))
+ (hproperty:highlight-face ((t (:bold t :background "wheat" :foreground "red"))))
+ (hproperty:item-face ((t (:bold t))))
+ (isearch ((t (:bold t :background "pale turquoise" :foreground "blue"))))
+ (italic ((t (:bold t :background "wheat" :foreground "black"))))
+ (left-margin ((t (:bold t :background "wheat" :foreground "black"))))
+ (list-mode-item-selected ((t (:bold t :background "gray68" :foreground "black"))))
+ (message-cited-text ((t (:bold t :background "wheat" :foreground "brown"))))
+ (message-header-contents ((t (:bold t :background "wheat" :foreground "black"))))
+ (message-headers ((t (:bold t :background "wheat" :foreground "black"))))
+ (message-highlighted-header-contents ((t (:bold t :background "wheat" :foreground "blue"))))
+ (message-url ((t (nil))))
+ (modeline ((t (:bold t :background "light salmon" :foreground "dark green"))))
+ (modeline-buffer-id ((t (:bold t :background "light salmon" :foreground "blue4"))))
+ (modeline-mousable ((t (:bold t :background "light salmon" :foreground "firebrick"))))
+ (modeline-mousable-minor-mode ((t (:bold t :background "light salmon" :foreground "green4"))))
+ (pointer ((t (:bold t :background "wheat" :foreground "red"))))
+ (primary-selection ((t (:bold t :background "medium sea green"))))
+ (red ((t (:bold t :foreground "red"))))
+ (right-margin ((t (:bold t :background "wheat" :foreground "black"))))
+ (secondary-selection ((t (:bold t :background "paleturquoise" :foreground "black"))))
+ (shell-input-face ((t (:bold t :background "wheat" :foreground "blue"))))
+ (shell-option-face ((t (:bold t :background "wheat" :foreground "turquoise4"))))
+ (shell-output-2-face ((t (:bold t :background "wheat" :foreground "dark goldenrod"))))
+ (shell-output-3-face ((t (:bold t :background "wheat" :foreground "dark goldenrod"))))
+ (shell-output-face ((t (:bold t :background "wheat" :foreground "black"))))
+ (shell-prompt-face ((t (:bold t :background "wheat" :foreground "dark orchid"))))
+ (text-cursor ((t (:bold t :background "red" :foreground "wheat"))))
+ (toolbar ((t (:bold t :background "wheat" :foreground "black"))))
+ (underline ((t (:underline t :bold t :background "wheat" :foreground "black"))))
+ (vertical-divider ((t (:bold t))))
+ (widget-button-face ((t (nil))))
+ (widget-button-pressed-face ((t (:bold t :background "wheat" :foreground "red"))))
+ (widget-documentation-face ((t (:bold t :background "wheat" :foreground "dark green"))))
+ (widget-field-face ((t (:bold t :background "gray85"))))
+ (widget-inactive-face ((t (:bold t :background "wheat" :foreground "dim gray"))))
+ (x-face ((t (:bold t :background "wheat" :foreground "black"))))
+ (yellow ((t (:bold t :foreground "yellow"))))
+ (zmacs-region ((t (:bold t :background "lightyellow" :foreground "darkgreen")))))))
+
+(defun color-theme-classic ()
+ "Color theme by Frederic Giroud, created 2001-01-18.
+AntiqueWhite on darkslategrey scheme. Based on Gnome 2, with my favorit
+color foreground-color and fontlock color."
+ (interactive)
+ (color-theme-blue-gnus)
+ (let ((color-theme-is-cumulative t))
+ (color-theme-install
+ '(color-theme-classic
+ ((foreground-color . "AntiqueWhite")
+ (background-color . "darkslategrey")
+ (mouse-color . "Grey")
+ (cursor-color . "Red")
+ (border-color . "black")
+ (background-mode . dark))
+ ((apropos-keybinding-face . underline)
+ (apropos-label-face . italic)
+ (apropos-match-face . secondary-selection)
+ (apropos-property-face . bold-italic)
+ (apropos-symbol-face . info-xref)
+ (goto-address-mail-face . message-header-to-face)
+ (goto-address-mail-mouse-face . secondary-selection)
+ (goto-address-url-face . info-xref)
+ (goto-address-url-mouse-face . highlight)
+ (list-matching-lines-face . bold)
+ (view-highlight-face . highlight))
+ (default ((t (nil))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t :foreground "beige"))))
+ (calendar-today-face ((t (:underline t))))
+ (cperl-array-face ((t (:foreground "Yellow"))))
+ (cperl-hash-face ((t (:foreground "White"))))
+ (cperl-nonoverridable-face ((t (:foreground "SkyBlue"))))
+ (custom-button-face ((t (:underline t :foreground "MediumSlateBlue"))))
+ (custom-documentation-face ((t (:foreground "Grey"))))
+ (custom-group-tag-face ((t (:foreground "MediumAquamarine"))))
+ (custom-state-face ((t (:foreground "LightSalmon"))))
+ (custom-variable-tag-face ((t (:foreground "Aquamarine"))))
+ (diary-face ((t (:foreground "IndianRed"))))
+ (erc-action-face ((t (:bold t))))
+ (erc-bold-face ((t (:bold t))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (:foreground "LightSalmon"))))
+ (erc-error-face ((t (:bold t :foreground "IndianRed"))))
+ (erc-input-face ((t (:foreground "Beige"))))
+ (erc-inverse-face ((t (:background "wheat" :foreground "darkslategrey"))))
+ (erc-notice-face ((t (:foreground "MediumAquamarine"))))
+ (erc-pal-face ((t (:foreground "pale green"))))
+ (erc-prompt-face ((t (:foreground "MediumAquamarine"))))
+ (erc-underline-face ((t (:underline t))))
+ (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed"))))
+ (eshell-ls-backup-face ((t (:foreground "Grey"))))
+ (eshell-ls-clutter-face ((t (:foreground "DimGray"))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "MediumSlateBlue"))))
+ (eshell-ls-executable-face ((t (:foreground "Coral"))))
+ (eshell-ls-missing-face ((t (:foreground "black"))))
+ (eshell-ls-picture-face ((t (:foreground "Violet"))))
+ (eshell-ls-product-face ((t (:foreground "LightSalmon"))))
+ (eshell-ls-readonly-face ((t (:foreground "Aquamarine"))))
+ (eshell-ls-special-face ((t (:foreground "Gold"))))
+ (eshell-ls-symlink-face ((t (:foreground "White"))))
+ (eshell-ls-unreadable-face ((t (:foreground "DimGray"))))
+ (eshell-prompt-face ((t (:foreground "MediumAquamarine"))))
+ (font-lock-builtin-face ((t (:bold t :foreground "PaleGreen"))))
+ (font-lock-comment-face ((t (:foreground "tomato3"))))
+ (font-lock-constant-face ((t (:foreground "Aquamarine"))))
+ (font-lock-doc-string-face ((t (:foreground "LightSalmon3"))))
+ (font-lock-function-name-face ((t (:foreground "SteelBlue1"))))
+ (font-lock-keyword-face ((t (:foreground "cyan1"))))
+ (font-lock-reference-face ((t (:foreground "LightSalmon2"))))
+ (font-lock-string-face ((t (:foreground "LightSalmon3"))))
+ (font-lock-type-face ((t (:foreground "PaleGreen3"))))
+ (font-lock-variable-name-face ((t (:foreground "khaki1"))))
+ (font-lock-warning-face ((t (:bold t :foreground "IndianRed"))))
+ (font-lock-preprocessor-face ((t (:foreground "SkyBlue3"))))
+ (widget-field-face ((t (:background "DarkCyan"))))
+ (custom-group-tag-face ((t(:foreground "brown" :underline t))))
+ (custom-state-face ((t (:foreground "khaki"))))
+ (highlight ((t (:background "PaleGreen" :foreground "DarkGreen"))))
+ (highline-face ((t (:background "SeaGreen"))))
+ (holiday-face ((t (:background "DimGray"))))
+ (info-menu-5 ((t (:underline t))))
+ (info-node ((t (:underline t :bold t :foreground "DodgerBlue1"))))
+ (info-xref ((t (:underline t :foreground "DodgerBlue1"))))
+ (isearch ((t (:foreground "red" :background "CornflowerBlue"))))
+ (italic ((t (:italic t))))
+ (modeline ((t (:background "LightSlateGray" :foreground "AntiqueWhite"))))
+ (modeline-buffer-id ((t (:background "LightSlateGray" :foreground "DarkBlue"))))
+ (modeline-mousable ((t (:background "LightSlateGray" :foreground "firebrick"))))
+ (modeline-mousable-minor-mode ((t (:background "LightSlateGray" :foreground "wheat"))))
+ (region ((t (:background "dark cyan" :foreground "cyan"))))
+ (secondary-selection ((t (:background "Aquamarine" :foreground "SlateBlue"))))
+ (show-paren-match-face ((t (:background "Aquamarine" :foreground "SlateBlue"))))
+ (show-paren-mismatch-face ((t (:background "Red" :foreground "White"))))
+ (underline ((t (:underline t))))
+ (widget-field-face ((t (:foreground "LightBlue"))))
+ (widget-inactive-face ((t (:foreground "DimGray"))))
+ (widget-single-line-field-face ((t (:foreground "LightBlue"))))
+ (woman-bold-face ((t (:bold t))))
+ (woman-italic-face ((t (:foreground "beige"))))
+ (woman-unknown-face ((t (:foreground "LightSalmon"))))))))
+
+(defun color-theme-scintilla ()
+ "Color theme by Gordon Messmer, created 2001-02-07.
+Based on the Scintilla editor.
+
+If you want to modify the font as well, you should customize variable
+`color-theme-legal-frame-parameters' to \"\\(color\\|mode\\|font\\|height\\|width\\)$\".
+The default setting will prevent color themes from installing specific
+fonts."
+ (interactive)
+ (color-theme-install
+ ;; The light editor style doesn't seem to look right with
+ ;; the same font that works in the dark editor style.
+ ;; Dark letters on light background just isn't as visible.
+ '(color-theme-scintilla
+ ((font . "-monotype-courier new-bold-r-normal-*-*-140-*-*-m-*-iso8859-1")
+ (width . 95)
+ (height . 40)
+ (background-color . "white")
+ (foreground-color . "black")
+ (background-mode . light)
+ (mouse-color . "grey15")
+ (cursor-color . "grey15"))
+ (default ((t nil)))
+ (font-lock-comment-face ((t (:italic t :foreground "ForestGreen"))))
+ (font-lock-string-face ((t (:foreground "DarkMagenta"))))
+ (font-lock-keyword-face ((t (:foreground "NavyBlue"))))
+ (font-lock-warning-face ((t (:bold t :foreground "VioletRed"))))
+ (font-lock-constant-face ((t (:foreground "Blue"))))
+ (font-lock-type-face ((t (:foreground "NavyBlue"))))
+ (font-lock-variable-name-face ((t (:foreground "DarkCyan"))))
+ (font-lock-function-name-face ((t (:foreground "DarkCyan"))))
+ (font-lock-builtin-face ((t (:foreground "NavyBlue"))))
+ (highline-face ((t (:background "Grey95"))))
+ (show-paren-match-face ((t (:background "Grey80"))))
+ (region ((t (:background "Grey80"))))
+ (highlight ((t (:foreground "ForestGreen"))))
+ (secondary-selection ((t (:background "NavyBlue" :foreground "white"))))
+ (widget-field-face ((t (:background "NavyBlue"))))
+ (widget-single-line-field-face ((t (:background "RoyalBlue")))))) )
+
+(defun color-theme-gtk-ide ()
+ "Color theme by Gordon Messmer, created 2001-02-07.
+Inspired by a GTK IDE whose name I've forgotten.
+
+If you want to modify the font as well, you should customize variable
+`color-theme-legal-frame-parameters' to \"\\(color\\|mode\\|font\\|height\\|width\\)$\".
+The default setting will prevent color themes from installing specific
+fonts."
+ ;; The light editor style doesn't seem to look right with
+ ;; the same font that works in the dark editor style.
+ ;; Dark letters on light background just isn't as visible.
+ (interactive)
+ (color-theme-install
+ '(color-theme-gtk-ide
+ ((font . "-monotype-courier new-medium-r-normal-*-*-120-*-*-m-*-iso8859-15")
+ (width . 95)
+ (height . 45)
+ (background-color . "white")
+ (foreground-color . "black")
+ (background-mode . light)
+ (mouse-color . "grey15")
+ (cursor-color . "grey15"))
+ (default ((t nil)))
+ (font-lock-comment-face ((t (:italic t :foreground "grey55"))))
+ (font-lock-string-face ((t (:foreground "DarkRed"))))
+ (font-lock-keyword-face ((t (:foreground "DarkBlue"))))
+ (font-lock-warning-face ((t (:bold t :foreground "VioletRed"))))
+ (font-lock-constant-face ((t (:foreground "OliveDrab"))))
+ (font-lock-type-face ((t (:foreground "SteelBlue4"))))
+ (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod"))))
+ (font-lock-function-name-face ((t (:foreground "SlateBlue"))))
+ (font-lock-builtin-face ((t (:foreground "ForestGreen"))))
+ (highline-face ((t (:background "grey95"))))
+ (show-paren-match-face ((t (:background "grey80"))))
+ (region ((t (:background "grey80"))))
+ (highlight ((t (:background "LightSkyBlue"))))
+ (secondary-selection ((t (:background "grey55"))))
+ (widget-field-face ((t (:background "navy"))))
+ (widget-single-line-field-face ((t (:background "royalblue")))))) )
+
+(defun color-theme-midnight ()
+ "Color theme by Gordon Messmer, created 2001-02-07.
+A color theme inspired by a certain IDE for Windows. It's all from memory,
+since I only used that software in college.
+
+If you want to modify the font as well, you should customize variable
+`color-theme-legal-frame-parameters' to \"\\(color\\|mode\\|font\\|height\\|width\\)$\".
+The default setting will prevent color themes from installing specific
+fonts."
+ (interactive)
+ (color-theme-install
+ '(color-theme-midnight
+ ((font . "fixed")
+ (width . 130)
+ (height . 50)
+ (background-color . "black")
+ (foreground-color . "grey85")
+ (background-mode . dark)
+ (mouse-color . "grey85")
+ (cursor-color . "grey85"))
+ (default ((t (nil))))
+ (font-lock-comment-face ((t (:italic t :foreground "grey60"))))
+ (font-lock-string-face ((t (:foreground "Magenta"))))
+ (font-lock-keyword-face ((t (:foreground "Cyan"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Pink"))))
+ (font-lock-constant-face ((t (:foreground "OliveDrab"))))
+ (font-lock-type-face ((t (:foreground "DarkCyan"))))
+ (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod"))))
+ (font-lock-function-name-face ((t (:foreground "SlateBlue"))))
+ (font-lock-builtin-face ((t (:foreground "SkyBlue"))))
+ (highline-face ((t (:background "grey12"))))
+ (setnu-line-number-face ((t (:background "Grey15" :foreground "White" :bold t))))
+ (show-paren-match-face ((t (:background "grey30"))))
+ (region ((t (:background "grey15"))))
+ (highlight ((t (:background "blue"))))
+ (secondary-selection ((t (:background "navy"))))
+ (widget-field-face ((t (:background "navy"))))
+ (widget-single-line-field-face ((t (:background "royalblue")))))) )
+
+(defun color-theme-jedit-grey ()
+ "Color theme by Gordon Messmer, created 2001-02-07.
+Based on a screenshot of jedit.
+
+If you want to modify the font as well, you should customize variable
+`color-theme-legal-frame-parameters' to \"\\(color\\|mode\\|font\\|height\\|width\\)$\".
+The default setting will prevent color themes from installing specific
+fonts."
+ (interactive)
+ (color-theme-install
+ '(color-theme-jedit-grey
+ ((font . "fixed")
+ (width . 130)
+ (height . 50)
+ (background-color . "grey77")
+ (foreground-color . "black")
+ (background-mode . light)
+ (mouse-color . "black")
+ (cursor-color . "black"))
+ (default ((t (nil))))
+ (font-lock-comment-face ((t (:italic t :foreground "RoyalBlue4"))))
+ (font-lock-string-face ((t (:foreground "Gold4"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "DarkRed"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Pink"))))
+ (font-lock-constant-face ((t (:foreground "DarkCyan"))))
+ (font-lock-type-face ((t (:foreground "DarkRed"))))
+ (font-lock-function-name-face ((t (:foreground "Green4"))))
+ (font-lock-builtin-face ((t (:bold t :foreground "DarkRed"))))
+ (highline-face ((t (:background "grey84"))))
+ (setnu-line-number-face ((t (:background "White" :foreground "MediumPurple3" :italic t))))
+ (show-paren-match-face ((t (:background "grey60"))))
+ (region ((t (:background "grey70"))))
+ (highlight ((t (:background "grey90"))))
+ (secondary-selection ((t (:background "white"))))
+ (widget-field-face ((t (:background "royalblue"))))
+ (widget-single-line-field-face ((t (:background "royalblue")))))) )
+
+(defun color-theme-snow ()
+ "Color theme by Nicolas Rist, created 2001-03-08.
+Black on gainsboro. In Emacs, the text background is a shade darker
+than the frame background: Gainsboro instead of snow. This makes the
+structure of the text clearer without being too agressive on the eyes.
+On XEmacs, this doesn't really work as the frame and the default face
+allways use the same foreground and background colors.
+The color theme includes gnus, message, font-lock, sgml, and speedbar."
+ (interactive)
+ (color-theme-install
+ '(color-theme-snow
+ ((background-color . "snow2")
+ (background-mode . light)
+ (border-color . "black")
+ (cursor-color . "RoyalBlue2")
+ (foreground-color . "black")
+ (mouse-color . "black"))
+ ((gnus-mouse-face . highlight)
+ (list-matching-lines-face . bold)
+ (view-highlight-face . highlight))
+ (default ((t (:background "gainsboro" :foreground "dark slate gray"))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t))))
+ (calendar-today-face ((t (:underline t))))
+ (custom-button-face ((t (:background "gainsboro" :foreground "dark cyan"))))
+ (custom-documentation-face ((t (:background "gainsboro"))))
+ (diary-face ((t (:foreground "red"))))
+ (fg:black ((t (:foreground "black"))))
+ (font-lock-builtin-face ((t (:background "gainsboro" :foreground "medium orchid"))))
+ (font-lock-comment-face ((t (:background "gainsboro" :foreground "SteelBlue3"))))
+ (font-lock-constant-face ((t (:background "gainsboro" :foreground "orange3"))))
+ (font-lock-function-name-face ((t (:background "gainsboro" :foreground "blue3"))))
+ (font-lock-keyword-face ((t (:background "gainsboro" :foreground "red3"))))
+ (font-lock-string-face ((t (:background "gainsboro" :foreground "SpringGreen3"))))
+ (font-lock-type-face ((t (:background "gainsboro" :foreground "dark cyan"))))
+ (font-lock-variable-name-face ((t (:background "gainsboro" :foreground "purple2"))))
+ (font-lock-warning-face ((t (:bold t :background "gainsboro" :foreground "red"))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "magenta4"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4"))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-splash-face ((t (:foreground "ForestGreen"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick"))))
+ (gnus-summary-high-unread-face ((t (:bold t))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue"))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen"))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick"))))
+ (gnus-summary-low-unread-face ((t (:italic t))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "DarkGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "firebrick"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (gui-button-face ((t (:foreground "light grey"))))
+ (highlight ((t (:background "LightSteelBlue1"))))
+ (holiday-face ((t (:background "pink"))))
+ (ibuffer-marked-face ((t (:foreground "red"))))
+ (italic ((t (:italic t))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:foreground "MidnightBlue"))))
+ (message-header-name-face ((t (:foreground "cornflower blue"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4"))))
+ (message-header-other-face ((t (:foreground "steel blue"))))
+ (message-header-subject-face ((t (:bold t :foreground "navy blue"))))
+ (message-header-to-face ((t (:bold t :foreground "MidnightBlue"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (modeline ((t (:background "dark slate gray" :foreground "gainsboro"))))
+ (modeline-buffer-id ((t (:background "dark slate gray" :foreground "gainsboro"))))
+ (modeline-mousable ((t (:background "dark slate gray" :foreground "gainsboro"))))
+ (modeline-mousable-minor-mode ((t (:background "dark slate gray" :foreground "gainsboro"))))
+ (region ((t (:background "lavender"))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (sgml-comment-face ((t (:foreground "dark green"))))
+ (sgml-doctype-face ((t (:foreground "maroon"))))
+ (sgml-end-tag-face ((t (:foreground "blue2"))))
+ (sgml-entity-face ((t (:foreground "red2"))))
+ (sgml-ignored-face ((t (:background "gray90" :foreground "maroon"))))
+ (sgml-ms-end-face ((t (:foreground "maroon"))))
+ (sgml-ms-start-face ((t (:foreground "maroon"))))
+ (sgml-pi-face ((t (:foreground "maroon"))))
+ (sgml-sgml-face ((t (:foreground "maroon"))))
+ (sgml-short-ref-face ((t (:foreground "goldenrod"))))
+ (sgml-start-tag-face ((t (:foreground "blue2"))))
+ (show-paren-match-face ((t (:background "SlateGray1"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (speedbar-button-face ((t (:foreground "green4"))))
+ (speedbar-directory-face ((t (:foreground "blue4"))))
+ (speedbar-file-face ((t (:foreground "cyan4"))))
+ (speedbar-highlight-face ((t (:background "dark turquoise" :foreground "white"))))
+ (speedbar-selected-face ((t (:underline t :foreground "red"))))
+ (speedbar-tag-face ((t (:foreground "brown"))))
+ (underline ((t (:underline t)))))))
+
+(defun color-theme-montz ()
+ "Color theme by Brady Montz, created 2001-03-08.
+Black on Gray.
+Includes dired, bbdb, font-lock, gnus, message, viper, and widget."
+ (interactive)
+ (color-theme-install
+ '(color-theme-montz
+ ((background-color . "gray80")
+ (background-mode . light)
+ (background-toolbar-color . "#cccccccccccc")
+ (border-color . "#000000000000")
+ (bottom-toolbar-shadow-color . "#7a7a7a7a7a7a")
+ (cursor-color . "Red3")
+ (foreground-color . "black")
+ (top-toolbar-shadow-color . "#f5f5f5f5f5f5")
+ (viper-saved-cursor-color-in-replace-mode . "Red3"))
+ ((gnus-mouse-face . highlight)
+ (paren-match-face . paren-face-match)
+ (paren-mismatch-face . paren-face-mismatch)
+ (paren-no-match-face . paren-face-no-match)
+ (smiley-mouse-face . highlight))
+ (default ((t (nil))))
+ (bbdb-company ((t (:italic t))))
+ (bbdb-field-name ((t (:bold t))))
+ (bbdb-field-value ((t (nil))))
+ (bbdb-name ((t (:underline t))))
+ (blue ((t (:foreground "blue"))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t))))
+ (border-glyph ((t (nil))))
+ (dired-face-boring ((t (:foreground "Gray65"))))
+ (dired-face-directory ((t (:bold t))))
+ (dired-face-executable ((t (:foreground "SeaGreen"))))
+ (dired-face-flagged ((t (:background "LightSlateGray"))))
+ (dired-face-marked ((t (:background "PaleVioletRed"))))
+ (dired-face-permissions ((t (:background "grey75" :foreground "black"))))
+ (dired-face-setuid ((t (:foreground "Red"))))
+ (dired-face-socket ((t (:foreground "magenta"))))
+ (dired-face-symlink ((t (:foreground "cyan"))))
+ (display-time-mail-balloon-enhance-face ((t (:background "orange"))))
+ (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue"))))
+ (display-time-time-balloon-face ((t (:foreground "red"))))
+ (font-lock-builtin-face ((t (:foreground "red3"))))
+ (font-lock-comment-face ((t (:foreground "blue"))))
+ (font-lock-constant-face ((t (:foreground "red3"))))
+ (font-lock-doc-string-face ((t (:foreground "mediumvioletred"))))
+ (font-lock-function-name-face ((t (:foreground "firebrick"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "black"))))
+ (font-lock-preprocessor-face ((t (:foreground "blue3"))))
+ (font-lock-reference-face ((t (:foreground "red3"))))
+ (font-lock-string-face ((t (:foreground "mediumvioletred"))))
+ (font-lock-type-face ((t (:foreground "darkgreen"))))
+ (font-lock-variable-name-face ((t (:foreground "black"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red"))))
+ (gnus-cite-attribution-face ((t (:italic t))))
+ (gnus-cite-face-1 ((t (:foreground "MidnightBlue"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "firebrick"))))
+ (gnus-cite-face-3 ((t (:foreground "dark green"))))
+ (gnus-cite-face-4 ((t (:foreground "OrangeRed"))))
+ (gnus-cite-face-5 ((t (:foreground "dark khaki"))))
+ (gnus-cite-face-6 ((t (:foreground "dark violet"))))
+ (gnus-cite-face-7 ((t (:foreground "SteelBlue4"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-bold-italic ((t (:bold t))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (:italic t))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:underline t :bold t))))
+ (gnus-emphasis-underline-bold-italic ((t (:underline t :bold t))))
+ (gnus-emphasis-underline-italic ((t (:underline t :italic t))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "magenta4"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4"))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-header-content-face ((t (:italic t :foreground "indianred4"))))
+ (gnus-header-from-face ((t (:foreground "red3"))))
+ (gnus-header-name-face ((t (:foreground "maroon"))))
+ (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue"))))
+ (gnus-header-subject-face ((t (:foreground "red4"))))
+ (gnus-picons-face ((t (:background "white" :foreground "black"))))
+ (gnus-picons-xbm-face ((t (:background "white" :foreground "black"))))
+ (gnus-signature-face ((t (:italic t))))
+ (gnus-splash-face ((t (:foreground "Brown"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick"))))
+ (gnus-summary-high-unread-face ((t (:bold t))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue"))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen"))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick"))))
+ (gnus-summary-low-unread-face ((t (:italic t))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "DarkGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "firebrick"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (gnus-x-face ((t (:background "white" :foreground "black"))))
+ (green ((t (:foreground "green"))))
+ (gui-button-face ((t (:background "grey75" :foreground "black"))))
+ (gui-element ((t (nil))))
+ (highlight ((t (:background "darkseagreen2"))))
+ (info-node ((t (:bold t))))
+ (info-xref ((t (:bold t))))
+ (isearch ((t (:background "paleturquoise"))))
+ (italic ((t (:italic t))))
+ (left-margin ((t (nil))))
+ (list-mode-item-selected ((t (:background "gray68" :foreground "black"))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:foreground "MidnightBlue"))))
+ (message-header-name-face ((t (:foreground "cornflower blue"))))
+ (message-header-newsgroups-face ((t (:bold t :foreground "blue4"))))
+ (message-header-other-face ((t (:foreground "steel blue"))))
+ (message-header-subject-face ((t (:bold t :foreground "navy blue"))))
+ (message-header-to-face ((t (:bold t :foreground "MidnightBlue"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (modeline ((t (nil))))
+ (modeline-buffer-id ((t (:background "Gray80" :foreground "blue4"))))
+ (modeline-mousable ((t (:background "Gray80" :foreground "firebrick"))))
+ (modeline-mousable-minor-mode ((t (:background "Gray80" :foreground "green4"))))
+ (paren-face-match ((t (:background "turquoise"))))
+ (paren-face-mismatch ((t (:background "purple" :foreground "white"))))
+ (paren-face-no-match ((t (:background "yellow" :foreground "black"))))
+ (pointer ((t (nil))))
+ (primary-selection ((t (:background "gray65"))))
+ (red ((t (:foreground "red"))))
+ (right-margin ((t (nil))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (text-cursor ((t (:background "Red3" :foreground "gray80"))))
+ (toolbar ((t (nil))))
+ (underline ((t (:underline t))))
+ (vertical-divider ((t (nil))))
+ (viper-minibuffer-emacs-face ((t (:background "gray80" :foreground "black"))))
+ (viper-minibuffer-insert-face ((t (:background "gray80" :foreground "black"))))
+ (viper-minibuffer-vi-face ((t (:background "gray80" :foreground "black"))))
+ (viper-replace-overlay-face ((t (:background "black" :foreground "white"))))
+ (viper-search-face ((t (:background "black" :foreground "white"))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (yellow ((t (:foreground "yellow"))))
+ (zmacs-region ((t (:background "black" :foreground "white")))))))
+
+(defun color-theme-aalto-light ()
+ "Color theme by Jari Aalto, created 2001-03-08.
+Black on light yellow.
+Used for Win32 on a Nokia446Xpro monitor.
+Includes cvs, font-lock, gnus, message, sgml, widget"
+ (interactive)
+ (color-theme-install
+ '(color-theme-aalto-light
+ ((background-color . "#FFFFE0")
+ (background-mode . light)
+ (border-color . "black")
+ (cursor-color . "black")
+ (foreground-color . "black")
+ (mouse-color . "LawnGreen"))
+ ((gnus-mouse-face . highlight)
+ (list-matching-lines-face . bold)
+ (tinyreplace-:face . highlight)
+ (view-highlight-face . highlight))
+ (default ((t (nil))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t))))
+ (calendar-today-face ((t (:underline t))))
+ (cvs-filename-face ((t (:foreground "blue4"))))
+ (cvs-handled-face ((t (:foreground "pink"))))
+ (cvs-header-face ((t (:bold t :foreground "blue4"))))
+ (cvs-marked-face ((t (:bold t :foreground "green3"))))
+ (cvs-msg-face ((t (:italic t))))
+ (cvs-need-action-face ((t (:foreground "orange"))))
+ (cvs-unknown-face ((t (:foreground "red"))))
+ (diary-face ((t (:foreground "red"))))
+ (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed"))))
+ (eshell-test-ok-face ((t (:bold t :foreground "Green"))))
+ (font-lock-builtin-face ((t (:foreground "Orchid"))))
+ (font-lock-comment-face ((t (:foreground "Firebrick"))))
+ (font-lock-constant-face ((t (:foreground "CadetBlue"))))
+ (font-lock-function-name-face ((t (:foreground "Blue"))))
+ (font-lock-keyword-face ((t (:foreground "Purple"))))
+ (font-lock-string-face ((t (:foreground "RosyBrown"))))
+ (font-lock-type-face ((t (:foreground "ForestGreen"))))
+ (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (:italic t))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:underline t :bold t))))
+ (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t))))
+ (gnus-emphasis-underline-italic ((t (:underline t :italic t))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "magenta4"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4"))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-header-content-face ((t (:italic t :foreground "indianred4"))))
+ (gnus-header-from-face ((t (:foreground "red3"))))
+ (gnus-header-name-face ((t (:foreground "maroon"))))
+ (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue"))))
+ (gnus-header-subject-face ((t (:foreground "red4"))))
+ (gnus-signature-face ((t (:italic t))))
+ (gnus-splash-face ((t (:foreground "Brown"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick"))))
+ (gnus-summary-high-unread-face ((t (:bold t))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue"))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen"))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick"))))
+ (gnus-summary-low-unread-face ((t (:italic t))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "DarkGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "firebrick"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (highlight ((t (:background "darkseagreen2"))))
+ (holiday-face ((t (:background "pink"))))
+ (info-menu-5 ((t (:underline t))))
+ (info-node ((t (:italic t :bold t))))
+ (info-xref ((t (:bold t))))
+ (italic ((t (:italic t))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:foreground "MidnightBlue"))))
+ (message-header-name-face ((t (:foreground "cornflower blue"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4"))))
+ (message-header-other-face ((t (:foreground "steel blue"))))
+ (message-header-subject-face ((t (:bold t :foreground "navy blue"))))
+ (message-header-to-face ((t (:bold t :foreground "MidnightBlue"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (modeline ((t (:background "black" :foreground "white"))))
+ (modeline-buffer-id ((t (:background "black" :foreground "white"))))
+ (modeline-mousable ((t (:background "black" :foreground "white"))))
+ (modeline-mousable-minor-mode ((t (:background "black" :foreground "white"))))
+ (region ((t (:background "gray"))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (sgml-comment-face ((t (:foreground "dark turquoise"))))
+ (sgml-doctype-face ((t (:foreground "red"))))
+ (sgml-end-tag-face ((t (:foreground "blue"))))
+ (sgml-entity-face ((t (:foreground "magenta"))))
+ (sgml-ignored-face ((t (:background "gray60" :foreground "gray40"))))
+ (sgml-ms-end-face ((t (:foreground "green"))))
+ (sgml-ms-start-face ((t (:foreground "green"))))
+ (sgml-pi-face ((t (:foreground "lime green"))))
+ (sgml-sgml-face ((t (:foreground "brown"))))
+ (sgml-short-ref-face ((t (:foreground "deep sky blue"))))
+ (sgml-start-tag-face ((t (:foreground "blue"))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (underline ((t (:underline t))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "gray85")))))))
+
+(defun color-theme-aalto-dark ()
+ "Color theme by Jari Aalto, created 2001-03-08.
+White on Deep Sky Blue 3.
+Used for Unix Exceed on a Nokia446Xpro monitor.
+Includes font-lock, info, and message."
+ (interactive)
+ (color-theme-install
+ '(color-theme-aalto-dark
+ ((background-color . "DeepSkyBlue3")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "yellow")
+ (foreground-color . "white")
+ (mouse-color . "black"))
+ ((ispell-highlight-face . highlight)
+ (list-matching-lines-face . bold)
+ (tinyreplace-:face . highlight)
+ (view-highlight-face . highlight))
+ (default ((t (nil))))
+ (bold ((t (:bold t :background "blue3" :foreground "white"))))
+ (bold-italic ((t (:italic t :bold t :foreground "blue3"))))
+ (calendar-today-face ((t (:underline t))))
+ (diary-face ((t (:foreground "red"))))
+ (font-lock-builtin-face ((t (:foreground "LightSteelBlue"))))
+ (font-lock-comment-face ((t (:foreground "OrangeRed"))))
+ (font-lock-constant-face ((t (:foreground "Aquamarine"))))
+ (font-lock-function-name-face ((t (:foreground "LightSkyBlue"))))
+ (font-lock-keyword-face ((t (:foreground "Cyan"))))
+ (font-lock-string-face ((t (:foreground "LightSalmon"))))
+ (font-lock-type-face ((t (:foreground "PaleGreen"))))
+ (font-lock-variable-name-face ((t (:foreground "LightGoldenrod"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Pink"))))
+ (highlight ((t (:background "blue3" :foreground "white"))))
+ (holiday-face ((t (:background "pink"))))
+ (info-menu-5 ((t (:underline t))))
+ (info-node ((t (:italic t :bold t))))
+ (info-xref ((t (:bold t))))
+ (italic ((t (:italic t :background "gray"))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:bold t :foreground "green4"))))
+ (message-header-name-face ((t (:foreground "DarkGreen"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow"))))
+ (message-header-other-face ((t (:foreground "#b00000"))))
+ (message-header-subject-face ((t (:foreground "green3"))))
+ (message-header-to-face ((t (:bold t :foreground "green2"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "blue3"))))
+ (modeline ((t (:background "white" :foreground "DeepSkyBlue3"))))
+ (modeline-buffer-id ((t (:background "white" :foreground "DeepSkyBlue3"))))
+ (modeline-mousable ((t (:background "white" :foreground "DeepSkyBlue3"))))
+ (modeline-mousable-minor-mode ((t (:background "white" :foreground "DeepSkyBlue3"))))
+ (region ((t (:background "gray"))))
+ (secondary-selection ((t (:background "darkslateblue"))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (underline ((t (:underline t)))))))
+
+(defun color-theme-blippblopp ()
+ "Color theme by Thomas Sicheritz-Ponten, created 2001-03-12.
+Used by researchers at Uppsala University and the Center for Biological
+Sequence Analysis at the Technical University of Denmark. (As some of my
+swedish friends couldn't pronounce Sicheritz - they choose to transform
+it to something more \"swedish\": Blippblopp :-)
+Includes font-lock and message."
+ (interactive)
+ (color-theme-install
+ '(color-theme-blippblopp
+ ((background-color . "white")
+ (background-mode . light)
+ (background-toolbar-color . "#cf3ccf3ccf3c")
+ (border-color . "#000000000000")
+ (bottom-toolbar-shadow-color . "#79e77df779e7")
+ (cursor-color . "Red3")
+ (foreground-color . "black")
+ (mouse-color . "black")
+ (top-toolbar-shadow-color . "#fffffbeeffff")
+ (viper-saved-cursor-color-in-replace-mode . "Red3"))
+ ((ispell-highlight-face . highlight))
+ (default ((t (nil))))
+ (blue ((t (:foreground "blue"))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t))))
+ (excerpt ((t (:italic t))))
+ (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue"))))
+ (fg:black ((t (:foreground "black"))))
+ (fixed ((t (:bold t))))
+ (font-lock-builtin-face ((t (:foreground "red3"))))
+ (font-lock-comment-face ((t (:foreground "orange"))))
+ (font-lock-constant-face ((t (:foreground "red3"))))
+ (font-lock-doc-string-face ((t (:foreground "darkgreen"))))
+ (font-lock-exit-face ((t (:foreground "green"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "red"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "steelblue"))))
+ (font-lock-preprocessor-face ((t (:foreground "blue3"))))
+ (font-lock-reference-face ((t (:foreground "red3"))))
+ (font-lock-string-face ((t (:foreground "green4"))))
+ (font-lock-type-face ((t (:bold t :foreground "blue"))))
+ (font-lock-variable-name-face ((t (:foreground "black"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red"))))
+ (green ((t (:foreground "green"))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:foreground "MidnightBlue"))))
+ (message-header-name-face ((t (:foreground "cornflower blue"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4"))))
+ (message-header-other-face ((t (:foreground "steel blue"))))
+ (message-header-subject-face ((t (:bold t :foreground "navy blue"))))
+ (message-header-to-face ((t (:bold t :foreground "MidnightBlue"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (modeline ((t (:background "dimgray" :foreground "lemonchiffon"))))
+ (modeline-buffer-id ((t (:background "dimgray" :foreground "green3"))))
+ (modeline-mousable ((t (:background "dimgray" :foreground "orange"))))
+ (modeline-mousable-minor-mode ((t (:background "dimgray" :foreground "blue4"))))
+ (primary-selection ((t (:background "gray65"))))
+ (red ((t (:foreground "red"))))
+ (region ((t (:background "gray65"))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (text-cursor ((t (:background "Red3" :foreground "white"))))
+ (toolbar ((t (:background "Gray80"))))
+ (underline ((t (:underline t))))
+ (vcursor ((t (:underline t :background "cyan" :foreground "blue"))))
+ (vertical-divider ((t (:background "Gray80"))))
+ (xref-keyword-face ((t (:foreground "blue"))))
+ (xref-list-pilot-face ((t (:foreground "navy"))))
+ (xref-list-symbol-face ((t (:foreground "navy"))))
+ (yellow ((t (:foreground "yellow"))))
+ (zmacs-region ((t (:background "gray65")))))))
+
+(defun color-theme-hober (&optional preview)
+ "Does all sorts of crazy stuff.
+Originally based on color-theme-standard, so I probably still have some
+setting that I haven't changed. I also liberally copied settings from
+the other themes in this package. The end result isn't much like the
+other ones; I hope you like it."
+ (interactive)
+ (color-theme-install
+ '(color-theme-hober
+ ((foreground-color . "#c0c0c0")
+ (background-color . "black")
+ (mouse-color . "black")
+ (cursor-color . "medium turquoise")
+ (border-color . "black")
+ (background-mode . dark))
+ (default ((t (nil))))
+ (modeline ((t (:foreground "white" :background "darkslateblue"))))
+ (modeline-buffer-id ((t (:foreground "white" :background "darkslateblue"))))
+ (modeline-mousable ((t (:foreground "white" :background "darkslateblue"))))
+ (modeline-mousable-minor-mode ((t (:foreground "white" :background "darkslateblue"))))
+ (highlight ((t (:foreground "black" :background "#c0c0c0"))))
+ (bold ((t (:bold t))))
+ (italic ((t (:italic t))))
+ (bold-italic ((t (:bold t :italic t))))
+ (region ((t (:foreground "white" :background "darkslateblue"))))
+ (zmacs-region ((t (:foreground "white" :background "darkslateblue"))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (underline ((t (:underline t))))
+ (diary-face ((t (:foreground "red"))))
+ (calendar-today-face ((t (:underline t))))
+ (holiday-face ((t (:background "pink"))))
+ (widget-documentation-face ((t (:foreground "dark green" :background "white"))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red" :background "black"))))
+ (widget-field-face ((t (:background "gray85" :foreground "black"))))
+ (widget-single-line-field-face ((t (:background "gray85" :foreground "black"))))
+ (widget-inactive-face ((t (:foreground "dim gray" :background "red"))))
+ (fixed ((t (:bold t))))
+ (excerpt ((t (:italic t))))
+ (term-default-fg ((t (nil))))
+ (term-default-bg ((t (nil))))
+ (term-default-fg-inv ((t (nil))))
+ (term-default-bg-inv ((t (nil))))
+ (term-bold ((t (:bold t))))
+ (term-underline ((t (:underline t))))
+ (term-invisible ((t (nil))))
+ (term-invisible-inv ((t (nil))))
+ (term-white ((t (:foreground "#c0c0c0"))))
+ (term-whitebg ((t (:background "#c0c0c0"))))
+ (term-black ((t (:foreground "black"))))
+ (term-blackbg ((t (:background "black"))))
+ (term-red ((t (:foreground "#ef8171"))))
+ (term-redbg ((t (:background "#ef8171"))))
+ (term-green ((t (:foreground "#e5f779"))))
+ (term-greenbg ((t (:background "#e5f779"))))
+ (term-yellow ((t (:foreground "#fff796"))))
+ (term-yellowbg ((t (:background "#fff796"))))
+ (term-blue ((t (:foreground "#4186be"))))
+ (term-bluebg ((t (:background "#4186be"))))
+ (term-magenta ((t (:foreground "#ef9ebe"))))
+ (term-magentabg ((t (:background "#ef9ebe"))))
+ (term-cyan ((t (:foreground "#71bebe"))))
+ (term-cyanbg ((t (:background "#71bebe"))))
+ (font-lock-keyword-face ((t (:foreground "#00ffff"))))
+ (font-lock-comment-face ((t (:foreground "Red"))))
+ (font-lock-string-face ((t (:foreground "#ffff00"))))
+ (font-lock-constant-face ((t (:foreground "#00ff00"))))
+ (font-lock-builtin-face ((t (:foreground "#ffaa00"))))
+ (font-lock-type-face ((t (:foreground "Coral"))))
+ (font-lock-warning-face ((t (:foreground "Red" :bold t))))
+ (font-lock-function-name-face ((t (:foreground "#4186be"))))
+ (font-lock-variable-name-face ((t (:foreground "white" :bold t))))
+ (message-header-to-face ((t (:foreground "#4186be" :bold t))))
+ (message-header-cc-face ((t (:foreground "#4186be"))))
+ (message-header-subject-face ((t (:foreground "#4186be" :bold t))))
+ (message-header-newsgroups-face ((t (:foreground "Coral" :bold t))))
+ (message-header-other-face ((t (:foreground "steel blue"))))
+ (message-header-name-face ((t (:foreground "white"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (message-cited-text-face ((t (:foreground "white"))))
+ (gnus-header-from-face ((t (:foreground "Coral"))))
+ (gnus-header-subject-face ((t (:foreground "#4186be"))))
+ (gnus-header-newsgroups-face ((t (:foreground "#4186be" :italic t))))
+ (gnus-header-name-face ((t (:foreground "white"))))
+ (gnus-header-content-face ((t (:foreground "#4186be" :italic t))))
+ (gnus-cite-attribution-face ((t (:italic t))))
+ (gnus-cite-face-list ((t (:bold nil :foreground "red"))))
+ (gnus-group-news-1-face ((t (:foreground "ForestGreen" :bold t))))
+ (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen"))))
+ (gnus-group-news-2-face ((t (:foreground "CadetBlue4" :bold t))))
+ (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4"))))
+ (gnus-group-news-3-face ((t (:bold t))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-low-face ((t (:foreground "DarkGreen" :bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen"))))
+ (gnus-group-mail-1-face ((t (:foreground "DeepPink3" :bold t))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3"))))
+ (gnus-group-mail-2-face ((t (:foreground "HotPink3" :bold t))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3"))))
+ (gnus-group-mail-3-face ((t (:foreground "magenta4" :bold t))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "magenta4"))))
+ (gnus-group-mail-low-face ((t (:foreground "DeepPink4" :bold t))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4"))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (gnus-summary-cancelled-face ((t (:foreground "yellow" :background "black"))))
+ (gnus-summary-high-ticked-face ((t (:foreground "firebrick" :bold t))))
+ (gnus-summary-low-ticked-face ((t (:foreground "firebrick" :italic t))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "firebrick"))))
+ (gnus-summary-high-ancient-face ((t (:foreground "RoyalBlue" :bold t))))
+ (gnus-summary-low-ancient-face ((t (:foreground "RoyalBlue" :italic t))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-high-unread-face ((t (:bold t))))
+ (gnus-summary-low-unread-face ((t (:italic t))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-high-read-face ((t (:foreground "DarkGreen" :bold t))))
+ (gnus-summary-low-read-face ((t (:foreground "DarkGreen" :italic t))))
+ (gnus-summary-normal-read-face ((t (:foreground "DarkGreen"))))
+ (gnus-splash-face ((t (:foreground "ForestGreen"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-italic ((t (:italic t))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:bold t :underline t))))
+ (gnus-emphasis-underline-italic ((t (:italic t :underline t))))
+ (gnus-emphasis-bold-italic ((t (:bold t :italic t))))
+ (gnus-emphasis-underline-bold-italic ((t (:bold t :italic t :underline t))))
+ (gnus-signature-face ((t (:foreground "white"))))
+ (gnus-cite-face-1 ((t (:foreground "Khaki"))))
+ (gnus-cite-face-2 ((t (:foreground "Coral"))))
+ (gnus-cite-face-3 ((t (:foreground "#4186be"))))
+ (gnus-cite-face-4 ((t (:foreground "yellow green"))))
+ (gnus-cite-face-5 ((t (:foreground "IndianRed"))))
+ (highlight-changes-face ((t (:foreground "red"))))
+ (highlight-changes-delete-face ((t (:foreground "red" :underline t))))
+ (show-paren-match-face ((t (:foreground "white" :background "purple"))))
+ (show-paren-mismatch-face ((t (:foreground "white" :background "red"))))
+ (cperl-nonoverridable-face ((t (:foreground "chartreuse3"))))
+ (cperl-array-face ((t (:foreground "Blue" :bold t :background "lightyellow2"))))
+ (cperl-hash-face ((t (:foreground "Red" :bold t :italic t :background "lightyellow2"))))
+ (makefile-space-face ((t (:background "hotpink"))))
+ (sgml-start-tag-face ((t (:foreground "mediumspringgreen"))))
+ (sgml-ignored-face ((t (:foreground "gray20" :background "gray60"))))
+ (sgml-doctype-face ((t (:foreground "orange"))))
+ (sgml-sgml-face ((t (:foreground "yellow"))))
+ (sgml-end-tag-face ((t (:foreground "greenyellow"))))
+ (sgml-entity-face ((t (:foreground "gold"))))
+ (flyspell-incorrect-face ((t (:foreground "OrangeRed" :bold t :underline t))))
+ (flyspell-duplicate-face ((t (:foreground "Gold3" :bold t :underline t)))))))
+
+(defun color-theme-bharadwaj ()
+ "Color theme by Girish Bharadwaj, created 2001-03-28.
+Black on gainsboro. Includes BBDB, custom, cperl, cvs, dired, ediff,
+erc, eshell, font-latex, font-lock, gnus, info, message, paren, sgml,
+shell, speedbar, term, vhdl, viper, widget, woman, xref. Wow!"
+ (interactive)
+ (color-theme-install
+ '(color-theme-bharadwaj
+ ((background-color . "gainsboro")
+ (background-mode . light)
+ (background-toolbar-color . "#cf3ccf3ccf3c")
+ (border-color . "black")
+ (bottom-toolbar-shadow-color . "#79e77df779e7")
+ (cursor-color . "grey15")
+ (foreground-color . "black")
+ (mouse-color . "grey15")
+ (top-toolbar-shadow-color . "#fffffbeeffff")
+ (viper-saved-cursor-color-in-replace-mode . "Red3"))
+ ((gnus-mouse-face . highlight)
+ (smiley-mouse-face . highlight))
+ (default ((t (nil))))
+ (bbdb-company ((t (nil))))
+ (bbdb-field-name ((t (:bold t))))
+ (bbdb-field-value ((t (nil))))
+ (bbdb-name ((t (:underline t))))
+ (blank-space-face ((t (nil))))
+ (blank-tab-face ((t (nil))))
+ (blue ((t (nil))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:bold t))))
+ (border-glyph ((t (nil))))
+ (calendar-today-face ((t (:underline t))))
+ (comint-input-face ((t (:foreground "deepskyblue"))))
+ (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue"))))
+ (cperl-hash-face ((t (:bold t :background "lightyellow2" :foreground "Red"))))
+ (cperl-nonoverridable-face ((t (:foreground "chartreuse3"))))
+ (custom-button-face ((t (:bold t))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:underline t :bold t :foreground "blue"))))
+ (custom-group-tag-face-1 ((t (:underline t :foreground "red"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "dark green"))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:underline t :bold t :foreground "blue"))))
+ (cvs-filename-face ((t (:foreground "blue4"))))
+ (cvs-handled-face ((t (:foreground "pink"))))
+ (cvs-header-face ((t (:bold t :foreground "blue4"))))
+ (cvs-marked-face ((t (:bold t :foreground "green3"))))
+ (cvs-msg-face ((t (nil))))
+ (cvs-need-action-face ((t (:foreground "orange"))))
+ (cvs-unknown-face ((t (:foreground "red"))))
+ (diary-face ((t (:bold t :foreground "red"))))
+ (dired-face-boring ((t (:foreground "Gray65"))))
+ (dired-face-directory ((t (:bold t :foreground "forestgreen"))))
+ (dired-face-executable ((t (:foreground "indianred"))))
+ (dired-face-flagged ((t (:background "SlateGray"))))
+ (dired-face-marked ((t (:background "darkblue" :foreground "deepskyblue"))))
+ (dired-face-permissions ((t (nil))))
+ (dired-face-setuid ((t (:foreground "Red"))))
+ (dired-face-socket ((t (:foreground "magenta"))))
+ (dired-face-symlink ((t (:foreground "grey95"))))
+ (display-time-mail-balloon-enhance-face ((t (:background "orange"))))
+ (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue"))))
+ (display-time-time-balloon-face ((t (:foreground "red"))))
+ (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick"))))
+ (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black"))))
+ (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid"))))
+ (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy"))))
+ (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black"))))
+ (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black"))))
+ (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy"))))
+ (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black"))))
+ (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black"))))
+ (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black"))))
+ (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White"))))
+ (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black"))))
+ (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black"))))
+ (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White"))))
+ (erc-action-face ((t (:bold t))))
+ (erc-bold-face ((t (:bold t))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (nil))))
+ (erc-error-face ((t (:bold t))))
+ (erc-input-face ((t (nil))))
+ (erc-inverse-face ((t (nil))))
+ (erc-notice-face ((t (nil))))
+ (erc-pal-face ((t (nil))))
+ (erc-prompt-face ((t (nil))))
+ (erc-underline-face ((t (nil))))
+ (eshell-ls-archive-face ((t (:bold t :foreground "Orchid"))))
+ (eshell-ls-backup-face ((t (:foreground "OrangeRed"))))
+ (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed"))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "Blue"))))
+ (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen"))))
+ (eshell-ls-missing-face ((t (:bold t :foreground "Red"))))
+ (eshell-ls-picture-face ((t (nil))))
+ (eshell-ls-product-face ((t (:foreground "OrangeRed"))))
+ (eshell-ls-readonly-face ((t (:foreground "Brown"))))
+ (eshell-ls-special-face ((t (:bold t :foreground "Magenta"))))
+ (eshell-ls-symlink-face ((t (:bold t :foreground "DarkCyan"))))
+ (eshell-ls-unreadable-face ((t (:foreground "Grey30"))))
+ (eshell-prompt-face ((t (:bold t :foreground "Red"))))
+ (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed"))))
+ (eshell-test-ok-face ((t (:bold t :foreground "Green"))))
+ (excerpt ((t (nil))))
+ (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue"))))
+ (fg:black ((t (:foreground "black"))))
+ (fixed ((t (:bold t))))
+ (flyspell-duplicate-face ((t (:underline t :bold t :foreground "Gold3"))))
+ (flyspell-incorrect-face ((t (:underline t :bold t :foreground "OrangeRed"))))
+ (font-latex-bold-face ((t (nil))))
+ (font-latex-italic-face ((t (nil))))
+ (font-latex-math-face ((t (nil))))
+ (font-latex-sedate-face ((t (nil))))
+ (font-latex-string-face ((t (nil))))
+ (font-latex-warning-face ((t (nil))))
+ (font-lock-builtin-face ((t (:foreground "ForestGreen"))))
+ (font-lock-comment-face ((t (:foreground "grey55"))))
+ (font-lock-constant-face ((t (:foreground "OliveDrab"))))
+ (font-lock-doc-string-face ((t (:bold t :foreground "blue4"))))
+ (font-lock-exit-face ((t (nil))))
+ (font-lock-function-name-face ((t (:italic t :bold t :foreground "SlateBlue"))))
+ (font-lock-keyword-face ((t (:foreground "DarkBlue"))))
+ (font-lock-preprocessor-face ((t (:foreground "blue3"))))
+ (font-lock-reference-face ((t (:foreground "red3"))))
+ (font-lock-string-face ((t (:foreground "DarkRed"))))
+ (font-lock-type-face ((t (:foreground "SteelBlue4"))))
+ (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod"))))
+ (font-lock-warning-face ((t (:bold t :foreground "VioletRed"))))
+ (fringe ((t (:background "grey95"))))
+ (gnus-cite-attribution-face ((t (:bold t))))
+ (gnus-cite-face-1 ((t (:foreground "MidnightBlue"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "firebrick"))))
+ (gnus-cite-face-3 ((t (:foreground "dark green"))))
+ (gnus-cite-face-4 ((t (:foreground "OrangeRed"))))
+ (gnus-cite-face-5 ((t (:foreground "dark khaki"))))
+ (gnus-cite-face-6 ((t (:foreground "dark violet"))))
+ (gnus-cite-face-7 ((t (:foreground "SteelBlue4"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-bold-italic ((t (:bold t))))
+ (gnus-emphasis-highlight-words ((t (nil))))
+ (gnus-emphasis-italic ((t (nil))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:underline t :bold t))))
+ (gnus-emphasis-underline-bold-italic ((t (:underline t :bold t))))
+ (gnus-emphasis-underline-italic ((t (:underline t))))
+ (gnus-filterhist-face-1 ((t (nil))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "magenta4"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4"))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-header-content-face ((t (:foreground "indianred4"))))
+ (gnus-header-from-face ((t (:bold t :foreground "red3"))))
+ (gnus-header-name-face ((t (:bold t :foreground "maroon"))))
+ (gnus-header-newsgroups-face ((t (:bold t :foreground "MidnightBlue"))))
+ (gnus-header-subject-face ((t (:bold t :foreground "red4"))))
+ (gnus-picons-face ((t (:background "white" :foreground "black"))))
+ (gnus-picons-xbm-face ((t (:background "white" :foreground "black"))))
+ (gnus-signature-face ((t (nil))))
+ (gnus-splash ((t (nil))))
+ (gnus-splash-face ((t (:foreground "ForestGreen"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick"))))
+ (gnus-summary-high-unread-face ((t (:bold t))))
+ (gnus-summary-low-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-low-read-face ((t (:foreground "DarkGreen"))))
+ (gnus-summary-low-ticked-face ((t (:bold t :foreground "firebrick"))))
+ (gnus-summary-low-unread-face ((t (nil))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "DarkGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:bold t :foreground "firebrick"))))
+ (gnus-summary-normal-unread-face ((t (:bold t))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (gnus-x-face ((t (:background "white" :foreground "black"))))
+ (green ((t (nil))))
+ (gui-button-face ((t (:background "grey75"))))
+ (gui-element ((t (:background "Gray80"))))
+ (highlight ((t (:background "LightSkyBlue"))))
+ (highlight-changes-delete-face ((t (:underline t :foreground "red"))))
+ (highlight-changes-face ((t (:foreground "red"))))
+ (highline-face ((t (:background "grey95"))))
+ (holiday-face ((t (:background "pink"))))
+ (html-helper-italic-face ((t (nil))))
+ (info-menu-5 ((t (:underline t))))
+ (info-node ((t (:bold t))))
+ (info-xref ((t (:bold t))))
+ (isearch ((t (:background "yellow"))))
+ (isearch-secondary ((t (:foreground "red3"))))
+ (italic ((t (nil))))
+ (lazy-highlight-face ((t (:bold t :foreground "dark magenta"))))
+ (left-margin ((t (nil))))
+ (linemenu-face ((t (nil))))
+ (list-mode-item-selected ((t (nil))))
+ (makefile-space-face ((t (:background "hotpink"))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:bold t :foreground "MidnightBlue"))))
+ (message-header-name-face ((t (:foreground "cornflower blue"))))
+ (message-header-newsgroups-face ((t (:bold t :foreground "blue4"))))
+ (message-header-other-face ((t (:foreground "steel blue"))))
+ (message-header-subject-face ((t (:bold t :foreground "navy blue"))))
+ (message-header-to-face ((t (:bold t :foreground "MidnightBlue"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:bold t))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (modeline ((t (:background "white" :foreground "black"))))
+ (modeline-buffer-id ((t (:background "white" :foreground "black"))))
+ (modeline-mousable ((t (:background "white" :foreground "black"))))
+ (modeline-mousable-minor-mode ((t (:background "white" :foreground "black"))))
+ (paren-blink-off ((t (:foreground "gray80"))))
+ (paren-face-match ((t (:background "turquoise"))))
+ (paren-face-mismatch ((t (:background "purple" :foreground "white"))))
+ (paren-face-no-match ((t (:background "yellow" :foreground "black"))))
+ (paren-match ((t (:background "darkseagreen2"))))
+ (paren-mismatch ((t (:background "DeepPink" :foreground "black"))))
+ (paren-mismatch-face ((t (:bold t))))
+ (paren-no-match-face ((t (:bold t))))
+ (pointer ((t (nil))))
+ (primary-selection ((t (nil))))
+ (red ((t (nil))))
+ (region ((t (:background "grey80"))))
+ (right-margin ((t (nil))))
+ (secondary-selection ((t (:background "grey55"))))
+ (sgml-comment-face ((t (:foreground "dark turquoise"))))
+ (sgml-doctype-face ((t (nil))))
+ (sgml-end-tag-face ((t (nil))))
+ (sgml-entity-face ((t (nil))))
+ (sgml-ignored-face ((t (nil))))
+ (sgml-ms-end-face ((t (:foreground "green"))))
+ (sgml-ms-start-face ((t (:foreground "green"))))
+ (sgml-pi-face ((t (:foreground "lime green"))))
+ (sgml-sgml-face ((t (nil))))
+ (sgml-short-ref-face ((t (:foreground "deep sky blue"))))
+ (sgml-start-tag-face ((t (nil))))
+ (shell-option-face ((t (:foreground "blue"))))
+ (shell-output-2-face ((t (:foreground "darkseagreen"))))
+ (shell-output-3-face ((t (:foreground "slategrey"))))
+ (shell-output-face ((t (:foreground "palegreen"))))
+ (shell-prompt-face ((t (:foreground "red"))))
+ (show-paren-match-face ((t (:background "grey80"))))
+ (show-paren-mismatch-face ((t (:bold t :background "purple" :foreground "white"))))
+ (speedbar-button-face ((t (:bold t :foreground "green4"))))
+ (speedbar-directory-face ((t (:bold t :foreground "blue4"))))
+ (speedbar-file-face ((t (:bold t :foreground "cyan4"))))
+ (speedbar-highlight-face ((t (:background "green"))))
+ (speedbar-selected-face ((t (:underline t :foreground "red"))))
+ (speedbar-tag-face ((t (:foreground "brown"))))
+ (swbuff-current-buffer-face ((t (:bold t))))
+ (template-message-face ((t (:bold t))))
+ (term-black ((t (:foreground "black"))))
+ (term-blackbg ((t (:background "black"))))
+ (term-blue ((t (:foreground "blue"))))
+ (term-bluebg ((t (:background "blue"))))
+ (term-bold ((t (:bold t))))
+ (term-cyan ((t (:foreground "cyan"))))
+ (term-cyanbg ((t (:background "cyan"))))
+ (term-default-bg ((t (nil))))
+ (term-default-bg-inv ((t (nil))))
+ (term-default-fg ((t (nil))))
+ (term-default-fg-inv ((t (nil))))
+ (term-green ((t (:foreground "green"))))
+ (term-greenbg ((t (:background "green"))))
+ (term-invisible ((t (nil))))
+ (term-invisible-inv ((t (nil))))
+ (term-magenta ((t (:foreground "magenta"))))
+ (term-magentabg ((t (:background "magenta"))))
+ (term-red ((t (:foreground "red"))))
+ (term-redbg ((t (:background "red"))))
+ (term-underline ((t (:underline t))))
+ (term-white ((t (:foreground "white"))))
+ (term-whitebg ((t (:background "white"))))
+ (term-yellow ((t (:foreground "yellow"))))
+ (term-yellowbg ((t (:background "yellow"))))
+ (text-cursor ((t (:background "grey15" :foreground "gainsboro"))))
+ (toolbar ((t (nil))))
+ (underline ((t (:underline t))))
+ (vc-annotate-face-0046FF ((t (nil))))
+ (vcursor ((t (:underline t :background "cyan" :foreground "blue"))))
+ (vertical-divider ((t (nil))))
+ (vhdl-font-lock-attribute-face ((t (:foreground "Orchid"))))
+ (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue"))))
+ (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4"))))
+ (vhdl-font-lock-function-face ((t (:foreground "Orchid4"))))
+ (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red"))))
+ (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange"))))
+ (vhdl-font-lock-translate-off-face ((t (:background "LightGray"))))
+ (vhdl-speedbar-architecture-face ((t (:foreground "Blue"))))
+ (vhdl-speedbar-architecture-selected-face ((t (:underline t :foreground "Blue"))))
+ (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod"))))
+ (vhdl-speedbar-configuration-selected-face ((t (:underline t :foreground "DarkGoldenrod"))))
+ (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen"))))
+ (vhdl-speedbar-entity-selected-face ((t (:underline t :foreground "ForestGreen"))))
+ (vhdl-speedbar-instantiation-face ((t (:foreground "Brown"))))
+ (vhdl-speedbar-instantiation-selected-face ((t (:underline t :foreground "Brown"))))
+ (vhdl-speedbar-package-face ((t (:foreground "Grey50"))))
+ (vhdl-speedbar-package-selected-face ((t (:underline t :foreground "Grey50"))))
+ (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black"))))
+ (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen"))))
+ (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-search-face ((t (:background "khaki" :foreground "Black"))))
+ (vvb-face ((t (:background "pink" :foreground "black"))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "navy" :foreground "white"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "royalblue" :foreground "white"))))
+ (woman-bold-face ((t (:bold t))))
+ (woman-italic-face ((t (nil))))
+ (woman-unknown-face ((t (nil))))
+ (xref-keyword-face ((t (:foreground "blue"))))
+ (xref-list-pilot-face ((t (:foreground "navy"))))
+ (xref-list-symbol-face ((t (:foreground "navy"))))
+ (yellow ((t (nil))))
+ (zmacs-region ((t (:background "royalblue")))))))
+
+(defun color-theme-oswald ()
+ "Color theme by Tom Oswald, created 2001-04-18.
+Green on black, includes font-lock, show-paren, and ediff."
+ (interactive)
+ (color-theme-install
+ '(color-theme-oswald
+ ((background-color . "black")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "black")
+ (foreground-color . "green")
+ (mouse-color . "black"))
+ ((blank-space-face . blank-space-face)
+ (blank-tab-face . blank-tab-face)
+ (list-matching-lines-face . bold)
+ (view-highlight-face . highlight))
+ (default ((t (nil))))
+ (blank-space-face ((t (:background "LightGray"))))
+ (blank-tab-face ((t (:background "green" :foreground "black"))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t))))
+ (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick"))))
+ (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black"))))
+ (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid"))))
+ (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy"))))
+ (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black"))))
+ (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black"))))
+ (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy"))))
+ (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black"))))
+ (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black"))))
+ (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black"))))
+ (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White"))))
+ (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black"))))
+ (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black"))))
+ (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White"))))
+ (font-lock-builtin-face ((t (:italic t :bold t :foreground "LightSteelBlue"))))
+ (font-lock-comment-face ((t (:italic t :foreground "LightGoldenrod4"))))
+ (font-lock-constant-face ((t (:italic t :foreground "HotPink"))))
+ (font-lock-doc-string-face ((t (:italic t :foreground "orange"))))
+ (font-lock-function-name-face ((t (:italic t :bold t :foreground "red"))))
+ (font-lock-keyword-face ((t (:foreground "red"))))
+ (font-lock-preprocessor-face ((t (:italic t :foreground "HotPink"))))
+ (font-lock-string-face ((t (:italic t :foreground "orange"))))
+ (font-lock-reference-face ((t (:italic t :bold t :foreground "LightSteelBlue"))))
+ (font-lock-type-face ((t (:italic t :foreground "LightSlateBlue"))))
+ (font-lock-variable-name-face ((t (:underline t :foreground "LightGoldenrod"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Pink"))))
+ (highlight ((t (:background "yellow" :foreground "red"))))
+ (isearch ((t (:background "dim gray" :foreground "aquamarine"))))
+ (ispell-face ((t (:bold t :background "#3454b4" :foreground "yellow"))))
+ (italic ((t (:italic t))))
+ (modeline ((t (:background "green" :foreground "black"))))
+ (modeline-buffer-id ((t (:background "green" :foreground "black"))))
+ (modeline-mousable ((t (:background "green" :foreground "black"))))
+ (modeline-mousable-minor-mode ((t (:background "green" :foreground "black"))))
+ (region ((t (:background "dim gray" :foreground "aquamarine"))))
+ (secondary-selection ((t (:background "darkslateblue" :foreground "light goldenrod"))))
+ (show-paren-match-face ((t (:background "turquoise" :foreground "black"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (underline ((t (:underline t))))
+ (zmacs-region ((t (:background "dim gray" :foreground "aquamarine")))))))
+
+(defun color-theme-salmon-diff ()
+ "Salmon and aquamarine faces for diff and change-log modes.
+This is intended for other color themes to use (eg. `color-theme-gnome2')."
+ (color-theme-install
+ '(color-theme-salmon-diff
+ nil
+ (change-log-acknowledgement-face ((t (:foreground "LightBlue"))))
+ (change-log-conditionals-face ((t (:bold t :weight bold :foreground "Aquamarine"))))
+ (change-log-date-face ((t (:foreground "LightSalmon"))))
+ (change-log-email-face ((t (:bold t :weight bold :foreground "Aquamarine"))))
+ (change-log-file-face ((t (:bold t :weight bold :foreground "Aquamarine"))))
+ (change-log-function-face ((t (:bold t :weight bold :foreground "Aquamarine"))))
+ (change-log-list-face ((t (:foreground "Salmon"))))
+ (change-log-name-face ((t (:foreground "Aquamarine"))))
+ (diff-added-face ((t (nil))))
+ (diff-changed-face ((t (nil))))
+ (diff-context-face ((t (:foreground "grey70"))))
+ (diff-file-header-face ((t (:bold t))))
+ (diff-function-face ((t (:foreground "grey70"))))
+ (diff-header-face ((t (:foreground "light salmon"))))
+ (diff-hunk-header-face ((t (:foreground "light salmon"))))
+ (diff-index-face ((t (:bold t))))
+ (diff-nonexistent-face ((t (:bold t))))
+ (diff-removed-face ((t (nil))))
+ (log-view-message-face ((t (:foreground "light salmon")))))))
+
+(defun color-theme-robin-hood ()
+ "`color-theme-gnome2' with navajo white on green.
+This theme tries to avoid underlined and italic faces, because
+the fonts either look ugly, or do not exist. The author himself
+uses neep, for example."
+ (interactive)
+ (color-theme-gnome2)
+ (let ((color-theme-is-cumulative t))
+ (color-theme-install
+ '(color-theme-robin-hood
+ ((foreground-color . "navajo white")
+ (background-color . "#304020"))
+ ((CUA-mode-read-only-cursor-color . "white")
+ (help-highlight-face . info-xref)
+ (list-matching-lines-buffer-name-face . bold))
+ (default ((t (nil))))
+ (button ((t (:bold t))))
+ (calendar-today-face ((t (:foreground "lemon chiffon"))))
+ (custom-button-face ((t (:bold t :foreground "DodgerBlue1"))))
+ (diary-face ((t (:bold t :foreground "yellow"))))
+ (fringe ((t (:background "#003700"))))
+ (header-line ((t (:background "#030" :foreground "#AA7"))))
+ (holiday-face ((t (:bold t :foreground "peru"))))
+ (ido-subdir-face ((t (:foreground "MediumSlateBlue"))))
+ (isearch ((t (:foreground "pink" :background "red"))))
+ (isearch-lazy-highlight-face ((t (:foreground "red"))))
+ (menu ((t (:background "#304020" :foreground "navajo white"))))
+ (minibuffer-prompt ((t (:foreground "pale green"))))
+ (modeline ((t (:background "dark olive green" :foreground "wheat" :box (:line-width 1 :style released-button)))))
+ (mode-line-inactive ((t (:background "dark olive green" :foreground "khaki" :box (:line-width 1 :style released-button)))))
+ (semantic-dirty-token-face ((t (:background "grey22"))))
+ (tool-bar ((t (:background "#304020" :foreground "wheat" :box (:line-width 1 :style released-button)))))
+ (tooltip ((t (:background "lemon chiffon" :foreground "black"))))))))
+
+(defun color-theme-snowish ()
+ "Color theme by Girish Bharadwaj, created 2001-05-17.
+Dark slate gray on snow2, lots of blue colors.
+Includes custom, eshell, font-lock, gnus, html-helper,
+hyper-apropos, jde, message, paren, semantic, speedbar,
+term, widget."
+ (interactive)
+ (color-theme-install
+ '(color-theme-snowish
+ ((background-color . "snow2")
+ (background-mode . light)
+ (cursor-color . "Red3")
+ (foreground-color . "darkslategray"))
+ ((buffers-tab-face . buffers-tab)
+ (gnus-mouse-face . highlight)
+ (sgml-set-face . t)
+ (smiley-mouse-face . highlight))
+ (default ((t (nil))))
+ (blue ((t (:foreground "blue"))))
+ (bold ((t (:bold t :foreground "peru"))))
+ (bold-italic ((t (:italic t :bold t))))
+ (border-glyph ((t (nil))))
+ (buffers-tab ((t (:background "snow2" :foreground "darkslategray"))))
+ (custom-button-face ((t (:bold t))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-comment-face ((t (:background "gray85"))))
+ (custom-comment-tag-face ((t (:foreground "blue4"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:underline t :foreground "blue"))))
+ (custom-group-tag-face-1 ((t (:underline t :foreground "red"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "dark green"))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:underline t :foreground "blue"))))
+ (cyan ((t (:foreground "cyan"))))
+ (display-time-mail-balloon-enhance-face ((t (:background "orange"))))
+ (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue"))))
+ (display-time-time-balloon-face ((t (:foreground "red"))))
+ (eshell-ls-archive-face ((t (:bold t :foreground "Orchid"))))
+ (eshell-ls-backup-face ((t (:foreground "OrangeRed"))))
+ (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed"))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "Blue"))))
+ (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen"))))
+ (eshell-ls-missing-face ((t (:bold t :foreground "Red"))))
+ (eshell-ls-product-face ((t (:foreground "OrangeRed"))))
+ (eshell-ls-readonly-face ((t (:foreground "Brown"))))
+ (eshell-ls-special-face ((t (:bold t :foreground "Magenta"))))
+ (eshell-ls-symlink-face ((t (:bold t :foreground "Dark Cyan"))))
+ (eshell-ls-unreadable-face ((t (:foreground "Grey30"))))
+ (eshell-prompt-face ((t (:bold t :foreground "Red"))))
+ (font-lock-builtin-face ((t (:underline t :foreground "blue"))))
+ (font-lock-comment-face ((t (:foreground "snow4"))))
+ (font-lock-constant-face ((t (:foreground "CadetBlue"))))
+ (font-lock-doc-string-face ((t (:foreground "mediumblue"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "darkblue"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "dodgerblue"))))
+ (font-lock-preprocessor-face ((t (:underline t :foreground "blue3"))))
+ (font-lock-reference-face ((t (:foreground "red3"))))
+ (font-lock-string-face ((t (:foreground "darkviolet"))))
+ (font-lock-type-face ((t (:foreground "goldenrod"))))
+ (font-lock-variable-name-face ((t (:foreground "tomato"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red"))))
+ (gnus-cite-attribution-face ((t (nil))))
+ (gnus-cite-face-1 ((t (:foreground "MidnightBlue"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "firebrick"))))
+ (gnus-cite-face-3 ((t (:foreground "dark green"))))
+ (gnus-cite-face-4 ((t (:foreground "OrangeRed"))))
+ (gnus-cite-face-5 ((t (:foreground "dark khaki"))))
+ (gnus-cite-face-6 ((t (:foreground "dark violet"))))
+ (gnus-cite-face-7 ((t (:foreground "SteelBlue4"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-bold-italic ((t (nil))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (nil))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:underline t :bold t))))
+ (gnus-emphasis-underline-bold-italic ((t (:underline t))))
+ (gnus-emphasis-underline-italic ((t (:underline t))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "magenta4"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4"))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-header-content-face ((t (:foreground "indianred4"))))
+ (gnus-header-from-face ((t (:foreground "red3"))))
+ (gnus-header-name-face ((t (:foreground "maroon"))))
+ (gnus-header-newsgroups-face ((t (:foreground "MidnightBlue"))))
+ (gnus-header-subject-face ((t (:foreground "red4"))))
+ (gnus-picons-face ((t (:background "white" :foreground "black"))))
+ (gnus-picons-xbm-face ((t (:background "white" :foreground "black"))))
+ (gnus-signature-face ((t (nil))))
+ (gnus-splash-face ((t (:foreground "Brown"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick"))))
+ (gnus-summary-high-unread-face ((t (:bold t))))
+ (gnus-summary-low-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-low-read-face ((t (:foreground "DarkGreen"))))
+ (gnus-summary-low-ticked-face ((t (:foreground "firebrick"))))
+ (gnus-summary-low-unread-face ((t (nil))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "DarkGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "firebrick"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (gnus-x-face ((t (:background "white" :foreground "black"))))
+ (green ((t (:foreground "green"))))
+ (gui-button-face ((t (:background "grey75" :foreground "black"))))
+ (gui-element ((t (:background "#D4D0C8" :foreground "black"))))
+ (highlight ((t (:background "darkseagreen2"))))
+ (html-helper-bold-face ((t (:bold t))))
+ (html-helper-bold-italic-face ((t (nil))))
+ (html-helper-builtin-face ((t (:underline t :foreground "blue3"))))
+ (html-helper-italic-face ((t (:foreground "medium sea green"))))
+ (html-helper-underline-face ((t (:underline t))))
+ (html-tag-face ((t (:bold t))))
+ (hyper-apropos-documentation ((t (:foreground "darkred"))))
+ (hyper-apropos-heading ((t (:bold t))))
+ (hyper-apropos-hyperlink ((t (:foreground "blue4"))))
+ (hyper-apropos-major-heading ((t (:bold t))))
+ (hyper-apropos-section-heading ((t (nil))))
+ (hyper-apropos-warning ((t (:bold t :foreground "red"))))
+ (info-menu-6 ((t (nil))))
+ (isearch ((t (:background "paleturquoise"))))
+ (isearch-secondary ((t (:foreground "red3"))))
+ (italic ((t (nil))))
+ (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan"))))
+ (jde-bug-breakpoint-marker ((t (:background "yellow" :foreground "red"))))
+ (jde-java-font-lock-link-face ((t (:underline t :foreground "blue"))))
+ (jde-java-font-lock-number-face ((t (:foreground "RosyBrown"))))
+ (left-margin ((t (nil))))
+ (list-mode-item-selected ((t (:background "gray68" :foreground "darkslategray"))))
+ (magenta ((t (:foreground "magenta"))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:foreground "MidnightBlue"))))
+ (message-header-name-face ((t (:foreground "cornflower blue"))))
+ (message-header-newsgroups-face ((t (:foreground "blue4"))))
+ (message-header-other-face ((t (:foreground "steel blue"))))
+ (message-header-subject-face ((t (:bold t :foreground "navy blue"))))
+ (message-header-to-face ((t (:bold t :foreground "MidnightBlue"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (modeline ((t (nil))))
+ (modeline-buffer-id ((t (:background "#D4D0C8" :foreground "blue4"))))
+ (modeline-mousable ((t (:background "#D4D0C8" :foreground "firebrick"))))
+ (modeline-mousable-minor-mode ((t (:background "#D4D0C8" :foreground "green4"))))
+ (paren-blink-off ((t (:foreground "snow2"))))
+ (paren-match ((t (:background "darkseagreen2"))))
+ (paren-mismatch ((t (:background "snow2" :foreground "darkslategray"))))
+ (pointer ((t (nil))))
+ (primary-selection ((t (:background "gray65"))))
+ (red ((t (:foreground "red"))))
+ (right-margin ((t (nil))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (semantic-intangible-face ((t (:foreground "gray25"))))
+ (semantic-read-only-face ((t (:background "gray25"))))
+ (senator-momentary-highlight-face ((t (:background "gray70"))))
+ (speedbar-button-face ((t (:foreground "green4"))))
+ (speedbar-directory-face ((t (:foreground "blue4"))))
+ (speedbar-file-face ((t (:foreground "cyan4"))))
+ (speedbar-highlight-face ((t (:background "green"))))
+ (speedbar-selected-face ((t (:underline t :foreground "red"))))
+ (speedbar-tag-face ((t (:foreground "brown"))))
+ (template-message-face ((t (:bold t))))
+ (term-blue-bold-face ((t (:bold t :background "snow2" :foreground "blue"))))
+ (term-blue-face ((t (:foreground "blue"))))
+ (term-blue-inv-face ((t (:background "blue"))))
+ (term-blue-ul-face ((t (:underline t :background "snow2" :foreground "blue"))))
+ (term-cyan-bold-face ((t (:bold t :background "snow2" :foreground "cyan"))))
+ (term-cyan-face ((t (:foreground "cyan"))))
+ (term-cyan-inv-face ((t (:background "cyan"))))
+ (term-cyan-ul-face ((t (:underline t :background "snow2" :foreground "cyan"))))
+ (term-default-bold-face ((t (:bold t :background "snow2" :foreground "darkslategray"))))
+ (term-default-face ((t (:background "snow2" :foreground "darkslategray"))))
+ (term-default-inv-face ((t (:background "darkslategray" :foreground "snow2"))))
+ (term-default-ul-face ((t (:underline t :background "snow2" :foreground "darkslategray"))))
+ (term-green-bold-face ((t (:bold t :background "snow2" :foreground "green"))))
+ (term-green-face ((t (:foreground "green"))))
+ (term-green-inv-face ((t (:background "green"))))
+ (term-green-ul-face ((t (:underline t :background "snow2" :foreground "green"))))
+ (term-magenta-bold-face ((t (:bold t :background "snow2" :foreground "magenta"))))
+ (term-magenta-face ((t (:foreground "magenta"))))
+ (term-magenta-inv-face ((t (:background "magenta"))))
+ (term-magenta-ul-face ((t (:underline t :background "snow2" :foreground "magenta"))))
+ (term-red-bold-face ((t (:bold t :background "snow2" :foreground "red"))))
+ (term-red-face ((t (:foreground "red"))))
+ (term-red-inv-face ((t (:background "red"))))
+ (term-red-ul-face ((t (:underline t :background "snow2" :foreground "red"))))
+ (term-white-bold-face ((t (:bold t :background "snow2" :foreground "white"))))
+ (term-white-face ((t (:foreground "white"))))
+ (term-white-inv-face ((t (:background "snow2"))))
+ (term-white-ul-face ((t (:underline t :background "snow2" :foreground "white"))))
+ (term-yellow-bold-face ((t (:bold t :background "snow2" :foreground "yellow"))))
+ (term-yellow-face ((t (:foreground "yellow"))))
+ (term-yellow-inv-face ((t (:background "yellow"))))
+ (term-yellow-ul-face ((t (:underline t :background "snow2" :foreground "yellow"))))
+ (text-cursor ((t (:background "Red3" :foreground "snow2"))))
+ (toolbar ((t (nil))))
+ (underline ((t (:underline t))))
+ (vertical-divider ((t (nil))))
+ (white ((t (:foreground "white"))))
+ (widget ((t (nil))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (yellow ((t (:foreground "yellow"))))
+ (zmacs-region ((t (:background "gray65")))))))
+
+(defun color-theme-dark-laptop ()
+ "Color theme by Laurent Michel, created 2001-05-24.
+Includes custom, fl, font-lock, gnus, message, widget."
+ (interactive)
+ (color-theme-install
+ '(color-theme-dark-laptop
+ ((background-color . "black")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "yellow")
+ (foreground-color . "white")
+ (mouse-color . "sienna1"))
+ ((gnus-mouse-face . highlight)
+ (list-matching-lines-face . bold)
+ (view-highlight-face . highlight))
+ (default ((t (nil))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t))))
+ (custom-button-face ((t (nil))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:underline t :foreground "light blue"))))
+ (custom-group-tag-face-1 ((t (:underline t :foreground "pink"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "lime green"))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:underline t :foreground "light blue"))))
+ (fl-comment-face ((t (:foreground "pink"))))
+ (fl-doc-string-face ((t (:foreground "purple"))))
+ (fl-function-name-face ((t (:foreground "red"))))
+ (fl-keyword-face ((t (:foreground "cyan"))))
+ (fl-string-face ((t (:foreground "green"))))
+ (fl-type-face ((t (:foreground "yellow"))))
+ (font-lock-builtin-face ((t (:foreground "LightSteelBlue"))))
+ (font-lock-comment-face ((t (:foreground "OrangeRed"))))
+ (font-lock-constant-face ((t (:foreground "Aquamarine"))))
+ (font-lock-doc-string-face ((t (:foreground "LightSalmon"))))
+ (font-lock-function-name-face ((t (:foreground "LightSkyBlue"))))
+ (font-lock-keyword-face ((t (:foreground "Cyan"))))
+ (font-lock-preprocessor-face ((t (:foreground "Aquamarine"))))
+ (font-lock-reference-face ((t (:foreground "LightSteelBlue"))))
+ (font-lock-string-face ((t (:foreground "LightSalmon"))))
+ (font-lock-type-face ((t (:foreground "PaleGreen"))))
+ (font-lock-variable-name-face ((t (:foreground "LightGoldenrod"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Pink"))))
+ (gnus-cite-attribution-face ((t (:italic t))))
+ (gnus-cite-face-1 ((t (:bold t :foreground "deep sky blue"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:bold t :foreground "cyan"))))
+ (gnus-cite-face-3 ((t (:bold t :foreground "gold"))))
+ (gnus-cite-face-4 ((t (:foreground "light pink"))))
+ (gnus-cite-face-5 ((t (:foreground "pale green"))))
+ (gnus-cite-face-6 ((t (:bold t :foreground "chocolate"))))
+ (gnus-cite-face-7 ((t (:foreground "orange"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (:italic t))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:underline t :bold t))))
+ (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t))))
+ (gnus-emphasis-underline-italic ((t (:underline t :italic t))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "turquoise"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "turquoise"))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise"))))
+ (gnus-header-content-face ((t (:italic t :foreground "forest green"))))
+ (gnus-header-from-face ((t (:bold t :foreground "spring green"))))
+ (gnus-header-name-face ((t (:foreground "deep sky blue"))))
+ (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "purple"))))
+ (gnus-header-subject-face ((t (:bold t :foreground "orange"))))
+ (gnus-signature-face ((t (:bold t :foreground "khaki"))))
+ (gnus-splash-face ((t (:foreground "Brown"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink"))))
+ (gnus-summary-high-unread-face ((t (:bold t))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue"))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen"))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink"))))
+ (gnus-summary-low-unread-face ((t (:italic t))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "PaleGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "pink"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (highlight ((t (:background "darkolivegreen"))))
+ (italic ((t (:italic t))))
+ (message-cited-text-face ((t (:bold t :foreground "red"))))
+ (message-header-cc-face ((t (:bold t :foreground "green4"))))
+ (message-header-name-face ((t (:bold t :foreground "orange"))))
+ (message-header-newsgroups-face ((t (:bold t :foreground "violet"))))
+ (message-header-other-face ((t (:bold t :foreground "chocolate"))))
+ (message-header-subject-face ((t (:bold t :foreground "yellow"))))
+ (message-header-to-face ((t (:bold t :foreground "cyan"))))
+ (message-header-xheader-face ((t (:bold t :foreground "light blue"))))
+ (message-mml-face ((t (:bold t :background "Green3"))))
+ (message-separator-face ((t (:foreground "blue3"))))
+ (modeline ((t (:background "white" :foreground "black"))))
+ (modeline-buffer-id ((t (:background "white" :foreground "black"))))
+ (modeline-mousable ((t (:background "white" :foreground "black"))))
+ (modeline-mousable-minor-mode ((t (:background "white" :foreground "black"))))
+ (region ((t (:background "blue"))))
+ (primary-selection ((t (:background "blue"))))
+ (isearch ((t (:background "blue"))))
+ (zmacs-region ((t (:background "blue"))))
+ (secondary-selection ((t (:background "darkslateblue"))))
+ (underline ((t (:underline t))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "lime green"))))
+ (widget-field-face ((t (:background "dim gray"))))
+ (widget-inactive-face ((t (:foreground "light gray"))))
+ (widget-single-line-field-face ((t (:background "dim gray")))))))
+
+(defun color-theme-taming-mr-arneson ()
+ "Color theme by Erik Arneson, created 2001-06-12.
+Light sky blue on black. Includes bbdb, cperl, custom, cvs, diff,
+dired, font-lock, html-helper, hyper-apropos, info, isearch, man,
+message, paren, shell, and widget."
+ (interactive)
+ (color-theme-install
+ '(color-theme-taming-mr-arneson
+ ((background-color . "black")
+ (background-mode . light)
+ (background-toolbar-color . "#cf3ccf3ccf3c")
+ (border-color . "#000000000000")
+ (bottom-toolbar-shadow-color . "#79e77df779e7")
+ (cursor-color . "Red3")
+ (foreground-color . "LightSkyBlue")
+ (top-toolbar-shadow-color . "#fffffbeeffff"))
+ ((buffers-tab-face . buffers-tab)
+ (cperl-here-face . font-lock-string-face)
+ (cperl-invalid-face quote default)
+ (cperl-pod-face . font-lock-comment-face)
+ (cperl-pod-head-face . font-lock-variable-name-face)
+ (ispell-highlight-face . highlight)
+ (vc-mode-face . highlight)
+ (vm-highlight-url-face . bold-italic)
+ (vm-highlighted-header-face . bold)
+ (vm-mime-button-face . gui-button-face)
+ (vm-summary-highlight-face . bold))
+ (default ((t (nil))))
+ (bbdb-company ((t (nil))))
+ (bbdb-field-name ((t (:bold t))))
+ (bbdb-field-value ((t (nil))))
+ (bbdb-name ((t (:underline t))))
+ (blue ((t (:foreground "blue"))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:bold t :foreground "yellow"))))
+ (border-glyph ((t (nil))))
+ (buffers-tab ((t (:background "black" :foreground "LightSkyBlue"))))
+ (cperl-array-face ((t (:bold t :foreground "SkyBlue2"))))
+ (cperl-hash-face ((t (:foreground "LightBlue2"))))
+ (cperl-invalid-face ((t (:foreground "white"))))
+ (cperl-nonoverridable-face ((t (:foreground "chartreuse3"))))
+ (custom-button-face ((t (:bold t))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-comment-face ((t (:foreground "white"))))
+ (custom-comment-tag-face ((t (:foreground "white"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:underline t :foreground "blue"))))
+ (custom-group-tag-face-1 ((t (:underline t :foreground "red"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "white"))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:underline t :foreground "blue"))))
+ (cvs-filename-face ((t (:foreground "white"))))
+ (cvs-handled-face ((t (:foreground "pink"))))
+ (cvs-header-face ((t (:foreground "green"))))
+ (cvs-marked-face ((t (:bold t :foreground "green3"))))
+ (cvs-msg-face ((t (:foreground "red"))))
+ (cvs-need-action-face ((t (:foreground "yellow"))))
+ (cvs-unknown-face ((t (:foreground "grey"))))
+ (diff-added-face ((t (nil))))
+ (diff-changed-face ((t (nil))))
+ (diff-file-header-face ((t (:bold t :background "grey70"))))
+ (diff-hunk-header-face ((t (:background "grey85"))))
+ (diff-index-face ((t (:bold t :background "grey70"))))
+ (diff-removed-face ((t (nil))))
+ (dired-face-boring ((t (:foreground "Gray65"))))
+ (dired-face-directory ((t (:bold t :foreground "SkyBlue2"))))
+ (dired-face-executable ((t (:foreground "Green"))))
+ (dired-face-flagged ((t (:background "LightSlateGray"))))
+ (dired-face-header ((t (:background "grey75" :foreground "black"))))
+ (dired-face-marked ((t (:background "PaleVioletRed"))))
+ (dired-face-permissions ((t (:background "grey75" :foreground "black"))))
+ (dired-face-setuid ((t (:foreground "Red"))))
+ (dired-face-socket ((t (:foreground "magenta"))))
+ (dired-face-symlink ((t (:foreground "cyan"))))
+ (excerpt ((t (nil))))
+ (fixed ((t (:bold t))))
+ (font-lock-builtin-face ((t (:foreground "red3"))))
+ (font-lock-comment-face ((t (:foreground "red"))))
+ (font-lock-constant-face ((t (nil))))
+ (font-lock-doc-string-face ((t (:foreground "turquoise"))))
+ (font-lock-function-name-face ((t (:foreground "white"))))
+ (font-lock-keyword-face ((t (:foreground "green"))))
+ (font-lock-preprocessor-face ((t (:foreground "green3"))))
+ (font-lock-reference-face ((t (:foreground "red3"))))
+ (font-lock-string-face ((t (:foreground "turquoise"))))
+ (font-lock-type-face ((t (:foreground "steelblue"))))
+ (font-lock-variable-name-face ((t (:foreground "magenta2"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red"))))
+ (green ((t (:foreground "green"))))
+ (gui-button-face ((t (:background "grey75" :foreground "black"))))
+ (gui-element ((t (nil))))
+ (highlight ((t (:background "darkseagreen2" :foreground "blue"))))
+ (html-helper-bold-face ((t (:bold t))))
+ (html-helper-italic-face ((t (:bold t :foreground "yellow"))))
+ (html-helper-underline-face ((t (:underline t))))
+ (hyper-apropos-documentation ((t (:foreground "white"))))
+ (hyper-apropos-heading ((t (:bold t))))
+ (hyper-apropos-hyperlink ((t (:foreground "sky blue"))))
+ (hyper-apropos-major-heading ((t (:bold t))))
+ (hyper-apropos-section-heading ((t (:bold t))))
+ (hyper-apropos-warning ((t (:bold t :foreground "red"))))
+ (info-node ((t (:bold t :foreground "yellow"))))
+ (info-xref ((t (:bold t))))
+ (isearch ((t (:background "paleturquoise" :foreground "dark red"))))
+ (isearch-secondary ((t (:foreground "red3"))))
+ (italic ((t (:bold t :foreground "yellow"))))
+ (left-margin ((t (nil))))
+ (list-mode-item-selected ((t (:background "gray68" :foreground "dark green"))))
+ (man-bold ((t (:bold t))))
+ (man-heading ((t (:bold t))))
+ (man-italic ((t (:foreground "yellow"))))
+ (man-xref ((t (:underline t))))
+ (message-cited-text ((t (:foreground "orange"))))
+ (message-header-contents ((t (:foreground "white"))))
+ (message-headers ((t (:bold t :foreground "orange"))))
+ (message-highlighted-header-contents ((t (:bold t))))
+ (message-url ((t (:bold t :foreground "pink"))))
+ (mmm-face ((t (:background "black" :foreground "green"))))
+ (modeline ((t (nil))))
+ (modeline-buffer-id ((t (:background "Gray80" :foreground "blue4"))))
+ (modeline-mousable ((t (:background "Gray80" :foreground "firebrick"))))
+ (modeline-mousable-minor-mode ((t (:background "Gray80" :foreground "green4"))))
+ (paren-blink-off ((t (:foreground "gray80"))))
+ (paren-match ((t (:background "dark blue"))))
+ (paren-mismatch ((t (:background "DeepPink" :foreground "LightSkyBlue"))))
+ (pointer ((t (nil))))
+ (primary-selection ((t (:background "gray65" :foreground "DarkBlue"))))
+ (red ((t (:foreground "red"))))
+ (region ((t (:background "gray65" :foreground "DarkBlue"))))
+ (right-margin ((t (nil))))
+ (secondary-selection ((t (:background "paleturquoise" :foreground "black"))))
+ (shell-option-face ((t (:foreground "blue4"))))
+ (shell-output-2-face ((t (:foreground "green4"))))
+ (shell-output-3-face ((t (:foreground "green4"))))
+ (shell-output-face ((t (:bold t))))
+ (shell-prompt-face ((t (:foreground "red4"))))
+ (text-cursor ((t (:background "Red3" :foreground "black"))))
+ (toolbar ((t (:background "Gray80" :foreground "black"))))
+ (underline ((t (:underline t))))
+ (vertical-divider ((t (nil))))
+ (vm-xface ((t (:background "white" :foreground "black"))))
+ (vmpc-pre-sig-face ((t (:foreground "forestgreen"))))
+ (vmpc-sig-face ((t (:foreground "steelblue"))))
+ (widget ((t (nil))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85" :foreground "black"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (x-face ((t (:background "white" :foreground "black"))))
+ (xrdb-option-name-face ((t (:foreground "red"))))
+ (yellow ((t (:foreground "yellow"))))
+ (zmacs-region ((t (:background "gray65")))))))
+
+(defun color-theme-digital-ofs1 ()
+ "Color theme by Gareth Owen, created 2001-06-13.
+This works well on an old, beat-up Digital Unix box with its 256 colour
+display, on which other color themes hog too much of the palette.
+Black on some shade of dark peach. Includes bbdb, cperl, custom,
+cvs, diff, dired, ediff, erc, eshell, font-latex, font-lock, gnus,
+highlight, hproperty, html-helper, hyper-apropos, info, jde, man,
+message, paren, searchm, semantic, sgml, shell, speedbar, term,
+vhdl, viper, w3m, widget, woman, x-symbol, xref."
+ (interactive)
+ (color-theme-install
+ '(color-theme-digital-ofs1
+ ((background-color . "#CA94AA469193")
+ (background-mode . light)
+ (background-toolbar-color . "#cf3ccf3ccf3c")
+ (border-color . "black")
+ (bottom-toolbar-shadow-color . "#79e77df779e7")
+ (cursor-color . "Black")
+ (foreground-color . "Black")
+ (mouse-color . "Black")
+ (top-toolbar-shadow-color . "#fffffbeeffff")
+ (viper-saved-cursor-color-in-replace-mode . "Red3"))
+ ((Man-overstrike-face . bold)
+ (Man-underline-face . underline)
+ (gnus-mouse-face . highlight)
+ (goto-address-mail-face . italic)
+ (goto-address-mail-mouse-face . secondary-selection)
+ (goto-address-url-face . bold)
+ (goto-address-url-mouse-face . highlight)
+ (ispell-highlight-face . highlight)
+ (list-matching-lines-face . bold)
+ (rmail-highlight-face . font-lock-function-name-face)
+ (view-highlight-face . highlight))
+ (default ((t (:bold t))))
+ (bbdb-company ((t (:italic t))))
+ (bbdb-field-name ((t (:bold t))))
+ (bbdb-field-value ((t (nil))))
+ (bbdb-name ((t (:underline t))))
+ (blank-space-face ((t (nil))))
+ (blank-tab-face ((t (nil))))
+ (blue ((t (:bold t :foreground "blue"))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t))))
+ (border-glyph ((t (:bold t))))
+ (buffers-tab ((t (:background "black" :foreground "LightSkyBlue"))))
+ (calendar-today-face ((t (:underline t :bold t :foreground "white"))))
+ (comint-input-face ((t (nil))))
+ (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue"))))
+ (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red"))))
+ (cperl-here-face ((t (nil))))
+ (cperl-invalid-face ((t (:foreground "white"))))
+ (cperl-nonoverridable-face ((t (:foreground "chartreuse3"))))
+ (cperl-pod-face ((t (nil))))
+ (cperl-pod-head-face ((t (nil))))
+ (custom-button-face ((t (:bold t))))
+ (custom-changed-face ((t (:bold t :background "blue" :foreground "white"))))
+ (custom-comment-face ((t (:foreground "white"))))
+ (custom-comment-tag-face ((t (:foreground "white"))))
+ (custom-documentation-face ((t (:bold t))))
+ (custom-face-tag-face ((t (:underline t :bold t))))
+ (custom-group-tag-face ((t (:underline t :bold t :foreground "DarkBlue"))))
+ (custom-group-tag-face-1 ((t (:underline t :bold t :foreground "red"))))
+ (custom-invalid-face ((t (:bold t :background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:bold t :background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:bold t :background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t :bold t))))
+ (custom-set-face ((t (:bold t :background "white" :foreground "blue"))))
+ (custom-state-face ((t (:bold t :foreground "dark green"))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:underline t :bold t :foreground "blue"))))
+ (cvs-filename-face ((t (:foreground "white"))))
+ (cvs-handled-face ((t (:foreground "pink"))))
+ (cvs-header-face ((t (:bold t :foreground "green"))))
+ (cvs-marked-face ((t (:bold t :foreground "green3"))))
+ (cvs-msg-face ((t (:italic t :foreground "red"))))
+ (cvs-need-action-face ((t (:foreground "yellow"))))
+ (cvs-unknown-face ((t (:foreground "grey"))))
+ (cyan ((t (:foreground "cyan"))))
+ (diary-face ((t (:bold t :foreground "red"))))
+ (diff-added-face ((t (nil))))
+ (diff-changed-face ((t (nil))))
+ (diff-file-header-face ((t (:bold t :background "grey70"))))
+ (diff-hunk-header-face ((t (:background "grey85"))))
+ (diff-index-face ((t (:bold t :background "grey70"))))
+ (diff-removed-face ((t (nil))))
+ (dired-face-boring ((t (:foreground "Gray65"))))
+ (dired-face-directory ((t (:bold t))))
+ (dired-face-executable ((t (:foreground "SeaGreen"))))
+ (dired-face-flagged ((t (:background "LightSlateGray"))))
+ (dired-face-header ((t (:background "grey75" :foreground "black"))))
+ (dired-face-marked ((t (:background "PaleVioletRed"))))
+ (dired-face-permissions ((t (:background "grey75" :foreground "black"))))
+ (dired-face-setuid ((t (:foreground "Red"))))
+ (dired-face-socket ((t (:foreground "magenta"))))
+ (dired-face-symlink ((t (:foreground "cyan"))))
+ (display-time-mail-balloon-enhance-face ((t (:bold t :background "orange"))))
+ (display-time-mail-balloon-gnus-group-face ((t (:bold t :foreground "blue"))))
+ (display-time-time-balloon-face ((t (:bold t :foreground "red"))))
+ (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick"))))
+ (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black"))))
+ (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid"))))
+ (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy"))))
+ (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black"))))
+ (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black"))))
+ (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy"))))
+ (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black"))))
+ (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black"))))
+ (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black"))))
+ (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White"))))
+ (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black"))))
+ (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black"))))
+ (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White"))))
+ (erc-action-face ((t (:bold t))))
+ (erc-bold-face ((t (:bold t))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (nil))))
+ (erc-error-face ((t (:bold t))))
+ (erc-input-face ((t (nil))))
+ (erc-inverse-face ((t (nil))))
+ (erc-notice-face ((t (nil))))
+ (erc-pal-face ((t (nil))))
+ (erc-prompt-face ((t (nil))))
+ (erc-underline-face ((t (nil))))
+ (eshell-ls-archive-face ((t (:bold t :foreground "Orchid"))))
+ (eshell-ls-backup-face ((t (:foreground "OrangeRed"))))
+ (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed"))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "Blue"))))
+ (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen"))))
+ (eshell-ls-missing-face ((t (:bold t :foreground "Red"))))
+ (eshell-ls-picture-face ((t (:foreground "Violet"))))
+ (eshell-ls-product-face ((t (:foreground "OrangeRed"))))
+ (eshell-ls-readonly-face ((t (:foreground "Brown"))))
+ (eshell-ls-special-face ((t (:bold t :foreground "Magenta"))))
+ (eshell-ls-symlink-face ((t (:bold t :foreground "DarkCyan"))))
+ (eshell-ls-text-face ((t (:foreground "medium aquamarine"))))
+ (eshell-ls-todo-face ((t (:bold t :foreground "aquamarine"))))
+ (eshell-ls-unreadable-face ((t (:foreground "Grey30"))))
+ (eshell-prompt-face ((t (:bold t :foreground "Red"))))
+ (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed"))))
+ (eshell-test-ok-face ((t (:bold t :foreground "Green"))))
+ (excerpt ((t (:italic t))))
+ (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue"))))
+ (fg:black ((t (:foreground "black"))))
+ (fixed ((t (:bold t))))
+ (fl-comment-face ((t (:foreground "medium purple"))))
+ (fl-doc-string-face ((t (nil))))
+ (fl-function-name-face ((t (:foreground "green"))))
+ (fl-keyword-face ((t (:foreground "LightGreen"))))
+ (fl-string-face ((t (:foreground "light coral"))))
+ (fl-type-face ((t (:foreground "cyan"))))
+ (flyspell-duplicate-face ((t (:underline t :bold t :foreground "Gold3"))))
+ (flyspell-incorrect-face ((t (:underline t :bold t :foreground "OrangeRed"))))
+ (font-latex-bold-face ((t (:bold t))))
+ (font-latex-italic-face ((t (:italic t))))
+ (font-latex-math-face ((t (nil))))
+ (font-latex-sedate-face ((t (nil))))
+ (font-latex-string-face ((t (nil))))
+ (font-latex-warning-face ((t (nil))))
+ (font-lock-builtin-face ((t (:italic t :bold t :foreground "Orchid"))))
+ (font-lock-comment-face ((t (:bold t :foreground "Firebrick"))))
+ (font-lock-constant-face ((t (:italic t :bold t :foreground "CadetBlue"))))
+ (font-lock-doc-string-face ((t (:italic t :bold t :foreground "green4"))))
+ (font-lock-emphasized-face ((t (:bold t))))
+ (font-lock-exit-face ((t (:foreground "green"))))
+ (font-lock-function-name-face ((t (:italic t :bold t :foreground "Blue"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "dark olive green"))))
+ (font-lock-other-emphasized-face ((t (:italic t :bold t))))
+ (font-lock-other-type-face ((t (:bold t :foreground "DarkBlue"))))
+ (font-lock-preprocessor-face ((t (:italic t :bold t :foreground "blue3"))))
+ (font-lock-reference-face ((t (:italic t :bold t :foreground "red3"))))
+ (font-lock-special-comment-face ((t (nil))))
+ (font-lock-special-keyword-face ((t (nil))))
+ (font-lock-string-face ((t (:italic t :bold t :foreground "DarkBlue"))))
+ (font-lock-type-face ((t (:italic t :bold t :foreground "DarkGreen"))))
+ (font-lock-variable-name-face ((t (:italic t :bold t :foreground "darkgreen"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red"))))
+ (fringe ((t (:background "grey95"))))
+ (gdb-arrow-face ((t (:bold t))))
+ (gnus-cite-attribution-face ((t (:italic t :bold t))))
+ (gnus-cite-face-1 ((t (:bold t :foreground "MidnightBlue"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:bold t :foreground "firebrick"))))
+ (gnus-cite-face-3 ((t (:bold t :foreground "dark green"))))
+ (gnus-cite-face-4 ((t (:foreground "OrangeRed"))))
+ (gnus-cite-face-5 ((t (:foreground "dark khaki"))))
+ (gnus-cite-face-6 ((t (:bold t :foreground "dark violet"))))
+ (gnus-cite-face-7 ((t (:foreground "SteelBlue4"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-cite-face-list ((t (nil))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (:italic t))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:underline t :bold t))))
+ (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t))))
+ (gnus-emphasis-underline-italic ((t (:underline t :italic t))))
+ (gnus-filterhist-face-1 ((t (nil))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "magenta4"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4"))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-header-content-face ((t (:italic t :foreground "indianred4"))))
+ (gnus-header-from-face ((t (:bold t :foreground "red3"))))
+ (gnus-header-name-face ((t (:bold t :foreground "maroon"))))
+ (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "MidnightBlue"))))
+ (gnus-header-subject-face ((t (:bold t :foreground "red4"))))
+ (gnus-picons-face ((t (:background "white" :foreground "black"))))
+ (gnus-picons-xbm-face ((t (:background "white" :foreground "black"))))
+ (gnus-signature-face ((t (:italic t :bold t))))
+ (gnus-splash ((t (nil))))
+ (gnus-splash-face ((t (:foreground "Brown"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick"))))
+ (gnus-summary-high-unread-face ((t (:italic t :bold t))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue"))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen"))))
+ (gnus-summary-low-ticked-face ((t (:italic t :bold t :foreground "firebrick"))))
+ (gnus-summary-low-unread-face ((t (:italic t))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "DarkGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:bold t :foreground "firebrick"))))
+ (gnus-summary-normal-unread-face ((t (:bold t))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (gnus-x-face ((t (:background "white" :foreground "black"))))
+ (green ((t (:bold t :foreground "green"))))
+ (gui-button-face ((t (:bold t :background "grey75" :foreground "black"))))
+ (gui-element ((t (:bold t :background "Gray80"))))
+ (highlight ((t (:bold t :background "darkseagreen2"))))
+ (highlight-changes-delete-face ((t (:underline t :foreground "red"))))
+ (highlight-changes-face ((t (:foreground "red"))))
+ (highline-face ((t (:background "black" :foreground "white"))))
+ (holiday-face ((t (:bold t :background "pink" :foreground "white"))))
+ (hproperty:but-face ((t (:bold t))))
+ (hproperty:flash-face ((t (:bold t))))
+ (hproperty:highlight-face ((t (:bold t))))
+ (hproperty:item-face ((t (:bold t))))
+ (html-helper-bold-face ((t (:bold t))))
+ (html-helper-bold-italic-face ((t (nil))))
+ (html-helper-builtin-face ((t (:underline t :foreground "blue3"))))
+ (html-helper-italic-face ((t (:italic t :bold t :foreground "yellow"))))
+ (html-helper-underline-face ((t (:underline t))))
+ (html-tag-face ((t (:bold t))))
+ (hyper-apropos-documentation ((t (:foreground "white"))))
+ (hyper-apropos-heading ((t (:bold t))))
+ (hyper-apropos-hyperlink ((t (:foreground "sky blue"))))
+ (hyper-apropos-major-heading ((t (:bold t))))
+ (hyper-apropos-section-heading ((t (:bold t))))
+ (hyper-apropos-warning ((t (:bold t :foreground "red"))))
+ (ibuffer-marked-face ((t (:foreground "red"))))
+ (info-menu-5 ((t (:underline t :bold t))))
+ (info-menu-6 ((t (nil))))
+ (info-node ((t (:italic t :bold t))))
+ (info-xref ((t (:bold t))))
+ (isearch ((t (:bold t :background "paleturquoise"))))
+ (isearch-secondary ((t (:foreground "red3"))))
+ (ispell-face ((t (:bold t))))
+ (italic ((t (:italic t :bold t))))
+ (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan"))))
+ (jde-bug-breakpoint-marker ((t (:background "yellow" :foreground "red"))))
+ (jde-java-font-lock-link-face ((t (:underline t :foreground "blue"))))
+ (jde-java-font-lock-number-face ((t (:foreground "RosyBrown"))))
+ (lazy-highlight-face ((t (:bold t :foreground "dark magenta"))))
+ (left-margin ((t (:bold t))))
+ (linemenu-face ((t (nil))))
+ (list-mode-item-selected ((t (:bold t :background "gray68"))))
+ (magenta ((t (:foreground "magenta"))))
+ (makefile-space-face ((t (:background "hotpink"))))
+ (man-bold ((t (:bold t))))
+ (man-heading ((t (:bold t))))
+ (man-italic ((t (:foreground "yellow"))))
+ (man-xref ((t (:underline t))))
+ (message-cited-text ((t (:bold t :foreground "orange"))))
+ (message-cited-text-face ((t (:bold t :foreground "red"))))
+ (message-header-cc-face ((t (:bold t :foreground "MidnightBlue"))))
+ (message-header-contents ((t (:italic t :bold t :foreground "white"))))
+ (message-header-name-face ((t (:bold t :foreground "cornflower blue"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4"))))
+ (message-header-other-face ((t (:bold t :foreground "steel blue"))))
+ (message-header-subject-face ((t (:bold t :foreground "navy blue"))))
+ (message-header-to-face ((t (:bold t :foreground "MidnightBlue"))))
+ (message-header-xheader-face ((t (:bold t :foreground "blue"))))
+ (message-headers ((t (:bold t :foreground "orange"))))
+ (message-highlighted-header-contents ((t (:bold t))))
+ (message-mml-face ((t (:bold t :foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (message-url ((t (:bold t :foreground "pink"))))
+ (mmm-face ((t (:background "black" :foreground "green"))))
+ (modeline ((t (:bold t :background "Black" :foreground "#CA94AA469193"))))
+ (modeline-buffer-id ((t (:bold t :background "Gray80" :foreground "blue4"))))
+ (modeline-mousable ((t (:bold t :background "Gray80" :foreground "firebrick"))))
+ (modeline-mousable-minor-mode ((t (:bold t :background "Gray80" :foreground "green4"))))
+ (my-tab-face ((t (nil))))
+ (nil ((t (nil))))
+ (p4-diff-del-face ((t (:bold t))))
+ (paren-blink-off ((t (:foreground "gray80"))))
+ (paren-face ((t (nil))))
+ (paren-face-match ((t (nil))))
+ (paren-face-mismatch ((t (nil))))
+ (paren-face-no-match ((t (nil))))
+ (paren-match ((t (:background "darkseagreen2"))))
+ (paren-mismatch ((t (:background "DeepPink" :foreground "black"))))
+ (paren-mismatch-face ((t (:bold t :background "DeepPink" :foreground "white"))))
+ (paren-no-match-face ((t (:bold t :background "yellow" :foreground "white"))))
+ (pointer ((t (:bold t))))
+ (primary-selection ((t (:bold t :background "gray65"))))
+ (red ((t (:bold t :foreground "red"))))
+ (region ((t (:bold t :background "gray"))))
+ (right-margin ((t (:bold t))))
+ (searchm-buffer ((t (:bold t))))
+ (searchm-button ((t (:bold t))))
+ (searchm-field ((t (nil))))
+ (searchm-field-label ((t (:bold t))))
+ (searchm-highlight ((t (:bold t))))
+ (secondary-selection ((t (:bold t :background "paleturquoise"))))
+ (semantic-intangible-face ((t (:foreground "gray25"))))
+ (semantic-read-only-face ((t (:background "gray25"))))
+ (senator-momentary-highlight-face ((t (:background "gray70"))))
+ (setnu-line-number-face ((t (:italic t :bold t))))
+ (sgml-comment-face ((t (:foreground "dark green"))))
+ (sgml-doctype-face ((t (:foreground "maroon"))))
+ (sgml-end-tag-face ((t (:foreground "blue2"))))
+ (sgml-entity-face ((t (:foreground "red2"))))
+ (sgml-ignored-face ((t (:background "gray90" :foreground "maroon"))))
+ (sgml-ms-end-face ((t (:foreground "maroon"))))
+ (sgml-ms-start-face ((t (:foreground "maroon"))))
+ (sgml-pi-face ((t (:foreground "maroon"))))
+ (sgml-sgml-face ((t (:foreground "maroon"))))
+ (sgml-short-ref-face ((t (:foreground "goldenrod"))))
+ (sgml-start-tag-face ((t (:foreground "blue2"))))
+ (shell-input-face ((t (:bold t))))
+ (shell-option-face ((t (:bold t :foreground "blue4"))))
+ (shell-output-2-face ((t (:bold t :foreground "green4"))))
+ (shell-output-3-face ((t (:bold t :foreground "green4"))))
+ (shell-output-face ((t (:bold t))))
+ (shell-prompt-face ((t (:bold t :foreground "red4"))))
+ (show-paren-match-face ((t (:bold t :background "turquoise"))))
+ (show-paren-mismatch-face ((t (:bold t :background "purple" :foreground "white"))))
+ (speedbar-button-face ((t (:bold t :foreground "magenta"))))
+ (speedbar-directory-face ((t (:bold t :foreground "orchid"))))
+ (speedbar-file-face ((t (:bold t :foreground "pink"))))
+ (speedbar-highlight-face ((t (:background "black"))))
+ (speedbar-selected-face ((t (:underline t :foreground "cyan"))))
+ (speedbar-tag-face ((t (:foreground "yellow"))))
+ (swbuff-current-buffer-face ((t (:bold t :foreground "red"))))
+ (template-message-face ((t (:bold t))))
+ (term-black ((t (:foreground "black"))))
+ (term-blackbg ((t (:background "black"))))
+ (term-blue ((t (:foreground "blue"))))
+ (term-blue-bold-face ((t (:bold t :background "snow2" :foreground "blue"))))
+ (term-blue-face ((t (:foreground "blue"))))
+ (term-blue-inv-face ((t (:background "blue"))))
+ (term-blue-ul-face ((t (:underline t :background "snow2" :foreground "blue"))))
+ (term-bluebg ((t (:background "blue"))))
+ (term-bold ((t (:bold t))))
+ (term-cyan ((t (:foreground "cyan"))))
+ (term-cyan-bold-face ((t (:bold t :background "snow2" :foreground "cyan"))))
+ (term-cyan-face ((t (:foreground "cyan"))))
+ (term-cyan-inv-face ((t (:background "cyan"))))
+ (term-cyan-ul-face ((t (:underline t :background "snow2" :foreground "cyan"))))
+ (term-cyanbg ((t (:background "cyan"))))
+ (term-default-bg ((t (nil))))
+ (term-default-bg-inv ((t (nil))))
+ (term-default-bold-face ((t (:bold t :background "snow2" :foreground "darkslategray"))))
+ (term-default-face ((t (:background "snow2" :foreground "darkslategray"))))
+ (term-default-fg ((t (nil))))
+ (term-default-fg-inv ((t (nil))))
+ (term-default-inv-face ((t (:background "darkslategray" :foreground "snow2"))))
+ (term-default-ul-face ((t (:underline t :background "snow2" :foreground "darkslategray"))))
+ (term-green ((t (:foreground "green"))))
+ (term-green-bold-face ((t (:bold t :background "snow2" :foreground "green"))))
+ (term-green-face ((t (:foreground "green"))))
+ (term-green-inv-face ((t (:background "green"))))
+ (term-green-ul-face ((t (:underline t :background "snow2" :foreground "green"))))
+ (term-greenbg ((t (:background "green"))))
+ (term-invisible ((t (nil))))
+ (term-invisible-inv ((t (nil))))
+ (term-magenta ((t (:foreground "magenta"))))
+ (term-magenta-bold-face ((t (:bold t :background "snow2" :foreground "magenta"))))
+ (term-magenta-face ((t (:foreground "magenta"))))
+ (term-magenta-inv-face ((t (:background "magenta"))))
+ (term-magenta-ul-face ((t (:underline t :background "snow2" :foreground "magenta"))))
+ (term-magentabg ((t (:background "magenta"))))
+ (term-red ((t (:foreground "red"))))
+ (term-red-bold-face ((t (:bold t :background "snow2" :foreground "red"))))
+ (term-red-face ((t (:foreground "red"))))
+ (term-red-inv-face ((t (:background "red"))))
+ (term-red-ul-face ((t (:underline t :background "snow2" :foreground "red"))))
+ (term-redbg ((t (:background "red"))))
+ (term-underline ((t (:underline t))))
+ (term-white ((t (:foreground "white"))))
+ (term-white-bold-face ((t (:bold t :background "snow2" :foreground "white"))))
+ (term-white-face ((t (:foreground "white"))))
+ (term-white-inv-face ((t (:background "snow2"))))
+ (term-white-ul-face ((t (:underline t :background "snow2" :foreground "white"))))
+ (term-whitebg ((t (:background "white"))))
+ (term-yellow ((t (:foreground "yellow"))))
+ (term-yellow-bold-face ((t (:bold t :background "snow2" :foreground "yellow"))))
+ (term-yellow-face ((t (:foreground "yellow"))))
+ (term-yellow-inv-face ((t (:background "yellow"))))
+ (term-yellow-ul-face ((t (:underline t :background "snow2" :foreground "yellow"))))
+ (term-yellowbg ((t (:background "yellow"))))
+ (text-cursor ((t (:bold t :background "Red3" :foreground "gray80"))))
+ (toolbar ((t (:bold t :background "Gray80"))))
+ (underline ((t (:underline t :bold t))))
+ (vc-annotate-face-0046FF ((t (nil))))
+ (vcursor ((t (:underline t :background "cyan" :foreground "blue"))))
+ (vertical-divider ((t (:bold t :background "Gray80"))))
+ (vhdl-font-lock-attribute-face ((t (:foreground "Orchid"))))
+ (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue"))))
+ (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4"))))
+ (vhdl-font-lock-function-face ((t (:foreground "Orchid4"))))
+ (vhdl-font-lock-generic-/constant-face ((t (nil))))
+ (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red"))))
+ (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange"))))
+ (vhdl-font-lock-translate-off-face ((t (:background "LightGray"))))
+ (vhdl-font-lock-type-face ((t (nil))))
+ (vhdl-font-lock-variable-face ((t (nil))))
+ (vhdl-speedbar-architecture-face ((t (:foreground "Blue"))))
+ (vhdl-speedbar-architecture-selected-face ((t (:underline t :foreground "Blue"))))
+ (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod"))))
+ (vhdl-speedbar-configuration-selected-face ((t (:underline t :foreground "DarkGoldenrod"))))
+ (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen"))))
+ (vhdl-speedbar-entity-selected-face ((t (:underline t :foreground "ForestGreen"))))
+ (vhdl-speedbar-instantiation-face ((t (:foreground "Brown"))))
+ (vhdl-speedbar-instantiation-selected-face ((t (:underline t :foreground "Brown"))))
+ (vhdl-speedbar-package-face ((t (:foreground "Grey50"))))
+ (vhdl-speedbar-package-selected-face ((t (:underline t :foreground "Grey50"))))
+ (vhdl-speedbar-subprogram-face ((t (nil))))
+ (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black"))))
+ (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen"))))
+ (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-search-face ((t (:background "khaki" :foreground "Black"))))
+ (vm-xface ((t (:background "white" :foreground "black"))))
+ (vmpc-pre-sig-face ((t (:foreground "forestgreen"))))
+ (vmpc-sig-face ((t (:foreground "steelblue"))))
+ (vvb-face ((t (nil))))
+ (w3m-anchor-face ((t (:bold t :foreground "DodgerBlue1"))))
+ (w3m-arrived-anchor-face ((t (:bold t :foreground "DodgerBlue3"))))
+ (w3m-header-line-location-content-face ((t (:background "dark olive green" :foreground "wheat"))))
+ (w3m-header-line-location-title-face ((t (:background "dark olive green" :foreground "beige"))))
+ (white ((t (:foreground "white"))))
+ (widget ((t (nil))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:bold t :foreground "red"))))
+ (widget-documentation-face ((t (:bold t :foreground "dark green"))))
+ (widget-field-face ((t (:bold t :background "gray85"))))
+ (widget-inactive-face ((t (:bold t :foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "gray85"))))
+ (woman-bold-face ((t (:bold t))))
+ (woman-italic-face ((t (:foreground "beige"))))
+ (woman-unknown-face ((t (:foreground "LightSalmon"))))
+ (x-face ((t (:bold t :background "white" :foreground "black"))))
+ (x-symbol-adobe-fontspecific-face ((t (nil))))
+ (x-symbol-face ((t (nil))))
+ (x-symbol-heading-face ((t (:bold t))))
+ (x-symbol-info-face ((t (nil))))
+ (x-symbol-invisible-face ((t (nil))))
+ (x-symbol-revealed-face ((t (nil))))
+ (xrdb-option-name-face ((t (:foreground "red"))))
+ (xref-keyword-face ((t (:foreground "blue"))))
+ (xref-list-default-face ((t (nil))))
+ (xref-list-pilot-face ((t (:foreground "navy"))))
+ (xref-list-symbol-face ((t (:foreground "navy"))))
+ (yellow ((t (:bold t :foreground "yellow"))))
+ (zmacs-region ((t (:bold t :background "gray65")))))))
+
+(defun color-theme-mistyday ()
+ "Color theme by K.C. Hari Kumar, created 2001-06-13.
+Black on mistyrose. Includes CUA, calendar, diary, font-latex and
+font-lock. Uses backgrounds on some font-lock faces."
+ (interactive)
+ (color-theme-install
+ '(color-theme-mistyday
+ ((background-color . "mistyrose")
+ (background-mode . light)
+ (border-color . "black")
+ (cursor-color . "deep pink")
+ (foreground-color . "Black")
+ (mouse-color . "black"))
+ ((goto-address-mail-face . italic)
+ (goto-address-mail-mouse-face . secondary-selection)
+ (goto-address-url-face . bold)
+ (goto-address-url-mouse-face . highlight)
+ (list-matching-lines-face . bold)
+ (paren-match-face . paren-face-match)
+ (paren-mismatch-face . paren-face-mismatch)
+ (paren-no-match-face . paren-face-no-match))
+ (default ((t (nil))))
+ (CUA-global-mark-face ((t (:background "cyan" :foreground "black"))))
+ (CUA-rectangle-face ((t (:background "maroon" :foreground "white"))))
+ (CUA-rectangle-noselect-face ((t (:background "dimgray" :foreground "white"))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t))))
+ (calendar-today-face ((t (:underline t :background "Spring Green" :foreground "Brown"))))
+ (custom-button-face ((t (:background "dark slate grey" :foreground "azure"))))
+ (custom-documentation-face ((t (:background "white" :foreground "blue"))))
+ (diary-face ((t (:background "navy" :foreground "yellow"))))
+ (font-latex-bold-face ((t (:bold t :foreground "DarkOliveGreen"))))
+ (font-latex-italic-face ((t (:italic t :foreground "DarkOliveGreen"))))
+ (font-latex-math-face ((t (:foreground "navy"))))
+ (font-latex-sedate-face ((t (:foreground "DimGray"))))
+ (font-latex-string-face ((t (nil))))
+ (font-latex-warning-face ((t (nil))))
+ (font-lock-builtin-face ((t (:background "DarkTurquoise" :foreground "Navy"))))
+ (font-lock-comment-face ((t (:italic t :foreground "royal blue"))))
+ (font-lock-constant-face ((t (:background "pale green" :foreground "dark slate blue"))))
+ (font-lock-doc-string-face ((t (:background "medium aquamarine" :foreground "deep pink"))))
+ (font-lock-function-name-face ((t (:background "SpringGreen" :foreground "MidnightBlue"))))
+ (font-lock-keyword-face ((t (:foreground "dark magenta"))))
+ (font-lock-preprocessor-face ((t (:background "pale green" :foreground "dark slate blue"))))
+ (font-lock-reference-face ((t (:background "DarkTurquoise" :foreground "Navy"))))
+ (font-lock-string-face ((t (:background "medium aquamarine" :foreground "deep pink"))))
+ (font-lock-type-face ((t (:background "steel blue" :foreground "khaki"))))
+ (font-lock-variable-name-face ((t (:background "thistle" :foreground "orange red"))))
+ (font-lock-warning-face ((t (:background "LemonChiffon" :foreground "Red"))))
+ (highlight ((t (:background "dark slate grey" :foreground "light cyan"))))
+ (holiday-face ((t (:background "orangered" :foreground "lightyellow"))))
+ (ido-first-match-face ((t (:bold t))))
+ (ido-only-match-face ((t (:foreground "ForestGreen"))))
+ (ido-subdir-face ((t (:foreground "red"))))
+ (italic ((t (:italic t))))
+ (isearch ((t (:background "sienna" :foreground "light cyan"))))
+ (modeline ((t (:background "Royalblue4" :foreground "lawn green"))))
+ (modeline-buffer-id ((t (:background "Royalblue4" :foreground "lawn green"))))
+ (modeline-mousable ((t (:background "Royalblue4" :foreground "lawn green"))))
+ (modeline-mousable-minor-mode ((t (:background "Royalblue4" :foreground "lawn green"))))
+ (paren-face-match ((t (:background "turquoise"))))
+ (paren-face-mismatch ((t (:background "purple" :foreground "white"))))
+ (paren-face-no-match ((t (:background "yellow" :foreground "black"))))
+ (primary-selection ((t (:background "sienna" :foreground "light cyan"))))
+ (region ((t (:background "sienna" :foreground "light cyan"))))
+ (secondary-selection ((t (:background "forest green" :foreground "white smoke"))))
+ (underline ((t (:underline t))))
+ (zmacs-region ((t (:background "sienna" :foreground "light cyan")))))))
+
+(defun color-theme-marine ()
+ "Color theme by Girish Bharadwaj, created 2001-06-22.
+Matches the MS Windows Marine color theme.
+Includes custom, font-lock, paren, widget."
+ (interactive)
+ (color-theme-install
+ '(color-theme-marine
+ ((background-color . "#9dcec9")
+ (background-mode . light)
+ (border-color . "black")
+ (cursor-color . "yellow")
+ (foreground-color . "darkslategray")
+ (mouse-color . "sienna1"))
+ ((buffers-tab-face . buffers-tab)
+ (gnus-mouse-face . highlight)
+ (smiley-mouse-face . highlight))
+ (default ((t (nil))))
+ (blue ((t (:foreground "blue"))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (nil))))
+ (border-glyph ((t (nil))))
+ (buffers-tab ((t (:background "#9dcec9" :foreground "darkslategray"))))
+ (custom-button-face ((t (nil))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-comment-face ((t (:background "gray85"))))
+ (custom-comment-tag-face ((t (:foreground "blue4"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:underline t :foreground "blue"))))
+ (custom-group-tag-face-1 ((t (:underline t :foreground "deeppink"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "darkgreen"))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:underline t :foreground "blue"))))
+ (display-time-mail-balloon-enhance-face ((t (:background "orange"))))
+ (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue"))))
+ (display-time-time-balloon-face ((t (:foreground "red"))))
+ (font-lock-builtin-face ((t (:foreground "SteelBlue"))))
+ (font-lock-comment-face ((t (:foreground "cadetblue"))))
+ (font-lock-constant-face ((t (:foreground "OrangeRed"))))
+ (font-lock-doc-string-face ((t (:foreground "Salmon"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "NavyBlue"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "purple"))))
+ (font-lock-preprocessor-face ((t (:foreground "SteelBlue"))))
+ (font-lock-reference-face ((t (:foreground "SteelBlue"))))
+ (font-lock-string-face ((t (:foreground "royalblue"))))
+ (font-lock-type-face ((t (:foreground "darkmagenta"))))
+ (font-lock-variable-name-face ((t (:foreground "violetred"))))
+ (font-lock-warning-face ((t (:bold t :foreground "red"))))
+ (green ((t (:foreground "green"))))
+ (gui-button-face ((t (:background "grey75" :foreground "black"))))
+ (gui-element ((t (:background "#489088" :foreground "black"))))
+ (highlight ((t (:background "darkolivegreen" :foreground "white"))))
+ (isearch ((t (:background "blue"))))
+ (isearch-secondary ((t (:foreground "red3"))))
+ (italic ((t (nil))))
+ (left-margin ((t (nil))))
+ (list-mode-item-selected ((t (:background "gray68" :foreground "darkslategray"))))
+ (modeline ((t (:background "black" :foreground "white"))))
+ (modeline-buffer-id ((t (:background "black" :foreground "white"))))
+ (modeline-mousable ((t (:background "black" :foreground "white"))))
+ (modeline-mousable-minor-mode ((t (:background "black" :foreground "white"))))
+ (paren-blink-off ((t (:foreground "black"))))
+ (paren-match ((t (:background "darkolivegreen" :foreground "white"))))
+ (paren-mismatch ((t (:background "#9dcec9" :foreground "darkslategray"))))
+ (pointer ((t (nil))))
+ (primary-selection ((t (:background "blue"))))
+ (red ((t (:foreground "red"))))
+ (region ((t (:background "blue"))))
+ (right-margin ((t (nil))))
+ (secondary-selection ((t (:background "darkslateblue" :foreground "white"))))
+ (template-message-face ((t (:bold t))))
+ (text-cursor ((t (:background "yellow" :foreground "#9dcec9"))))
+ (toolbar ((t (nil))))
+ (underline ((t (:underline t))))
+ (vertical-divider ((t (nil))))
+ (widget ((t (nil))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "forestgreen"))))
+ (widget-field-face ((t (:background "gray"))))
+ (widget-inactive-face ((t (:foreground "dimgray"))))
+ (widget-single-line-field-face ((t (:background "dim gray" :foreground "white"))))
+ (yellow ((t (:foreground "yellow"))))
+ (zmacs-region ((t (:background "blue")))))))
+
+(defun color-theme-blue-erc ()
+ "Color theme for erc faces only.
+This is intended for other color themes to use (eg. `color-theme-gnome2')."
+ (color-theme-install
+ '(color-theme-blue-erc
+ nil
+ (erc-action-face ((t (nil))))
+ (erc-bold-face ((t (:bold t))))
+ (erc-current-nick-face ((t (:bold t :foreground "yellow"))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (:foreground "pale green"))))
+ (erc-error-face ((t (:bold t :foreground "IndianRed"))))
+ (erc-highlight-face ((t (:bold t :foreground "pale green"))))
+ (erc-input-face ((t (:foreground "light blue"))))
+ (erc-inverse-face ((t (:background "steel blue"))))
+ (erc-keyword-face ((t (:foreground "orange" :bold t))))
+ (erc-notice-face ((t (:foreground "light salmon"))))
+ (erc-notice-face ((t (:foreground "MediumAquamarine"))))
+ (erc-pal-face ((t (:foreground "pale green"))))
+ (erc-prompt-face ((t (:foreground "light blue" :bold t))))
+ (fg:erc-color-face0 ((t (:foreground "white"))))
+ (fg:erc-color-face1 ((t (:foreground "beige"))))
+ (fg:erc-color-face2 ((t (:foreground "lemon chiffon"))))
+ (fg:erc-color-face3 ((t (:foreground "light cyan"))))
+ (fg:erc-color-face4 ((t (:foreground "powder blue"))))
+ (fg:erc-color-face5 ((t (:foreground "sky blue"))))
+ (fg:erc-color-face6 ((t (:foreground "dark sea green"))))
+ (fg:erc-color-face7 ((t (:foreground "pale green"))))
+ (fg:erc-color-face8 ((t (:foreground "medium spring green"))))
+ (fg:erc-color-face9 ((t (:foreground "khaki"))))
+ (fg:erc-color-face10 ((t (:foreground "pale goldenrod"))))
+ (fg:erc-color-face11 ((t (:foreground "light goldenrod yellow"))))
+ (fg:erc-color-face12 ((t (:foreground "light yellow"))))
+ (fg:erc-color-face13 ((t (:foreground "yellow"))))
+ (fg:erc-color-face14 ((t (:foreground "light goldenrod"))))
+ (fg:erc-color-face15 ((t (:foreground "lime green"))))
+ (bg:erc-color-face0 ((t (nil))))
+ (bg:erc-color-face1 ((t (nil))))
+ (bg:erc-color-face2 ((t (nil))))
+ (bg:erc-color-face3 ((t (nil))))
+ (bg:erc-color-face4 ((t (nil))))
+ (bg:erc-color-face5 ((t (nil))))
+ (bg:erc-color-face6 ((t (nil))))
+ (bg:erc-color-face7 ((t (nil))))
+ (bg:erc-color-face8 ((t (nil))))
+ (bg:erc-color-face9 ((t (nil))))
+ (bg:erc-color-face10 ((t (nil))))
+ (bg:erc-color-face11 ((t (nil))))
+ (bg:erc-color-face12 ((t (nil))))
+ (bg:erc-color-face13 ((t (nil))))
+ (bg:erc-color-face14 ((t (nil))))
+ (bg:erc-color-face15 ((t (nil)))))))
+
+(defun color-theme-dark-erc ()
+ "Color theme for erc faces only.
+This is intended for other color themes to use (eg. `color-theme-late-night')."
+ (interactive)
+ (color-theme-install
+ '(color-theme-dark-erc
+ nil
+ (erc-action-face ((t (nil))))
+ (erc-bold-face ((t (:bold t))))
+ (erc-current-nick-face ((t (:bold t))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (nil))))
+ (erc-error-face ((t (:bold t :foreground "IndianRed"))))
+ (erc-highlight-face ((t (:bold t :foreground "pale green"))))
+ (erc-input-face ((t (:foreground "#555"))))
+ (erc-inverse-face ((t (:background "steel blue"))))
+ (erc-keyword-face ((t (:foreground "#999" :bold t))))
+ (erc-nick-msg-face ((t (:foreground "#888"))))
+ (erc-notice-face ((t (:foreground "#444"))))
+ (erc-pal-face ((t (:foreground "#888"))))
+ (erc-prompt-face ((t (:foreground "#777" :bold t))))
+ (erc-timestamp-face ((t (:foreground "#777" :bold t))))
+ (fg:erc-color-face0 ((t (:foreground "white"))))
+ (fg:erc-color-face1 ((t (:foreground "beige"))))
+ (fg:erc-color-face2 ((t (:foreground "lemon chiffon"))))
+ (fg:erc-color-face3 ((t (:foreground "light cyan"))))
+ (fg:erc-color-face4 ((t (:foreground "powder blue"))))
+ (fg:erc-color-face5 ((t (:foreground "sky blue"))))
+ (fg:erc-color-face6 ((t (:foreground "dark sea green"))))
+ (fg:erc-color-face7 ((t (:foreground "pale green"))))
+ (fg:erc-color-face8 ((t (:foreground "medium spring green"))))
+ (fg:erc-color-face9 ((t (:foreground "khaki"))))
+ (fg:erc-color-face10 ((t (:foreground "pale goldenrod"))))
+ (fg:erc-color-face11 ((t (:foreground "light goldenrod yellow"))))
+ (fg:erc-color-face12 ((t (:foreground "light yellow"))))
+ (fg:erc-color-face13 ((t (:foreground "yellow"))))
+ (fg:erc-color-face14 ((t (:foreground "light goldenrod"))))
+ (fg:erc-color-face15 ((t (:foreground "lime green"))))
+ (bg:erc-color-face0 ((t (nil))))
+ (bg:erc-color-face1 ((t (nil))))
+ (bg:erc-color-face2 ((t (nil))))
+ (bg:erc-color-face3 ((t (nil))))
+ (bg:erc-color-face4 ((t (nil))))
+ (bg:erc-color-face5 ((t (nil))))
+ (bg:erc-color-face6 ((t (nil))))
+ (bg:erc-color-face7 ((t (nil))))
+ (bg:erc-color-face8 ((t (nil))))
+ (bg:erc-color-face9 ((t (nil))))
+ (bg:erc-color-face10 ((t (nil))))
+ (bg:erc-color-face11 ((t (nil))))
+ (bg:erc-color-face12 ((t (nil))))
+ (bg:erc-color-face13 ((t (nil))))
+ (bg:erc-color-face14 ((t (nil))))
+ (bg:erc-color-face15 ((t (nil)))))))
+
+(defun color-theme-subtle-blue ()
+ "Color theme by Chris McMahan, created 2001-09-06.
+Light blue background. Includes bbdb, comint, cperl, custom, cvs,
+diary, dired, display-time, ecb, ediff, erc, eshell, font-lock,
+gnus, html-helper, info, isearch, jde, message, paren, semantic,
+sgml, speedbar, term, vhdl, viper, vm, widget, woman, xref, xxml."
+ (interactive)
+ (color-theme-install
+ '(color-theme-subtle-blue
+ ((background-color . "#65889C")
+ (background-mode . dark)
+ (background-toolbar-color . "#cf3ccf3ccf3c")
+ (border-color . "black")
+ (bottom-toolbar-shadow-color . "#79e77df779e7")
+ (cursor-color . "white")
+ (foreground-color . "#eedfcc")
+ (mouse-color . "Grey")
+ (top-toolbar-shadow-color . "#fffffbeeffff")
+ (viper-saved-cursor-color-in-replace-mode . "Red3"))
+ ((blank-space-face . blank-space-face)
+ (blank-tab-face . blank-tab-face)
+ (ecb-source-in-directories-buffer-face . ecb-sources-face)
+ (gnus-mouse-face . highlight)
+ (list-matching-lines-face . bold)
+ (view-highlight-face . highlight)
+ (vm-highlight-url-face . my-url-face)
+ (vm-highlighted-header-face . my-url-face)
+ (vm-mime-button-face . gui-button-face)
+ (vm-summary-highlight-face . my-summary-highlight-face))
+ (default ((t (nil))))
+ (bbdb-company ((t (:italic t))))
+ (bbdb-field-name ((t (:bold t :foreground "MediumAquamarine"))))
+ (bbdb-field-value ((t (nil))))
+ (bbdb-name ((t (:underline t))))
+ (blank-space-face ((t (:background "gray80"))))
+ (blank-tab-face ((t (:background "LightBlue" :foreground "DarkSlateGray"))))
+ (blue ((t (:foreground "blue"))))
+ (bold ((t (:bold t :foreground "MediumAquamarine"))))
+ (bold-italic ((t (:italic t :bold t :foreground "SkyBlue"))))
+ (border ((t (:background "black"))))
+ (border-glyph ((t (nil))))
+ (calendar-today-face ((t (:underline t))))
+ (comint-highlight-input ((t (:bold t))))
+ (comint-highlight-prompt ((t (:foreground "cyan"))))
+ (comint-input-face ((t (:foreground "deepskyblue"))))
+ (cperl-array-face ((t (:bold t :foreground "Yellow"))))
+ (cperl-hash-face ((t (:italic t :bold t :foreground "White"))))
+ (cperl-nonoverridable-face ((t (:foreground "SkyBlue"))))
+ (cursor ((t (:background "white"))))
+ (custom-button-face ((t (:underline t :bold t :foreground "MediumAquaMarine"))))
+ (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black"))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-comment-face ((t (:background "dim gray"))))
+ (custom-comment-tag-face ((t (:foreground "gray80"))))
+ (custom-documentation-face ((t (:foreground "Grey"))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:bold t :foreground "MediumAquamarine"))))
+ (custom-group-tag-face-1 ((t (:foreground "MediumAquaMarine"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "yellow"))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:bold t :foreground "Aquamarine"))))
+ (cvs-filename-face ((t (:foreground "blue4"))))
+ (cvs-handled-face ((t (:foreground "pink"))))
+ (cvs-header-face ((t (:bold t :foreground "blue4"))))
+ (cvs-marked-face ((t (:bold t :foreground "green3"))))
+ (cvs-msg-face ((t (:italic t))))
+ (cvs-need-action-face ((t (:foreground "orange"))))
+ (cvs-unknown-face ((t (:foreground "red"))))
+ (diary-face ((t (:bold t :foreground "cyan"))))
+ (dired-face-boring ((t (:foreground "Gray65"))))
+ (dired-face-directory ((t (:bold t :foreground "sky blue"))))
+ (dired-face-executable ((t (:foreground "MediumAquaMarine"))))
+ (dired-face-flagged ((t (:foreground "Cyan"))))
+ (dired-face-marked ((t (:foreground "cyan"))))
+ (dired-face-permissions ((t (:foreground "aquamarine"))))
+ (dired-face-setuid ((t (:foreground "LightSalmon"))))
+ (dired-face-socket ((t (:foreground "LightBlue"))))
+ (dired-face-symlink ((t (:foreground "gray95"))))
+ (display-time-mail-balloon-enhance-face ((t (:background "orange"))))
+ (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue"))))
+ (display-time-time-balloon-face ((t (:foreground "red"))))
+ (ecb-sources-face ((t (:foreground "LightBlue1"))))
+ (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick"))))
+ (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black"))))
+ (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid"))))
+ (ediff-current-diff-face-C ((t (:background "indianred" :foreground "white"))))
+ (ediff-even-diff-face-A ((t (:background "light gray" :foreground "Black"))))
+ (ediff-even-diff-face-Ancestor ((t (:background "Gray" :foreground "White"))))
+ (ediff-even-diff-face-B ((t (:background "Gray" :foreground "White"))))
+ (ediff-even-diff-face-C ((t (:background "light gray" :foreground "Black"))))
+ (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy"))))
+ (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black"))))
+ (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black"))))
+ (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black"))))
+ (ediff-odd-diff-face-A ((t (:background "Gray" :foreground "White"))))
+ (ediff-odd-diff-face-Ancestor ((t (:background "light gray" :foreground "Black"))))
+ (ediff-odd-diff-face-B ((t (:background "light gray" :foreground "Black"))))
+ (ediff-odd-diff-face-C ((t (:background "Gray" :foreground "White"))))
+ (erc-action-face ((t (:bold t))))
+ (erc-bold-face ((t (:bold t))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (:foreground "LightSalmon"))))
+ (erc-error-face ((t (:bold t :foreground "yellow"))))
+ (erc-input-face ((t (:foreground "Beige"))))
+ (erc-inverse-face ((t (:background "wheat" :foreground "darkslategrey"))))
+ (erc-notice-face ((t (:foreground "MediumAquamarine"))))
+ (erc-pal-face ((t (:foreground "PaleGreen"))))
+ (erc-prompt-face ((t (:foreground "MediumAquamarine"))))
+ (erc-underline-face ((t (:underline t))))
+ (eshell-ls-archive-face ((t (:bold t :foreground "wheat"))))
+ (eshell-ls-backup-face ((t (:foreground "Grey"))))
+ (eshell-ls-clutter-face ((t (:bold t :foreground "wheat"))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "Yellow"))))
+ (eshell-ls-executable-face ((t (:bold t :foreground "wheat"))))
+ (eshell-ls-missing-face ((t (:bold t :foreground "wheat"))))
+ (eshell-ls-picture-face ((t (:foreground "wheat"))))
+ (eshell-ls-product-face ((t (:foreground "wheat"))))
+ (eshell-ls-readonly-face ((t (:foreground "wheat"))))
+ (eshell-ls-special-face ((t (:bold t :foreground "wheat"))))
+ (eshell-ls-symlink-face ((t (:bold t :foreground "White"))))
+ (eshell-ls-text-face ((t (:foreground "wheat"))))
+ (eshell-ls-todo-face ((t (:foreground "wheat"))))
+ (eshell-ls-unreadable-face ((t (:foreground "wheat3"))))
+ (eshell-prompt-face ((t (:bold t :foreground "PaleGreen"))))
+ (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed"))))
+ (eshell-test-ok-face ((t (:bold t :foreground "Green"))))
+ (excerpt ((t (:italic t))))
+ (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue"))))
+ (flyspell-duplicate-face ((t (:underline t :bold t :foreground "Gold3"))))
+ (flyspell-incorrect-face ((t (:underline t :bold t :foreground "OrangeRed"))))
+ (font-latex-italic-face ((t (nil))))
+ (font-latex-math-face ((t (nil))))
+ (font-latex-sedate-face ((t (:foreground "Gray85"))))
+ (font-latex-string-face ((t (:foreground "orange"))))
+ (font-latex-warning-face ((t (:foreground "gold"))))
+ (font-lock-builtin-face ((t (:foreground "PaleGreen"))))
+ (font-lock-comment-face ((t (:italic t :foreground "Wheat3"))))
+ (font-lock-constant-face ((t (:foreground "LightBlue"))))
+ (font-lock-doc-face ((t (:bold t :foreground "DarkSeaGreen"))))
+ (font-lock-doc-string-face ((t (:bold t :foreground "DarkSeaGreen"))))
+ (font-lock-exit-face ((t (:foreground "green"))))
+ (font-lock-function-name-face ((t (:italic t :bold t :foreground "cyan"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "LightBlue"))))
+ (font-lock-preprocessor-face ((t (:foreground "blue3"))))
+ (font-lock-reference-face ((t (:foreground "PaleGreen"))))
+ (font-lock-string-face ((t (:italic t :foreground "MediumAquamarine"))))
+ (font-lock-type-face ((t (:bold t :foreground "LightBlue"))))
+ (font-lock-variable-name-face ((t (:italic t :bold t :foreground "LightBlue"))))
+ (font-lock-warning-face ((t (:bold t :foreground "LightSalmon"))))
+ (fringe ((t (:background "darkslategrey"))))
+ (gnus-cite-attribution-face ((t (:italic t :bold t))))
+ (gnus-cite-face-1 ((t (:foreground "LightBlue"))))
+ (gnus-cite-face-10 ((t (:foreground "LightBlue"))))
+ (gnus-cite-face-11 ((t (:foreground "LightBlue"))))
+ (gnus-cite-face-2 ((t (:foreground "LightBlue"))))
+ (gnus-cite-face-3 ((t (:foreground "LightBlue"))))
+ (gnus-cite-face-4 ((t (:foreground "LightBlue"))))
+ (gnus-cite-face-5 ((t (:foreground "LightBlue"))))
+ (gnus-cite-face-6 ((t (:foreground "LightBlue"))))
+ (gnus-cite-face-7 ((t (:foreground "LightBlue"))))
+ (gnus-cite-face-8 ((t (:foreground "LightBlue"))))
+ (gnus-cite-face-9 ((t (:foreground "LightBlue"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (:italic t))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:underline t :bold t))))
+ (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t))))
+ (gnus-emphasis-underline-italic ((t (:underline t :italic t))))
+ (gnus-filterhist-face-1 ((t (nil))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "gray80"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "light cyan"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "gray80"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "turquoise"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "gray80"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "LightBlue"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "gray80"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "LightBlue"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "gray80"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "green yellow"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "gray80"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "Aquamarine"))))
+ (gnus-group-news-3-empty-face ((t (:foreground "gray80"))))
+ (gnus-group-news-3-face ((t (:bold t :foreground "LightBlue"))))
+ (gnus-group-news-4-empty-face ((t (:foreground "gray80"))))
+ (gnus-group-news-4-face ((t (:bold t :foreground "Wheat"))))
+ (gnus-group-news-5-empty-face ((t (:foreground "gray80"))))
+ (gnus-group-news-5-face ((t (:bold t :foreground "MediumAquamarine"))))
+ (gnus-group-news-6-empty-face ((t (:foreground "gray80"))))
+ (gnus-group-news-6-face ((t (:bold t :foreground "MediumAquamarine"))))
+ (gnus-group-news-low-empty-face ((t (:foreground "gray80"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "yellow green"))))
+ (gnus-header-content-face ((t (:italic t :foreground "LightSkyBlue3"))))
+ (gnus-header-from-face ((t (:bold t :foreground "light cyan"))))
+ (gnus-header-name-face ((t (:bold t :foreground "LightBlue"))))
+ (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3"))))
+ (gnus-header-subject-face ((t (:bold t :foreground "light cyan"))))
+ (gnus-picons-face ((t (:background "white" :foreground "black"))))
+ (gnus-picons-xbm-face ((t (:background "white" :foreground "black"))))
+ (gnus-signature-face ((t (:italic t :foreground "LightBlue"))))
+ (gnus-splash ((t (:foreground "Brown"))))
+ (gnus-splash-face ((t (:foreground "LightBlue"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "gray80"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "LightBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "gray80"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "burlywood"))))
+ (gnus-summary-high-unread-face ((t (:italic t :bold t :foreground "wheat"))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "LightBlue"))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "light sea green"))))
+ (gnus-summary-low-ticked-face ((t (:italic t :bold t :foreground "LightBlue"))))
+ (gnus-summary-low-unread-face ((t (:italic t :foreground "light sea green"))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "gray80"))))
+ (gnus-summary-normal-read-face ((t (:foreground "gray80"))))
+ (gnus-summary-normal-ticked-face ((t (:bold t :foreground "sandy brown"))))
+ (gnus-summary-normal-unread-face ((t (:bold t :foreground "wheat"))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (gnus-x-face ((t (:background "white" :foreground "black"))))
+ (green ((t (:foreground "green"))))
+ (gui-button-face ((t (:background "cyan" :foreground "#65889C"))))
+ (gui-element ((t (:background "Gray"))))
+ (header-line ((t (:background "grey20" :foreground "grey90"))))
+ (highlight ((t (:background "PaleGreen" :foreground "DarkGreen"))))
+ (highlight-changes-delete-face ((t (:underline t :foreground "red"))))
+ (highlight-changes-face ((t (:foreground "red"))))
+ (highline-face ((t (:background "SeaGreen"))))
+ (holiday-face ((t (:background "DimGray"))))
+ (html-helper-bold-face ((t (:foreground "DarkRed"))))
+ (html-helper-italic-face ((t (:foreground "DarkBlue"))))
+ (html-helper-underline-face ((t (:underline t :foreground "Black"))))
+ (html-tag-face ((t (:foreground "Blue"))))
+ (info-menu-5 ((t (:underline t))))
+ (info-node ((t (:underline t :italic t :bold t :foreground "light blue"))))
+ (info-xref ((t (:bold t :foreground "light blue"))))
+ (isearch ((t (:background "Aquamarine" :foreground "SteelBlue"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise4"))))
+ (isearch-secondary ((t (:foreground "red3"))))
+ (italic ((t (:italic t))))
+ (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan"))))
+ (jde-bug-breakpoint-marker ((t (:background "yellow" :foreground "red"))))
+ (jde-java-font-lock-api-face ((t (:foreground "LightBlue"))))
+ (jde-java-font-lock-bold-face ((t (:bold t))))
+ (jde-java-font-lock-code-face ((t (nil))))
+ (jde-java-font-lock-constant-face ((t (:foreground "LightBlue"))))
+ (jde-java-font-lock-doc-tag-face ((t (:foreground "LightBlue"))))
+ (jde-java-font-lock-italic-face ((t (:italic t))))
+ (jde-java-font-lock-link-face ((t (:underline t :foreground "LightBlue"))))
+ (jde-java-font-lock-modifier-face ((t (:foreground "LightBlue"))))
+ (jde-java-font-lock-number-face ((t (:foreground "LightBlue"))))
+ (jde-java-font-lock-package-face ((t (:foreground "LightBlue"))))
+ (jde-java-font-lock-pre-face ((t (nil))))
+ (jde-java-font-lock-underline-face ((t (:underline t))))
+ (lazy-highlight-face ((t (:bold t :foreground "dark magenta"))))
+ (left-margin ((t (nil))))
+ (linemenu-face ((t (:background "gray30"))))
+ (list-mode-item-selected ((t (nil))))
+ (makefile-space-face ((t (:background "hotpink"))))
+ (menu ((t (:background "wheat" :foreground "gray30"))))
+ (message-cited-text-face ((t (:foreground "White"))))
+ (message-header-cc-face ((t (:bold t :foreground "light cyan"))))
+ (message-header-name-face ((t (:foreground "LightBlue"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3"))))
+ (message-header-other-face ((t (:foreground "LightSkyBlue3"))))
+ (message-header-subject-face ((t (:bold t :foreground "light cyan"))))
+ (message-header-to-face ((t (:bold t :foreground "light cyan"))))
+ (message-header-xheader-face ((t (:foreground "LightBlue"))))
+ (message-mml-face ((t (:bold t :foreground "LightBlue"))))
+ (message-separator-face ((t (:foreground "LightBlue"))))
+ (mmm-default-submode-face ((t (:background "#c0c0c5"))))
+ (modeline ((t (:background "#4f657d" :foreground "gray80"))))
+ (modeline-buffer-id ((t (:background "#4f657d" :foreground "gray80"))))
+ (modeline-mousable ((t (:background "#4f657d" :foreground "gray80"))))
+ (modeline-mousable-minor-mode ((t (:background "#4f657d" :foreground "gray80"))))
+ (mouse ((t (:background "Grey"))))
+ (my-summary-highlight-face ((t (:foreground "White"))))
+ (my-url-face ((t (:foreground "PaleTurquoise"))))
+ (nil ((t (nil))))
+ (paren-blink-off ((t (:foreground "gray"))))
+ (paren-face-match ((t (:background "turquoise"))))
+ (paren-face-mismatch ((t (:background "purple" :foreground "white"))))
+ (paren-face-no-match ((t (:background "yellow" :foreground "black"))))
+ (paren-match ((t (:background "darkseagreen2"))))
+ (paren-mismatch ((t (:background "DeepPink" :foreground "black"))))
+ (paren-mismatch-face ((t (:bold t))))
+ (paren-no-match-face ((t (:bold t))))
+ (pointer ((t (nil))))
+ (primary-selection ((t (:background "gray65"))))
+ (red ((t (:foreground "red"))))
+ (region ((t (:background "CadetBlue" :foreground "gray80"))))
+ (right-margin ((t (nil))))
+ (scroll-bar ((t (nil))))
+ (secondary-selection ((t (:background "LightBlue" :foreground "#4f657d"))))
+ (semantic-dirty-token-face ((t (:background "gray10"))))
+ (semantic-intangible-face ((t (:foreground "gray25"))))
+ (semantic-read-only-face ((t (:background "gray25"))))
+ (senator-intangible-face ((t (:foreground "gray75"))))
+ (senator-momentary-highlight-face ((t (:background "gray80"))))
+ (senator-read-only-face ((t (:background "#664444"))))
+ (sgml-comment-face ((t (:foreground "dark turquoise"))))
+ (sgml-doctype-face ((t (:foreground "red"))))
+ (sgml-end-tag-face ((t (:foreground "blue"))))
+ (sgml-entity-face ((t (:foreground "magenta"))))
+ (sgml-ignored-face ((t (:background "gray60" :foreground "gray40"))))
+ (sgml-ms-end-face ((t (:foreground "green"))))
+ (sgml-ms-start-face ((t (:foreground "yellow"))))
+ (sgml-pi-face ((t (:foreground "lime green"))))
+ (sgml-sgml-face ((t (:foreground "brown"))))
+ (sgml-short-ref-face ((t (:foreground "deep sky blue"))))
+ (sgml-start-tag-face ((t (:foreground "dark green"))))
+ (shell-option-face ((t (:foreground "blue"))))
+ (shell-output-2-face ((t (:foreground "darkseagreen"))))
+ (shell-output-3-face ((t (:foreground "slategray"))))
+ (shell-output-face ((t (:foreground "palegreen"))))
+ (shell-prompt-face ((t (:foreground "red"))))
+ (show-paren-match-face ((t (:background "Aquamarine" :foreground "steel blue"))))
+ (show-paren-mismatch-face ((t (:bold t :background "IndianRed" :foreground "White"))))
+ (speedbar-button-face ((t (:bold t :foreground "LightBlue"))))
+ (speedbar-directory-face ((t (:bold t :foreground "yellow"))))
+ (speedbar-file-face ((t (:bold t :foreground "wheat"))))
+ (speedbar-highlight-face ((t (:background "sea green"))))
+ (speedbar-selected-face ((t (:underline t))))
+ (speedbar-tag-face ((t (:foreground "LightBlue"))))
+ (swbuff-current-buffer-face ((t (:bold t :foreground "red"))))
+ (template-message-face ((t (:bold t))))
+ (term-black ((t (:foreground "black"))))
+ (term-blackbg ((t (:background "black"))))
+ (term-blue ((t (:foreground "blue"))))
+ (term-bluebg ((t (:background "blue"))))
+ (term-bold ((t (:bold t))))
+ (term-cyan ((t (:foreground "cyan"))))
+ (term-cyanbg ((t (:background "cyan"))))
+ (term-default-bg ((t (nil))))
+ (term-default-bg-inv ((t (nil))))
+ (term-default-fg ((t (nil))))
+ (term-default-fg-inv ((t (nil))))
+ (term-green ((t (:foreground "green"))))
+ (term-greenbg ((t (:background "green"))))
+ (term-invisible ((t (nil))))
+ (term-invisible-inv ((t (nil))))
+ (term-magenta ((t (:foreground "magenta"))))
+ (term-magentabg ((t (:background "magenta"))))
+ (term-red ((t (:foreground "red"))))
+ (term-redbg ((t (:background "red"))))
+ (term-underline ((t (:underline t))))
+ (term-white ((t (:foreground "white"))))
+ (term-whitebg ((t (:background "white"))))
+ (term-yellow ((t (:foreground "yellow"))))
+ (term-yellowbg ((t (:background "yellow"))))
+ (text-cursor ((t (:background "Red3" :foreground "white"))))
+ (tool-bar ((t (:background "grey75" :foreground "black"))))
+ (toolbar ((t (:background "Gray"))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (nil))))
+ (vc-annotate-face-0046FF ((t (:background "black" :foreground "wheat"))))
+ (vcursor ((t (:underline t :background "cyan" :foreground "blue"))))
+ (vertical-divider ((t (:background "Gray"))))
+ (vhdl-font-lock-attribute-face ((t (:foreground "Orchid"))))
+ (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue"))))
+ (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4"))))
+ (vhdl-font-lock-function-face ((t (:foreground "Orchid4"))))
+ (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red"))))
+ (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange"))))
+ (vhdl-font-lock-translate-off-face ((t (:background "LightGray"))))
+ (vhdl-speedbar-architecture-face ((t (:foreground "Blue"))))
+ (vhdl-speedbar-architecture-selected-face ((t (:underline t :foreground "Blue"))))
+ (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod"))))
+ (vhdl-speedbar-configuration-selected-face ((t (:underline t :foreground "DarkGoldenrod"))))
+ (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen"))))
+ (vhdl-speedbar-entity-selected-face ((t (:underline t :foreground "ForestGreen"))))
+ (vhdl-speedbar-instantiation-face ((t (:foreground "Brown"))))
+ (vhdl-speedbar-instantiation-selected-face ((t (:underline t :foreground "Brown"))))
+ (vhdl-speedbar-package-face ((t (:foreground "Gray50"))))
+ (vhdl-speedbar-package-selected-face ((t (:underline t :foreground "Gray50"))))
+ (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black"))))
+ (viper-minibuffer-vi-face ((t (:background "gray" :foreground "DarkGreen"))))
+ (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-search-face ((t (:background "khaki" :foreground "Black"))))
+ (vm-header-content-face ((t (:italic t :foreground "gray80"))))
+ (vm-header-from-face ((t (:italic t :background "#65889C" :foreground "cyan"))))
+ (vm-header-name-face ((t (:foreground "cyan"))))
+ (vm-header-subject-face ((t (:foreground "cyan"))))
+ (vm-header-to-face ((t (:italic t :foreground "cyan"))))
+ (vm-message-cited-face ((t (:foreground "Gray80"))))
+ (vm-summary-face-1 ((t (:foreground "MediumAquamarine"))))
+ (vm-summary-face-2 ((t (:foreground "MediumAquamarine"))))
+ (vm-summary-face-3 ((t (:foreground "MediumAquamarine"))))
+ (vm-summary-face-4 ((t (:foreground "MediumAquamarine"))))
+ (vm-summary-highlight-face ((t (:foreground "White"))))
+ (vmpc-pre-sig-face ((t (:foreground "Aquamarine"))))
+ (vmpc-sig-face ((t (:foreground "LightBlue"))))
+ (vvb-face ((t (:background "pink" :foreground "black"))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "cyan"))))
+ (widget-documentation-face ((t (:foreground "LightBlue"))))
+ (widget-field-face ((t (:foreground "LightBlue"))))
+ (widget-inactive-face ((t (:foreground "Wheat3"))))
+ (widget-single-line-field-face ((t (:foreground "LightBlue"))))
+ (woman-bold-face ((t (:bold t))))
+ (woman-italic-face ((t (:foreground "beige"))))
+ (woman-unknown-face ((t (:foreground "LightSalmon"))))
+ (xref-keyword-face ((t (:foreground "Cyan"))))
+ (xref-list-pilot-face ((t (:foreground "navy"))))
+ (xref-list-symbol-face ((t (:foreground "navy"))))
+ (xxml-emph-1-face ((t (:background "lightyellow"))))
+ (xxml-emph-2-face ((t (:background "lightyellow"))))
+ (xxml-header-1-face ((t (:background "seashell1" :foreground "MediumAquamarine"))))
+ (xxml-header-2-face ((t (:background "seashell1" :foreground "SkyBlue"))))
+ (xxml-header-3-face ((t (:background "seashell1"))))
+ (xxml-header-4-face ((t (:background "seashell1"))))
+ (xxml-interaction-face ((t (:background "lightcyan"))))
+ (xxml-rug-face ((t (:background "cyan"))))
+ (xxml-sparkle-face ((t (:background "yellow"))))
+ (xxml-unbreakable-space-face ((t (:underline t :foreground "grey"))))
+ (yellow ((t (:foreground "yellow"))))
+ (zmacs-region ((t (:background "#4f657d")))))))
+
+(defun color-theme-dark-blue ()
+ "Color theme by Chris McMahan, created 2001-09-09.
+Based on `color-theme-subtle-blue' with a slightly darker background."
+ (interactive)
+ (color-theme-subtle-blue)
+ (let ((color-theme-is-cumulative t))
+ (color-theme-install
+ '(color-theme-dark-blue
+ ((background-color . "#537182")
+ (foreground-color . "AntiqueWhite2"))
+ nil
+ (default ((t (nil))))
+ (blank-space-face ((t (:background "LightGray"))))
+ (blank-tab-face ((t (:background "Wheat" :foreground "DarkSlateGray"))))
+ (cursor ((t (:background "LightGray"))))
+ (dired-face-executable ((t (:foreground "green yellow"))))
+ (dired-face-flagged ((t (:foreground "tomato"))))
+ (dired-face-marked ((t (:foreground "light salmon"))))
+ (dired-face-setuid ((t (:foreground "Red"))))
+ (dired-face-socket ((t (:foreground "magenta"))))
+ (fixed ((t (:bold t))))
+ (font-lock-comment-face ((t (:italic t :foreground "Gray80"))))
+ (font-lock-doc-face ((t (:bold t))))
+ (font-lock-function-name-face ((t (:italic t :bold t :foreground "Yellow"))))
+ (font-lock-string-face ((t (:italic t :foreground "DarkSeaGreen"))))
+ (font-lock-type-face ((t (:bold t :foreground "YellowGreen"))))
+ (gui-button-face ((t (:background "DarkSalmon" :foreground "white"))))
+ (modeline ((t (:background "#c1ccd9" :foreground "#4f657d"))))
+ (modeline-buffer-id ((t (:background "#c1ccd9" :foreground "#4f657d"))))
+ (modeline-mousable ((t (:background "#c1ccd9" :foreground "#4f657d"))))
+ (modeline-mousable-minor-mode ((t (:background "#c1ccd9" :foreground "#4f657d"))))
+ (my-url-face ((t (:foreground "LightBlue"))))
+ (region ((t (:background "PaleTurquoise4" :foreground "gray80"))))
+ (secondary-selection ((t (:background "sea green" :foreground "yellow"))))
+ (vm-header-content-face ((t (:italic t :foreground "wheat"))))
+ (vm-header-from-face ((t (:italic t :foreground "wheat"))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (xref-keyword-face ((t (:foreground "blue"))))
+ (zmacs-region ((t (:background "SlateGray"))))))))
+
+(defun color-theme-jonadabian-slate ()
+ "Another slate-and-wheat color theme by Jonadab the Unsightly One.
+Updated 2001-10-12."
+ (interactive)
+ (color-theme-install
+ '(color-theme-jonadabian-slate
+ ((background-color . "#305050")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "medium turquoise")
+ (foreground-color . "#CCBB77")
+ (mouse-color . "black"))
+ ((list-matching-lines-face . bold)
+ (ued-mode-keyname-face . modeline)
+ (view-highlight-face . highlight))
+ (default ((t (nil))))
+ (fringe ((t (:background "#007080"))))
+ (bold ((t (:bold t :foreground "#EEDDAA"))))
+ (gnus-emphasis-bold ((t (:bold t :foreground "#EEDDAA"))))
+ (gnus-emphasis-underline-bold ((t (:underline t :bold t :foreground "#EEDDAA"))))
+ (bold-italic ((t (:italic t :bold t :foreground "#AA0000"))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t :foreground "#AA0000"))))
+ (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t :foreground "#AA0000"))))
+ (gnus-emphasis-underline-italic ((t (:underline t :italic t :bold t :foreground "#AA0000"))))
+ (calendar-today-face ((t (:underline t :background "darkslategrey"))))
+ (cperl-array-face ((t (:background "#004060"))))
+ (cperl-hash-face ((t (:background "#004400"))))
+ (custom-button-face ((t (:background "dark blue" :foreground "rgbi:1.00/1.00/0.00"))))
+ (custom-documentation-face ((t (:foreground "#10D010"))))
+ (custom-face-tag-face ((t (:underline t :foreground "goldenrod"))))
+ (custom-group-tag-face ((t (:underline t :foreground "light blue"))))
+ (custom-group-tag-face-1 ((t (:underline t :foreground "pink"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:foreground "#6666dd"))))
+ (custom-state-face ((t (:foreground "mediumaquamarine"))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:underline t :foreground "light blue"))))
+ (diary-face ((t (:foreground "red"))))
+ (eshell-ls-archive-face ((t (:foreground "green"))))
+ (eshell-ls-backup-face ((t (:foreground "grey60"))))
+ (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed"))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "SkyBlue"))))
+ (eshell-ls-executable-face ((t (:foreground "white"))))
+ (eshell-ls-missing-face ((t (:foreground "red"))))
+ (eshell-ls-product-face ((t (:foreground "LightSalmon"))))
+ (eshell-ls-readonly-face ((t (:foreground "indian red"))))
+ (eshell-ls-special-face ((t (:foreground "yellow"))))
+ (eshell-ls-symlink-face ((t (:foreground "#6666dd"))))
+ (eshell-ls-unreadable-face ((t (:foreground "red"))))
+ (eshell-prompt-face ((t (:bold t :background "#305050" :foreground "#EEDD99"))))
+ (font-lock-builtin-face ((t (:foreground "LightSteelBlue"))))
+ (font-lock-comment-face ((t (:italic t :bold t :foreground "grey66"))))
+ (font-lock-constant-face ((t (:foreground "indian red"))))
+ (font-lock-function-name-face ((t (:foreground "#D0D000"))))
+ (font-lock-keyword-face ((t (:foreground "#00BBBB"))))
+ (font-lock-string-face ((t (:foreground "#10D010"))))
+ (font-lock-type-face ((t (:bold t :foreground "#ff7788"))))
+ (font-lock-variable-name-face ((t (:foreground "#eeddaa"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Pink"))))
+ (header-line ((t (:box (:line-width 1 :style released-button)))))
+ (highlight ((t (:background "#226644"))))
+ (highlight-changes-delete-face ((t (:background "navy" :foreground "red"))))
+ (highlight-changes-face ((t (:background "navy"))))
+ (holiday-face ((t (:foreground "#ff7744"))))
+ (italic ((t (:italic t :foreground "#AA0000"))))
+ (gnus-emphasis-italic ((t (:italic t :foreground "#AA0000"))))
+ (modeline ((t (:background "#007080" :foreground "cyan"))))
+ (modeline-buffer-id ((t (:background "#007080" :foreground "cyan"))))
+ (modeline-mousable ((t (:background "#007080" :foreground "cyan"))))
+ (modeline-mousable-minor-mode ((t (:background "#007080" :foreground "cyan"))))
+ (region ((t (:background "#226644"))))
+ (secondary-selection ((t (:background "darkslategrey"))))
+ (sgml-comment-face ((t (:foreground "grey60"))))
+ (sgml-doctype-face ((t (:foreground "red"))))
+ (sgml-end-tag-face ((t (:foreground "#00D0D0"))))
+ (sgml-entity-face ((t (:foreground "indian red"))))
+ (sgml-ignored-face ((t (:background "gray60" :foreground "gray40"))))
+ (sgml-ms-end-face ((t (:foreground "green"))))
+ (sgml-ms-start-face ((t (:foreground "green"))))
+ (sgml-pi-face ((t (:foreground "lime green"))))
+ (sgml-sgml-face ((t (:foreground "brown"))))
+ (sgml-short-ref-face ((t (:foreground "deep sky blue"))))
+ (sgml-start-tag-face ((t (:foreground "#D0D000"))))
+ (show-paren-match-face ((t (:background "#400055" :foreground "cyan"))))
+ (show-paren-mismatch-face ((t (:background "red"))))
+ (special-string-face ((t (:foreground "light green"))))
+ (term-black ((t (:background "#000055" :foreground "black"))))
+ (term-blackbg ((t (:background "black" :foreground "#CCBB77"))))
+ (term-blue ((t (:background "#000055" :foreground "blue"))))
+ (term-bluebg ((t (:background "blue" :foreground "#CCBB77"))))
+ (term-bold ((t (:bold t :background "#000055" :foreground "#CCBB77"))))
+ (term-cyan ((t (:background "#000055" :foreground "cyan"))))
+ (term-cyanbg ((t (:background "darkcyan"))))
+ (term-default-bg ((t (:foreground "#CCBB77"))))
+ (term-default-bg-inv ((t (:foreground "#CCBB77"))))
+ (term-default-fg ((t (:background "#000055"))))
+ (term-default-fg-inv ((t (:background "#000055"))))
+ (term-green ((t (:background "#000055" :foreground "green"))))
+ (term-greenbg ((t (:background "darkgreen"))))
+ (term-invisible ((t (:foreground "#CCBB77"))))
+ (term-invisible-inv ((t (:foreground "#CCBB77"))))
+ (term-magenta ((t (:background "#000055" :foreground "magenta"))))
+ (term-magentabg ((t (:background "darkmagenta"))))
+ (term-red ((t (:background "#000055" :foreground "red"))))
+ (term-redbg ((t (:background "darkred"))))
+ (term-underline ((t (:underline t :background "#000055" :foreground "#CCBB77"))))
+ (term-white ((t (:background "#000055" :foreground "white"))))
+ (term-whitebg ((t (:background "grey50"))))
+ (term-yellow ((t (:background "#000055" :foreground "yellow"))))
+ (term-yellowbg ((t (:background "#997700"))))
+ (trailing-whitespace ((t (:background "#23415A"))))
+ (underline ((t (:underline t))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "green"))))
+ (widget-field-face ((t (:background "grey35" :foreground "black"))))
+ (widget-inactive-face ((t (:foreground "gray"))))
+ (widget-single-line-field-face ((t (:background "dim gray")))))))
+
+(defun color-theme-gray1 ()
+ "Color theme by Paul Pulli, created 2001-10-19."
+ (interactive)
+ (color-theme-install
+ '(color-theme-gray1
+ ((background-color . "darkgray")
+ (background-mode . light)
+ (background-toolbar-color . "#949494949494")
+ (border-color . "#000000000000")
+ (bottom-toolbar-shadow-color . "#595959595959")
+ (cursor-color . "Yellow")
+ (foreground-color . "black")
+ (top-toolbar-shadow-color . "#b2b2b2b2b2b2"))
+ nil
+ (default ((t (nil))))
+ (blue ((t (:foreground "blue"))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t))))
+ (border-glyph ((t (nil))))
+ (cperl-here-face ((t (:background "gray68" :foreground "DeepPink"))))
+ (font-lock-builtin-face ((t (:bold t :foreground "red3"))))
+ (font-lock-comment-face ((t (:foreground "gray50"))))
+ (font-lock-constant-face ((t (:bold t :foreground "blue3"))))
+ (font-lock-doc-string-face ((t (:foreground "black"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "DeepPink3"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "red"))))
+ (font-lock-other-type-face ((t (:bold t :foreground "green4"))))
+ (font-lock-preprocessor-face ((t (:bold t :foreground "blue3"))))
+ (font-lock-reference-face ((t (:bold t :foreground "red3"))))
+ (font-lock-string-face ((t (:foreground "red"))))
+ (font-lock-type-face ((t (:bold t :foreground "white"))))
+ (font-lock-variable-name-face ((t (:bold t :foreground "blue3"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red"))))
+ (green ((t (:foreground "green4"))))
+ (gui-button-face ((t (:background "black" :foreground "red"))))
+ (gui-element ((t (:background "gray58"))))
+ (highlight ((t (:background "magenta" :foreground "yellow"))))
+ (isearch ((t (:background "red" :foreground "yellow"))))
+ (italic ((t (:italic t))))
+ (left-margin ((t (nil))))
+ (list-mode-item-selected ((t (:background "gray90" :foreground "purple"))))
+ (m4-face ((t (:background "gray90" :foreground "orange3"))))
+ (message-cited-text ((t (nil))))
+ (message-header-contents ((t (nil))))
+ (message-headers ((t (nil))))
+ (message-highlighted-header-contents ((t (nil))))
+ (modeline ((t (:background "#aa80aa" :foreground "White"))))
+ (modeline-buffer-id ((t (:background "#aa80aa" :foreground "linen"))))
+ (modeline-mousable ((t (:background "#aa80aa" :foreground "cyan"))))
+ (modeline-mousable-minor-mode ((t (:background "#aa80aa" :foreground "yellow"))))
+ (paren-blink-off ((t (:foreground "gray58"))))
+ (paren-blink-on ((t (:foreground "purple"))))
+ (paren-match ((t (:background "gray68" :foreground "white"))))
+ (paren-mismatch ((t (:background "DeepPink" :foreground "black"))))
+ (pointer ((t (nil))))
+ (primary-selection ((t (:background "gray"))))
+ (red ((t (:foreground "red"))))
+ (right-margin ((t (nil))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (text-cursor ((t (:background "Yellow" :foreground "darkgray"))))
+ (toolbar ((t (:background "#aa80aa" :foreground "linen"))))
+ (underline ((t (:underline t))))
+ (vertical-divider ((t (nil))))
+ (x-face ((t (:background "black" :foreground "lavenderblush"))))
+ (yellow ((t (:foreground "yellow3"))))
+ (zmacs-region ((t (:background "paleturquoise" :foreground "black")))))))
+
+(defun color-theme-word-perfect ()
+ "White on blue background, based on WordPerfect 5.1.
+Color theme by Thomas Gehrlein, created 2001-10-21."
+ (interactive)
+ (color-theme-install
+ '(color-theme-word-perfect
+ ((background-color . "blue4")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "gold")
+ (foreground-color . "white")
+ (mouse-color . "black"))
+ ((ecb-source-in-directories-buffer-face . ecb-sources-face)
+ (gnus-mouse-face . highlight)
+ (goto-address-mail-face . italic)
+ (goto-address-mail-mouse-face . secondary-selection)
+ (goto-address-url-face . bold)
+ (goto-address-url-mouse-face . highlight)
+ (list-matching-lines-face . bold)
+ (view-highlight-face . highlight))
+ (default ((t (nil))))
+ (bbdb-field-name ((t (:foreground "lime green"))))
+ (bbdb-field-value ((t (:foreground "white"))))
+ (bbdb-name ((t (:underline t :foreground "lime green"))))
+ (bold ((t (:bold t :foreground "white"))))
+ (bold-italic ((t (:italic t :bold t :foreground "yellow"))))
+ (calendar-today-face ((t (:underline t :foreground "deep sky blue"))))
+ (diary-face ((t (:foreground "gold"))))
+ (ecb-sources-face ((t (:foreground "LightBlue1"))))
+ (edb-inter-field-face ((t (:foreground "deep sky blue"))))
+ (edb-normal-summary-face ((t (:foreground "gold"))))
+ (emacs-wiki-bad-link-face ((t (:underline "coral" :bold t :foreground "coral"))))
+ (emacs-wiki-link-face ((t (:underline "cyan" :bold t :foreground "cyan"))))
+ (font-lock-builtin-face ((t (:foreground "LightSteelBlue"))))
+ (font-lock-comment-face ((t (:foreground "deep sky blue"))))
+ (font-lock-constant-face ((t (:foreground "lime green"))))
+ (font-lock-doc-face ((t (:foreground "gold"))))
+ (font-lock-doc-string-face ((t (:foreground "gold"))))
+ (font-lock-function-name-face ((t (:background "blue4" :foreground "IndianRed"))))
+ (font-lock-keyword-face ((t (:foreground "lime green"))))
+ (font-lock-preprocessor-face ((t (:foreground "lime green"))))
+ (font-lock-reference-face ((t (:foreground "LightSteelBlue"))))
+ (font-lock-string-face ((t (:foreground "gold"))))
+ (font-lock-type-face ((t (:foreground "lime green"))))
+ (font-lock-variable-name-face ((t (:foreground "LightGoldenrod"))))
+ (font-lock-warning-face ((t (:bold t :foreground "firebrick"))))
+ (gnus-emphasis-bold ((t (:foreground "yellow2"))))
+ (gnus-emphasis-bold-italic ((t (:foreground "yellow2"))))
+ (gnus-emphasis-italic ((t (:foreground "yellow2"))))
+ (gnus-emphasis-underline ((t (:foreground "yellow2"))))
+ (gnus-emphasis-underline-bold ((t (:foreground "yellow2"))))
+ (gnus-emphasis-underline-bold-italic ((t (:foreground "yellow2"))))
+ (gnus-emphasis-underline-italic ((t (:foreground "yellow2"))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "turquoise"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "turquoise"))))
+ (gnus-group-news-3-empty-face ((t (:foreground "deep sky blue"))))
+ (gnus-group-news-3-face ((t (:bold t :foreground "deep sky blue"))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise"))))
+ (gnus-header-content-face ((t (:foreground "gold"))))
+ (gnus-header-from-face ((t (:foreground "gold"))))
+ (gnus-header-name-face ((t (:foreground "deep sky blue"))))
+ (gnus-header-newsgroups-face ((t (:foreground "gold"))))
+ (gnus-header-subject-face ((t (:foreground "gold"))))
+ (gnus-signature-face ((t (:foreground "gold"))))
+ (gnus-splash-face ((t (:foreground "firebrick"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "deep sky blue"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "deep sky blue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "deep sky blue"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "deep sky blue"))))
+ (gnus-summary-high-unread-face ((t (:bold t :foreground "lime green"))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "deep sky blue"))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "deep sky blue"))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "deep sky blue"))))
+ (gnus-summary-low-unread-face ((t (:italic t :foreground "lime green"))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "deep sky blue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "deep sky blue"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "deep sky blue"))))
+ (gnus-summary-normal-unread-face ((t (:foreground "lime green"))))
+ (gnus-summary-selected-face ((t (:underline t :foreground "gold"))))
+ (highlight ((t (:background "steel blue" :foreground "black"))))
+ (holiday-face ((t (:background "blue4" :foreground "IndianRed1"))))
+ (info-menu-5 ((t (:underline t :foreground "gold"))))
+ (info-node ((t (:italic t :bold t :foreground "gold"))))
+ (info-xref ((t (:bold t :foreground "gold"))))
+ (isearch ((t (:background "firebrick" :foreground "white"))))
+ (italic ((t (:italic t :foreground "yellow2"))))
+ (message-cited-text-face ((t (:foreground "gold"))))
+ (message-header-cc-face ((t (:bold t :foreground "green4"))))
+ (message-header-name-face ((t (:foreground "deep sky blue"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "gold"))))
+ (message-header-other-face ((t (:foreground "gold"))))
+ (message-header-subject-face ((t (:foreground "gold"))))
+ (message-header-to-face ((t (:bold t :foreground "gold"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-separator-face ((t (:foreground "lime green"))))
+ (modeline ((t (:foreground "white" :background "black"))))
+ (modeline-buffer-id ((t (:foreground "white" :background "black"))))
+ (modeline-mousable ((t (:foreground "white" :background "black"))))
+ (modeline-mousable-minor-mode ((t (:foreground "white" :background "black"))))
+ (overlay-empty-face ((t (nil))))
+ (primary-selection ((t (:background "firebrick" :foreground "white"))))
+ (region ((t (:background "firebrick" :foreground "white"))))
+ (secondary-selection ((t (:background "yellow2" :foreground "black"))))
+ (semantic-dirty-token-face ((t (:background "gray10"))))
+ (show-paren-match-face ((t (:background "deep sky blue" :foreground "black"))))
+ (show-paren-mismatch-face ((t (:background "firebrick" :foreground "white"))))
+ (underline ((t (:underline t :background "blue4" :foreground "white")))))))
+
+;; In order to produce this, follow these steps:
+;;
+;; 0. Make sure .Xresources and .Xdefaults don't have any Emacs related
+;; entries.
+;;
+;; 1. cd into the Emacs lisp directory and run the following command:
+;; ( for d in `find -type d`; \
+;; do grep --files-with-matches 'defface[ ]' $d/*.el; \
+;; done ) | sort | uniq
+;; Put the result in a lisp block, using load-library calls.
+;;
+;; Repeat this for any directories on your load path which you want to
+;; include in the standard. This might include W3, eshell, etc.
+;;
+;; Add some of the libraries that don't use defface:
+;;
+;; 2. Start emacs using the --no-init-file and --no-site-file command line
+;; arguments. Evaluate the lisp block you prepared.
+;; 3. Load color-theme and run color-theme-print. Save the output and use it
+;; to define color-theme-standard.
+;;
+;; (progn
+;; (load-library "add-log")
+;; (load-library "calendar")
+;; (load-library "comint")
+;; (load-library "cus-edit")
+;; (load-library "cus-face")
+;; (load-library "custom")
+;; (load-library "diff-mode")
+;; (load-library "ediff-init")
+;; (load-library "re-builder")
+;; (load-library "viper-init")
+;; (load-library "enriched")
+;; (load-library "em-ls")
+;; (load-library "em-prompt")
+;; (load-library "esh-test")
+;; (load-library "faces")
+;; (load-library "font-lock")
+;; (load-library "generic-x")
+;; (load-library "gnus-art")
+;; (load-library "gnus-cite")
+;; (load-library "gnus")
+;; (load-library "message")
+;; (load-library "hilit-chg")
+;; (load-library "hi-lock")
+;; (load-library "info")
+;; (load-library "isearch")
+;; (load-library "log-view")
+;; (load-library "paren")
+;; (load-library "pcvs-info")
+;; (load-library "antlr-mode")
+;; (load-library "cperl-mode")
+;; (load-library "ebrowse")
+;; (load-library "idlwave")
+;; (load-library "idlw-shell")
+;; (load-library "make-mode")
+;; (load-library "sh-script")
+;; (load-library "vhdl-mode")
+;; (load-library "smerge-mode")
+;; (load-library "speedbar")
+;; (load-library "strokes")
+;; (load-library "artist")
+;; (load-library "flyspell")
+;; (load-library "texinfo")
+;; (load-library "tex-mode")
+;; (load-library "tooltip")
+;; (load-library "vcursor")
+;; (load-library "wid-edit")
+;; (load-library "woman")
+;; (load-library "term")
+;; (load-library "man")
+;; (load-file "/home/alex/elisp/color-theme.el")
+;; (color-theme-print))
+;;
+;; 4. Make the color theme usable on Xemacs (add more faces, resolve
+;; :inherit attributes)
+;;
+(defun color-theme-emacs-21 ()
+ "Color theme used by Emacs 21.1.
+Added and adapted for XEmacs by Alex Schroeder. Adaptation mostly
+consisted of resolving :inherit attributes and adding missing faces.
+This theme includes faces from the following Emacs libraries: add-log
+calendar comint cus-edit cus-face custom diff-mode ediff-init re-builder
+viper-init enriched em-ls em-prompt esh-test faces font-lock generic-x
+gnus-art gnus-cite gnus message hilit-chg hi-lock info isearch log-view
+paren pcvs-info antlr-mode cperl-mode ebrowse idlwave idlw-shell
+make-mode sh-script vhdl-mode smerge-mode speedbar strokes artist
+flyspell texinfo tex-mode tooltip vcursor wid-edit woman term man"
+ (interactive)
+ (color-theme-install
+ '(color-theme-emacs-21
+ ((background-color . "white")
+ (background-mode . light)
+ (border-color . "black")
+ (cursor-color . "black")
+ (foreground-color . "black")
+ (mouse-color . "black"))
+ ((Man-overstrike-face . bold)
+ (Man-underline-face . underline)
+ (cperl-here-face . font-lock-string-face)
+ (cperl-invalid-face . underline)
+ (cperl-pod-face . font-lock-comment-face)
+ (cperl-pod-head-face . font-lock-variable-name-face)
+ (gnus-article-button-face . bold)
+ (gnus-article-mouse-face . highlight)
+ (gnus-cite-attribution-face . gnus-cite-attribution-face)
+ (gnus-mouse-face . highlight)
+ (gnus-signature-face . gnus-signature-face)
+ (gnus-summary-selected-face . gnus-summary-selected-face)
+ (help-highlight-face . underline)
+ (idlwave-class-arrow-face . bold)
+ (idlwave-shell-breakpoint-face . idlwave-shell-bp-face)
+ (idlwave-shell-expression-face . secondary-selection)
+ (idlwave-shell-stop-line-face . highlight)
+ (ispell-highlight-face . highlight)
+ (list-matching-lines-face . bold)
+ (view-highlight-face . highlight)
+ (viper-insert-state-cursor-color . "Green")
+ (viper-replace-overlay-cursor-color . "Red")
+ (widget-mouse-face . highlight))
+ (default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728))))
+ (Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44))))
+ (Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2))))
+ (Info-title-4-face ((t (:bold t :family "helv" :weight bold))))
+ (antlr-font-lock-keyword-face ((t (:bold t :foreground "black" :weight bold))))
+ (antlr-font-lock-literal-face ((t (:bold t :foreground "brown4" :weight bold))))
+ (antlr-font-lock-ruledef-face ((t (:bold t :foreground "blue" :weight bold))))
+ (antlr-font-lock-ruleref-face ((t (:foreground "blue4"))))
+ (antlr-font-lock-tokendef-face ((t (:bold t :foreground "blue" :weight bold))))
+ (antlr-font-lock-tokenref-face ((t (:foreground "orange4"))))
+ (bold ((t (:bold t :weight bold))))
+ (bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (border ((t (:background "black"))))
+ (calendar-today-face ((t (:underline t))))
+ (change-log-acknowledgement-face ((t (:foreground "Firebrick"))))
+ (change-log-conditionals-face ((t (:foreground "DarkGoldenrod"))))
+ (change-log-date-face ((t (:foreground "RosyBrown"))))
+ (change-log-email-face ((t (:foreground "DarkGoldenrod"))))
+ (change-log-file-face ((t (:foreground "Blue"))))
+ (change-log-function-face ((t (:foreground "DarkGoldenrod"))))
+ (change-log-list-face ((t (:foreground "Purple"))))
+ (change-log-name-face ((t (:foreground "CadetBlue"))))
+ (comint-highlight-input ((t (:bold t :weight bold))))
+ (comint-highlight-prompt ((t (:foreground "dark blue"))))
+ (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue" :weight bold))))
+ (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red" :slant italic :weight bold))))
+ (cperl-nonoverridable-face ((t (:foreground "chartreuse3"))))
+ (cursor ((t (:background "black"))))
+ (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button)))))
+ (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button)))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-comment-face ((t (:background "gray85"))))
+ (custom-comment-tag-face ((t (:foreground "blue4"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2))))
+ (custom-group-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2))))
+ (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "red" :weight bold :height 1.2))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "dark green"))))
+ (custom-variable-button-face ((t (:bold t :underline t :weight bold))))
+ (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "blue" :weight bold :height 1.2))))
+ (cvs-filename-face ((t (:foreground "blue4"))))
+ (cvs-handled-face ((t (:foreground "pink"))))
+ (cvs-header-face ((t (:bold t :foreground "blue4" :weight bold))))
+ (cvs-marked-face ((t (:bold t :foreground "green3" :weight bold))))
+ (cvs-msg-face ((t (:italic t :slant italic))))
+ (cvs-need-action-face ((t (:foreground "orange"))))
+ (cvs-unknown-face ((t (:foreground "red"))))
+ (diary-face ((t (:foreground "red"))))
+ (diff-added-face ((t (nil))))
+ (diff-changed-face ((t (nil))))
+ (diff-context-face ((t (:foreground "grey50"))))
+ (diff-file-header-face ((t (:bold t :background "grey70" :weight bold))))
+ (diff-function-face ((t (:foreground "grey50"))))
+ (diff-header-face ((t (:background "grey85"))))
+ (diff-hunk-header-face ((t (:background "grey85"))))
+ (diff-index-face ((t (:bold t :weight bold :background "grey70"))))
+ (diff-nonexistent-face ((t (:bold t :weight bold :background "grey70"))))
+ (diff-removed-face ((t (nil))))
+ (dired-face-boring ((t (:foreground "RosyBrown"))))
+ (dired-face-directory ((t (:foreground "Blue"))))
+ (dired-face-executable ((t (nil))))
+ (dired-face-flagged ((t (:foreground "Red" :weight bold))))
+ (dired-face-marked ((t (:foreground "Red" :weight bold))))
+ (dired-face-permissions ((t (nil))))
+ (dired-face-setuid ((t (nil))))
+ (dired-face-socket ((t (nil))))
+ (dired-face-symlink ((t (:foreground "Purple"))))
+ (ebrowse-default-face ((t (nil))))
+ (ebrowse-file-name-face ((t (:italic t :slant italic))))
+ (ebrowse-member-attribute-face ((t (:foreground "red"))))
+ (ebrowse-member-class-face ((t (:foreground "purple"))))
+ (ebrowse-progress-face ((t (:background "blue"))))
+ (ebrowse-root-class-face ((t (:bold t :foreground "blue" :weight bold))))
+ (ebrowse-tree-mark-face ((t (:foreground "red"))))
+ (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick"))))
+ (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black"))))
+ (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid"))))
+ (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy"))))
+ (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black"))))
+ (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black"))))
+ (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy"))))
+ (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black"))))
+ (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black"))))
+ (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black"))))
+ (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White"))))
+ (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black"))))
+ (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black"))))
+ (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White"))))
+ (eshell-ls-archive-face ((t (:bold t :foreground "Orchid" :weight bold))))
+ (eshell-ls-backup-face ((t (:foreground "OrangeRed"))))
+ (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed" :weight bold))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "Blue" :weight bold))))
+ (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen" :weight bold))))
+ (eshell-ls-missing-face ((t (:bold t :foreground "Red" :weight bold))))
+ (eshell-ls-product-face ((t (:foreground "OrangeRed"))))
+ (eshell-ls-readonly-face ((t (:foreground "Brown"))))
+ (eshell-ls-special-face ((t (:bold t :foreground "Magenta" :weight bold))))
+ (eshell-ls-symlink-face ((t (:bold t :foreground "Dark Cyan" :weight bold))))
+ (eshell-ls-unreadable-face ((t (:foreground "Grey30"))))
+ (eshell-prompt-face ((t (:bold t :foreground "Red" :weight bold))))
+ (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed" :weight bold))))
+ (eshell-test-ok-face ((t (:bold t :foreground "Green" :weight bold))))
+ (excerpt ((t (:italic t :slant italic))))
+ (fixed ((t (:bold t :weight bold))))
+ (fixed-pitch ((t (:family "courier"))))
+ (flyspell-duplicate-face ((t (:bold t :foreground "Gold3" :underline t :weight bold))))
+ (flyspell-incorrect-face ((t (:bold t :foreground "OrangeRed" :underline t :weight bold))))
+ (font-lock-builtin-face ((t (:foreground "Orchid"))))
+ (font-lock-comment-face ((t (:foreground "Firebrick"))))
+ (font-lock-constant-face ((t (:foreground "CadetBlue"))))
+ (font-lock-doc-face ((t (:foreground "RosyBrown"))))
+ (font-lock-doc-string-face ((t (:foreground "RosyBrown"))))
+ (font-lock-function-name-face ((t (:foreground "Blue"))))
+ (font-lock-keyword-face ((t (:foreground "Purple"))))
+ (font-lock-preprocessor-face ((t (:foreground "CadetBlue"))))
+ (font-lock-reference-face ((t (:foreground "Orchid"))))
+ (font-lock-string-face ((t (:foreground "RosyBrown"))))
+ (font-lock-type-face ((t (:foreground "ForestGreen"))))
+ (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red" :weight bold))))
+ (fringe ((t (:background "grey95"))))
+ (gnus-cite-attribution-face ((t (:italic t :slant italic))))
+ (gnus-cite-face-1 ((t (:foreground "MidnightBlue"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "firebrick"))))
+ (gnus-cite-face-3 ((t (:foreground "dark green"))))
+ (gnus-cite-face-4 ((t (:foreground "OrangeRed"))))
+ (gnus-cite-face-5 ((t (:foreground "dark khaki"))))
+ (gnus-cite-face-6 ((t (:foreground "dark violet"))))
+ (gnus-cite-face-7 ((t (:foreground "SteelBlue4"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t :weight bold))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (:italic t :slant italic))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold))))
+ (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold))))
+ (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3" :weight bold))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3" :weight bold))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "magenta4"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4" :weight bold))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4" :weight bold))))
+ (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen" :weight bold))))
+ (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4" :weight bold))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t :weight bold))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t :weight bold))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t :weight bold))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t :weight bold))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen" :weight bold))))
+ (gnus-header-content-face ((t (:italic t :foreground "indianred4" :slant italic))))
+ (gnus-header-from-face ((t (:foreground "red3"))))
+ (gnus-header-name-face ((t (:foreground "maroon"))))
+ (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue" :slant italic))))
+ (gnus-header-subject-face ((t (:foreground "red4"))))
+ (gnus-signature-face ((t (:italic t :slant italic))))
+ (gnus-splash-face ((t (:foreground "Brown"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue" :weight bold))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen" :weight bold))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick" :weight bold))))
+ (gnus-summary-high-unread-face ((t (:bold t :weight bold))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue" :slant italic))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen" :slant italic))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick" :slant italic))))
+ (gnus-summary-low-unread-face ((t (:italic t :slant italic))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "DarkGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "firebrick"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (header-line ((t (:box (:line-width -1 :style released-button) :background "grey90" :foreground "grey20" :box nil))))
+ (hi-black-b ((t (:bold t :weight bold))))
+ (hi-black-hb ((t (:bold t :family "helv" :weight bold :height 1.67))))
+ (hi-blue ((t (:background "light blue"))))
+ (hi-blue-b ((t (:bold t :foreground "blue" :weight bold))))
+ (hi-green ((t (:background "green"))))
+ (hi-green-b ((t (:bold t :foreground "green" :weight bold))))
+ (hi-pink ((t (:background "pink"))))
+ (hi-red-b ((t (:bold t :foreground "red" :weight bold))))
+ (hi-yellow ((t (:background "yellow"))))
+ (highlight ((t (:background "darkseagreen2"))))
+ (highlight-changes-delete-face ((t (:foreground "red" :underline t))))
+ (highlight-changes-face ((t (:foreground "red"))))
+ (holiday-face ((t (:background "pink"))))
+ (idlwave-help-link-face ((t (:foreground "Blue"))))
+ (idlwave-shell-bp-face ((t (:background "Pink" :foreground "Black"))))
+ (info-header-node ((t (:italic t :bold t :weight bold :slant italic :foreground "brown"))))
+ (info-header-xref ((t (:bold t :weight bold :foreground "magenta4"))))
+ (info-menu-5 ((t (:foreground "red1"))))
+ (info-menu-header ((t (:bold t :family "helv" :weight bold))))
+ (info-node ((t (:italic t :bold t :foreground "brown" :slant italic :weight bold))))
+ (info-xref ((t (:bold t :foreground "magenta4" :weight bold))))
+ (isearch ((t (:background "magenta4" :foreground "lightskyblue1"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise"))))
+ (italic ((t (:italic t :slant italic))))
+ (log-view-file-face ((t (:bold t :background "grey70" :weight bold))))
+ (log-view-message-face ((t (:background "grey85"))))
+ (makefile-space-face ((t (:background "hotpink"))))
+ (menu ((t (nil))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:foreground "MidnightBlue"))))
+ (message-header-name-face ((t (:foreground "cornflower blue"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4" :slant italic :weight bold))))
+ (message-header-other-face ((t (:foreground "steel blue"))))
+ (message-header-subject-face ((t (:bold t :foreground "navy blue" :weight bold))))
+ (message-header-to-face ((t (:bold t :foreground "MidnightBlue" :weight bold))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (modeline ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button)))))
+ (modeline-buffer-id ((t (:bold t :background "grey75" :foreground "black" :box (:line-width -1 :style released-button)))))
+ (modeline-mousable ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button)))))
+ (modeline-mousable-minor-mode ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button)))))
+ (mouse ((t (:background "black"))))
+ (primary-selection ((t (:background "lightgoldenrod2"))))
+ (reb-match-0 ((t (:background "lightblue"))))
+ (reb-match-1 ((t (:background "aquamarine"))))
+ (reb-match-2 ((t (:background "springgreen"))))
+ (reb-match-3 ((t (:background "yellow"))))
+ (region ((t (:background "lightgoldenrod2"))))
+ (scroll-bar ((t (:background "grey75"))))
+ (secondary-selection ((t (:background "yellow"))))
+ (sh-heredoc-face ((t (:foreground "tan"))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (show-tabs-space-face ((t (:foreground "yellow"))))
+ (show-tabs-tab-face ((t (:foreground "red"))))
+ (smerge-base-face ((t (:foreground "red"))))
+ (smerge-markers-face ((t (:background "grey85"))))
+ (smerge-mine-face ((t (:foreground "blue"))))
+ (smerge-other-face ((t (:foreground "darkgreen"))))
+ (speedbar-button-face ((t (:foreground "green4"))))
+ (speedbar-directory-face ((t (:foreground "blue4"))))
+ (speedbar-file-face ((t (:foreground "cyan4"))))
+ (speedbar-highlight-face ((t (:background "green"))))
+ (speedbar-selected-face ((t (:foreground "red" :underline t))))
+ (speedbar-tag-face ((t (:foreground "brown"))))
+ (strokes-char-face ((t (:background "lightgray"))))
+ (term-black ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-blackbg ((t (:stipple nil :background "black" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-blue ((t (:stipple nil :background "white" :foreground "blue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-bluebg ((t (:stipple nil :background "blue" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-bold ((t (:bold t :stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight bold :width normal :family "adobe-courier"))))
+ (term-cyan ((t (:stipple nil :background "white" :foreground "cyan" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-cyanbg ((t (:stipple nil :background "cyan" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-default-bg ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-default-bg-inv ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-default-fg ((t (:stipple nil :background "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-default-fg-inv ((t (:stipple nil :background "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-green ((t (:stipple nil :background "white" :foreground "green" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-greenbg ((t (:stipple nil :background "green" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-invisible ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-invisible-inv ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-magenta ((t (:stipple nil :background "white" :foreground "magenta" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-magentabg ((t (:stipple nil :background "magenta" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-red ((t (:stipple nil :background "white" :foreground "red" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-redbg ((t (:stipple nil :background "red" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-underline ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline t :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-white ((t (:stipple nil :background "white" :foreground "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-whitebg ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-yellow ((t (:stipple nil :background "white" :foreground "yellow" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-yellowbg ((t (:stipple nil :background "yellow" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (tex-math-face ((t (:foreground "RosyBrown"))))
+ (texinfo-heading-face ((t (:foreground "Blue"))))
+ (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button)))))
+ (tooltip ((t (:background "lightyellow" :foreground "black"))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "helv"))))
+ (vcursor ((t (:background "cyan" :foreground "blue" :underline t))))
+ (vhdl-font-lock-attribute-face ((t (:foreground "Orchid"))))
+ (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue"))))
+ (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4"))))
+ (vhdl-font-lock-function-face ((t (:foreground "Orchid4"))))
+ (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red" :weight bold))))
+ (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange" :weight bold))))
+ (vhdl-font-lock-translate-off-face ((t (:background "LightGray"))))
+ (vhdl-speedbar-architecture-face ((t (:foreground "Blue"))))
+ (vhdl-speedbar-architecture-selected-face ((t (:foreground "Blue" :underline t))))
+ (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod"))))
+ (vhdl-speedbar-configuration-selected-face ((t (:foreground "DarkGoldenrod" :underline t))))
+ (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen"))))
+ (vhdl-speedbar-entity-selected-face ((t (:foreground "ForestGreen" :underline t))))
+ (vhdl-speedbar-instantiation-face ((t (:foreground "Brown"))))
+ (vhdl-speedbar-instantiation-selected-face ((t (:foreground "Brown" :underline t))))
+ (vhdl-speedbar-package-face ((t (:foreground "Grey50"))))
+ (vhdl-speedbar-package-selected-face ((t (:foreground "Grey50" :underline t))))
+ (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black"))))
+ (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen"))))
+ (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-search-face ((t (:background "khaki" :foreground "Black"))))
+ (widget-button-face ((t (:bold t :weight bold))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "gray85"))))
+ (woman-addition-face ((t (:foreground "orange"))))
+ (woman-bold-face ((t (:bold t :foreground "blue" :weight bold))))
+ (woman-italic-face ((t (:italic t :foreground "red" :underline t :slant italic))))
+ (woman-unknown-face ((t (:foreground "brown"))))
+ (zmacs-region ((t (:background "lightgoldenrod2")))))))
+
+(defun color-theme-jsc-light2 ()
+ "Color theme by John S Cooper, created 2001-10-29.
+This builds on `color-theme-jsc-light'."
+ (interactive)
+ (color-theme-jsc-light)
+ (let ((color-theme-is-cumulative t))
+ (color-theme-install
+ '(color-theme-jsc-light2
+ ((vc-annotate-very-old-color . "#0046FF")
+ (senator-eldoc-use-color . t))
+ nil
+ (bold ((t (:bold t :weight bold))))
+ (bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (change-log-file-face ((t (:foreground "Blue"))))
+ (change-log-name-face ((t (:foreground "Maroon"))))
+ (comint-highlight-prompt ((t (:foreground "dark blue"))))
+ (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button)))))
+ (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2))))
+ (custom-group-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2))))
+ (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "red" :weight bold :height 1.2))))
+ (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "blue" :weight bold :height 1.2))))
+ (font-lock-constant-face ((t (:foreground "Maroon"))))
+ (font-lock-function-name-face ((t (:foreground "Blue"))))
+ (font-lock-type-face ((t (:italic t :foreground "Navy" :slant italic))))
+ (fringe ((t (:background "grey88"))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "Blue2"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen" :weight bold))))
+ (gnus-header-content-face ((t (:italic t :foreground "indianred4" :slant italic))))
+ (gnus-header-name-face ((t (:bold t :foreground "maroon" :weight bold))))
+ (gnus-header-subject-face ((t (:foreground "red4"))))
+ (gnus-signature-face ((t (:italic t :slant italic))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen" :weight bold))))
+ (gnus-summary-high-unread-face ((t (:bold t :weight bold))))
+ (gnus-summary-normal-read-face ((t (:foreground "DarkGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "Navy"))))
+ (gnus-summary-normal-unread-face ((t (:bold t :foreground "DarkGreen" :weight bold))))
+ (header-line ((t (:background "grey90" :foreground "grey20" :box nil))))
+ (highlight ((t (:background "darkseagreen2"))))
+ (ido-subdir-face ((t (:foreground "red"))))
+ (isearch ((t (:background "magenta4" :foreground "lightskyblue1"))))
+ (mode-line ((t (:background "grey88" :foreground "black" :box (:line-width -1 :style released-button)))))
+ (region ((t (:background "lightgoldenrod2"))))
+ (scroll-bar ((t (nil))))
+ (secondary-selection ((t (:background "yellow"))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (tooltip ((t (:background "lightyellow" :foreground "black"))))))))
+
+(defun color-theme-ld-dark ()
+ "Dark Color theme by Linh Dang, created 2001-11-06."
+ (interactive)
+ (color-theme-install
+ '(color-theme-ld-dark
+ ((background-color . "black")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "yellow")
+ (foreground-color . "white")
+ (mouse-color . "white"))
+ ((align-highlight-change-face . highlight)
+ (align-highlight-nochange-face . secondary-selection)
+ (apropos-keybinding-face . underline)
+ (apropos-label-face . italic)
+ (apropos-match-face . secondary-selection)
+ (apropos-property-face . bold-italic)
+ (apropos-symbol-face . bold)
+ (ebnf-except-border-color . "Black")
+ (ebnf-line-color . "Black")
+ (ebnf-non-terminal-border-color . "Black")
+ (ebnf-repeat-border-color . "Black")
+ (ebnf-special-border-color . "Black")
+ (ebnf-terminal-border-color . "Black")
+ (gnus-article-button-face . bold)
+ (gnus-article-mouse-face . highlight)
+ (gnus-carpal-button-face . bold)
+ (gnus-carpal-header-face . bold-italic)
+ (gnus-cite-attribution-face . gnus-cite-attribution-face)
+ (gnus-mouse-face . highlight)
+ (gnus-selected-tree-face . modeline)
+ (gnus-signature-face . gnus-signature-face)
+ (gnus-summary-selected-face . gnus-summary-selected-face)
+ (help-highlight-face . underline)
+ (list-matching-lines-face . bold)
+ (ps-line-number-color . "black")
+ (ps-zebra-color . 0.95)
+ (tags-tag-face . default)
+ (vc-annotate-very-old-color . "#0046FF")
+ (view-highlight-face . highlight)
+ (widget-mouse-face . highlight))
+ (default ((t (:stipple nil :background "black" :foreground "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-courier new"))))
+ (Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728))))
+ (Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44))))
+ (Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2))))
+ (Info-title-4-face ((t (:bold t :family "helv" :weight bold))))
+ (bbdb-company ((t (:italic t :slant italic))))
+ (bbdb-field-name ((t (:bold t :weight bold))))
+ (bbdb-field-value ((t (nil))))
+ (bbdb-name ((t (:underline t))))
+ (bold ((t (:bold t :weight bold))))
+ (bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (border ((t (:background "black"))))
+ (change-log-acknowledgement-face ((t (:italic t :slant oblique :foreground "AntiqueWhite3"))))
+ (change-log-conditionals-face ((t (:foreground "Aquamarine"))))
+ (change-log-date-face ((t (:italic t :slant oblique :foreground "BurlyWood"))))
+ (change-log-email-face ((t (:foreground "Aquamarine"))))
+ (change-log-file-face ((t (:bold t :family "Verdana" :weight bold :foreground "LightSkyBlue" :height 0.9))))
+ (change-log-function-face ((t (:foreground "Aquamarine"))))
+ (change-log-list-face ((t (:foreground "LightSkyBlue"))))
+ (change-log-name-face ((t (:bold t :weight bold :foreground "Gold"))))
+ (clear-case-mode-string-face ((t (:bold t :family "Arial" :box (:line-width 2 :color "grey" :style released-button) :foreground "black" :background "grey" :weight bold :height 0.9))))
+ (comint-highlight-input ((t (:bold t :weight bold))))
+ (comint-highlight-prompt ((t (:foreground "cyan"))))
+ (cursor ((t (:background "yellow"))))
+ (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button)))))
+ (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button)))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-comment-face ((t (:background "dim gray"))))
+ (custom-comment-tag-face ((t (:foreground "gray80"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.1))))
+ (custom-group-tag-face ((t (:bold t :family "helv" :foreground "light blue" :weight bold :height 1.1))))
+ (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "pink" :weight bold :height 1.1))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "lime green"))))
+ (custom-variable-button-face ((t (:bold t :underline t :weight bold))))
+ (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "light blue" :weight bold :height 1.2))))
+ (diff-added-face ((t (nil))))
+ (diff-changed-face ((t (nil))))
+ (diff-context-face ((t (:foreground "grey70"))))
+ (diff-file-header-face ((t (:bold t :background "grey60" :weight bold))))
+ (diff-function-face ((t (:foreground "grey70"))))
+ (diff-header-face ((t (:background "grey45"))))
+ (diff-hunk-header-face ((t (:background "grey45"))))
+ (diff-index-face ((t (:bold t :weight bold :background "grey60"))))
+ (diff-nonexistent-face ((t (:bold t :weight bold :background "grey60"))))
+ (diff-removed-face ((t (nil))))
+ (fixed-pitch ((t (:family "courier"))))
+ (font-lock-builtin-face ((t (:foreground "SteelBlue"))))
+ (font-lock-comment-face ((t (:italic t :foreground "AntiqueWhite3" :slant oblique))))
+ (font-lock-constant-face ((t (:bold t :foreground "Gold" :weight bold))))
+ (font-lock-doc-face ((t (:italic t :slant oblique :foreground "BurlyWood"))))
+ (font-lock-doc-string-face ((t (:italic t :slant oblique :foreground "BurlyWood"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "LightSkyBlue" :weight bold :height 0.9 :family "Verdana"))))
+ (font-lock-keyword-face ((t (:foreground "LightSkyBlue"))))
+ (font-lock-preprocessor-face ((t (:bold t :foreground "Gold" :weight bold))))
+ (font-lock-reference-face ((t (:foreground "SteelBlue"))))
+ (font-lock-string-face ((t (:italic t :foreground "BurlyWood" :slant oblique))))
+ (font-lock-type-face ((t (:bold t :foreground "PaleGreen" :weight bold :height 0.9 :family "Verdana"))))
+ (font-lock-variable-name-face ((t (:foreground "Aquamarine"))))
+ (font-lock-warning-face ((t (:bold t :foreground "chocolate" :weight bold))))
+ (fringe ((t (:family "outline-courier new" :width normal :weight normal :slant normal :underline nil :overline nil :strike-through nil :box nil :inverse-video nil :stipple nil :background "grey4" :foreground "Wheat"))))
+ (gnus-cite-attribution-face ((t (:italic t :slant italic))))
+ (gnus-cite-face-1 ((t (:foreground "light blue"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "light cyan"))))
+ (gnus-cite-face-3 ((t (:foreground "light yellow"))))
+ (gnus-cite-face-4 ((t (:foreground "light pink"))))
+ (gnus-cite-face-5 ((t (:foreground "pale green"))))
+ (gnus-cite-face-6 ((t (:foreground "beige"))))
+ (gnus-cite-face-7 ((t (:foreground "orange"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t :weight bold))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (:italic t :slant italic))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold))))
+ (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold))))
+ (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1" :weight bold))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2" :weight bold))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3" :weight bold))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4" :weight bold))))
+ (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise" :weight bold))))
+ (gnus-group-news-2-empty-face ((t (:foreground "turquoise"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "turquoise" :weight bold))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t :weight bold))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t :weight bold))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t :weight bold))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t :weight bold))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise" :weight bold))))
+ (gnus-header-content-face ((t (:italic t :foreground "forest green" :slant italic))))
+ (gnus-header-from-face ((t (:foreground "spring green"))))
+ (gnus-header-name-face ((t (:foreground "SeaGreen"))))
+ (gnus-header-newsgroups-face ((t (:italic t :foreground "yellow" :slant italic))))
+ (gnus-header-subject-face ((t (:foreground "SeaGreen3"))))
+ (gnus-signature-face ((t (:italic t :slant italic))))
+ (gnus-splash-face ((t (:foreground "Brown"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue" :weight bold))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen" :weight bold))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink" :weight bold))))
+ (gnus-summary-high-unread-face ((t (:bold t :weight bold))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue" :slant italic))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen" :slant italic))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink" :slant italic))))
+ (gnus-summary-low-unread-face ((t (:italic t :slant italic))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "PaleGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "pink"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (header-line ((t (:family "Arial" :background "grey20" :foreground "grey75" :box (:line-width 3 :color "grey20" :style released-button) :height 0.9))))
+ (highlight ((t (:background "darkolivegreen"))))
+ (info-header-node ((t (:italic t :bold t :weight bold :slant italic :foreground "white"))))
+ (info-header-xref ((t (:bold t :weight bold :foreground "cyan"))))
+ (info-menu-5 ((t (:foreground "red1"))))
+ (info-menu-header ((t (:bold t :family "helv" :weight bold))))
+ (info-node ((t (:italic t :bold t :foreground "white" :slant italic :weight bold))))
+ (info-xref ((t (:bold t :foreground "cyan" :weight bold))))
+ (isearch ((t (:background "palevioletred2"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise4"))))
+ (italic ((t (:italic t :slant italic))))
+ (makefile-space-face ((t (:background "hotpink"))))
+ (menu ((t (nil))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:bold t :foreground "green4" :weight bold))))
+ (message-header-name-face ((t (:foreground "DarkGreen"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow" :slant italic :weight bold))))
+ (message-header-other-face ((t (:foreground "#b00000"))))
+ (message-header-subject-face ((t (:foreground "green3"))))
+ (message-header-to-face ((t (:bold t :foreground "green2" :weight bold))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "blue3"))))
+ (modeline ((t (:background "grey" :foreground "black" :box (:line-width 2 :color "grey" :style released-button) :height 0.9 :family "Arial"))))
+ (modeline-mousable-minor-mode ((t (:background "grey" :foreground "black" :box (:line-width 2 :color "grey" :style released-button) :height 0.9 :family "Arial"))))
+ (modeline-mousable ((t (:background "grey" :foreground "black" :box (:line-width 2 :color "grey" :style released-button) :height 0.9 :family "Arial"))))
+ (modeline-buffer-id ((t (:background "grey" :foreground "black" :box (:line-width 2 :color "grey" :style released-button) :height 0.9 :family "Arial"))))
+ (mouse ((t (:background "white"))))
+ (primary-selection ((t (:background "DarkSlateGray"))))
+ (region ((t (:background "DarkSlateGray"))))
+ (scroll-bar ((t (nil))))
+ (secondary-selection ((t (:background "SkyBlue4"))))
+ (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button)))))
+ (trailing-whitespace ((t (:background "white"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "helv"))))
+ (widget-button-face ((t (:bold t :weight bold))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "lime green"))))
+ (widget-field-face ((t (:background "dim gray"))))
+ (widget-inactive-face ((t (:foreground "light gray"))))
+ (widget-single-line-field-face ((t (:background "dim gray"))))
+ (zmacs-region ((t (:background "DarkSlateGray")))))))
+
+(defun color-theme-deep-blue ()
+ "Color theme by Tomas Cerha, created 2001-11-13."
+ (interactive)
+ (color-theme-install
+ '(color-theme-deep-blue
+ ((background-color . "#102e4e")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "green")
+ (foreground-color . "#eeeeee")
+ (mouse-color . "white"))
+ ((browse-kill-ring-separator-face . bold)
+ (display-time-mail-face . mode-line)
+ (help-highlight-face . underline)
+ (list-matching-lines-face . secondary-selection)
+ (vc-annotate-very-old-color . "#0046FF")
+ (view-highlight-face . highlight)
+ (widget-mouse-face . highlight))
+ (default ((t (:stipple nil :background "#102e4e" :foreground "#eeeeee" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "misc-fixed"))))
+ (Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728))))
+ (Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44))))
+ (Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2))))
+ (Info-title-4-face ((t (:bold t :family "helv" :weight bold))))
+ (bold ((t (:bold t :weight bold))))
+ (bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (border ((t (:background "black"))))
+ (calendar-today-face ((t (:background "blue"))))
+ (change-log-acknowledgement-face ((t (:italic t :slant italic :foreground "CadetBlue"))))
+ (change-log-conditionals-face ((t (:foreground "SeaGreen2"))))
+ (change-log-date-face ((t (:foreground "burlywood"))))
+ (change-log-email-face ((t (:foreground "SeaGreen2"))))
+ (change-log-file-face ((t (:bold t :weight bold :foreground "goldenrod"))))
+ (change-log-function-face ((t (:foreground "SeaGreen2"))))
+ (change-log-list-face ((t (:bold t :weight bold :foreground "DeepSkyBlue1"))))
+ (change-log-name-face ((t (:foreground "gold"))))
+ (comint-highlight-input ((t (:bold t :weight bold))))
+ (comint-highlight-prompt ((t (:foreground "cyan"))))
+ (cursor ((t (:background "green" :foreground "black"))))
+ (cvs-filename-face ((t (:foreground "lightblue"))))
+ (cvs-handled-face ((t (:foreground "pink"))))
+ (cvs-header-face ((t (:bold t :foreground "lightyellow" :weight bold))))
+ (cvs-marked-face ((t (:bold t :foreground "green" :weight bold))))
+ (cvs-msg-face ((t (:italic t :slant italic))))
+ (cvs-need-action-face ((t (:foreground "orange"))))
+ (cvs-unknown-face ((t (:foreground "red"))))
+ (diary-face ((t (:foreground "orange red"))))
+ (diff-added-face ((t (nil))))
+ (diff-changed-face ((t (nil))))
+ (diff-context-face ((t (:foreground "grey70"))))
+ (diff-file-header-face ((t (:bold t :background "grey60" :weight bold))))
+ (diff-function-face ((t (:foreground "grey70"))))
+ (diff-header-face ((t (:background "grey45"))))
+ (diff-hunk-header-face ((t (:background "grey45"))))
+ (diff-index-face ((t (:bold t :weight bold :background "grey60"))))
+ (diff-nonexistent-face ((t (:bold t :weight bold :background "grey60"))))
+ (diff-removed-face ((t (nil))))
+ (fixed-pitch ((t (:family "fixed"))))
+ (font-latex-bold-face ((t (:bold t :foreground "OliveDrab" :weight bold))))
+ (font-latex-italic-face ((t (:italic t :foreground "OliveDrab" :slant italic))))
+ (font-latex-math-face ((t (:foreground "burlywood"))))
+ (font-latex-sedate-face ((t (:foreground "LightGray"))))
+ (font-latex-string-face ((t (:foreground "LightSalmon"))))
+ (font-latex-warning-face ((t (:bold t :foreground "Pink" :weight bold))))
+ (font-lock-builtin-face ((t (:foreground "LightCoral"))))
+ (font-lock-comment-face ((t (:italic t :foreground "CadetBlue" :slant italic))))
+ (font-lock-constant-face ((t (:foreground "gold"))))
+ (font-lock-doc-face ((t (:foreground "BlanchedAlmond"))))
+ (font-lock-doc-string-face ((t (:foreground "BlanchedAlmond"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "goldenrod" :weight bold))))
+ (font-lock-keyword-face ((t (:bold t :foreground "DeepSkyBlue1" :weight bold))))
+ (font-lock-preprocessor-face ((t (:foreground "gold"))))
+ (font-lock-reference-face ((t (:foreground "LightCoral"))))
+ (font-lock-string-face ((t (:foreground "burlywood"))))
+ (font-lock-type-face ((t (:foreground "CadetBlue1"))))
+ (font-lock-variable-name-face ((t (:foreground "SeaGreen2"))))
+ (font-lock-warning-face ((t (:foreground "yellow"))))
+ (fringe ((t (:background "#405060"))))
+ (header-line ((t (:box (:line-width 2 :style released-button) :background "grey20" :foreground "grey90" :box nil))))
+ (highlight ((t (:background "darkgreen"))))
+ (holiday-face ((t (:foreground "green"))))
+ (info-header-node ((t (:foreground "DeepSkyBlue1"))))
+ (info-header-xref ((t (:bold t :weight bold :foreground "SeaGreen2"))))
+ (info-menu-5 ((t (:foreground "wheat"))))
+ (info-menu-header ((t (:bold t :family "helv" :weight bold))))
+ (info-node ((t (:foreground "DeepSkyBlue1"))))
+ (info-xref ((t (:bold t :foreground "SeaGreen2" :weight bold))))
+ (isearch ((t (:background "palevioletred2" :foreground "brown4"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise4"))))
+ (italic ((t (:italic t :slant italic))))
+ (menu ((t (:background "gray" :foreground "black" :family "helvetica"))))
+ (modeline ((t (:background "gray" :foreground "black" :box (:line-width 2 :style released-button)))))
+ (modeline-buffer-id ((t (:background "gray" :foreground "black" :box (:line-width 2 :style released-button)))))
+ (modeline-mousable ((t (:background "gray" :foreground "black" :box (:line-width 2 :style released-button)))))
+ (modeline-mousable-minor-mode ((t (:background "gray" :foreground "black" :box (:line-width 2 :style released-button)))))
+ (mouse ((t (:background "white"))))
+ (region ((t (:background "DarkCyan"))))
+ (scroll-bar ((t (:background "gray" :foreground "#506070"))))
+ (secondary-selection ((t (:background "yellow" :foreground "gray10"))))
+ (show-paren-match-face ((t (:bold t :foreground "yellow" :weight bold))))
+ (show-paren-mismatch-face ((t (:bold t :foreground "red" :weight bold))))
+ (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button)))))
+ (tooltip ((t (:background "lightyellow" :foreground "black"))))
+ (trailing-whitespace ((t (:background "#102e4e"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "helv"))))
+ (widget-button-face ((t (:bold t :weight bold))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "lime green"))))
+ (widget-field-face ((t (:background "dim gray"))))
+ (widget-inactive-face ((t (:foreground "light gray"))))
+ (widget-single-line-field-face ((t (:background "dim gray")))))))
+
+(defun color-theme-kingsajz ()
+ "Color theme by Olgierd \"Kingsajz\" Ziolko, created 2001-12-04.
+Another theme with wheat on DarkSlatGrey. Based on Subtle Hacker.
+Used on Emacs 21.1 @ WinMe. Not tested on any other systems.
+
+Some faces uses Andale mono font (nice fixed-width font).
+It is available at: http://www.microsoft.com/typography/downloads/andale32.exe
+
+Hail Eris! All hail Discordia!"
+ (interactive)
+ (color-theme-install
+ '(color-theme-kingsajz
+ ((background-color . "darkslategrey")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "LightGray")
+ (foreground-color . "wheat")
+ (mouse-color . "Grey"))
+ ((apropos-keybinding-face . underline)
+ (apropos-label-face face italic mouse-face highlight)
+ (apropos-match-face . secondary-selection)
+ (apropos-property-face . bold-italic)
+ (apropos-symbol-face . info-xref)
+ (display-time-mail-face . mode-line)
+ (gnus-article-button-face . bold)
+ (gnus-article-mouse-face . highlight)
+ (gnus-carpal-button-face . bold)
+ (gnus-carpal-header-face . bold-italic)
+ (gnus-cite-attribution-face . gnus-cite-attribution-face)
+ (gnus-mouse-face . highlight)
+ (gnus-selected-tree-face . modeline)
+ (gnus-signature-face . gnus-signature-face)
+ (gnus-summary-selected-face . gnus-summary-selected-face)
+ (gnus-treat-display-xface . head)
+ (help-highlight-face . underline)
+ (list-matching-lines-face . bold)
+ (view-highlight-face . highlight)
+ (widget-mouse-face . highlight))
+ (default ((t (:stipple nil :background "darkslategrey" :foreground "wheat" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-andale mono"))))
+ (bbdb-field-name ((t (:foreground "green"))))
+ (bg:erc-color-face0 ((t (:background "White"))))
+ (bg:erc-color-face1 ((t (:background "black"))))
+ (bg:erc-color-face10 ((t (:background "lightblue1"))))
+ (bg:erc-color-face11 ((t (:background "cyan"))))
+ (bg:erc-color-face12 ((t (:background "blue"))))
+ (bg:erc-color-face13 ((t (:background "deeppink"))))
+ (bg:erc-color-face14 ((t (:background "gray50"))))
+ (bg:erc-color-face15 ((t (:background "gray90"))))
+ (bg:erc-color-face2 ((t (:background "blue4"))))
+ (bg:erc-color-face3 ((t (:background "green4"))))
+ (bg:erc-color-face4 ((t (:background "red"))))
+ (bg:erc-color-face5 ((t (:background "brown"))))
+ (bg:erc-color-face6 ((t (:background "purple"))))
+ (bg:erc-color-face7 ((t (:background "orange"))))
+ (bg:erc-color-face8 ((t (:background "yellow"))))
+ (bg:erc-color-face9 ((t (:background "green"))))
+ (blue ((t (:foreground "cyan"))))
+ (bold ((t (:bold t :foreground "OrangeRed" :weight bold :family "Arial"))))
+ (bold-italic ((t (:italic t :bold t :slant italic :weight bold :family "Arial"))))
+ (border ((t (:background "black"))))
+ (calendar-today-face ((t (:underline t))))
+ (comint-highlight-input ((t (:bold t :weight bold))))
+ (comint-highlight-prompt ((t (:foreground "cyan"))))
+ (cperl-array-face ((t (:foreground "Yellow"))))
+ (cperl-hash-face ((t (:foreground "White"))))
+ (cperl-nonoverridable-face ((t (:foreground "SkyBlue"))))
+ (cursor ((t (:background "LightGray"))))
+ (custom-button-face ((t (:foreground "MediumSlateBlue" :underline t))))
+ (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button)))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-comment-face ((t (:background "dim gray"))))
+ (custom-comment-tag-face ((t (:foreground "gray80"))))
+ (custom-documentation-face ((t (:foreground "Grey"))))
+ (custom-face-tag-face ((t (:bold t :family "Arial" :weight bold :height 1.2))))
+ (custom-group-tag-face ((t (:foreground "MediumAquamarine"))))
+ (custom-group-tag-face-1 ((t (:bold t :family "Arial" :foreground "pink" :weight bold :height 1.2))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "Coral"))))
+ (custom-variable-button-face ((t (:underline t))))
+ (custom-variable-tag-face ((t (:foreground "Aquamarine"))))
+ (date ((t (:foreground "green"))))
+ (diary-face ((t (:bold t :foreground "IndianRed" :weight bold))))
+ (dired-face-directory ((t (:bold t :foreground "sky blue" :weight bold))))
+ (dired-face-executable ((t (:foreground "green yellow"))))
+ (dired-face-flagged ((t (:foreground "tomato"))))
+ (dired-face-marked ((t (:foreground "light salmon"))))
+ (dired-face-permissions ((t (:foreground "aquamarine"))))
+ (erc-action-face ((t (:bold t :weight bold))))
+ (erc-bold-face ((t (:bold t :weight bold))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (:foreground "pale green"))))
+ (erc-error-face ((t (:bold t :foreground "IndianRed" :weight bold))))
+ (erc-highlight-face ((t (:bold t :foreground "pale green" :weight bold))))
+ (erc-host-danger-face ((t (:foreground "red"))))
+ (erc-input-face ((t (:foreground "light blue"))))
+ (erc-inverse-face ((t (:background "steel blue"))))
+ (erc-notice-face ((t (:foreground "light salmon"))))
+ (erc-pal-face ((t (:foreground "pale green"))))
+ (erc-prompt-face ((t (:bold t :foreground "light blue" :weight bold))))
+ (erc-underline-face ((t (:underline t))))
+ (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed" :weight bold))))
+ (eshell-ls-backup-face ((t (:foreground "Grey"))))
+ (eshell-ls-clutter-face ((t (:bold t :foreground "DimGray" :weight bold))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "MediumSlateBlue" :weight bold))))
+ (eshell-ls-executable-face ((t (:bold t :foreground "Coral" :weight bold))))
+ (eshell-ls-missing-face ((t (:bold t :foreground "black" :weight bold))))
+ (eshell-ls-picture-face ((t (:foreground "Violet"))))
+ (eshell-ls-product-face ((t (:foreground "LightSalmon"))))
+ (eshell-ls-readonly-face ((t (:foreground "Aquamarine"))))
+ (eshell-ls-special-face ((t (:bold t :foreground "Gold" :weight bold))))
+ (eshell-ls-symlink-face ((t (:bold t :foreground "White" :weight bold))))
+ (eshell-ls-text-face ((t (:foreground "medium aquamarine"))))
+ (eshell-ls-todo-face ((t (:bold t :foreground "aquamarine" :weight bold))))
+ (eshell-ls-unreadable-face ((t (:foreground "DimGray"))))
+ (eshell-prompt-face ((t (:foreground "powder blue"))))
+ (face-1 ((t (:stipple nil :foreground "royal blue" :family "andale mono"))))
+ (face-2 ((t (:stipple nil :foreground "DeepSkyBlue1" :overline nil :underline nil :slant normal :family "outline-andale mono"))))
+ (face-3 ((t (:stipple nil :foreground "NavajoWhite3"))))
+ (fg:erc-color-face0 ((t (:foreground "white"))))
+ (fg:erc-color-face1 ((t (:foreground "beige"))))
+ (fg:erc-color-face10 ((t (:foreground "pale goldenrod"))))
+ (fg:erc-color-face11 ((t (:foreground "light goldenrod yellow"))))
+ (fg:erc-color-face12 ((t (:foreground "light yellow"))))
+ (fg:erc-color-face13 ((t (:foreground "yellow"))))
+ (fg:erc-color-face14 ((t (:foreground "light goldenrod"))))
+ (fg:erc-color-face15 ((t (:foreground "lime green"))))
+ (fg:erc-color-face2 ((t (:foreground "lemon chiffon"))))
+ (fg:erc-color-face3 ((t (:foreground "light cyan"))))
+ (fg:erc-color-face4 ((t (:foreground "powder blue"))))
+ (fg:erc-color-face5 ((t (:foreground "sky blue"))))
+ (fg:erc-color-face6 ((t (:foreground "dark sea green"))))
+ (fg:erc-color-face7 ((t (:foreground "pale green"))))
+ (fg:erc-color-face8 ((t (:foreground "medium spring green"))))
+ (fg:erc-color-face9 ((t (:foreground "khaki"))))
+ (fixed-pitch ((t (:family "courier"))))
+ (font-lock-builtin-face ((t (:bold t :foreground "PaleGreen" :weight bold))))
+ (font-lock-comment-face ((t (:foreground "White"))))
+ (font-lock-constant-face ((t (:bold t :foreground "Aquamarine" :weight bold))))
+ (font-lock-doc-face ((t (:italic t :slant italic :foreground "LightSalmon"))))
+ (font-lock-doc-string-face ((t (:foreground "LightSalmon"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "MediumSlateBlue" :weight bold))))
+ (font-lock-keyword-face ((t (:foreground "Salmon"))))
+ (font-lock-preprocessor-face ((t (:foreground "Salmon"))))
+ (font-lock-reference-face ((t (:foreground "pale green"))))
+ (font-lock-string-face ((t (:italic t :foreground "LightSalmon" :slant italic))))
+ (font-lock-type-face ((t (:bold t :foreground "YellowGreen" :weight bold))))
+ (font-lock-variable-name-face ((t (:italic t :bold t :foreground "Aquamarine" :slant italic :weight bold))))
+ (font-lock-warning-face ((t (:bold t :foreground "IndianRed" :weight bold))))
+ (fringe ((t (:background "darkslategrey"))))
+ (gnus-cite-attribution-face ((t (:family "arial"))))
+ (gnus-cite-face-1 ((t (:foreground "DarkGoldenrod3"))))
+ (gnus-cite-face-10 ((t (nil))))
+ (gnus-cite-face-11 ((t (nil))))
+ (gnus-cite-face-2 ((t (:foreground "IndianRed3"))))
+ (gnus-cite-face-3 ((t (:foreground "tomato"))))
+ (gnus-cite-face-4 ((t (:foreground "yellow green"))))
+ (gnus-cite-face-5 ((t (:foreground "SteelBlue3"))))
+ (gnus-cite-face-6 ((t (:foreground "Azure3"))))
+ (gnus-cite-face-7 ((t (:foreground "Azure4"))))
+ (gnus-cite-face-8 ((t (:foreground "SpringGreen4"))))
+ (gnus-cite-face-9 ((t (:foreground "SlateGray4"))))
+ (gnus-emphasis-bold ((t (:bold t :foreground "greenyellow" :weight bold :family "Arial"))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t :foreground "OrangeRed1" :slant italic :weight bold :family "arial"))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "khaki"))))
+ (gnus-emphasis-italic ((t (:italic t :bold t :foreground "orange" :slant italic :weight bold :family "Arial"))))
+ (gnus-emphasis-underline ((t (:foreground "greenyellow" :underline t))))
+ (gnus-emphasis-underline-bold ((t (:bold t :foreground "khaki" :underline t :weight bold :family "Arial"))))
+ (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold :family "Arial"))))
+ (gnus-emphasis-underline-italic ((t (:italic t :foreground "orange" :underline t :slant italic :family "Arial"))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "Salmon4"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "firebrick1" :weight bold))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "turquoise4"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "turquoise" :weight bold))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "LightCyan4"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "LightCyan1" :weight bold))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "SteelBlue4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "SteelBlue2" :weight bold))))
+ (gnus-group-news-1-empty-face ((t (:foreground "Salmon4"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "FireBrick1" :weight bold))))
+ (gnus-group-news-2-empty-face ((t (:foreground "darkorange3"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "dark orange" :weight bold))))
+ (gnus-group-news-3-empty-face ((t (:foreground "turquoise4"))))
+ (gnus-group-news-3-face ((t (:bold t :foreground "Aquamarine" :weight bold))))
+ (gnus-group-news-4-empty-face ((t (:foreground "SpringGreen4"))))
+ (gnus-group-news-4-face ((t (:bold t :foreground "SpringGreen2" :weight bold))))
+ (gnus-group-news-5-empty-face ((t (:foreground "OliveDrab4"))))
+ (gnus-group-news-5-face ((t (:bold t :foreground "OliveDrab2" :weight bold))))
+ (gnus-group-news-6-empty-face ((t (:foreground "DarkGoldenrod4"))))
+ (gnus-group-news-6-face ((t (:bold t :foreground "DarkGoldenrod3" :weight bold))))
+ (gnus-group-news-low-empty-face ((t (:foreground "wheat4"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "tan4" :weight bold))))
+ (gnus-header-content-face ((t (:foreground "LightSkyBlue3"))))
+ (gnus-header-from-face ((t (:bold t :foreground "light cyan" :weight bold))))
+ (gnus-header-name-face ((t (:bold t :foreground "DodgerBlue1" :weight bold))))
+ (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3" :slant italic :weight bold))))
+ (gnus-header-subject-face ((t (:bold t :foreground "light cyan" :weight bold))))
+ (gnus-signature-face ((t (:italic t :foreground "salmon" :slant italic))))
+ (gnus-splash-face ((t (:foreground "Firebrick1"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "MistyRose4" :weight bold))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "tomato3" :weight bold))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "coral" :weight bold))))
+ (gnus-summary-high-unread-face ((t (:italic t :bold t :foreground "red1" :slant italic :weight bold))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "DarkSeaGreen4" :slant italic))))
+ (gnus-summary-low-read-face ((t (:foreground "SeaGreen4"))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "Green4" :slant italic))))
+ (gnus-summary-low-unread-face ((t (:italic t :foreground "green3" :slant italic))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "khaki4"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "khaki3"))))
+ (gnus-summary-normal-unread-face ((t (:foreground "khaki"))))
+ (gnus-summary-selected-face ((t (:foreground "gold" :underline t))))
+ (green ((t (:foreground "green"))))
+ (gui-button-face ((t (:foreground "red" :background "black"))))
+ (gui-element ((t (:bold t :background "#ffffff" :foreground "#000000" :weight bold))))
+ (header-line ((t (:box (:line-width -1 :style released-button) :background "grey20" :foreground "grey90" :box nil))))
+ (highlight ((t (:background "PaleGreen" :foreground "DarkGreen"))))
+ (highline-face ((t (:background "SeaGreen"))))
+ (holiday-face ((t (:background "DimGray"))))
+ (info-menu-5 ((t (:underline t))))
+ (info-node ((t (:bold t :foreground "DodgerBlue1" :underline t :weight bold))))
+ (info-xref ((t (:bold t :foreground "DodgerBlue3" :weight bold))))
+ (isearch ((t (:background "sea green" :foreground "black"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise4"))))
+ (italic ((t (:italic t :foreground "chocolate3" :slant italic))))
+ (menu ((t (nil))))
+ (message-cited-text-face ((t (:foreground "White"))))
+ (message-header-cc-face ((t (:foreground "light cyan"))))
+ (message-header-name-face ((t (:foreground "DodgerBlue1"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "LightSkyBlue3" :slant italic :weight bold))))
+ (message-header-other-face ((t (:foreground "LightSkyBlue3"))))
+ (message-header-subject-face ((t (:bold t :foreground "light cyan" :weight bold))))
+ (message-header-to-face ((t (:bold t :foreground "light cyan" :weight bold))))
+ (message-header-xheader-face ((t (:foreground "DodgerBlue3"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:background "cornflower blue" :foreground "chocolate"))))
+ (modeline ((t (:background "dark olive green" :foreground "wheat" :box (:line-width -1 :style released-button)))))
+ (modeline-buffer-id ((t (:bold t :background "dark olive green" :foreground "beige" :weight bold :family "arial"))))
+ (modeline-mousable ((t (:bold t :background "dark olive green" :foreground "yellow green" :weight bold :family "arial"))))
+ (modeline-mousable-minor-mode ((t (:bold t :background "dark olive green" :foreground "wheat" :weight bold :family "arial"))))
+ (mouse ((t (:background "Grey"))))
+ (paren-blink-off ((t (:foreground "brown"))))
+ (region ((t (:background "dark cyan" :foreground "cyan"))))
+ (ruler-mode-column-number-face ((t (:box (:color "grey76" :line-width 1 :style released-button) :background "grey76" :stipple nil :inverse-video nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-andale mono" :foreground "black"))))
+ (ruler-mode-current-column-face ((t (:bold t :box (:color "grey76" :line-width 1 :style released-button) :background "grey76" :stipple nil :inverse-video nil :strike-through nil :overline nil :underline nil :slant normal :width normal :family "outline-andale mono" :foreground "yellow" :weight bold))))
+ (ruler-mode-default-face ((t (:family "outline-andale mono" :width normal :weight normal :slant normal :underline nil :overline nil :strike-through nil :inverse-video nil :stipple nil :background "grey76" :foreground "grey64" :box (:color "grey76" :line-width 1 :style released-button)))))
+ (ruler-mode-fill-column-face ((t (:box (:color "grey76" :line-width 1 :style released-button) :background "grey76" :stipple nil :inverse-video nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-andale mono" :foreground "red"))))
+ (ruler-mode-margins-face ((t (:box (:color "grey76" :line-width 1 :style released-button) :foreground "grey64" :stipple nil :inverse-video nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-andale mono" :background "grey64"))))
+ (ruler-mode-tab-stop-face ((t (:box (:color "grey76" :line-width 1 :style released-button) :background "grey76" :stipple nil :inverse-video nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-andale mono" :foreground "steelblue"))))
+ (scroll-bar ((t (nil))))
+ (secondary-selection ((t (:background "Aquamarine" :foreground "SlateBlue"))))
+ (show-paren-match-face ((t (:bold t :background "Aquamarine" :foreground "steel blue" :weight bold))))
+ (show-paren-mismatch-face ((t (:background "Red" :foreground "White"))))
+ (swbuff-current-buffer-face ((t (:bold t :foreground "red" :weight bold))))
+ (text-cursor ((t (:background "Red" :foreground "white"))))
+ (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button)))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "Arial"))))
+ (w3m-anchor-face ((t (:bold t :foreground "DodgerBlue1" :weight bold))))
+ (w3m-arrived-anchor-face ((t (:bold t :foreground "DodgerBlue3" :weight bold))))
+ (w3m-header-line-location-content-face ((t (:background "dark olive green" :foreground "wheat"))))
+ (w3m-header-line-location-title-face ((t (:background "dark olive green" :foreground "beige"))))
+ (widget-button-face ((t (:bold t :foreground "green" :weight bold :family "courier"))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "lime green"))))
+ (widget-field-face ((t (:foreground "LightBlue"))))
+ (widget-inactive-face ((t (:foreground "DimGray"))))
+ (widget-single-line-field-face ((t (:foreground "LightBlue"))))
+ (woman-bold-face ((t (:bold t :weight bold :family "Arial"))))
+ (woman-italic-face ((t (:italic t :foreground "beige" :slant italic :family "Arial"))))
+ (woman-unknown-face ((t (:foreground "LightSalmon"))))
+ (zmacs-region ((t (:background "dark cyan" :foreground "cyan")))))))
+
+(defun color-theme-comidia ()
+ "Color theme by Marcelo Dias de Toledo, created 2001-12-17.
+Steel blue on black."
+ (interactive)
+ (color-theme-install
+ '(color-theme-comidia
+ ((background-color . "Black")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "SteelBlue")
+ (foreground-color . "SteelBlue")
+ (mouse-color . "SteelBlue"))
+ ((display-time-mail-face . mode-line)
+ (gnus-mouse-face . highlight)
+ (gnus-summary-selected-face . gnus-summary-selected-face)
+ (help-highlight-face . underline)
+ (ispell-highlight-face . highlight)
+ (list-matching-lines-face . bold)
+ (view-highlight-face . highlight)
+ (widget-mouse-face . highlight))
+ (default ((t (:stipple nil :background "Black" :foreground "SteelBlue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width semi-condensed :family "misc-fixed"))))
+ (bg:erc-color-face0 ((t (:background "White"))))
+ (bg:erc-color-face1 ((t (:background "black"))))
+ (bg:erc-color-face10 ((t (:background "lightblue1"))))
+ (bg:erc-color-face11 ((t (:background "cyan"))))
+ (bg:erc-color-face12 ((t (:background "blue"))))
+ (bg:erc-color-face13 ((t (:background "deeppink"))))
+ (bg:erc-color-face14 ((t (:background "gray50"))))
+ (bg:erc-color-face15 ((t (:background "gray90"))))
+ (bg:erc-color-face2 ((t (:background "blue4"))))
+ (bg:erc-color-face3 ((t (:background "green4"))))
+ (bg:erc-color-face4 ((t (:background "red"))))
+ (bg:erc-color-face5 ((t (:background "brown"))))
+ (bg:erc-color-face6 ((t (:background "purple"))))
+ (bg:erc-color-face7 ((t (:background "orange"))))
+ (bg:erc-color-face8 ((t (:background "yellow"))))
+ (bg:erc-color-face9 ((t (:background "green"))))
+ (bold ((t (:bold t :weight bold))))
+ (bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (border ((t (:background "black"))))
+ (comint-highlight-input ((t (:bold t :weight bold))))
+ (comint-highlight-prompt ((t (:foreground "cyan"))))
+ (cursor ((t (:background "SteelBlue"))))
+ (erc-action-face ((t (:bold t :weight bold))))
+ (erc-bold-face ((t (:bold t :weight bold))))
+ (erc-dangerous-host-face ((t (:foreground "red"))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (:foreground "IndianRed"))))
+ (erc-error-face ((t (:background "Red" :foreground "White"))))
+ (erc-fool-face ((t (:foreground "dim gray"))))
+ (erc-input-face ((t (:foreground "brown"))))
+ (erc-inverse-face ((t (:background "Black" :foreground "White"))))
+ (erc-keyword-face ((t (:bold t :foreground "pale green" :weight bold))))
+ (erc-notice-face ((t (:bold t :foreground "SlateBlue" :weight bold))))
+ (erc-pal-face ((t (:bold t :foreground "Magenta" :weight bold))))
+ (erc-prompt-face ((t (:bold t :background "lightBlue2" :foreground "Black" :weight bold))))
+ (erc-timestamp-face ((t (:bold t :foreground "green" :weight bold))))
+ (erc-underline-face ((t (:underline t))))
+ (fg:erc-color-face0 ((t (:foreground "White"))))
+ (fg:erc-color-face1 ((t (:foreground "black"))))
+ (fg:erc-color-face10 ((t (:foreground "lightblue1"))))
+ (fg:erc-color-face11 ((t (:foreground "cyan"))))
+ (fg:erc-color-face12 ((t (:foreground "blue"))))
+ (fg:erc-color-face13 ((t (:foreground "deeppink"))))
+ (fg:erc-color-face14 ((t (:foreground "gray50"))))
+ (fg:erc-color-face15 ((t (:foreground "gray90"))))
+ (fg:erc-color-face2 ((t (:foreground "blue4"))))
+ (fg:erc-color-face3 ((t (:foreground "green4"))))
+ (fg:erc-color-face4 ((t (:foreground "red"))))
+ (fg:erc-color-face5 ((t (:foreground "brown"))))
+ (fg:erc-color-face6 ((t (:foreground "purple"))))
+ (fg:erc-color-face7 ((t (:foreground "orange"))))
+ (fg:erc-color-face8 ((t (:foreground "yellow"))))
+ (fg:erc-color-face9 ((t (:foreground "green"))))
+ (fixed-pitch ((t (:family "courier"))))
+ (font-lock-builtin-face ((t (:foreground "LightSteelBlue"))))
+ (font-lock-comment-face ((t (:foreground "chocolate1"))))
+ (font-lock-constant-face ((t (:foreground "Aquamarine"))))
+ (font-lock-doc-face ((t (:foreground "LightSalmon"))))
+ (font-lock-doc-string-face ((t (:foreground "LightSalmon"))))
+ (font-lock-function-name-face ((t (:foreground "LightSkyBlue"))))
+ (font-lock-keyword-face ((t (:foreground "Cyan"))))
+ (font-lock-preprocessor-face ((t (:foreground "Aquamarine"))))
+ (font-lock-reference-face ((t (:foreground "LightSteelBlue"))))
+ (font-lock-string-face ((t (:foreground "LightSalmon"))))
+ (font-lock-type-face ((t (:foreground "PaleGreen"))))
+ (font-lock-variable-name-face ((t (:foreground "LightGoldenrod"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold))))
+ (fringe ((t (:background "grey10"))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1" :weight bold))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2" :weight bold))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3" :weight bold))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4" :weight bold))))
+ (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise" :weight bold))))
+ (gnus-group-news-2-empty-face ((t (:foreground "turquoise"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "turquoise" :weight bold))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t :weight bold))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t :weight bold))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t :weight bold))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t :weight bold))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise" :weight bold))))
+ (gnus-splash-face ((t (:foreground "Brown"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue" :weight bold))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen" :weight bold))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink" :weight bold))))
+ (gnus-summary-high-unread-face ((t (:bold t :weight bold))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue" :slant italic))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen" :slant italic))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink" :slant italic))))
+ (gnus-summary-low-unread-face ((t (:italic t :slant italic))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "PaleGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "pink"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (header-line ((t (:family "neep" :width condensed :box (:line-width 1 :style none) :background "grey20" :foreground "grey90" :box nil))))
+ (highlight ((t (:background "darkolivegreen"))))
+ (isearch ((t (:background "palevioletred2" :foreground "brown4"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise4"))))
+ (italic ((t (:italic t :slant italic))))
+ (menu ((t (nil))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:bold t :foreground "green4" :weight bold))))
+ (message-header-name-face ((t (:foreground "DarkGreen"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow" :slant italic :weight bold))))
+ (message-header-other-face ((t (:foreground "#b00000"))))
+ (message-header-subject-face ((t (:foreground "green3"))))
+ (message-header-to-face ((t (:bold t :foreground "green2" :weight bold))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "blue3"))))
+ (modeline ((t (:background "Gray10" :foreground "SteelBlue" :box (:line-width 1 :style none) :width condensed :family "neep"))))
+ (modeline-buffer-id ((t (:background "Gray10" :foreground "SteelBlue" :box (:line-width 1 :style none) :width condensed :family "neep"))))
+ (modeline-mousable-minor-mode ((t (:background "Gray10" :foreground "SteelBlue" :box (:line-width 1 :style none) :width condensed :family "neep"))))
+ (modeline-mousable ((t (:background "Gray10" :foreground "SteelBlue" :box (:line-width 1 :style none) :width condensed :family "neep"))))
+ (mouse ((t (:background "SteelBlue"))))
+ (primary-selection ((t (:background "blue3"))))
+ (region ((t (:background "blue3"))))
+ (scroll-bar ((t (:background "grey75"))))
+ (secondary-selection ((t (:background "SkyBlue4"))))
+ (speedbar-button-face ((t (:foreground "green3"))))
+ (speedbar-directory-face ((t (:foreground "light blue"))))
+ (speedbar-file-face ((t (:foreground "cyan"))))
+ (speedbar-highlight-face ((t (:background "sea green"))))
+ (speedbar-selected-face ((t (:foreground "red" :underline t))))
+ (speedbar-tag-face ((t (:foreground "yellow"))))
+ (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button)))))
+ (tooltip ((t (:background "lightyellow" :foreground "black"))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "helv"))))
+ (widget-button-face ((t (:bold t :weight bold))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "lime green"))))
+ (widget-field-face ((t (:background "dim gray"))))
+ (widget-inactive-face ((t (:foreground "light gray"))))
+ (widget-single-line-field-face ((t (:background "dim gray"))))
+ (zmacs-region ((t (:background "blue3")))))))
+
+(defun color-theme-katester ()
+ "Color theme by walterh@rocketmail.com, created 2001-12-12.
+A pastelly-mac like color-theme."
+ (interactive)
+ (color-theme-standard)
+ (let ((color-theme-is-cumulative t))
+ (color-theme-install
+ '(color-theme-katester
+ ((background-color . "ivory")
+ (cursor-color . "slateblue")
+ (foreground-color . "black")
+ (mouse-color . "slateblue"))
+ (default ((t ((:background "ivory" :foreground "black")))))
+ (bold ((t (:bold t))))
+ (font-lock-string-face ((t (:foreground "maroon"))))
+ (font-lock-keyword-face ((t (:foreground "blue"))))
+ (font-lock-constant-face ((t (:foreground "darkblue"))))
+ (font-lock-type-face ((t (:foreground "black"))))
+ (font-lock-variable-name-face ((t (:foreground "black"))))
+ (font-lock-function-name-face ((t (:bold t :underline t))))
+ (font-lock-comment-face ((t (:background "seashell"))))
+ (highlight ((t (:background "lavender"))))
+ (italic ((t (:italic t))))
+ (modeline ((t (:background "moccasin" :foreground "black"))))
+ (region ((t (:background "lavender" ))))
+ (underline ((t (:underline t))))))))
+
+(defun color-theme-arjen ()
+ "Color theme by awiersma, created 2001-08-27."
+ (interactive)
+ (color-theme-install
+ '(color-theme-arjen
+ ((background-color . "black")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "yellow")
+ (foreground-color . "White")
+ (mouse-color . "sienna1"))
+ ((buffers-tab-face . buffers-tab)
+ (cperl-here-face . font-lock-string-face)
+ (cperl-invalid-face quote underline)
+ (cperl-pod-face . font-lock-comment-face)
+ (cperl-pod-head-face . font-lock-variable-name-face)
+ (vc-mode-face . highlight))
+ (default ((t (:background "black" :foreground "white"))))
+ (blue ((t (:foreground "blue"))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:bold t))))
+ (border-glyph ((t (nil))))
+ (buffers-tab ((t (:background "black" :foreground "white"))))
+ (calendar-today-face ((t (:underline t))))
+ (cperl-array-face ((t (:foreground "darkseagreen"))))
+ (cperl-hash-face ((t (:foreground "darkseagreen"))))
+ (cperl-nonoverridable-face ((t (:foreground "SkyBlue"))))
+ (custom-button-face ((t (nil))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:underline t :foreground "light blue"))))
+ (custom-group-tag-face-1 ((t (:underline t :foreground "pink"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "lime green"))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:underline t :foreground "light blue"))))
+ (diary-face ((t (:foreground "IndianRed"))))
+ (erc-action-face ((t (:bold t))))
+ (erc-bold-face ((t (:bold t))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (:foreground "sandybrown"))))
+ (erc-error-face ((t (:bold t :foreground "IndianRed"))))
+ (erc-input-face ((t (:foreground "Beige"))))
+ (erc-inverse-face ((t (:background "wheat" :foreground "darkslategrey"))))
+ (erc-notice-face ((t (:foreground "MediumAquamarine"))))
+ (erc-pal-face ((t (:foreground "pale green"))))
+ (erc-prompt-face ((t (:foreground "MediumAquamarine"))))
+ (erc-underline-face ((t (:underline t))))
+ (eshell-ls-archive-face ((t (:bold t :foreground "IndianRed"))))
+ (eshell-ls-backup-face ((t (:foreground "Grey"))))
+ (eshell-ls-clutter-face ((t (:foreground "DimGray"))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "MediumSlateBlue"))))
+ (eshell-ls-executable-face ((t (:foreground "Coral"))))
+ (eshell-ls-missing-face ((t (:foreground "black"))))
+ (eshell-ls-picture-face ((t (:foreground "Violet"))))
+ (eshell-ls-product-face ((t (:foreground "sandybrown"))))
+ (eshell-ls-readonly-face ((t (:foreground "Aquamarine"))))
+ (eshell-ls-special-face ((t (:foreground "Gold"))))
+ (eshell-ls-symlink-face ((t (:foreground "White"))))
+ (eshell-ls-unreadable-face ((t (:foreground "DimGray"))))
+ (eshell-prompt-face ((t (:foreground "MediumAquamarine"))))
+ (fl-comment-face ((t (:foreground "pink"))))
+ (fl-doc-string-face ((t (:foreground "purple"))))
+ (fl-function-name-face ((t (:foreground "red"))))
+ (fl-keyword-face ((t (:foreground "cadetblue"))))
+ (fl-string-face ((t (:foreground "green"))))
+ (fl-type-face ((t (:foreground "yellow"))))
+ (font-lock-builtin-face ((t (:foreground "LightSteelBlue"))))
+ (font-lock-comment-face ((t (:foreground "IndianRed"))))
+ (font-lock-constant-face ((t (:foreground "Aquamarine"))))
+ (font-lock-doc-string-face ((t (:foreground "DarkOrange"))))
+ (font-lock-function-name-face ((t (:foreground "YellowGreen"))))
+ (font-lock-keyword-face ((t (:foreground "PaleYellow"))))
+ (font-lock-preprocessor-face ((t (:foreground "Aquamarine"))))
+ (font-lock-reference-face ((t (:foreground "SlateBlue"))))
+ (font-lock-string-face ((t (:foreground "Orange"))))
+ (font-lock-type-face ((t (:foreground "Green"))))
+ (font-lock-variable-name-face ((t (:foreground "darkseagreen"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Pink"))))
+ (qt-classes-face ((t (:foreground "Red"))))
+ (gnus-cite-attribution-face ((t (nil))))
+ (gnus-cite-face-1 ((t (:bold nil :foreground "deep sky blue"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:bold nil :foreground "cadetblue"))))
+ (gnus-cite-face-3 ((t (:bold nil :foreground "gold"))))
+ (gnus-cite-face-4 ((t (:foreground "light pink"))))
+ (gnus-cite-face-5 ((t (:foreground "pale green"))))
+ (gnus-cite-face-6 ((t (:bold nil :foreground "chocolate"))))
+ (gnus-cite-face-7 ((t (:foreground "orange"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold nil))))
+ (gnus-emphasis-bold-italic ((t (:bold nil))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (nil))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:underline t :bold nil))))
+ (gnus-emphasis-underline-bold-italic ((t (:underline t :bold nil))))
+ (gnus-emphasis-underline-italic ((t (:underline t))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1"))))
+ (gnus-group-mail-1-face ((t (:bold nil :foreground "aquamarine1"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2"))))
+ (gnus-group-mail-2-face ((t (:bold nil :foreground "aquamarine2"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3"))))
+ (gnus-group-mail-3-face ((t (:bold nil :foreground "aquamarine3"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4"))))
+ (gnus-group-mail-low-face ((t (:bold nil :foreground "aquamarine4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise"))))
+ (gnus-group-news-1-face ((t (:bold nil :foreground "PaleTurquoise"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "turquoise"))))
+ (gnus-group-news-2-face ((t (:bold nil :foreground "turquoise"))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold nil))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold nil))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold nil))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold nil))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise"))))
+ (gnus-group-news-low-face ((t (:bold nil :foreground "DarkTurquoise"))))
+ (gnus-header-content-face ((t (:foreground "forest green"))))
+ (gnus-header-from-face ((t (:bold nil :foreground "spring green"))))
+ (gnus-header-name-face ((t (:foreground "deep sky blue"))))
+ (gnus-header-newsgroups-face ((t (:bold nil :foreground "purple"))))
+ (gnus-header-subject-face ((t (:bold nil :foreground "orange"))))
+ (gnus-signature-face ((t (:bold nil :foreground "khaki"))))
+ (gnus-splash-face ((t (:foreground "Brown"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold nil :foreground "SkyBlue"))))
+ (gnus-summary-high-read-face ((t (:bold nil :foreground "PaleGreen"))))
+ (gnus-summary-high-ticked-face ((t (:bold nil :foreground "pink"))))
+ (gnus-summary-high-unread-face ((t (:bold nil))))
+ (gnus-summary-low-ancient-face ((t (:foreground "SkyBlue"))))
+ (gnus-summary-low-read-face ((t (:foreground "PaleGreen"))))
+ (gnus-summary-low-ticked-face ((t (:foreground "pink"))))
+ (gnus-summary-low-unread-face ((t (nil))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "PaleGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "pink"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (green ((t (:foreground "green"))))
+ (gui-button-face ((t (:background "grey75" :foreground "black"))))
+ (gui-element ((t (:background "#D4D0C8" :foreground "black"))))
+ (highlight ((t (:background "darkolivegreen"))))
+ (highline-face ((t (:background "SeaGreen"))))
+ (holiday-face ((t (:background "DimGray"))))
+ (info-menu-5 ((t (:underline t))))
+ (info-node ((t (:underline t :bold t :foreground "DodgerBlue1"))))
+ (info-xref ((t (:underline t :foreground "DodgerBlue1"))))
+ (isearch ((t (:background "blue"))))
+ (isearch-secondary ((t (:foreground "red3"))))
+ (italic ((t (nil))))
+ (left-margin ((t (nil))))
+ (list-mode-item-selected ((t (:background "gray68" :foreground "white"))))
+ (message-cited-text-face ((t (:bold t :foreground "green"))))
+ (message-header-cc-face ((t (:bold t :foreground "green4"))))
+ (message-header-name-face ((t (:bold t :foreground "orange"))))
+ (message-header-newsgroups-face ((t (:bold t :foreground "violet"))))
+ (message-header-other-face ((t (:bold t :foreground "chocolate"))))
+ (message-header-subject-face ((t (:bold t :foreground "yellow"))))
+ (message-header-to-face ((t (:bold t :foreground "cadetblue"))))
+ (message-header-xheader-face ((t (:bold t :foreground "light blue"))))
+ (message-mml-face ((t (:bold t :foreground "Green3"))))
+ (message-separator-face ((t (:foreground "blue3"))))
+ (modeline ((t (:background "DarkRed" :foreground "white" :box (:line-width 1 :style released-button)))))
+ (modeline-buffer-id ((t (:background "DarkRed" :foreground "white"))))
+ (modeline-mousable ((t (:background "DarkRed" :foreground "white"))))
+ (modeline-mousable-minor-mode ((t (:background "DarkRed" :foreground "white"))))
+ (p4-depot-added-face ((t (:foreground "blue"))))
+ (p4-depot-deleted-face ((t (:foreground "red"))))
+ (p4-depot-unmapped-face ((t (:foreground "grey30"))))
+ (p4-diff-change-face ((t (:foreground "dark green"))))
+ (p4-diff-del-face ((t (:foreground "red"))))
+ (p4-diff-file-face ((t (:background "gray90"))))
+ (p4-diff-head-face ((t (:background "gray95"))))
+ (p4-diff-ins-face ((t (:foreground "blue"))))
+ (pointer ((t (nil))))
+ (primary-selection ((t (:background "blue"))))
+ (red ((t (:foreground "red"))))
+ (region ((t (:background "blue"))))
+ (right-margin ((t (nil))))
+ (secondary-selection ((t (:background "darkslateblue"))))
+ (show-paren-match-face ((t (:background "Aquamarine" :foreground "SlateBlue"))))
+ (show-paren-mismatch-face ((t (:background "Red" :foreground "White"))))
+ (text-cursor ((t (:background "yellow" :foreground "black"))))
+ (toolbar ((t (nil))))
+ (underline ((nil (:underline nil))))
+ (vertical-divider ((t (nil))))
+ (widget ((t (nil))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "lime green"))))
+ (widget-field-face ((t (:background "dim gray"))))
+ (widget-inactive-face ((t (:foreground "light gray"))))
+ (widget-single-line-field-face ((t (:background "dim gray"))))
+ (woman-bold-face ((t (:bold t))))
+ (woman-italic-face ((t (:foreground "beige"))))
+ (woman-unknown-face ((t (:foreground "LightSalmon"))))
+ (yellow ((t (:foreground "yellow"))))
+ (zmacs-region ((t (:background "snow" :foreground "blue")))))))
+
+(defun color-theme-tty-dark ()
+ "Color theme by Oivvio Polite, created 2002-02-01. Good for tty display."
+ (interactive)
+ (color-theme-install
+ '(color-theme-tty-dark
+ ((background-color . "black")
+ (background-mode . dark)
+ (border-color . "blue")
+ (cursor-color . "red")
+ (foreground-color . "white")
+ (mouse-color . "black"))
+ ((ispell-highlight-face . highlight)
+ (list-matching-lines-face . bold)
+ (tinyreplace-:face . highlight)
+ (view-highlight-face . highlight))
+ (default ((t (nil))))
+ (bold ((t (:underline t :background "black" :foreground "white"))))
+ (bold-italic ((t (:underline t :foreground "white"))))
+ (calendar-today-face ((t (:underline t))))
+ (diary-face ((t (:foreground "red"))))
+ (font-lock-builtin-face ((t (:foreground "blue"))))
+ (font-lock-comment-face ((t (:foreground "cyan"))))
+ (font-lock-constant-face ((t (:foreground "magenta"))))
+ (font-lock-function-name-face ((t (:foreground "cyan"))))
+ (font-lock-keyword-face ((t (:foreground "red"))))
+ (font-lock-string-face ((t (:foreground "green"))))
+ (font-lock-type-face ((t (:foreground "yellow"))))
+ (font-lock-variable-name-face ((t (:foreground "blue"))))
+ (font-lock-warning-face ((t (:bold t :foreground "magenta"))))
+ (highlight ((t (:background "blue" :foreground "yellow"))))
+ (holiday-face ((t (:background "cyan"))))
+ (info-menu-5 ((t (:underline t))))
+ (info-node ((t (:italic t :bold t))))
+ (info-xref ((t (:bold t))))
+ (italic ((t (:underline t :background "red"))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:bold t :foreground "green"))))
+ (message-header-name-face ((t (:foreground "green"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow"))))
+ (message-header-other-face ((t (:foreground "#b00000"))))
+ (message-header-subject-face ((t (:foreground "green"))))
+ (message-header-to-face ((t (:bold t :foreground "green"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:foreground "green"))))
+ (message-separator-face ((t (:foreground "blue"))))
+
+ (modeline ((t (:background "white" :foreground "blue"))))
+ (modeline-buffer-id ((t (:background "white" :foreground "red"))))
+ (modeline-mousable ((t (:background "white" :foreground "magenta"))))
+ (modeline-mousable-minor-mode ((t (:background "white" :foreground "yellow"))))
+ (region ((t (:background "white" :foreground "black"))))
+ (zmacs-region ((t (:background "cyan" :foreground "black"))))
+ (secondary-selection ((t (:background "blue"))))
+ (show-paren-match-face ((t (:background "red"))))
+ (show-paren-mismatch-face ((t (:background "magenta" :foreground "white"))))
+ (underline ((t (:underline t)))))))
+
+(defun color-theme-aliceblue ()
+ "Color theme by Girish Bharadwaj, created 2002-03-27.
+Includes comint prompt, custom, font-lock, isearch,
+jde, senator, speedbar, and widget."
+ (interactive)
+ (color-theme-install
+ '(color-theme-aliceblue
+ ((background-color . "AliceBlue")
+ (background-mode . light)
+ (border-color . "black")
+ (cursor-color . "black")
+ (foreground-color . "DarkSlateGray4")
+ (mouse-color . "black"))
+ ((help-highlight-face . underline)
+ (list-matching-lines-face . bold)
+ (semantic-which-function-use-color . t)
+ (senator-eldoc-use-color . t)
+ (view-highlight-face . highlight)
+ (widget-mouse-face . highlight))
+ (default ((t (:stipple nil :background "AliceBlue" :foreground "DarkSlateGray4" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-courier new"))))
+ (bold ((t (:bold t :weight bold))))
+ (bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (border ((t (:background "black"))))
+ (comint-highlight-input ((t (:bold t :weight bold))))
+ (comint-highlight-prompt ((t (:foreground "dark blue"))))
+ (cursor ((t (:background "black"))))
+ (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button)))))
+ (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button)))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-comment-face ((t (:background "gray85"))))
+ (custom-comment-tag-face ((t (:foreground "blue4"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2))))
+ (custom-group-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2))))
+ (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "red" :weight bold :height 1.2))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "dark green"))))
+ (custom-variable-button-face ((t (:bold t :underline t :weight bold))))
+ (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "blue" :weight bold :height 1.2))))
+ (fixed-pitch ((t (:family "courier"))))
+ (font-lock-builtin-face ((t (:foreground "Orchid"))))
+ (font-lock-comment-face ((t (:italic t :foreground "Firebrick" :slant oblique))))
+ (font-lock-constant-face ((t (:foreground "CadetBlue"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "Blue" :weight extra-bold :family "outline-verdana"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "Purple" :weight semi-bold :family "outline-verdana"))))
+ (font-lock-preprocessor-face ((t (:foreground "CadetBlue"))))
+ (font-lock-reference-face ((t (:foreground "Orchid"))))
+ (font-lock-string-face ((t (:foreground "RosyBrown"))))
+ (font-lock-type-face ((t (:italic t :foreground "ForestGreen" :slant italic))))
+ (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod" :width condensed))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red" :weight bold))))
+ (fringe ((t (:background "DarkSlateBlue"))))
+ (header-line ((t (:box (:line-width -1 :style released-button) :background "grey90" :foreground "grey20" :box nil))))
+ (highlight ((t (:background "darkseagreen2"))))
+ (isearch ((t (:background "magenta4" :foreground "lightskyblue1"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise"))))
+ (italic ((t (:italic t :slant italic))))
+ (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan"))))
+ (jde-db-active-breakpoint-face ((t (:background "red" :foreground "black"))))
+ (jde-db-requested-breakpoint-face ((t (:background "yellow" :foreground "black"))))
+ (jde-db-spec-breakpoint-face ((t (:background "green" :foreground "black"))))
+ (jde-java-font-lock-api-face ((t (:foreground "dark goldenrod"))))
+ (jde-java-font-lock-bold-face ((t (:bold t :weight bold))))
+ (jde-java-font-lock-code-face ((t (nil))))
+ (jde-java-font-lock-constant-face ((t (:foreground "CadetBlue"))))
+ (jde-java-font-lock-doc-tag-face ((t (:foreground "green4"))))
+ (jde-java-font-lock-italic-face ((t (:italic t :slant italic))))
+ (jde-java-font-lock-link-face ((t (:foreground "blue" :underline t :slant normal))))
+ (jde-java-font-lock-modifier-face ((t (:foreground "Orchid"))))
+ (jde-java-font-lock-number-face ((t (:foreground "RosyBrown"))))
+ (jde-java-font-lock-operator-face ((t (:foreground "medium blue"))))
+ (jde-java-font-lock-package-face ((t (:foreground "blue3"))))
+ (jde-java-font-lock-pre-face ((t (nil))))
+ (jde-java-font-lock-underline-face ((t (:underline t))))
+ (menu ((t (nil))))
+ (modeline ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button)))))
+ (modeline-buffer-id ((t (:background "grey75" :foreground "black"))))
+ (modeline-mousable ((t (:background "grey75" :foreground "black"))))
+ (modeline-mousable-minor-mode ((t (:background "grey75" :foreground "black"))))
+ (mouse ((t (:background "black"))))
+ (primary-selection ((t (:background "lightgoldenrod2"))))
+ (region ((t (:background "lightgoldenrod2"))))
+ (scroll-bar ((t (nil))))
+ (secondary-selection ((t (:background "yellow"))))
+ (semantic-dirty-token-face ((t (:background "lightyellow"))))
+ (semantic-unmatched-syntax-face ((t (:underline "red"))))
+ (senator-intangible-face ((t (:foreground "gray25"))))
+ (senator-momentary-highlight-face ((t (:background "gray70"))))
+ (senator-read-only-face ((t (:background "#CCBBBB"))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (speedbar-button-face ((t (:foreground "green4"))))
+ (speedbar-directory-face ((t (:foreground "blue4"))))
+ (speedbar-file-face ((t (:foreground "cyan4"))))
+ (speedbar-highlight-face ((t (:background "green"))))
+ (speedbar-selected-face ((t (:foreground "red" :underline t))))
+ (speedbar-tag-face ((t (:foreground "brown"))))
+ (template-message-face ((t (:bold t :weight bold))))
+ (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button)))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "helv"))))
+ (widget-button-face ((t (:bold t :weight bold))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "gray85"))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "helv"))))
+ (widget-button-face ((t (:bold t :weight bold))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "gray85"))))
+ (zmacs-region ((t (:background "lightgoldenrod2")))))))
+
+(defun color-theme-black-on-gray ()
+ "Color theme by sbhojwani, created 2002-04-03.
+Includes ecb, font-lock, paren, semantic, and widget faces.
+Some of the font-lock faces are disabled, ie. they look just
+like the default face. This is for people that don't like
+the look of \"angry fruit salad\" when editing."
+ (interactive)
+ (color-theme-install
+ '(color-theme-black-on-gray
+ ((background-color . "white")
+ (background-mode . light)
+ (border-color . "blue")
+ (foreground-color . "black"))
+ ((buffers-tab-face . buffers-tab)
+ (ecb-directories-general-face . ecb-default-general-face)
+ (ecb-directory-face . ecb-default-highlight-face)
+ (ecb-history-face . ecb-default-highlight-face)
+ (ecb-history-general-face . ecb-default-general-face)
+ (ecb-method-face . ecb-default-highlight-face)
+ (ecb-methods-general-face . ecb-default-general-face)
+ (ecb-source-face . ecb-default-highlight-face)
+ (ecb-source-in-directories-buffer-face . ecb-source-in-directories-buffer-face)
+ (ecb-sources-general-face . ecb-default-general-face)
+ (ecb-token-header-face . ecb-token-header-face))
+ (default ((t (nil))))
+ (blue ((t (:foreground "blue"))))
+ (bold ((t (:bold t :size "10pt"))))
+ (bold-italic ((t (:italic t :bold t :size "10pt"))))
+ (border-glyph ((t (:size "11pt"))))
+ (buffers-tab ((t (:background "gray75"))))
+ (display-time-mail-balloon-enhance-face ((t (:background "orange"))))
+ (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue"))))
+ (display-time-time-balloon-face ((t (:foreground "red"))))
+ (ecb-bucket-token-face ((t (:bold t :size "10pt"))))
+ (ecb-default-general-face ((t (nil))))
+ (ecb-default-highlight-face ((t (:background "cornflower blue" :foreground "yellow"))))
+ (ecb-directories-general-face ((t (nil))))
+ (ecb-directory-face ((t (:background "cornflower blue" :foreground "yellow"))))
+ (ecb-history-face ((t (:background "cornflower blue" :foreground "yellow"))))
+ (ecb-history-general-face ((t (nil))))
+ (ecb-method-face ((t (:background "cornflower blue" :foreground "yellow"))))
+ (ecb-methods-general-face ((t (nil))))
+ (ecb-source-face ((t (:background "cornflower blue" :foreground "yellow"))))
+ (ecb-source-in-directories-buffer-face ((t (:foreground "medium blue"))))
+ (ecb-sources-general-face ((t (nil))))
+ (ecb-token-header-face ((t (:background "SeaGreen1"))))
+ (ecb-type-token-class-face ((t (:bold t :size "10pt"))))
+ (ecb-type-token-enum-face ((t (:bold t :size "10pt"))))
+ (ecb-type-token-group-face ((t (:bold t :size "10pt" :foreground "dimgray"))))
+ (ecb-type-token-interface-face ((t (:bold t :size "10pt"))))
+ (ecb-type-token-struct-face ((t (:bold t :size "10pt"))))
+ (ecb-type-token-typedef-face ((t (:bold t :size "10pt"))))
+ (font-lock-builtin-face ((t (:foreground "red3"))))
+ (font-lock-constant-face ((t (:foreground "blue3"))))
+ (font-lock-comment-face ((t (:foreground "blue"))))
+ (font-lock-doc-face ((t (:foreground "green4"))))
+ (font-lock-doc-string-face ((t (:foreground "green4"))))
+ (font-lock-function-name-face ((t (nil))))
+ (font-lock-keyword-face ((t (nil))))
+ (font-lock-preprocessor-face ((t (:foreground "blue3"))))
+ (font-lock-reference-face ((t (:foreground "red3"))))
+ (font-lock-string-face ((t (nil))))
+ (font-lock-type-face ((t (nil))))
+ (font-lock-variable-name-face ((t (nil))))
+ (font-lock-warning-face ((t (nil))))
+ (green ((t (:foreground "green"))))
+ (gui-button-face ((t (:background "grey75"))))
+ (gui-element ((t (:size "8pt" :background "gray75"))))
+ (highlight ((t (:background "darkseagreen2"))))
+ (isearch ((t (:background "paleturquoise"))))
+ (isearch-secondary ((t (:foreground "red3"))))
+ (italic ((t (:size "10pt"))))
+ (left-margin ((t (nil))))
+ (list-mode-item-selected ((t (:background "gray68"))))
+ (modeline ((t (:background "gray75"))))
+ (modeline-buffer-id ((t (:background "gray75" :foreground "blue4"))))
+ (modeline-mousable ((t (:background "gray75" :foreground "firebrick"))))
+ (modeline-mousable-minor-mode ((t (:background "gray75" :foreground "green4"))))
+ (paren-blink-off ((t (:foreground "gray"))))
+ (paren-match ((t (:background "darkseagreen2"))))
+ (paren-mismatch ((t (nil))))
+ (pointer ((t (nil))))
+ (primary-selection ((t (:background "gray65"))))
+ (red ((t (:foreground "red"))))
+ (region ((t (:background "gray65"))))
+ (right-margin ((t (nil))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (semantic-dirty-token-face ((t (nil))))
+ (semantic-unmatched-syntax-face ((t (nil))))
+ (text-cursor ((t (:background "red" :foreground "gray"))))
+ (toolbar ((t (:background "gray75"))))
+ (underline ((t (:underline t))))
+ (vertical-divider ((t (:background "gray75"))))
+ (widget ((t (:size "8pt" :background "gray75"))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (nil))))
+ (yellow ((t (:foreground "yellow"))))
+ (zmacs-region ((t (:background "gray65")))))))
+
+(defun color-theme-dark-blue2 ()
+ "Color theme by Chris McMahan, created 2002-04-12.
+Includes antlr, bbdb, change-log, comint, cperl, custom cvs, diff,
+dired, display-time, ebrowse, ecb, ediff, erc, eshell, fl, font-lock,
+gnus, hi, highlight, html-helper, hyper-apropos, info, isearch, jde,
+message, mmm, paren, semantic, senator, sgml, smerge, speedbar,
+strokes, term, vhdl, viper, vm, widget, xref, xsl, xxml. Yes, it is
+a large theme."
+ (interactive)
+ (color-theme-install
+ '(color-theme-dark-blue2
+ ((background-color . "#233b5a")
+ (background-mode . dark)
+ (background-toolbar-color . "#cf3ccf3ccf3c")
+ (border-color . "black")
+ (bottom-toolbar-shadow-color . "#79e77df779e7")
+ (cursor-color . "Yellow")
+ (foreground-color . "#fff8dc")
+ (mouse-color . "Grey")
+ (top-toolbar-shadow-color . "#fffffbeeffff")
+ (viper-saved-cursor-color-in-replace-mode . "Red3"))
+ ((blank-space-face . blank-space-face)
+ (blank-tab-face . blank-tab-face)
+ (cperl-invalid-face . underline)
+ (ecb-directories-general-face . ecb-directories-general-face)
+ (ecb-directory-face . ecb-directory-face)
+ (ecb-history-face . ecb-history-face)
+ (ecb-history-general-face . ecb-history-general-face)
+ (ecb-method-face . ecb-method-face)
+ (ecb-methods-general-face . ecb-methods-general-face)
+ (ecb-source-face . ecb-source-face)
+ (ecb-source-in-directories-buffer-face . ecb-sources-face)
+ (ecb-sources-general-face . ecb-sources-general-face)
+ (ecb-token-header-face . ecb-token-header-face)
+ (gnus-article-button-face . bold)
+ (gnus-article-mouse-face . highlight)
+ (gnus-cite-attribution-face . gnus-cite-attribution-face)
+ (gnus-signature-face . gnus-signature-face)
+ (gnus-summary-selected-face . gnus-summary-selected-face)
+ (help-highlight-face . underline)
+ (highline-face . highline-face)
+ (highline-vertical-face . highline-vertical-face)
+ (list-matching-lines-face . bold)
+ (ps-zebra-color . 0.95)
+ (senator-eldoc-use-color . t)
+ (sgml-set-face . t)
+ (tags-tag-face . default)
+ (view-highlight-face . highlight)
+ (vm-highlight-url-face . bold-italic)
+ (vm-highlighted-header-face . bold)
+ (vm-mime-button-face . gui-button-face)
+ (vm-summary-highlight-face . bold)
+ (widget-mouse-face . highlight))
+ (default ((t (:stipple nil :background "#233b5a" :foreground "#fff8dc" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-lucida console"))))
+ (Info-title-1-face ((t (:bold t :weight bold :height 1.728 :family "helv"))))
+ (Info-title-2-face ((t (:bold t :weight bold :height 1.44 :family "helv"))))
+ (Info-title-3-face ((t (:bold t :weight bold :height 1.2 :family "helv"))))
+ (Info-title-4-face ((t (:bold t :weight bold :family "helv"))))
+ (antlr-font-lock-keyword-face ((t (:bold t :foreground "Gray85" :weight bold))))
+ (antlr-font-lock-literal-face ((t (:bold t :foreground "Gray85" :weight bold))))
+ (antlr-font-lock-ruledef-face ((t (:bold t :foreground "Gray85" :weight bold))))
+ (antlr-font-lock-ruleref-face ((t (:foreground "Gray85"))))
+ (antlr-font-lock-tokendef-face ((t (:bold t :foreground "Gray85" :weight bold))))
+ (antlr-font-lock-tokenref-face ((t (:foreground "Gray85"))))
+ (bbdb-company ((t (:italic t :slant italic))))
+ (bbdb-field-name ((t (:bold t :weight bold))))
+ (bbdb-field-value ((t (nil))))
+ (bbdb-name ((t (:underline t))))
+ (bg:erc-color-face0 ((t (:background "White"))))
+ (bg:erc-color-face1 ((t (:background "black"))))
+ (bg:erc-color-face10 ((t (:background "lightblue1"))))
+ (bg:erc-color-face11 ((t (:background "cyan"))))
+ (bg:erc-color-face12 ((t (:background "blue"))))
+ (bg:erc-color-face13 ((t (:background "deeppink"))))
+ (bg:erc-color-face14 ((t (:background "gray50"))))
+ (bg:erc-color-face15 ((t (:background "gray90"))))
+ (bg:erc-color-face2 ((t (:background "blue4"))))
+ (bg:erc-color-face3 ((t (:background "green4"))))
+ (bg:erc-color-face4 ((t (:background "red"))))
+ (bg:erc-color-face5 ((t (:background "brown"))))
+ (bg:erc-color-face6 ((t (:background "purple"))))
+ (bg:erc-color-face7 ((t (:background "orange"))))
+ (bg:erc-color-face8 ((t (:background "yellow"))))
+ (bg:erc-color-face9 ((t (:background "green"))))
+ (blank-space-face ((t (:background "LightGray"))))
+ (blank-tab-face ((t (:background "Wheat"))))
+ (blue ((t (:foreground "blue"))))
+ (bold ((t (:bold t :foreground "cyan" :weight bold))))
+ (bold-italic ((t (:italic t :bold t :foreground "cyan2" :slant italic :weight bold))))
+ (border ((t (:background "black"))))
+ (border-glyph ((t (nil))))
+ (buffers-tab ((t (:background "gray30" :foreground "LightSkyBlue"))))
+ (calendar-today-face ((t (:underline t))))
+ (change-log-acknowledgement-face ((t (:foreground "firebrick"))))
+ (change-log-conditionals-face ((t (:background "sienna" :foreground "khaki"))))
+ (change-log-date-face ((t (:foreground "gold"))))
+ (change-log-email-face ((t (:foreground "khaki" :underline t))))
+ (change-log-file-face ((t (:bold t :foreground "lemon chiffon" :weight bold))))
+ (change-log-function-face ((t (:background "sienna" :foreground "khaki"))))
+ (change-log-list-face ((t (:foreground "wheat"))))
+ (change-log-name-face ((t (:bold t :foreground "light goldenrod" :weight bold))))
+ (comint-highlight-input ((t (:bold t :weight bold))))
+ (comint-highlight-prompt ((t (:foreground "cyan"))))
+ (comint-input-face ((t (:foreground "deepskyblue"))))
+ (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue" :weight bold))))
+ (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red" :slant italic :weight bold))))
+ (cperl-invalid-face ((t (:foreground "white"))))
+ (cperl-nonoverridable-face ((t (:foreground "chartreuse3"))))
+ (cursor ((t (:background "Yellow"))))
+ (custom-button-face ((t (:bold t :weight bold))))
+ (custom-button-pressed-face ((t (:background "lightgrey" :foreground "gray30"))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-comment-face ((t (:foreground "white"))))
+ (custom-comment-tag-face ((t (:foreground "white"))))
+ (custom-documentation-face ((t (:foreground "light blue"))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:bold t :foreground "gray85" :underline t :weight bold))))
+ (custom-group-tag-face-1 ((t (:foreground "gray85" :underline t))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "gray30" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "gray85"))))
+ (custom-variable-button-face ((t (:bold t :underline t :weight bold))))
+ (custom-variable-tag-face ((t (:bold t :foreground "gray85" :underline t :weight bold))))
+ (cvs-filename-face ((t (:foreground "white"))))
+ (cvs-handled-face ((t (:foreground "pink"))))
+ (cvs-header-face ((t (:foreground "green"))))
+ (cvs-marked-face ((t (:bold t :foreground "green3" :weight bold))))
+ (cvs-msg-face ((t (:foreground "gray85"))))
+ (cvs-need-action-face ((t (:foreground "yellow"))))
+ (cvs-unknown-face ((t (:foreground "grey"))))
+ (cyan ((t (:foreground "cyan"))))
+ (diary-face ((t (:bold t :foreground "gray85" :weight bold))))
+ (diff-added-face ((t (nil))))
+ (diff-changed-face ((t (nil))))
+ (diff-context-face ((t (:foreground "grey50"))))
+ (diff-file-header-face ((t (:bold t :background "grey70" :weight bold))))
+ (diff-function-face ((t (:foreground "grey50"))))
+ (diff-header-face ((t (:foreground "lemon chiffon"))))
+ (diff-hunk-header-face ((t (:background "grey85"))))
+ (diff-index-face ((t (:bold t :background "grey70" :weight bold))))
+ (diff-nonexistent-face ((t (:bold t :background "grey70" :weight bold))))
+ (diff-removed-face ((t (nil))))
+ (dired-face-boring ((t (:foreground "Gray65"))))
+ (dired-face-directory ((t (:bold t :weight bold))))
+ (dired-face-executable ((t (:foreground "gray85"))))
+ (dired-face-flagged ((t (:background "LightSlateGray"))))
+ (dired-face-header ((t (:background "grey75" :foreground "gray30"))))
+ (dired-face-marked ((t (:background "PaleVioletRed"))))
+ (dired-face-permissions ((t (:background "grey75" :foreground "gray30"))))
+ (dired-face-setuid ((t (:foreground "gray85"))))
+ (dired-face-socket ((t (:foreground "gray85"))))
+ (dired-face-symlink ((t (:foreground "cyan"))))
+ (display-time-mail-balloon-enhance-face ((t (:background "orange"))))
+ (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue"))))
+ (display-time-time-balloon-face ((t (:foreground "gray85"))))
+ (ebrowse-default-face ((t (nil))))
+ (ebrowse-file-name-face ((t (:italic t :slant italic))))
+ (ebrowse-member-attribute-face ((t (:foreground "red"))))
+ (ebrowse-member-class-face ((t (:foreground "Gray85"))))
+ (ebrowse-progress-face ((t (:background "blue"))))
+ (ebrowse-root-class-face ((t (:bold t :foreground "Gray85" :weight bold))))
+ (ebrowse-tree-mark-face ((t (:foreground "Gray85"))))
+ (ecb-bucket-token-face ((t (:bold t :weight bold))))
+ (ecb-default-general-face ((t (:height 1.0))))
+ (ecb-default-highlight-face ((t (:background "magenta" :height 1.0))))
+ (ecb-directories-general-face ((t (:height 0.9))))
+ (ecb-directory-face ((t (:background "Cyan4"))))
+ (ecb-history-face ((t (:background "Cyan4"))))
+ (ecb-history-general-face ((t (:height 0.9))))
+ (ecb-method-face ((t (:background "Cyan4" :slant normal :weight normal))))
+ (ecb-methods-general-face ((t (:slant normal))))
+ (ecb-source-face ((t (:background "Cyan4"))))
+ (ecb-source-in-directories-buffer-face ((t (:foreground "LightBlue1"))))
+ (ecb-sources-face ((t (:foreground "LightBlue1"))))
+ (ecb-sources-general-face ((t (:height 0.9))))
+ (ecb-token-header-face ((t (:background "Steelblue4"))))
+ (ecb-type-token-class-face ((t (:bold t :weight bold))))
+ (ecb-type-token-enum-face ((t (:bold t :weight bold))))
+ (ecb-type-token-group-face ((t (:bold t :foreground "dim gray" :weight bold))))
+ (ecb-type-token-interface-face ((t (:bold t :weight bold))))
+ (ecb-type-token-struct-face ((t (:bold t :weight bold))))
+ (ecb-type-token-typedef-face ((t (:bold t :weight bold))))
+ (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick"))))
+ (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Gray30"))))
+ (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid"))))
+ (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy"))))
+ (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Gray30"))))
+ (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Gray30"))))
+ (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy"))))
+ (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Gray30"))))
+ (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Gray30"))))
+ (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Gray30"))))
+ (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White"))))
+ (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Gray30"))))
+ (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Gray30"))))
+ (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White"))))
+ (erc-action-face ((t (:bold t :weight bold))))
+ (erc-bold-face ((t (:bold t :weight bold))))
+ (erc-dangerous-host-face ((t (:foreground "red"))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (:foreground "pale green"))))
+ (erc-error-face ((t (:bold t :foreground "gray85" :weight bold))))
+ (erc-fool-face ((t (:foreground "Gray85"))))
+ (erc-highlight-face ((t (:bold t :foreground "pale green" :weight bold))))
+ (erc-input-face ((t (:foreground "light blue"))))
+ (erc-inverse-face ((t (:background "Black" :foreground "White"))))
+ (erc-keyword-face ((t (:bold t :foreground "pale green" :weight bold))))
+ (erc-notice-face ((t (:foreground "light salmon"))))
+ (erc-pal-face ((t (:foreground "pale green"))))
+ (erc-prompt-face ((t (:bold t :foreground "light blue" :weight bold))))
+ (erc-timestamp-face ((t (:bold t :foreground "green" :weight bold))))
+ (erc-underline-face ((t (:underline t))))
+ (eshell-ls-archive-face ((t (:bold t :weight bold))))
+ (eshell-ls-backup-face ((t (:foreground "gray85"))))
+ (eshell-ls-clutter-face ((t (:bold t :foreground "gray85" :weight bold))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "Cyan" :weight bold))))
+ (eshell-ls-executable-face ((t (:bold t :weight bold))))
+ (eshell-ls-missing-face ((t (:bold t :weight bold))))
+ (eshell-ls-picture-face ((t (:foreground "gray85"))))
+ (eshell-ls-product-face ((t (:foreground "gray85"))))
+ (eshell-ls-readonly-face ((t (:foreground "gray70"))))
+ (eshell-ls-special-face ((t (:bold t :weight bold))))
+ (eshell-ls-symlink-face ((t (:bold t :weight bold))))
+ (eshell-ls-text-face ((t (:foreground "gray85"))))
+ (eshell-ls-todo-face ((t (:bold t :weight bold))))
+ (eshell-ls-unreadable-face ((t (:foreground "gray85"))))
+ (eshell-prompt-face ((t (:bold t :foreground "Yellow" :weight bold))))
+ (eshell-test-failed-face ((t (:bold t :weight bold))))
+ (eshell-test-ok-face ((t (:bold t :weight bold))))
+ (excerpt ((t (:italic t :slant italic))))
+ (ff-paths-non-existant-file-face ((t (:bold t :foreground "gray85" :weight bold))))
+ (fg:black ((t (:foreground "black"))))
+ (fg:erc-color-face0 ((t (:foreground "White"))))
+ (fg:erc-color-face1 ((t (:foreground "black"))))
+ (fg:erc-color-face10 ((t (:foreground "lightblue1"))))
+ (fg:erc-color-face11 ((t (:foreground "cyan"))))
+ (fg:erc-color-face12 ((t (:foreground "blue"))))
+ (fg:erc-color-face13 ((t (:foreground "deeppink"))))
+ (fg:erc-color-face14 ((t (:foreground "gray50"))))
+ (fg:erc-color-face15 ((t (:foreground "gray90"))))
+ (fg:erc-color-face2 ((t (:foreground "blue4"))))
+ (fg:erc-color-face3 ((t (:foreground "green4"))))
+ (fg:erc-color-face4 ((t (:foreground "red"))))
+ (fg:erc-color-face5 ((t (:foreground "brown"))))
+ (fg:erc-color-face6 ((t (:foreground "purple"))))
+ (fg:erc-color-face7 ((t (:foreground "orange"))))
+ (fg:erc-color-face8 ((t (:foreground "yellow"))))
+ (fg:erc-color-face9 ((t (:foreground "green"))))
+ (fixed ((t (:bold t :weight bold))))
+ (fixed-pitch ((t (:family "outline-lucida console"))))
+ (fl-comment-face ((t (:foreground "gray85"))))
+ (fl-function-name-face ((t (:foreground "green"))))
+ (fl-keyword-face ((t (:foreground "LightGreen"))))
+ (fl-string-face ((t (:foreground "light coral"))))
+ (fl-type-face ((t (:foreground "cyan"))))
+ (flyspell-duplicate-face ((t (:bold t :foreground "Gold3" :underline t :weight bold))))
+ (flyspell-incorrect-face ((t (:bold t :foreground "OrangeRed" :underline t :weight bold))))
+ (font-latex-bold-face ((t (nil))))
+ (font-latex-italic-face ((t (nil))))
+ (font-latex-math-face ((t (nil))))
+ (font-latex-sedate-face ((t (:foreground "Gray85"))))
+ (font-latex-string-face ((t (:foreground "orange"))))
+ (font-latex-warning-face ((t (:foreground "gold"))))
+ (font-lock-builtin-face ((t (:bold t :foreground "LightSteelBlue" :weight bold))))
+ (font-lock-comment-face ((t (:italic t :foreground "medium aquamarine" :slant italic))))
+ (font-lock-constant-face ((t (:bold t :foreground "Aquamarine" :weight bold))))
+ (font-lock-doc-face ((t (:bold t :weight bold))))
+ (font-lock-doc-string-face ((t (:bold t :foreground "aquamarine" :weight bold))))
+ (font-lock-exit-face ((t (:foreground "green"))))
+ (font-lock-function-name-face ((t (:italic t :bold t :foreground "LightSkyBlue" :slant italic :weight bold))))
+ (font-lock-keyword-face ((t (:bold t :foreground "Cyan" :weight bold))))
+ (font-lock-preprocessor-face ((t (:foreground "Gray85"))))
+ (font-lock-reference-face ((t (:foreground "cyan"))))
+ (font-lock-string-face ((t (:italic t :foreground "aquamarine" :slant italic))))
+ (font-lock-type-face ((t (:bold t :foreground "PaleGreen" :weight bold))))
+ (font-lock-variable-name-face ((t (:italic t :bold t :foreground "LightGoldenrod" :slant italic :weight bold))))
+ (font-lock-warning-face ((t (:bold t :foreground "Salmon" :weight bold))))
+ (fringe ((t (:background "#3c5473"))))
+ (gnus-cite-attribution-face ((t (:italic t :bold t :foreground "beige" :underline t :slant italic :weight bold))))
+ (gnus-cite-face-1 ((t (:foreground "gold"))))
+ (gnus-cite-face-10 ((t (:foreground "coral"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "wheat"))))
+ (gnus-cite-face-3 ((t (:foreground "light pink"))))
+ (gnus-cite-face-4 ((t (:foreground "khaki"))))
+ (gnus-cite-face-5 ((t (:foreground "pale green"))))
+ (gnus-cite-face-6 ((t (:foreground "beige"))))
+ (gnus-cite-face-7 ((t (:foreground "orange"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t :foreground "light gray" :weight bold))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t :foreground "cyan" :slant italic :weight bold))))
+ (gnus-emphasis-highlight-words ((t (:background "gray30" :foreground "gold"))))
+ (gnus-emphasis-italic ((t (:italic t :foreground "cyan" :slant italic))))
+ (gnus-emphasis-underline ((t (:foreground "white" :underline t))))
+ (gnus-emphasis-underline-bold ((t (:bold t :foreground "white" :underline t :weight bold))))
+ (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :foreground "white" :underline t :slant italic :weight bold))))
+ (gnus-emphasis-underline-italic ((t (:italic t :foreground "white" :underline t :slant italic))))
+ (gnus-filterhist-face-1 ((t (nil))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "Magenta"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "Magenta" :weight bold))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2" :weight bold))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "Cyan"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "Cyan" :weight bold))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "Wheat"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "Gray85" :weight bold))))
+ (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise" :weight bold))))
+ (gnus-group-news-2-empty-face ((t (:foreground "turquoise"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "turquoise" :weight bold))))
+ (gnus-group-news-3-empty-face ((t (:foreground "wheat"))))
+ (gnus-group-news-3-face ((t (:bold t :foreground "Wheat" :weight bold))))
+ (gnus-group-news-4-empty-face ((t (:foreground "Aquamarine"))))
+ (gnus-group-news-4-face ((t (:bold t :weight bold))))
+ (gnus-group-news-5-empty-face ((t (:foreground "MediumAquamarine"))))
+ (gnus-group-news-5-face ((t (:bold t :weight bold))))
+ (gnus-group-news-6-empty-face ((t (:foreground "MediumAquamarine"))))
+ (gnus-group-news-6-face ((t (:bold t :weight bold))))
+ (gnus-group-news-low-empty-face ((t (:foreground "MediumAquamarine"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "MediumAquamarine" :weight bold))))
+ (gnus-header-content-face ((t (:italic t :foreground "Wheat" :slant italic))))
+ (gnus-header-from-face ((t (:bold t :foreground "light yellow" :weight bold))))
+ (gnus-header-name-face ((t (:bold t :foreground "Wheat" :weight bold))))
+ (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "gold" :slant italic :weight bold))))
+ (gnus-header-subject-face ((t (:bold t :foreground "Gold" :weight bold))))
+ (gnus-picons-face ((t (:background "white" :foreground "gray30"))))
+ (gnus-picons-xbm-face ((t (:background "white" :foreground "gray30"))))
+ (gnus-signature-face ((t (:italic t :foreground "white" :slant italic))))
+ (gnus-splash ((t (:foreground "Brown"))))
+ (gnus-splash-face ((t (:foreground "orange"))))
+ (gnus-summary-cancelled-face ((t (:background "gray30" :foreground "orange"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue" :weight bold))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "gray85" :weight bold))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "coral" :weight bold))))
+ (gnus-summary-high-unread-face ((t (:italic t :bold t :foreground "gold" :slant italic :weight bold))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue" :slant italic))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "gray85" :slant italic))))
+ (gnus-summary-low-ticked-face ((t (:italic t :bold t :foreground "coral" :slant italic :weight bold))))
+ (gnus-summary-low-unread-face ((t (:italic t :foreground "white" :slant italic))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "gray70"))))
+ (gnus-summary-normal-ticked-face ((t (:bold t :foreground "pink" :weight bold))))
+ (gnus-summary-normal-unread-face ((t (:bold t :foreground "gray85" :weight bold))))
+ (gnus-summary-selected-face ((t (:foreground "white" :underline t))))
+ (gnus-x-face ((t (:background "white" :foreground "gray30"))))
+ (green ((t (:foreground "green"))))
+ (gui-button-face ((t (:background "grey75" :foreground "gray30"))))
+ (gui-element ((t (:background "Gray80"))))
+ (header-line ((t (:background "grey20" :foreground "grey90"))))
+ (hi-black-b ((t (:bold t :weight bold))))
+ (hi-black-hb ((t (:bold t :weight bold :height 1.67 :family "helv"))))
+ (hi-blue ((t (:background "light blue"))))
+ (hi-blue-b ((t (:bold t :foreground "blue" :weight bold))))
+ (hi-green ((t (:background "green"))))
+ (hi-green-b ((t (:bold t :foreground "green" :weight bold))))
+ (hi-pink ((t (:background "pink"))))
+ (hi-red-b ((t (:bold t :foreground "red" :weight bold))))
+ (hi-yellow ((t (:background "yellow"))))
+ (highlight ((t (:background "SkyBlue3"))))
+ (highlight-changes-delete-face ((t (:foreground "gray85" :underline t))))
+ (highlight-changes-face ((t (:foreground "gray85"))))
+ (highline-face ((t (:background "#3c5473"))))
+ (highline-vertical-face ((t (:background "lightcyan"))))
+ (holiday-face ((t (:background "pink" :foreground "gray30"))))
+ (html-helper-bold-face ((t (:bold t :weight bold))))
+ (html-helper-bold-italic-face ((t (nil))))
+ (html-helper-builtin-face ((t (:foreground "gray85" :underline t))))
+ (html-helper-italic-face ((t (:bold t :foreground "yellow" :weight bold))))
+ (html-helper-underline-face ((t (:underline t))))
+ (html-tag-face ((t (:bold t :weight bold))))
+ (hyper-apropos-documentation ((t (:foreground "white"))))
+ (hyper-apropos-heading ((t (:bold t :weight bold))))
+ (hyper-apropos-hyperlink ((t (:foreground "sky blue"))))
+ (hyper-apropos-major-heading ((t (:bold t :weight bold))))
+ (hyper-apropos-section-heading ((t (:bold t :weight bold))))
+ (hyper-apropos-warning ((t (:bold t :foreground "gray85" :weight bold))))
+ (ibuffer-marked-face ((t (:foreground "gray85"))))
+ (idlwave-help-link-face ((t (:foreground "Blue"))))
+ (idlwave-shell-bp-face ((t (:background "Pink" :foreground "Black"))))
+ (info-header-node ((t (:italic t :bold t :foreground "brown" :slant italic :weight bold))))
+ (info-header-xref ((t (:bold t :foreground "magenta4" :weight bold))))
+ (info-menu-5 ((t (:underline t))))
+ (info-menu-6 ((t (nil))))
+ (info-menu-header ((t (:bold t :weight bold :family "helv"))))
+ (info-node ((t (:italic t :bold t :slant italic :weight bold))))
+ (info-xref ((t (:bold t :weight bold))))
+ (isearch ((t (:background "LightSeaGreen"))))
+ (isearch-lazy-highlight-face ((t (:background "cyan4"))))
+ (isearch-secondary ((t (:foreground "red3"))))
+ (italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan"))))
+ (jde-bug-breakpoint-marker ((t (:background "yellow" :foreground "red"))))
+ (jde-java-font-lock-api-face ((t (:foreground "LightBlue"))))
+ (jde-java-font-lock-bold-face ((t (:bold t :weight bold))))
+ (jde-java-font-lock-code-face ((t (nil))))
+ (jde-java-font-lock-constant-face ((t (:foreground "LightBlue"))))
+ (jde-java-font-lock-doc-tag-face ((t (:foreground "LightBlue"))))
+ (jde-java-font-lock-italic-face ((t (:italic t :slant italic))))
+ (jde-java-font-lock-link-face ((t (:foreground "cyan3" :underline t))))
+ (jde-java-font-lock-modifier-face ((t (:foreground "LightBlue"))))
+ (jde-java-font-lock-number-face ((t (:foreground "RosyBrown"))))
+ (jde-java-font-lock-operator-face ((t (:foreground "cyan3"))))
+ (jde-java-font-lock-package-face ((t (:foreground "LightBlue"))))
+ (jde-java-font-lock-pre-face ((t (nil))))
+ (jde-java-font-lock-underline-face ((t (:underline t))))
+ (lazy-highlight-face ((t (:bold t :foreground "yellow" :weight bold))))
+ (left-margin ((t (nil))))
+ (linemenu-face ((t (:background "gray30"))))
+ (list-mode-item-selected ((t (:background "gray68"))))
+ (log-view-file-face ((t (:bold t :background "grey70" :weight bold))))
+ (log-view-message-face ((t (:background "grey85"))))
+ (magenta ((t (:foreground "gray85"))))
+ (makefile-space-face ((t (:background "hotpink" :foreground "white"))))
+ (man-bold ((t (:bold t :weight bold))))
+ (man-heading ((t (:bold t :weight bold))))
+ (man-italic ((t (:foreground "yellow"))))
+ (man-xref ((t (:underline t))))
+ (menu ((t (:background "wheat" :foreground "gray30"))))
+ (message-cited-text ((t (:foreground "orange"))))
+ (message-cited-text-face ((t (:foreground "medium aquamarine"))))
+ (message-header-cc-face ((t (:bold t :foreground "gray85" :weight bold))))
+ (message-header-contents ((t (:foreground "white"))))
+ (message-header-name-face ((t (:foreground "gray85"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow" :slant italic :weight bold))))
+ (message-header-other-face ((t (:foreground "gray85"))))
+ (message-header-subject-face ((t (:bold t :foreground "green3" :weight bold))))
+ (message-header-to-face ((t (:bold t :foreground "green2" :weight bold))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-headers ((t (:bold t :foreground "orange" :weight bold))))
+ (message-highlighted-header-contents ((t (:bold t :weight bold))))
+ (message-mml-face ((t (:bold t :foreground "gray85" :weight bold))))
+ (message-separator-face ((t (:foreground "gray85"))))
+ (message-url ((t (:bold t :foreground "pink" :weight bold))))
+ (mmm-default-submode-face ((t (:background "#c0c0c5"))))
+ (mmm-face ((t (:background "black" :foreground "green"))))
+ (modeline ((t (:background "#3c5473" :foreground "lightgray" :box (:line-width -1 :style released-button :family "helv")))))
+ (modeline-buffer-id ((t (:background "white" :foreground "DeepSkyBlue3" :slant normal :weight normal :width normal :family "outline-verdana"))))
+ (modeline-mousable ((t (:background "white" :foreground "DeepSkyBlue3"))))
+ (modeline-mousable-minor-mode ((t (:background "white" :foreground "DeepSkyBlue3"))))
+ (mouse ((t (:background "Grey"))))
+ (my-summary-highlight-face ((t (:background "PaleTurquoise4" :foreground "White"))))
+ (my-url-face ((t (:foreground "LightBlue"))))
+ (nil ((t (nil))))
+ (paren-blink-off ((t (:foreground "gray80"))))
+ (paren-face-match ((t (:background "turquoise"))))
+ (paren-face-mismatch ((t (:background "purple" :foreground "white"))))
+ (paren-face-no-match ((t (:background "yellow" :foreground "gray30"))))
+ (paren-match ((t (:background "darkseagreen2"))))
+ (paren-mismatch ((t (:background "RosyBrown" :foreground "gray30"))))
+ (paren-mismatch-face ((t (:bold t :background "white" :foreground "red" :weight bold))))
+ (paren-no-match-face ((t (:bold t :background "white" :foreground "red" :weight bold))))
+ (pointer ((t (nil))))
+ (primary-selection ((t (:background "gray40"))))
+ (reb-match-0 ((t (:background "lightblue"))))
+ (reb-match-1 ((t (:background "aquamarine"))))
+ (reb-match-2 ((t (:background "springgreen"))))
+ (reb-match-3 ((t (:background "yellow"))))
+ (red ((t (:foreground "red"))))
+ (region ((t (:background "Cyan4"))))
+ (right-margin ((t (nil))))
+ (scroll-bar ((t (:background "grey75"))))
+ (secondary-selection ((t (:background "gray60"))))
+ (semantic-dirty-token-face ((t (:background "gray10"))))
+ (semantic-intangible-face ((t (:foreground "gray25"))))
+ (semantic-read-only-face ((t (:background "gray25"))))
+ (semantic-unmatched-syntax-face ((t (:underline "red"))))
+ (senator-intangible-face ((t (:foreground "gray75"))))
+ (senator-momentary-highlight-face ((t (:background "gray70"))))
+ (senator-read-only-face ((t (:background "#664444"))))
+ (sgml-comment-face ((t (:foreground "dark turquoise"))))
+ (sgml-doctype-face ((t (:foreground "turquoise"))))
+ (sgml-end-tag-face ((t (:foreground "aquamarine"))))
+ (sgml-entity-face ((t (:foreground "gray85"))))
+ (sgml-ignored-face ((t (:background "gray60" :foreground "gray40"))))
+ (sgml-ms-end-face ((t (:foreground "green"))))
+ (sgml-ms-start-face ((t (:foreground "yellow"))))
+ (sgml-pi-face ((t (:foreground "lime green"))))
+ (sgml-sgml-face ((t (:foreground "brown"))))
+ (sgml-short-ref-face ((t (:foreground "deep sky blue"))))
+ (sgml-start-tag-face ((t (:foreground "aquamarine"))))
+ (sh-heredoc-face ((t (:foreground "tan"))))
+ (shell-option-face ((t (:foreground "gray85"))))
+ (shell-output-2-face ((t (:foreground "gray85"))))
+ (shell-output-3-face ((t (:foreground "gray85"))))
+ (shell-output-face ((t (:bold t :weight bold))))
+ (shell-prompt-face ((t (:foreground "yellow"))))
+ (show-paren-match-face ((t (:bold t :background "turquoise" :weight bold))))
+ (show-paren-mismatch-face ((t (:bold t :background "RosyBrown" :foreground "white" :weight bold))))
+ (show-tabs-space-face ((t (:foreground "yellow"))))
+ (show-tabs-tab-face ((t (:foreground "red"))))
+ (smerge-base-face ((t (:foreground "red"))))
+ (smerge-markers-face ((t (:background "grey85"))))
+ (smerge-mine-face ((t (:foreground "Gray85"))))
+ (smerge-other-face ((t (:foreground "darkgreen"))))
+ (speedbar-button-face ((t (:bold t :weight bold))))
+ (speedbar-directory-face ((t (:bold t :weight bold))))
+ (speedbar-file-face ((t (:bold t :weight bold))))
+ (speedbar-highlight-face ((t (:background "sea green"))))
+ (speedbar-selected-face ((t (:underline t))))
+ (speedbar-tag-face ((t (:foreground "yellow"))))
+ (strokes-char-face ((t (:background "lightgray"))))
+ (swbuff-current-buffer-face ((t (:bold t :foreground "gray85" :weight bold))))
+ (template-message-face ((t (:bold t :weight bold))))
+ (term-black ((t (:foreground "black"))))
+ (term-blackbg ((t (:background "black"))))
+ (term-blue ((t (:foreground "blue"))))
+ (term-bluebg ((t (:background "blue"))))
+ (term-bold ((t (:bold t :weight bold))))
+ (term-cyan ((t (:foreground "cyan"))))
+ (term-cyanbg ((t (:background "cyan"))))
+ (term-default ((t (:background "gray80" :foreground "gray30" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-lucida console"))))
+ (term-default-bg ((t (nil))))
+ (term-default-bg-inv ((t (nil))))
+ (term-default-fg ((t (nil))))
+ (term-default-fg-inv ((t (nil))))
+ (term-green ((t (:foreground "green"))))
+ (term-greenbg ((t (:background "green"))))
+ (term-invisible ((t (nil))))
+ (term-invisible-inv ((t (nil))))
+ (term-magenta ((t (:foreground "magenta"))))
+ (term-magentabg ((t (:background "magenta"))))
+ (term-red ((t (:foreground "red"))))
+ (term-redbg ((t (:background "red"))))
+ (term-underline ((t (:underline t))))
+ (term-white ((t (:foreground "white"))))
+ (term-whitebg ((t (:background "white"))))
+ (term-yellow ((t (:foreground "yellow"))))
+ (term-yellowbg ((t (:background "yellow"))))
+ (tex-math-face ((t (:foreground "RosyBrown"))))
+ (texinfo-heading-face ((t (:foreground "Blue"))))
+ (text-cursor ((t (:background "Red3" :foreground "gray80"))))
+ (tool-bar ((t (:background "grey75" :foreground "black"))))
+ (toolbar ((t (:background "Gray80"))))
+ (tooltip ((t (:background "lightyellow" :foreground "black"))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "helv"))))
+ (vc-annotate-face-0046FF ((t (:background "black" :foreground "wheat"))))
+ (vcursor ((t (:background "cyan" :foreground "blue" :underline t))))
+ (vertical-divider ((t (:background "Gray80"))))
+ (vhdl-font-lock-attribute-face ((t (:foreground "gray85"))))
+ (vhdl-font-lock-directive-face ((t (:foreground "gray85"))))
+ (vhdl-font-lock-enumvalue-face ((t (:foreground "gray85"))))
+ (vhdl-font-lock-function-face ((t (:foreground "gray85"))))
+ (vhdl-font-lock-prompt-face ((t (:bold t :foreground "gray85" :weight bold))))
+ (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "gray85" :weight bold))))
+ (vhdl-font-lock-translate-off-face ((t (:background "LightGray"))))
+ (vhdl-speedbar-architecture-face ((t (:foreground "gray85"))))
+ (vhdl-speedbar-architecture-selected-face ((t (:foreground "gray85" :underline t))))
+ (vhdl-speedbar-configuration-face ((t (:foreground "gray85"))))
+ (vhdl-speedbar-configuration-selected-face ((t (:foreground "gray85" :underline t))))
+ (vhdl-speedbar-entity-face ((t (:foreground "gray85"))))
+ (vhdl-speedbar-entity-selected-face ((t (:foreground "gray85" :underline t))))
+ (vhdl-speedbar-instantiation-face ((t (:foreground "gray85"))))
+ (vhdl-speedbar-instantiation-selected-face ((t (:foreground "gray85" :underline t))))
+ (vhdl-speedbar-package-face ((t (:foreground "gray85"))))
+ (vhdl-speedbar-package-selected-face ((t (:foreground "gray85" :underline t))))
+ (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black"))))
+ (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen"))))
+ (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-search-face ((t (:background "khaki" :foreground "Black"))))
+ (vm-header-content-face ((t (:italic t :foreground "wheat" :slant italic))))
+ (vm-header-from-face ((t (:italic t :foreground "wheat" :slant italic))))
+ (vm-header-name-face ((t (:foreground "cyan"))))
+ (vm-header-subject-face ((t (:foreground "cyan"))))
+ (vm-header-to-face ((t (:italic t :foreground "cyan" :slant italic))))
+ (vm-message-cited-face ((t (:foreground "Gray80"))))
+ (vm-monochrome-image ((t (:background "white" :foreground "gray30"))))
+ (vm-summary-face-1 ((t (:foreground "MediumAquamarine"))))
+ (vm-summary-face-2 ((t (:foreground "MediumAquamarine"))))
+ (vm-summary-face-3 ((t (:foreground "MediumAquamarine"))))
+ (vm-summary-face-4 ((t (:foreground "MediumAquamarine"))))
+ (vm-summary-highlight-face ((t (:foreground "White"))))
+ (vm-xface ((t (:background "white" :foreground "gray30"))))
+ (vmpc-pre-sig-face ((t (:foreground "gray85"))))
+ (vmpc-sig-face ((t (:foreground "gray85"))))
+ (vvb-face ((t (:background "pink" :foreground "gray30"))))
+ (w3m-anchor-face ((t (:bold t :foreground "gray85" :weight bold))))
+ (w3m-arrived-anchor-face ((t (:bold t :foreground "gray85" :weight bold))))
+ (w3m-header-line-location-content-face ((t (:background "dark olive green" :foreground "wheat"))))
+ (w3m-header-line-location-title-face ((t (:background "dark olive green" :foreground "beige"))))
+ (white ((t (:foreground "white"))))
+ (widget ((t (nil))))
+ (widget-button-face ((t (:bold t :weight bold))))
+ (widget-button-pressed-face ((t (:foreground "gray85"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85" :foreground "gray30"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "dim gray" :foreground "white"))))
+ (woman-addition-face ((t (:foreground "orange"))))
+ (woman-bold-face ((t (:bold t :weight bold))))
+ (woman-italic-face ((t (:foreground "beige"))))
+ (woman-unknown-face ((t (:foreground "LightSalmon"))))
+ (x-face ((t (:background "white" :foreground "gray30"))))
+ (xrdb-option-name-face ((t (:foreground "gray85"))))
+ (xref-keyword-face ((t (:foreground "gray85"))))
+ (xref-list-default-face ((t (nil))))
+ (xref-list-pilot-face ((t (:foreground "gray85"))))
+ (xref-list-symbol-face ((t (:foreground "navy"))))
+ (xsl-fo-alternate-face ((t (:foreground "Yellow"))))
+ (xsl-fo-main-face ((t (:foreground "PaleGreen"))))
+ (xsl-other-element-face ((t (:foreground "Coral"))))
+ (xsl-xslt-alternate-face ((t (:foreground "LightGray"))))
+ (xsl-xslt-main-face ((t (:foreground "Wheat"))))
+ (xxml-emph-1-face ((t (:background "lightyellow"))))
+ (xxml-emph-2-face ((t (:background "lightyellow"))))
+ (xxml-header-1-face ((t (:background "seashell1" :foreground "MediumAquamarine"))))
+ (xxml-header-2-face ((t (:background "seashell1" :foreground "SkyBlue"))))
+ (xxml-header-3-face ((t (:background "seashell1"))))
+ (xxml-header-4-face ((t (:background "seashell1"))))
+ (xxml-interaction-face ((t (:background "lightcyan"))))
+ (xxml-rug-face ((t (:background "cyan"))))
+ (xxml-sparkle-face ((t (:background "yellow"))))
+ (xxml-unbreakable-space-face ((t (:foreground "grey" :underline t))))
+ (yellow ((t (:foreground "yellow"))))
+ (zmacs-region ((t (:background "Cyan4")))))))
+
+(defun color-theme-blue-mood ()
+ "Color theme by Nelson Loyola, created 2002-04-15.
+Includes cperl, custom, font-lock, p4, speedbar, widget."
+ (interactive)
+ (color-theme-install
+ '(color-theme-blue-mood
+ ((background-color . "DodgerBlue4")
+ (background-mode . dark)
+ (background-toolbar-color . "#bfbfbfbfbfbf")
+ (border-color . "Blue")
+ (border-color . "#000000000000")
+ (bottom-toolbar-shadow-color . "#6c6c68686868")
+ (cursor-color . "DarkGoldenrod1")
+ (foreground-color . "white smoke")
+ (mouse-color . "black")
+ (top-toolbar-shadow-color . "#e5e5e0e0e1e1"))
+ ((vc-annotate-very-old-color . "#0046FF"))
+ (default ((t (nil))))
+ (blue ((t (:foreground "blue"))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (nil))))
+ (border-glyph ((t (nil))))
+ (cmode-bracket-face ((t (:bold t))))
+ (cperl-array-face ((t (:bold t :foreground "wheat"))))
+ (cperl-hash-face ((t (:bold t :foreground "chartreuse"))))
+ (custom-button-face ((t (nil))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:underline t :foreground "blue"))))
+ (custom-group-tag-face-1 ((t (:underline t :foreground "red"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:bold t :foreground "cyan"))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:underline t :foreground "blue"))))
+ (ff-paths-non-existant-file-face ((t (:bold t :foreground "NavyBlue"))))
+ (font-lock-builtin-face ((t (:bold t :foreground "wheat"))))
+ (font-lock-comment-face ((t (:bold t :foreground "gray72"))))
+ (font-lock-constant-face ((t (:bold t :foreground "cyan3"))))
+ (font-lock-doc-string-face ((t (:foreground "#00C000"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "chartreuse"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "gold1"))))
+ (font-lock-other-emphasized-face ((t (:bold t :foreground "gold1"))))
+ (font-lock-other-type-face ((t (:bold t :foreground "gold1"))))
+ (font-lock-preprocessor-face ((t (:foreground "plum"))))
+ (font-lock-reference-face ((t (:bold t :foreground "orangered"))))
+ (font-lock-string-face ((t (:foreground "tomato"))))
+ (font-lock-type-face ((t (:bold t :foreground "gold1"))))
+ (font-lock-variable-name-face ((t (:foreground "light yellow"))))
+ (font-lock-warning-face ((t (:foreground "tomato"))))
+ (green ((t (:foreground "green"))))
+ (gui-button-face ((t (:background "grey75" :foreground "black"))))
+ (gui-element ((t (:size "nil" :background "#e7e3d6" :foreground" #000000"))))
+ (highlight ((t (:background "red" :foreground "yellow"))))
+ (isearch ((t (:bold t :background "pale turquoise" :foreground "blue"))))
+ (italic ((t (nil))))
+ (lazy-highlight-face ((t (:bold t :foreground "dark magenta"))))
+ (left-margin ((t (nil))))
+ (list-mode-item-selected ((t (:bold t :background "gray68" :foreground "yellow"))))
+ (modeline ((t (:background "goldenrod" :foreground "darkblue"))))
+ (modeline-buffer-id ((t (:background "goldenrod" :foreground "darkblue"))))
+ (modeline-mousable ((t (:background "goldenrod" :foreground "darkblue"))))
+ (modeline-mousable-minor-mode ((t (:background "goldenrod" :foreground "darkblue"))))
+ (my-tab-face ((t (:background "SlateBlue1"))))
+ (p4-depot-added-face ((t (:foreground "steelblue1"))))
+ (p4-depot-deleted-face ((t (:foreground "red"))))
+ (p4-depot-unmapped-face ((t (:foreground "grey90"))))
+ (p4-diff-change-face ((t (:foreground "dark green"))))
+ (p4-diff-del-face ((t (:bold t :foreground "salmon"))))
+ (p4-diff-file-face ((t (:background "blue"))))
+ (p4-diff-head-face ((t (:background "blue"))))
+ (p4-diff-ins-face ((t (:foreground "steelblue1"))))
+ (paren-blink-off ((t (:foreground "DodgerBlue4"))))
+ (paren-match ((t (:background "red" :foreground "yellow"))))
+ (paren-mismatch ((t (:background "DeepPink"))))
+ (pointer ((t (:background "white"))))
+ (primary-selection ((t (:bold t :background "medium sea green"))))
+ (red ((t (:foreground "red"))))
+ (region ((t (:background "red" :foreground "yellow"))))
+ (right-margin ((t (nil))))
+ (secondary-selection ((t (:background "gray91" :foreground "sienna3"))))
+ (show-paren-match-face ((t (:background "cyan3" :foreground "blue"))))
+ (show-paren-mismatch-face ((t (:background "red" :foreground "blue"))))
+ (show-trailing-whitespace ((t (:background "red" :foreground "blue"))))
+ (speedbar-button-face ((t (:foreground "white"))))
+ (speedbar-directory-face ((t (:foreground "gray"))))
+ (speedbar-file-face ((t (:foreground "gold1"))))
+ (speedbar-highlight-face ((t (:background "lightslateblue" :foreground "gold1"))))
+ (speedbar-selected-face ((t (:underline t :foreground "red"))))
+ (speedbar-tag-face ((t (:foreground "chartreuse"))))
+ (text-cursor ((t (:background "DarkGoldenrod1" :foreground "DodgerBlue4"))))
+ (toolbar ((t (:background "#e7e3d6" :foreground "#000000"))))
+ (underline ((t (:underline t))))
+ (vertical-divider ((t (:background "#e7e3d6" :foreground "#000000"))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "gray85"))))
+ (yellow ((t (:foreground "yellow"))))
+ (zmacs-region ((t (:background "white" :foreground "midnightblue")))))))
+
+(defun color-theme-euphoria ()
+ "Color theme by oGLOWo, created 2000-04-19.
+Green on black theme including font-lock, speedbar, and widget."
+ (interactive)
+ (color-theme-install
+ '(color-theme-euphoria
+ ((background-color . "black")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "yellow")
+ (foreground-color . "#00ff00")
+ (mouse-color . "yellow"))
+ ((help-highlight-face . underline)
+ (list-matching-lines-face . bold)
+ (widget-mouse-face . highlight))
+ (default ((t (:stipple nil :background "black" :foreground "#00ff00" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "misc-fixed"))))
+ (bold ((t (:bold t :weight bold))))
+ (bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (border ((t (:background "black"))))
+ (comint-highlight-input ((t (:bold t :weight bold))))
+ (comint-highlight-prompt ((t (:foreground "cyan"))))
+ (cursor ((t (:background "yellow"))))
+ (fixed-pitch ((t (:family "courier"))))
+ (font-lock-builtin-face ((t (:foreground "magenta"))))
+ (font-lock-comment-face ((t (:foreground "deeppink"))))
+ (font-lock-constant-face ((t (:foreground "blue"))))
+ (font-lock-doc-face ((t (:foreground "cyan"))))
+ (font-lock-doc-string-face ((t (:foreground "cyan"))))
+ (font-lock-function-name-face ((t (:foreground "purple"))))
+ (font-lock-keyword-face ((t (:foreground "red"))))
+ (font-lock-preprocessor-face ((t (:foreground "blue1"))))
+ (font-lock-reference-face ((t (nil))))
+ (font-lock-string-face ((t (:foreground "cyan"))))
+ (font-lock-type-face ((t (:foreground "yellow"))))
+ (font-lock-variable-name-face ((t (:foreground "violet"))))
+ (font-lock-warning-face ((t (:bold t :foreground "red" :weight bold))))
+ (fringe ((t (:background "gray16" :foreground "#00ff00"))))
+ (header-line ((t (:box (:line-width -1 :style released-button) :background "grey20" :foreground "grey90" :box nil))))
+ (highlight ((t (:background "darkolivegreen"))))
+ (horizontal-divider ((t (:background "gray16" :foreground "#00ff00"))))
+ (isearch ((t (:background "palevioletred2" :foreground "brown4"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise4"))))
+ (italic ((t (:italic t :slant italic))))
+ (menu ((t (:background "gray16" :foreground "green"))))
+ (modeline ((t (:background "gray16" :foreground "#00ff00" :box (:line-width -1 :style released-button)))))
+ (modeline-buffer-id ((t (:background "gray16" :foreground "#00ff00"))))
+ (modeline-mousable ((t (:background "gray16" :foreground "#00ff00"))))
+ (modeline-mousable-minor-mode ((t (:background "gray16" :foreground "#00ff00"))))
+ (mouse ((t (:background "yellow"))))
+ (primary-selection ((t (:background "#00ff00" :foreground "black"))))
+ (region ((t (:background "steelblue" :foreground "white"))))
+ (scroll-bar ((t (:background "gray16" :foreground "#00ff00"))))
+ (secondary-selection ((t (:background "#00ff00" :foreground "black"))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (speedbar-button-face ((t (:foreground "#00ff00"))))
+ (speedbar-directory-face ((t (:foreground "#00ff00"))))
+ (speedbar-file-face ((t (:foreground "cyan"))))
+ (speedbar-highlight-face ((t (:background "#00ff00" :foreground "purple"))))
+ (speedbar-selected-face ((t (:foreground "deeppink" :underline t))))
+ (speedbar-tag-face ((t (:foreground "yellow"))))
+ (tool-bar ((t (:background "gray16" :foreground "green" :box (:line-width 1 :style released-button)))))
+ (tooltip ((t (:background "gray16" :foreground "#00ff00"))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "helv"))))
+ (vertical-divider ((t (:background "gray16" :foreground "#00ff00"))))
+ (widget-button-face ((t (:bold t :weight bold))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "lime green"))))
+ (widget-field-face ((t (:background "dim gray"))))
+ (widget-inactive-face ((t (:foreground "light gray"))))
+ (widget-single-line-field-face ((t (:background "dim gray"))))
+ (zmacs-region ((t (:background "steelblue" :foreground "white")))))))
+
+(defun color-theme-resolve ()
+ "Color theme by Damien Elmes, created 2002-04-24.
+A white smoke on blue color theme."
+ (interactive)
+ (color-theme-install
+ '(color-theme-resolve
+ ((background-color . "#00457f")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "DarkGoldenrod1")
+ (foreground-color . "white smoke")
+ (mouse-color . "white"))
+ ((display-time-mail-face . mode-line)
+ (help-highlight-face . underline)
+ (list-matching-lines-face . bold)
+ (view-highlight-face . highlight)
+ (widget-mouse-face . highlight))
+ (default ((t (:stipple nil :background "#00457f" :foreground "white smoke" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "b&h-lucidatypewriter"))))
+ (bold ((t (:bold t :foreground "snow2" :weight bold))))
+ (bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (border ((t (:background "black"))))
+ (calendar-today-face ((t (:underline t))))
+ (comint-highlight-input ((t (:bold t :weight bold))))
+ (comint-highlight-prompt ((t (:foreground "cyan"))))
+ (cperl-array-face ((t (:bold t :foreground "wheat" :weight bold))))
+ (cperl-hash-face ((t (:bold t :foreground "chartreuse" :weight bold))))
+ (cursor ((t (:background "DarkGoldenrod1"))))
+ (diary-face ((t (:foreground "yellow"))))
+ (erc-input-face ((t (:foreground "lightblue2"))))
+ (erc-notice-face ((t (:foreground "lightyellow3"))))
+ (fixed-pitch ((t (:family "courier"))))
+ (font-latex-bold-face ((t (:bold t :foreground "DarkOliveGreen" :weight bold))))
+ (font-latex-italic-face ((t (:italic t :foreground "DarkOliveGreen" :slant italic))))
+ (font-latex-math-face ((t (:foreground "burlywood"))))
+ (font-latex-sedate-face ((t (:foreground "LightGray"))))
+ (font-latex-string-face ((t (:foreground "RosyBrown"))))
+ (font-latex-warning-face ((t (:bold t :foreground "Red" :weight bold))))
+ (font-lock-builtin-face ((t (:foreground "wheat"))))
+ (font-lock-comment-face ((t (:foreground "light steel blue"))))
+ (font-lock-constant-face ((t (:foreground "seashell3"))))
+ (font-lock-doc-face ((t (:foreground "plum"))))
+ (font-lock-doc-string-face ((t (:foreground "#008000"))))
+ (font-lock-function-name-face ((t (:foreground "thistle1"))))
+ (font-lock-keyword-face ((t (:foreground "wheat"))))
+ (font-lock-other-emphasized-face ((t (:bold t :foreground "gold1" :weight bold))))
+ (font-lock-other-type-face ((t (:bold t :foreground "gold1" :weight bold))))
+ (font-lock-preprocessor-face ((t (:foreground "#800080"))))
+ (font-lock-reference-face ((t (:foreground "wheat"))))
+ (font-lock-string-face ((t (:foreground "plum"))))
+ (font-lock-type-face ((t (:foreground "lawn green"))))
+ (font-lock-variable-name-face ((t (:foreground "light yellow"))))
+ (font-lock-warning-face ((t (:foreground "plum"))))
+ (fringe ((t (:background "#000000"))))
+ (gnus-cite-attribution-face ((t (:italic t :slant italic))))
+ (gnus-cite-face-1 ((t (:foreground "light blue"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "light cyan"))))
+ (gnus-cite-face-3 ((t (:foreground "light yellow"))))
+ (gnus-cite-face-4 ((t (:foreground "light pink"))))
+ (gnus-cite-face-5 ((t (:foreground "pale green"))))
+ (gnus-cite-face-6 ((t (:foreground "beige"))))
+ (gnus-cite-face-7 ((t (:foreground "orange"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t :weight bold))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (:italic t :slant italic))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold))))
+ (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold))))
+ (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1" :weight bold))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2" :weight bold))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3" :weight bold))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4" :weight bold))))
+ (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise" :weight bold))))
+ (gnus-group-news-2-empty-face ((t (:foreground "turquoise"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "turquoise" :weight bold))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t :weight bold))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t :weight bold))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t :weight bold))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t :weight bold))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise" :weight bold))))
+ (gnus-header-content-face ((t (:italic t :foreground "snow2" :slant italic))))
+ (gnus-header-from-face ((t (:foreground "spring green"))))
+ (gnus-header-name-face ((t (:bold t :foreground "snow2" :weight bold))))
+ (gnus-header-newsgroups-face ((t (:italic t :foreground "yellow" :slant italic))))
+ (gnus-header-subject-face ((t (:bold t :foreground "peach puff" :weight bold))))
+ (gnus-signature-face ((t (:italic t :slant italic))))
+ (gnus-splash-face ((t (:foreground "Brown"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue" :weight bold))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen" :weight bold))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink" :weight bold))))
+ (gnus-summary-high-unread-face ((t (:bold t :weight bold))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue" :slant italic))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen" :slant italic))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink" :slant italic))))
+ (gnus-summary-low-unread-face ((t (:italic t :slant italic))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "PaleGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "pink"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (header-line ((t (:background "grey20" :foreground "grey90"))))
+ (highlight ((t (:background "gray91" :foreground "firebrick"))))
+ (highline-face ((t (:background "paleturquoise" :foreground "black"))))
+ (holiday-face ((t (:background "chocolate4"))))
+ (isearch ((t (:background "palevioletred2" :foreground "brown4"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise4"))))
+ (italic ((t (:italic t :slant italic))))
+ (menu ((t (nil))))
+ (message-cited-text-face ((t (:foreground "seashell3"))))
+ (message-header-cc-face ((t (:bold t :foreground "snow2" :weight bold))))
+ (message-header-name-face ((t (:bold t :foreground "snow1" :weight bold))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4" :slant italic :weight bold))))
+ (message-header-other-face ((t (:foreground "snow2"))))
+ (message-header-subject-face ((t (:bold t :foreground "snow2" :weight bold))))
+ (message-header-to-face ((t (:bold t :foreground "snow2" :weight bold))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "misty rose"))))
+ (modeline ((t (:foreground "white" :background "#001040" :box (:line-width -1 :style released-button)))))
+ (modeline-buffer-id ((t (:foreground "white" :background "#001040"))))
+ (modeline-mousable ((t (:foreground "white" :background "#001040"))))
+ (modeline-mousable-minor-mode ((t (:foreground "white" :background "#001040"))))
+ (mouse ((t (:background "white"))))
+ (my-tab-face ((t (:background "SlateBlue1"))))
+ (p4-diff-del-face ((t (:bold t :foreground "salmon" :weight bold))))
+ (primary-selection ((t (:background "gray91" :foreground "DodgerBlue4"))))
+ (region ((t (:background "gray91" :foreground "DodgerBlue4"))))
+ (scroll-bar ((t (:background "grey75"))))
+ (secondary-selection ((t (:background "gray91" :foreground "sienna3"))))
+ (show-paren-match-face ((t (:background "cyan3" :foreground "blue"))))
+ (show-paren-mismatch-face ((t (:background "red" :foreground "blue"))))
+ (tool-bar ((t (:background "grey75" :foreground "black"))))
+ (tooltip ((t (:background "lightyellow" :foreground "black"))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "helv"))))
+ (widget-button-face ((t (:bold t :weight bold))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "steel blue"))))
+ (widget-inactive-face ((t (:foreground "grey"))))
+ (widget-single-line-field-face ((t (:background "gray85"))))
+ (zmacs-region ((t (:background "gray91" :foreground "DodgerBlue4")))))))
+
+(defun color-theme-xp ()
+ "Color theme by Girish Bharadwaj, created 2002-04-25.
+Includes custom, erc, font-lock, jde, semantic, speedbar, widget."
+ (interactive)
+ (color-theme-install
+ '(color-theme-xp
+ ((background-color . "lightyellow2")
+ (background-mode . light)
+ (border-color . "black")
+ (cursor-color . "black")
+ (foreground-color . "gray20")
+ (mouse-color . "black"))
+ ((help-highlight-face . underline)
+ (list-matching-lines-face . bold)
+ (semantic-which-function-use-color . t)
+ (senator-eldoc-use-color . t)
+ (view-highlight-face . highlight)
+ (widget-mouse-face . highlight))
+ (default ((t (:stipple nil :background "lightyellow2" :foreground "gray20" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-courier new"))))
+ (bg:erc-color-face0 ((t (:background "White"))))
+ (bg:erc-color-face1 ((t (:background "black"))))
+ (bg:erc-color-face10 ((t (:background "lightblue1"))))
+ (bg:erc-color-face11 ((t (:background "cyan"))))
+ (bg:erc-color-face12 ((t (:background "blue"))))
+ (bg:erc-color-face13 ((t (:background "deeppink"))))
+ (bg:erc-color-face14 ((t (:background "gray50"))))
+ (bg:erc-color-face15 ((t (:background "gray90"))))
+ (bg:erc-color-face2 ((t (:background "blue4"))))
+ (bg:erc-color-face3 ((t (:background "green4"))))
+ (bg:erc-color-face4 ((t (:background "red"))))
+ (bg:erc-color-face5 ((t (:background "brown"))))
+ (bg:erc-color-face6 ((t (:background "purple"))))
+ (bg:erc-color-face7 ((t (:background "orange"))))
+ (bg:erc-color-face8 ((t (:background "yellow"))))
+ (bg:erc-color-face9 ((t (:background "green"))))
+ (bold ((t (:bold t :weight bold))))
+ (bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (border ((t (:background "black"))))
+ (button ((t (:underline t))))
+ (comint-highlight-input ((t (:bold t :weight bold))))
+ (comint-highlight-prompt ((t (:foreground "dark blue"))))
+ (cursor ((t (:background "black"))))
+ (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button)))))
+ (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button)))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-comment-face ((t (:background "gray85"))))
+ (custom-comment-tag-face ((t (:foreground "blue4"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2))))
+ (custom-group-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2))))
+ (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "red" :weight bold :height 1.2))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "dark green"))))
+ (custom-variable-button-face ((t (:bold t :underline t :weight bold))))
+ (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "blue" :weight bold :height 1.2))))
+ (erc-action-face ((t (:bold t :weight bold))))
+ (erc-bold-face ((t (:bold t :weight bold))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (:foreground "IndianRed"))))
+ (erc-error-face ((t (:background "Red" :foreground "White"))))
+ (erc-input-face ((t (:foreground "brown"))))
+ (erc-inverse-face ((t (:background "Black" :foreground "White"))))
+ (erc-notice-face ((t (:bold t :foreground "SlateBlue" :weight bold))))
+ (erc-prompt-face ((t (:bold t :background "lightBlue2" :foreground "Black" :weight bold))))
+ (erc-timestamp-face ((t (:bold t :foreground "green" :weight bold))))
+ (erc-underline-face ((t (:underline t))))
+ (fg:erc-color-face0 ((t (:foreground "White"))))
+ (fg:erc-color-face1 ((t (:foreground "black"))))
+ (fg:erc-color-face10 ((t (:foreground "lightblue1"))))
+ (fg:erc-color-face11 ((t (:foreground "cyan"))))
+ (fg:erc-color-face12 ((t (:foreground "blue"))))
+ (fg:erc-color-face13 ((t (:foreground "deeppink"))))
+ (fg:erc-color-face14 ((t (:foreground "gray50"))))
+ (fg:erc-color-face15 ((t (:foreground "gray90"))))
+ (fg:erc-color-face2 ((t (:foreground "blue4"))))
+ (fg:erc-color-face3 ((t (:foreground "green4"))))
+ (fg:erc-color-face4 ((t (:foreground "red"))))
+ (fg:erc-color-face5 ((t (:foreground "brown"))))
+ (fg:erc-color-face6 ((t (:foreground "purple"))))
+ (fg:erc-color-face7 ((t (:foreground "orange"))))
+ (fg:erc-color-face8 ((t (:foreground "yellow"))))
+ (fg:erc-color-face9 ((t (:foreground "green"))))
+ (fixed-pitch ((t (:family "courier"))))
+ (font-lock-builtin-face ((t (:foreground "magenta3" :underline t :height 0.9))))
+ (font-lock-comment-face ((t (:italic t :foreground "gray60" :slant oblique :height 0.9))))
+ (font-lock-constant-face ((t (:bold t :foreground "medium purple" :weight bold :height 0.9))))
+ (font-lock-function-name-face ((t (:bold t :foreground "black" :weight bold))))
+ (font-lock-keyword-face ((t (:bold t :foreground "blue" :weight bold))))
+ (font-lock-string-face ((t (:foreground "red" :height 0.9))))
+ (font-lock-type-face ((t (:foreground "Royalblue"))))
+ (font-lock-variable-name-face ((t (:bold t :foreground "maroon" :weight bold :height 0.9))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red" :weight bold))))
+ (fringe ((t (:background "dodgerblue"))))
+ (header-line ((t (:underline "red" :overline "red" :background "grey90" :foreground "grey20" :box nil))))
+ (highlight ((t (:background "darkseagreen2"))))
+ (isearch ((t (:background "magenta2" :foreground "lightskyblue1"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise"))))
+ (italic ((t (:italic t :slant italic))))
+ (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan"))))
+ (jde-db-active-breakpoint-face ((t (:background "red" :foreground "black"))))
+ (jde-db-requested-breakpoint-face ((t (:background "yellow" :foreground "black"))))
+ (jde-db-spec-breakpoint-face ((t (:background "green" :foreground "black"))))
+ (jde-java-font-lock-api-face ((t (:foreground "dark goldenrod"))))
+ (jde-java-font-lock-bold-face ((t (:bold t :weight bold))))
+ (jde-java-font-lock-code-face ((t (nil))))
+ (jde-java-font-lock-constant-face ((t (:foreground "CadetBlue"))))
+ (jde-java-font-lock-doc-tag-face ((t (:foreground "green4"))))
+ (jde-java-font-lock-italic-face ((t (:italic t :slant italic))))
+ (jde-java-font-lock-link-face ((t (:foreground "cadetblue" :underline t :slant normal))))
+ (jde-java-font-lock-modifier-face ((t (:foreground "Orchid"))))
+ (jde-java-font-lock-number-face ((t (:foreground "RosyBrown"))))
+ (jde-java-font-lock-operator-face ((t (:foreground "medium blue"))))
+ (jde-java-font-lock-package-face ((t (:foreground "blue3"))))
+ (jde-java-font-lock-pre-face ((t (nil))))
+ (jde-java-font-lock-underline-face ((t (:underline t))))
+ (menu ((t (nil))))
+ (minibuffer-prompt ((t (:foreground "dark blue"))))
+ (modeline ((t (:background "dodgerblue" :foreground "black" :overline "red" :underline "red"))))
+ (modeline-buffer-id ((t (:background "dodgerblue" :foreground "black"))))
+ (modeline-mousable ((t (:background "dodgerblue" :foreground "black"))))
+ (modeline-mousable-minor-mode ((t (:background "dodgerblue" :foreground "black"))))
+ (mode-line-inactive ((t (:italic t :underline "red" :overline "red" :background "white" :foreground "cadetblue" :box (:line-width -1 :color "grey75") :slant oblique :weight light))))
+ (mouse ((t (:background "black"))))
+ (primary-selection ((t (:background "lightgoldenrod2"))))
+ (region ((t (:background "lightgoldenrod2"))))
+ (scroll-bar ((t (nil))))
+ (secondary-selection ((t (:background "yellow"))))
+ (semantic-dirty-token-face ((t (:background "lightyellow"))))
+ (semantic-unmatched-syntax-face ((t (:underline "red"))))
+ (senator-intangible-face ((t (:foreground "gray25"))))
+ (senator-momentary-highlight-face ((t (:background "gray70"))))
+ (senator-read-only-face ((t (:background "#CCBBBB"))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (speedbar-button-face ((t (:foreground "green4"))))
+ (speedbar-directory-face ((t (:foreground "blue4"))))
+ (speedbar-file-face ((t (:foreground "cyan4"))))
+ (speedbar-highlight-face ((t (:background "green"))))
+ (speedbar-selected-face ((t (:foreground "red" :underline t))))
+ (speedbar-tag-face ((t (:foreground "brown"))))
+ (template-message-face ((t (:bold t :weight bold))))
+ (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button)))))
+ (tooltip ((t (:background "lightyellow" :foreground "black"))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "helv"))))
+ (widget-button-face ((t (:bold t :weight bold))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "gray85"))))
+ (zmacs-region ((t (:background "lightgoldenrod2")))))))
+
+(defun color-theme-gray30 ()
+ "Color theme by Girish Bharadwaj, created 2002-04-22."
+ (interactive)
+ (color-theme-install
+ '(color-theme-gray30
+ ((background-color . "grey30")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "black")
+ (foreground-color . "gainsboro")
+ (mouse-color . "black"))
+ ((help-highlight-face . underline)
+ (list-matching-lines-face . bold)
+ (semantic-which-function-use-color . t)
+ (senator-eldoc-use-color . t)
+ (widget-mouse-face . highlight))
+ (default ((t (:stipple nil :background "grey30" :foreground "gainsboro" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-courier new"))))
+ (bg:erc-color-face0 ((t (:background "White"))))
+ (bg:erc-color-face1 ((t (:background "black"))))
+ (bg:erc-color-face10 ((t (:background "lightblue1"))))
+ (bg:erc-color-face11 ((t (:background "cyan"))))
+ (bg:erc-color-face12 ((t (:background "blue"))))
+ (bg:erc-color-face13 ((t (:background "deeppink"))))
+ (bg:erc-color-face14 ((t (:background "gray50"))))
+ (bg:erc-color-face15 ((t (:background "gray90"))))
+ (bg:erc-color-face2 ((t (:background "blue4"))))
+ (bg:erc-color-face3 ((t (:background "green4"))))
+ (bg:erc-color-face4 ((t (:background "red"))))
+ (bg:erc-color-face5 ((t (:background "brown"))))
+ (bg:erc-color-face6 ((t (:background "purple"))))
+ (bg:erc-color-face7 ((t (:background "orange"))))
+ (bg:erc-color-face8 ((t (:background "yellow"))))
+ (bg:erc-color-face9 ((t (:background "green"))))
+ (bold ((t (:bold t :weight bold))))
+ (bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (border ((t (:background "black"))))
+ (button ((t (:underline t))))
+ (comint-highlight-input ((t (:bold t :weight bold))))
+ (comint-highlight-prompt ((t (:foreground "cyan"))))
+ (cursor ((t (:background "black"))))
+ (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button)))))
+ (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button)))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-comment-face ((t (:background "dim gray"))))
+ (custom-comment-tag-face ((t (:foreground "gray80"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2))))
+ (custom-group-tag-face ((t (:bold t :foreground "light blue" :weight bold :height 1.2))))
+ (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "pink" :weight bold :height 1.2))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "lime green"))))
+ (custom-variable-button-face ((t (:bold t :underline t :weight bold))))
+ (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "light blue" :weight bold :height 1.2))))
+ (erc-action-face ((t (:bold t :weight bold))))
+ (erc-bold-face ((t (:bold t :weight bold))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (:foreground "IndianRed"))))
+ (erc-error-face ((t (:background "Red" :foreground "White"))))
+ (erc-input-face ((t (:foreground "brown"))))
+ (erc-inverse-face ((t (:background "Black" :foreground "White"))))
+ (erc-notice-face ((t (:bold t :foreground "SlateBlue" :weight bold))))
+ (erc-prompt-face ((t (:bold t :background "lightBlue2" :foreground "Black" :weight bold))))
+ (erc-timestamp-face ((t (:bold t :foreground "green" :weight bold))))
+ (erc-underline-face ((t (:underline t))))
+ (eshell-ls-archive-face ((t (:bold t :foreground "Orchid" :weight bold))))
+ (eshell-ls-backup-face ((t (:foreground "LightSalmon"))))
+ (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed" :weight bold))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "SkyBlue" :weight bold))))
+ (eshell-ls-executable-face ((t (:bold t :foreground "Green" :weight bold))))
+ (eshell-ls-missing-face ((t (:bold t :foreground "Red" :weight bold))))
+ (eshell-ls-product-face ((t (:foreground "LightSalmon"))))
+ (eshell-ls-readonly-face ((t (:foreground "Pink"))))
+ (eshell-ls-special-face ((t (:bold t :foreground "Magenta" :weight bold))))
+ (eshell-ls-symlink-face ((t (:bold t :foreground "Cyan" :weight bold))))
+ (eshell-ls-unreadable-face ((t (:foreground "DarkGrey"))))
+ (fg:erc-color-face0 ((t (:foreground "White"))))
+ (fg:erc-color-face1 ((t (:foreground "black"))))
+ (fg:erc-color-face10 ((t (:foreground "lightblue1"))))
+ (fg:erc-color-face11 ((t (:foreground "cyan"))))
+ (fg:erc-color-face12 ((t (:foreground "blue"))))
+ (fg:erc-color-face13 ((t (:foreground "deeppink"))))
+ (fg:erc-color-face14 ((t (:foreground "gray50"))))
+ (fg:erc-color-face15 ((t (:foreground "gray90"))))
+ (fg:erc-color-face2 ((t (:foreground "blue4"))))
+ (fg:erc-color-face3 ((t (:foreground "green4"))))
+ (fg:erc-color-face4 ((t (:foreground "red"))))
+ (fg:erc-color-face5 ((t (:foreground "brown"))))
+ (fg:erc-color-face6 ((t (:foreground "purple"))))
+ (fg:erc-color-face7 ((t (:foreground "orange"))))
+ (fg:erc-color-face8 ((t (:foreground "yellow"))))
+ (fg:erc-color-face9 ((t (:foreground "green"))))
+ (fixed-pitch ((t (:family "courier"))))
+ (font-lock-builtin-face ((t (:foreground "LightSkyBlue" :underline t))))
+ (font-lock-comment-face ((t (:italic t :foreground "lightgreen" :slant oblique))))
+ (font-lock-constant-face ((t (:foreground "Aquamarine"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "DodgerBlue" :weight bold :height 1.05))))
+ (font-lock-keyword-face ((t (:foreground "LightPink" :height 1.05))))
+ (font-lock-string-face ((t (:foreground "LightSalmon"))))
+ (font-lock-type-face ((t (:foreground "yellow" :height 1.05))))
+ (font-lock-variable-name-face ((t (:foreground "gold"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold))))
+ (fringe ((t (:background "grey10"))))
+ (header-line ((t (:box (:line-width -1 :style released-button) :background "grey20" :foreground "grey90" :box nil))))
+ (highlight ((t (:background "darkolivegreen"))))
+ (isearch ((t (:background "palevioletred2" :foreground "brown4"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise4"))))
+ (italic ((t (:italic t :slant italic))))
+ (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan"))))
+ (jde-db-active-breakpoint-face ((t (:background "red" :foreground "black"))))
+ (jde-db-requested-breakpoint-face ((t (:background "yellow" :foreground "black"))))
+ (jde-db-spec-breakpoint-face ((t (:background "green" :foreground "black"))))
+ (jde-java-font-lock-api-face ((t (:foreground "light goldenrod"))))
+ (jde-java-font-lock-bold-face ((t (:bold t :weight bold))))
+ (jde-java-font-lock-code-face ((t (nil))))
+ (jde-java-font-lock-constant-face ((t (:foreground "Aquamarine"))))
+ (jde-java-font-lock-doc-tag-face ((t (:foreground "light coral"))))
+ (jde-java-font-lock-italic-face ((t (:italic t :slant italic))))
+ (jde-java-font-lock-link-face ((t (:foreground "cadetblue" :underline t :slant normal))))
+ (jde-java-font-lock-modifier-face ((t (:foreground "LightSteelBlue"))))
+ (jde-java-font-lock-number-face ((t (:foreground "LightSalmon"))))
+ (jde-java-font-lock-operator-face ((t (:foreground "medium blue"))))
+ (jde-java-font-lock-package-face ((t (:foreground "steelblue1"))))
+ (jde-java-font-lock-pre-face ((t (nil))))
+ (jde-java-font-lock-underline-face ((t (:underline t))))
+ (menu ((t (nil))))
+ (minibuffer-prompt ((t (:foreground "cyan"))))
+ (mode-line ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button)))))
+ (mode-line-inactive ((t (:background "grey30" :foreground "grey80" :box (:line-width -1 :color "grey40" :style nil) :weight light))))
+ (mouse ((t (:background "black"))))
+ (primary-selection ((t (:background "blue3"))))
+ (region ((t (:background "blue3"))))
+ (scroll-bar ((t (nil))))
+ (secondary-selection ((t (:background "SkyBlue4"))))
+ (semantic-dirty-token-face ((t (:background "lightyellow"))))
+ (semantic-unmatched-syntax-face ((t (:underline "red"))))
+ (senator-intangible-face ((t (:foreground "gray75"))))
+ (senator-momentary-highlight-face ((t (:background "gray30"))))
+ (senator-read-only-face ((t (:background "#664444"))))
+ (show-paren-match-face ((t (:background "steelblue3"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (speedbar-button-face ((t (:foreground "green3"))))
+ (speedbar-directory-face ((t (:foreground "light blue"))))
+ (speedbar-file-face ((t (:foreground "cyan"))))
+ (speedbar-highlight-face ((t (:background "sea green"))))
+ (speedbar-selected-face ((t (:foreground "red" :underline t))))
+ (speedbar-tag-face ((t (:foreground "yellow"))))
+ (template-message-face ((t (:bold t :weight bold))))
+ (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button)))))
+ (tooltip ((t (:background "lightyellow" :foreground "black"))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "helv"))))
+ (widget-button-face ((t (:bold t :weight bold))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "lime green"))))
+ (widget-field-face ((t (:background "dim gray"))))
+ (widget-inactive-face ((t (:foreground "light gray"))))
+ (widget-single-line-field-face ((t (:background "dim gray"))))
+ (zmacs-region ((t (:background "blue3")))))))
+
+(defun color-theme-dark-green ()
+ "Color theme by ces93, created 2002-03-30."
+ (interactive)
+ (color-theme-install
+ '(color-theme-dark-green
+ ((background-mode . light)
+ (background-toolbar-color . "#e79ddf7ddf7d")
+ (border-color . "#000000000000")
+ (bottom-toolbar-shadow-color . "#8e3886178617")
+ (top-toolbar-shadow-color . "#ffffffffffff"))
+ nil
+ (default ((t (nil))))
+ (blue ((t (:foreground "blue"))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t))))
+ (border-glyph ((t (nil))))
+ (fringe ((t (nil))))
+ (green ((t (:foreground "green"))))
+ (gui-button-face ((t (:background "grey75" :foreground "black"))))
+ (gui-element ((t (:background "#ffffff" :foreground "#000000"))))
+ (highlight ((t (:background "gray" :foreground "darkred"))))
+ (isearch ((t (:background "LightSlateGray" :foreground "red"))))
+ (italic ((t (:italic t))))
+ (left-margin ((t (nil))))
+ (list-mode-item-selected ((t (:background "gray68"))))
+ (mode-line ((t (:background "LightSlateGray" :foreground "black"))))
+ (modeline ((t (:background "LightSlateGray" :foreground "black"))))
+ (modeline-buffer-id ((t (:background "LightSlateGray" :foreground "blue4"))))
+ (modeline-mousable ((t (:background "LightSlateGray" :foreground "firebrick"))))
+ (modeline-mousable-minor-mode ((t (:background "LightSlateGray" :foreground "green4"))))
+ (pointer ((t (:background "#ffffff" :foreground "#000000"))))
+ (primary-selection ((t (:background "gray65"))))
+ (red ((t (:foreground "red"))))
+ (region ((t (:background "gray65"))))
+ (right-margin ((t (nil))))
+ (rpm-spec-dir-face ((t (:foreground "green"))))
+ (rpm-spec-doc-face ((t (:foreground "magenta"))))
+ (rpm-spec-ghost-face ((t (:foreground "red"))))
+ (rpm-spec-macro-face ((t (:foreground "purple"))))
+ (rpm-spec-package-face ((t (:foreground "red"))))
+ (rpm-spec-tag-face ((t (:foreground "blue"))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (text-cursor ((t (:background "Red3" :foreground "DarkSlateGray"))))
+ (tool-bar ((t (nil))))
+ (toolbar ((t (:background "#ffffff" :foreground "#000000"))))
+ (underline ((t (:underline t))))
+ (vertical-divider ((t (:background "#ffffff" :foreground "#000000"))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (yellow ((t (:foreground "yellow"))))
+ (zmacs-region ((t (:background "darkorange" :foreground "black")))))))
+
+(defun color-theme-whateveryouwant ()
+ "Color theme by Fabien Penso, created 2002-05-02."
+ (interactive)
+ (color-theme-install
+ '(color-theme-whateveryouwant
+ ((background-color . "white")
+ (background-mode . light)
+ (border-color . "black")
+ (cursor-color . "black")
+ (foreground-color . "black")
+ (mouse-color . "black"))
+ ((cperl-here-face . font-lock-string-face)
+ (cperl-invalid-face . underline)
+ (cperl-pod-face . font-lock-comment-face)
+ (cperl-pod-head-face . font-lock-variable-name-face)
+ (display-time-mail-face . mode-line)
+ (gnus-article-button-face . bold)
+ (gnus-article-mouse-face . highlight)
+ (gnus-carpal-button-face . bold)
+ (gnus-carpal-header-face . bold-italic)
+ (gnus-cite-attribution-face . gnus-cite-attribution-face)
+ (gnus-mouse-face . highlight)
+ (gnus-selected-tree-face . modeline)
+ (gnus-signature-face . gnus-signature-face)
+ (gnus-summary-selected-face . gnus-summary-selected-face)
+ (gnus-treat-display-xface . head)
+ (help-highlight-face . underline)
+ (ispell-highlight-face . flyspell-incorrect-face)
+ (list-matching-lines-face . bold)
+ (sgml-set-face . t)
+ (view-highlight-face . highlight)
+ (widget-mouse-face . highlight)
+ (x-face-mouse-face . highlight))
+ (default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 116 :width normal :family "monotype-courier new"))))
+ (Info-title-1-face ((t (:bold t :weight bold :height 1.728 :family "helv"))))
+ (Info-title-2-face ((t (:bold t :weight bold :height 1.44 :family "helv"))))
+ (Info-title-3-face ((t (:bold t :weight bold :height 1.2 :family "helv"))))
+ (Info-title-4-face ((t (:bold t :weight bold :family "helv"))))
+ (antlr-font-lock-keyword-face ((t (:bold t :foreground "black" :weight bold))))
+ (antlr-font-lock-literal-face ((t (:bold t :foreground "brown4" :weight bold))))
+ (antlr-font-lock-ruledef-face ((t (:bold t :foreground "blue" :weight bold))))
+ (antlr-font-lock-ruleref-face ((t (:foreground "blue4"))))
+ (antlr-font-lock-tokendef-face ((t (:bold t :foreground "blue" :weight bold))))
+ (antlr-font-lock-tokenref-face ((t (:foreground "orange4"))))
+ (bbdb-company ((t (:italic t :slant italic))))
+ (bbdb-field-name ((t (:bold t :foreground "gray40" :weight bold))))
+ (bbdb-field-value ((t (nil))))
+ (bbdb-name ((t (:underline t))))
+ (bold ((t (:bold t :foreground "gray40" :weight bold))))
+ (bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (border ((t (:background "black"))))
+ (calendar-today-face ((t (:underline t))))
+ (change-log-acknowledgement-face ((t (:foreground "Firebrick"))))
+ (change-log-conditionals-face ((t (:foreground "DarkGoldenrod"))))
+ (change-log-date-face ((t (:foreground "RosyBrown"))))
+ (change-log-email-face ((t (:foreground "DarkGoldenrod"))))
+ (change-log-file-face ((t (:foreground "Blue"))))
+ (change-log-function-face ((t (:foreground "DarkGoldenrod"))))
+ (change-log-list-face ((t (:foreground "Purple"))))
+ (change-log-name-face ((t (:foreground "CadetBlue"))))
+ (comint-highlight-input ((t (:bold t :weight bold))))
+ (comint-highlight-prompt ((t (:foreground "dark blue"))))
+ (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue" :weight bold))))
+ (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red" :slant italic :weight bold))))
+ (cperl-nonoverridable-face ((t (:foreground "chartreuse3"))))
+ (cursor ((t (:background "black"))))
+ (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button)))))
+ (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button)))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-comment-face ((t (:background "gray85"))))
+ (custom-comment-tag-face ((t (:foreground "blue4"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:bold t :weight bold :height 1.2 :family "helv"))))
+ (custom-group-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2))))
+ (custom-group-tag-face-1 ((t (:bold t :foreground "red" :weight bold :height 1.2 :family "helv"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "dark green"))))
+ (custom-variable-button-face ((t (:bold t :underline t :weight bold))))
+ (custom-variable-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2 :family "helv"))))
+ (cvs-filename-face ((t (:foreground "blue4"))))
+ (cvs-handled-face ((t (:foreground "pink"))))
+ (cvs-header-face ((t (:bold t :foreground "blue4" :weight bold))))
+ (cvs-marked-face ((t (:bold t :foreground "green3" :weight bold))))
+ (cvs-msg-face ((t (:italic t :slant italic))))
+ (cvs-need-action-face ((t (:foreground "orange"))))
+ (cvs-unknown-face ((t (:foreground "red"))))
+ (diary-face ((t (:foreground "red"))))
+ (diff-added-face ((t (nil))))
+ (diff-changed-face ((t (nil))))
+ (diff-context-face ((t (:foreground "grey50"))))
+ (diff-file-header-face ((t (:bold t :background "grey70" :weight bold))))
+ (diff-function-face ((t (:foreground "grey50"))))
+ (diff-header-face ((t (:background "grey85"))))
+ (diff-hunk-header-face ((t (:background "grey85"))))
+ (diff-index-face ((t (:bold t :background "grey70" :weight bold))))
+ (diff-nonexistent-face ((t (:bold t :background "grey70" :weight bold))))
+ (diff-removed-face ((t (nil))))
+ (dired-face-boring ((t (:foreground "RosyBrown"))))
+ (dired-face-directory ((t (:foreground "Blue"))))
+ (dired-face-executable ((t (nil))))
+ (dired-face-flagged ((t (:bold t :foreground "Red" :weight bold))))
+ (dired-face-marked ((t (:bold t :foreground "Red" :weight bold))))
+ (dired-face-permissions ((t (nil))))
+ (dired-face-setuid ((t (nil))))
+ (dired-face-socket ((t (nil))))
+ (dired-face-symlink ((t (:foreground "Purple"))))
+ (ebrowse-default-face ((t (nil))))
+ (ebrowse-file-name-face ((t (:italic t :slant italic))))
+ (ebrowse-member-attribute-face ((t (:foreground "red"))))
+ (ebrowse-member-class-face ((t (:foreground "purple"))))
+ (ebrowse-progress-face ((t (:background "blue"))))
+ (ebrowse-root-class-face ((t (:bold t :foreground "blue" :weight bold))))
+ (ebrowse-tree-mark-face ((t (:foreground "red"))))
+ (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick"))))
+ (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black"))))
+ (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid"))))
+ (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy"))))
+ (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black"))))
+ (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black"))))
+ (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy"))))
+ (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black"))))
+ (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black"))))
+ (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black"))))
+ (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White"))))
+ (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black"))))
+ (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black"))))
+ (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White"))))
+ (erc-action-face ((t (:bold t :weight bold))))
+ (erc-bold-face ((t (:bold t :weight bold))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (:foreground "LightSalmon"))))
+ (erc-error-face ((t (:bold t :foreground "IndianRed" :weight bold))))
+ (erc-input-face ((t (:foreground "Beige"))))
+ (erc-inverse-face ((t (:background "wheat" :foreground "darkslategrey"))))
+ (erc-notice-face ((t (:foreground "MediumAquamarine"))))
+ (erc-pal-face ((t (:foreground "pale green"))))
+ (erc-prompt-face ((t (:foreground "MediumAquamarine"))))
+ (erc-underline-face ((t (:underline t))))
+ (eshell-ls-archive-face ((t (:bold t :foreground "Orchid" :weight bold))))
+ (eshell-ls-backup-face ((t (:foreground "OrangeRed"))))
+ (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed" :weight bold))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "Blue" :weight bold))))
+ (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen" :weight bold))))
+ (eshell-ls-missing-face ((t (:bold t :foreground "Red" :weight bold))))
+ (eshell-ls-picture-face ((t (:foreground "Violet"))))
+ (eshell-ls-product-face ((t (:foreground "OrangeRed"))))
+ (eshell-ls-readonly-face ((t (:foreground "Brown"))))
+ (eshell-ls-special-face ((t (:bold t :foreground "Magenta" :weight bold))))
+ (eshell-ls-symlink-face ((t (:bold t :foreground "Dark Cyan" :weight bold))))
+ (eshell-ls-unreadable-face ((t (:foreground "Grey30"))))
+ (eshell-prompt-face ((t (:bold t :foreground "#aa0000" :weight bold :width condensed :family "neep-alt"))))
+ (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed" :weight bold))))
+ (eshell-test-ok-face ((t (:bold t :foreground "Green" :weight bold))))
+ (excerpt ((t (:italic t :slant italic))))
+ (fixed ((t (:bold t :weight bold))))
+ (fixed-pitch ((t (:family "courier"))))
+ (flyspell-duplicate-face ((t (:bold t :foreground "Gold3" :underline t :weight bold))))
+ (flyspell-incorrect-face ((t (:bold t :foreground "OrangeRed" :underline t :weight bold))))
+ (font-latex-bold-face ((t (:bold t :foreground "DarkOliveGreen" :weight bold))))
+ (font-latex-italic-face ((t (:italic t :foreground "DarkOliveGreen" :slant italic))))
+ (font-latex-math-face ((t (:foreground "SaddleBrown"))))
+ (font-latex-sedate-face ((t (:foreground "DimGray"))))
+ (font-latex-string-face ((t (:foreground "RosyBrown"))))
+ (font-latex-warning-face ((t (:bold t :foreground "Red" :weight bold))))
+ (font-lock-builtin-face ((t (:foreground "dodgerblue3"))))
+ (font-lock-comment-face ((t (:foreground "#cc0000" :width semi-condensed :family "helvetica"))))
+ (font-lock-constant-face ((t (:foreground "CadetBlue"))))
+ (font-lock-doc-face ((t (:foreground "RosyBrown"))))
+ (font-lock-doc-string-face ((t (:foreground "RosyBrown"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "navy" :weight bold :height 100))))
+ (font-lock-keyword-face ((t (:bold t :foreground "red4" :weight bold))))
+ (font-lock-preprocessor-face ((t (:foreground "CadetBlue"))))
+ (font-lock-reference-face ((t (:foreground "Orchid"))))
+ (font-lock-string-face ((t (:foreground "navy"))))
+ (font-lock-type-face ((t (:bold t :foreground "black" :weight bold))))
+ (font-lock-variable-name-face ((t (:foreground "black"))))
+ (font-lock-warning-face ((t (:foreground "orange2"))))
+ (fringe ((t (:background "white"))))
+ (gnus-cite-attribution-face ((t (:italic t :slant italic))))
+ (gnus-cite-face-1 ((t (:foreground "MidnightBlue"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "firebrick"))))
+ (gnus-cite-face-3 ((t (:foreground "dark green"))))
+ (gnus-cite-face-4 ((t (:foreground "OrangeRed"))))
+ (gnus-cite-face-5 ((t (:foreground "dark khaki"))))
+ (gnus-cite-face-6 ((t (:foreground "dark violet"))))
+ (gnus-cite-face-7 ((t (:foreground "SteelBlue4"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t :weight bold))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (:italic t :slant italic))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold))))
+ (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold))))
+ (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3" :weight bold))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3" :weight bold))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "magenta4"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4" :weight bold))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4" :weight bold))))
+ (gnus-group-news-1-empty-face ((t (:foreground "red" :weight normal :height 120 :family "courier"))))
+ (gnus-group-news-1-face ((t (:foreground "red" :weight normal :height 120 :family "courier"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4" :weight bold))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t :weight bold))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t :weight bold))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t :weight bold))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t :weight bold))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen" :weight bold))))
+ (gnus-header-content-face ((t (:foreground "goldenrod" :slant normal :family "helvetica"))))
+ (gnus-header-from-face ((t (:bold t :foreground "grey75" :weight bold :height 140 :family "helvetica"))))
+ (gnus-header-name-face ((t (:foreground "grey75" :height 120 :family "helvetica"))))
+ (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue" :slant italic))))
+ (gnus-header-subject-face ((t (:bold t :foreground "firebrick" :weight bold :height 160 :family "helvetica"))))
+ (gnus-picon-face ((t (:background "white" :foreground "black"))))
+ (gnus-picon-xbm-face ((t (:background "white" :foreground "black"))))
+ (gnus-signature-face ((t (:italic t :slant italic))))
+ (gnus-splash-face ((t (:foreground "Brown"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue" :weight bold))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen" :weight bold))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick" :weight bold))))
+ (gnus-summary-high-unread-face ((t (:bold t :weight bold))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue" :slant italic))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen" :slant italic))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick" :slant italic))))
+ (gnus-summary-low-unread-face ((t (:italic t :slant italic))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "grey65" :height 110 :width condensed :family "neep"))))
+ (gnus-summary-normal-read-face ((t (:foreground "grey75" :height 110 :width condensed :family "neep"))))
+ (gnus-summary-normal-ticked-face ((t (:bold t :foreground "firebrick" :weight bold :height 110 :width condensed :family "neep"))))
+ (gnus-summary-normal-unread-face ((t (:foreground "firebrick" :height 110 :width condensed :family "neep"))))
+ (gnus-summary-selected-face ((t (:background "gold" :foreground "black" :box (:line-width 1 :color "yellow" :style released-button) :height 140 :width condensed :family "neep"))))
+ (header-line ((t (:background "grey90" :foreground "grey20" :box nil))))
+ (hi-black-b ((t (:bold t :weight bold))))
+ (hi-black-hb ((t (:bold t :weight bold :height 1.67 :family "helv"))))
+ (hi-blue ((t (:background "light blue"))))
+ (hi-blue-b ((t (:bold t :foreground "blue" :weight bold))))
+ (hi-green ((t (:background "green"))))
+ (hi-green-b ((t (:bold t :foreground "green" :weight bold))))
+ (hi-pink ((t (:background "pink"))))
+ (hi-red-b ((t (:bold t :foreground "red" :weight bold))))
+ (hi-yellow ((t (:background "yellow"))))
+ (highlight ((t (:background "black" :foreground "white"))))
+ (highlight-changes-delete-face ((t (:foreground "red" :underline t))))
+ (highlight-changes-face ((t (:foreground "red"))))
+ (highline-face ((t (:background "gray80"))))
+ (holiday-face ((t (:background "pink"))))
+ (idlwave-help-link-face ((t (:foreground "Blue"))))
+ (idlwave-shell-bp-face ((t (:background "Pink" :foreground "Black"))))
+ (info-header-node ((t (:italic t :bold t :foreground "brown" :slant italic :weight bold))))
+ (info-header-xref ((t (:bold t :foreground "magenta4" :weight bold))))
+ (info-menu-5 ((t (:foreground "red1"))))
+ (info-menu-header ((t (:bold t :weight bold :family "helv"))))
+ (info-node ((t (:italic t :bold t :foreground "brown" :slant italic :weight bold))))
+ (info-xref ((t (:bold t :foreground "magenta4" :weight bold))))
+ (isearch ((t (:background "magenta4" :foreground "lightskyblue1"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise"))))
+ (italic ((t (:italic t :slant italic))))
+ (log-view-file-face ((t (:bold t :background "grey70" :weight bold))))
+ (log-view-message-face ((t (:background "grey85"))))
+ (makefile-space-face ((t (:background "hotpink"))))
+ (menu ((t (nil))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:foreground "grey45" :weight normal :family "helvetica"))))
+ (message-header-name-face ((t (:foreground "cornflower blue"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4" :slant italic :weight bold))))
+ (message-header-other-face ((t (:foreground "steel blue"))))
+ (message-header-subject-face ((t (:bold t :foreground "navy blue" :weight bold))))
+ (message-header-to-face ((t (:bold t :foreground "grey60" :weight bold :height 120 :family "helvetica"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (mode-line ((t (:background "grey90" :foreground "black" :box (:line-width 1 :style none) :width condensed :family "neep"))))
+ (modeline-buffer-id ((t (:bold t :background "grey75" :foreground "black" :box (:line-width -1 :style released-button) :weight bold))))
+ (modeline-mousable ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button)))))
+ (modeline-mousable-minor-mode ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button)))))
+ (mouse ((t (:background "black"))))
+ (mpg123-face-cur ((t (:background "#004080" :foreground "yellow"))))
+ (mpg123-face-slider ((t (:background "yellow" :foreground "black"))))
+ (primary-selection ((t (:background "lightgoldenrod2"))))
+ (reb-match-0 ((t (:background "lightblue"))))
+ (reb-match-1 ((t (:background "aquamarine"))))
+ (reb-match-2 ((t (:background "springgreen"))))
+ (reb-match-3 ((t (:background "yellow"))))
+ (region ((t (:background "#aa0000" :foreground "white"))))
+ (scroll-bar ((t (:background "grey75"))))
+ (secondary-selection ((t (:background "yellow"))))
+ (sgml-comment-face ((t (:italic t :foreground "SeaGreen" :slant italic))))
+ (sgml-doctype-face ((t (:bold t :foreground "FireBrick" :weight bold))))
+ (sgml-end-tag-face ((t (:stipple nil :background "white" :foreground "SlateBlue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 116 :width normal :family "monotype-courier new"))))
+ (sgml-entity-face ((t (:stipple nil :background "SlateBlue" :foreground "Red" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 116 :width normal :family "monotype-courier new"))))
+ (sgml-ignored-face ((t (nil))))
+ (sgml-ms-end-face ((t (nil))))
+ (sgml-ms-start-face ((t (nil))))
+ (sgml-pi-face ((t (:bold t :foreground "gray40" :weight bold))))
+ (sgml-sgml-face ((t (:bold t :foreground "gray40" :weight bold))))
+ (sgml-short-ref-face ((t (nil))))
+ (sgml-shortref-face ((t (:bold t :foreground "gray40" :weight bold))))
+ (sgml-start-tag-face ((t (:stipple nil :background "white" :foreground "SlateBlue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 116 :width normal :family "monotype-courier new"))))
+ (sh-heredoc-face ((t (:foreground "tan"))))
+ (show-paren-match-face ((t (:background "gray80" :foreground "black"))))
+ (show-paren-mismatch-face ((t (:background "red" :foreground "yellow"))))
+ (show-tabs-space-face ((t (:foreground "yellow"))))
+ (show-tabs-tab-face ((t (:foreground "red"))))
+ (smerge-base-face ((t (:foreground "red"))))
+ (smerge-markers-face ((t (:background "grey85"))))
+ (smerge-mine-face ((t (:foreground "blue"))))
+ (smerge-other-face ((t (:foreground "darkgreen"))))
+ (speedbar-button-face ((t (:foreground "green4"))))
+ (speedbar-directory-face ((t (:foreground "blue4"))))
+ (speedbar-file-face ((t (:foreground "cyan4"))))
+ (speedbar-highlight-face ((t (:background "green"))))
+ (speedbar-selected-face ((t (:foreground "red" :underline t))))
+ (speedbar-tag-face ((t (:foreground "brown"))))
+ (strokes-char-face ((t (:background "lightgray"))))
+ (term-black ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-blackbg ((t (:stipple nil :background "black" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-blue ((t (:stipple nil :background "white" :foreground "blue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-bluebg ((t (:stipple nil :background "blue" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-bold ((t (:bold t :stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight bold :width normal :family "adobe-courier"))))
+ (term-cyan ((t (:stipple nil :background "white" :foreground "cyan" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-cyanbg ((t (:stipple nil :background "cyan" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-default-bg ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-default-bg-inv ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-default-fg ((t (:stipple nil :background "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-default-fg-inv ((t (:stipple nil :background "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-green ((t (:stipple nil :background "white" :foreground "green" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-greenbg ((t (:stipple nil :background "green" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-invisible ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-invisible-inv ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-magenta ((t (:stipple nil :background "white" :foreground "magenta" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-magentabg ((t (:stipple nil :background "magenta" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-red ((t (:stipple nil :background "white" :foreground "red" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-redbg ((t (:stipple nil :background "red" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-underline ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline t :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-white ((t (:stipple nil :background "white" :foreground "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-whitebg ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-yellow ((t (:stipple nil :background "white" :foreground "yellow" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-yellowbg ((t (:stipple nil :background "yellow" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (tex-math-face ((t (:foreground "RosyBrown"))))
+ (texinfo-heading-face ((t (:foreground "Blue"))))
+ (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button)))))
+ (tooltip ((t (:background "lightyellow" :foreground "black"))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:foreground "navy" :underline t))))
+ (variable-pitch ((t (:family "helv"))))
+ (vcursor ((t (:background "cyan" :foreground "blue" :underline t))))
+ (vhdl-font-lock-attribute-face ((t (:foreground "Orchid"))))
+ (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue"))))
+ (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4"))))
+ (vhdl-font-lock-function-face ((t (:foreground "Orchid4"))))
+ (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red" :weight bold))))
+ (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange" :weight bold))))
+ (vhdl-font-lock-translate-off-face ((t (:background "LightGray"))))
+ (vhdl-speedbar-architecture-face ((t (:foreground "Blue"))))
+ (vhdl-speedbar-architecture-selected-face ((t (:foreground "Blue" :underline t))))
+ (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod"))))
+ (vhdl-speedbar-configuration-selected-face ((t (:foreground "DarkGoldenrod" :underline t))))
+ (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen"))))
+ (vhdl-speedbar-entity-selected-face ((t (:foreground "ForestGreen" :underline t))))
+ (vhdl-speedbar-instantiation-face ((t (:foreground "Brown"))))
+ (vhdl-speedbar-instantiation-selected-face ((t (:foreground "Brown" :underline t))))
+ (vhdl-speedbar-package-face ((t (:foreground "Grey50"))))
+ (vhdl-speedbar-package-selected-face ((t (:foreground "Grey50" :underline t))))
+ (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black"))))
+ (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen"))))
+ (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-search-face ((t (:background "khaki" :foreground "Black"))))
+ (widget-button-face ((t (:bold t :weight bold))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "gray85"))))
+ (woman-addition-face ((t (:foreground "orange"))))
+ (woman-bold-face ((t (:bold t :foreground "blue" :weight bold))))
+ (woman-italic-face ((t (:italic t :foreground "red" :underline t :slant italic))))
+ (woman-unknown-face ((t (:foreground "brown"))))
+ (zmacs-region ((t (:background "lightgoldenrod2")))))))
+
+(defun color-theme-bharadwaj-slate ()
+ "Color theme by Girish Bharadwaj, created 2002-05-06."
+ (interactive)
+ (color-theme-install
+ '(color-theme-bharadwaj-slate
+ ((background-color . "DarkSlateGray")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "khaki")
+ (foreground-color . "palegreen")
+ (mouse-color . "black"))
+ ((display-time-mail-face . mode-line)
+ (gnus-article-button-face . bold)
+ (gnus-article-mouse-face . highlight)
+ (gnus-mouse-face . highlight)
+ (help-highlight-face . underline)
+ (ibuffer-deletion-face . font-lock-type-face)
+ (ibuffer-filter-group-name-face . bold)
+ (ibuffer-marked-face . font-lock-warning-face)
+ (ibuffer-title-face . font-lock-type-face)
+ (list-matching-lines-buffer-name-face . underline)
+ (list-matching-lines-face . bold)
+ (semantic-which-function-use-color . t)
+ (senator-eldoc-use-color . t)
+ (view-highlight-face . highlight)
+ (widget-mouse-face . highlight))
+ (default ((t (:stipple nil :background "DarkSlateGray" :foreground "palegreen" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-lucida sans typewriter"))))
+ (bg:erc-color-face0 ((t (:background "White"))))
+ (bg:erc-color-face1 ((t (:background "black"))))
+ (bg:erc-color-face10 ((t (:background "lightblue1"))))
+ (bg:erc-color-face11 ((t (:background "cyan"))))
+ (bg:erc-color-face12 ((t (:background "blue"))))
+ (bg:erc-color-face13 ((t (:background "deeppink"))))
+ (bg:erc-color-face14 ((t (:background "gray50"))))
+ (bg:erc-color-face15 ((t (:background "gray90"))))
+ (bg:erc-color-face2 ((t (:background "blue4"))))
+ (bg:erc-color-face3 ((t (:background "green4"))))
+ (bg:erc-color-face4 ((t (:background "red"))))
+ (bg:erc-color-face5 ((t (:background "brown"))))
+ (bg:erc-color-face6 ((t (:background "purple"))))
+ (bg:erc-color-face7 ((t (:background "orange"))))
+ (bg:erc-color-face8 ((t (:background "yellow"))))
+ (bg:erc-color-face9 ((t (:background "green"))))
+ (bold ((t (:bold t :weight bold))))
+ (bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (border ((t (:background "black"))))
+ (button ((t (:underline t))))
+ (comint-highlight-input ((t (:bold t :weight bold))))
+ (comint-highlight-prompt ((t (:foreground "cyan"))))
+ (cursor ((t (:background "khaki"))))
+ (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button)))))
+ (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button)))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-comment-face ((t (:background "dim gray"))))
+ (custom-comment-tag-face ((t (:foreground "gray80"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2))))
+ (custom-group-tag-face ((t (:bold t :foreground "light blue" :weight bold :height 1.2))))
+ (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "pink" :weight bold :height 1.2))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "lime green"))))
+ (custom-variable-button-face ((t (:bold t :underline t :weight bold))))
+ (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "light blue" :weight bold :height 1.2))))
+ (erc-action-face ((t (:bold t :box (:line-width 2 :color "grey75") :weight bold))))
+ (erc-bold-face ((t (:bold t :weight bold))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (:foreground "IndianRed"))))
+ (erc-error-face ((t (:background "Red" :foreground "White"))))
+ (erc-input-face ((t (:foreground "lightblue"))))
+ (erc-inverse-face ((t (:background "Black" :foreground "White"))))
+ (erc-notice-face ((t (:bold t :foreground "dodgerblue" :weight bold))))
+ (erc-prompt-face ((t (:bold t :background "black" :foreground "white" :weight bold))))
+ (erc-timestamp-face ((t (:bold t :foreground "green" :weight bold))))
+ (erc-underline-face ((t (:underline t))))
+ (eshell-ls-archive-face ((t (:bold t :foreground "Orchid" :weight bold))))
+ (eshell-ls-backup-face ((t (:foreground "LightSalmon"))))
+ (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed" :weight bold))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "SkyBlue" :weight bold))))
+ (eshell-ls-executable-face ((t (:bold t :foreground "Green" :weight bold))))
+ (eshell-ls-missing-face ((t (:bold t :foreground "Red" :weight bold))))
+ (eshell-ls-product-face ((t (:foreground "LightSalmon"))))
+ (eshell-ls-readonly-face ((t (:foreground "Pink"))))
+ (eshell-ls-special-face ((t (:bold t :foreground "Magenta" :weight bold))))
+ (eshell-ls-symlink-face ((t (:bold t :foreground "Cyan" :weight bold))))
+ (eshell-ls-unreadable-face ((t (:foreground "DarkGrey"))))
+ (eshell-prompt-face ((t (:bold t :foreground "Pink" :weight bold))))
+ (fg:erc-color-face0 ((t (:foreground "White"))))
+ (fg:erc-color-face1 ((t (:foreground "black"))))
+ (fg:erc-color-face10 ((t (:foreground "lightblue1"))))
+ (fg:erc-color-face11 ((t (:foreground "cyan"))))
+ (fg:erc-color-face12 ((t (:foreground "blue"))))
+ (fg:erc-color-face13 ((t (:foreground "deeppink"))))
+ (fg:erc-color-face14 ((t (:foreground "gray50"))))
+ (fg:erc-color-face15 ((t (:foreground "gray90"))))
+ (fg:erc-color-face2 ((t (:foreground "blue4"))))
+ (fg:erc-color-face3 ((t (:foreground "green4"))))
+ (fg:erc-color-face4 ((t (:foreground "red"))))
+ (fg:erc-color-face5 ((t (:foreground "brown"))))
+ (fg:erc-color-face6 ((t (:foreground "purple"))))
+ (fg:erc-color-face7 ((t (:foreground "orange"))))
+ (fg:erc-color-face8 ((t (:foreground "yellow"))))
+ (fg:erc-color-face9 ((t (:foreground "green"))))
+ (fixed-pitch ((t (:family "courier"))))
+ (font-lock-builtin-face ((t (:bold t :foreground "pink" :weight bold :height 1.1))))
+ (font-lock-comment-face ((t (:foreground "violet" :height 1.0))))
+ (font-lock-constant-face ((t (:bold t :foreground "tomato" :weight bold :height 1.0))))
+ (font-lock-function-name-face ((t (:bold t :foreground "DodgerBlue" :weight bold))))
+ (font-lock-keyword-face ((t (:bold t :foreground "turquoise" :weight bold))))
+ (font-lock-preprocessor-face ((t (:bold t :foreground "tomato" :weight bold :height 1.0))))
+ (font-lock-reference-face ((t (:bold t :foreground "pink" :weight bold :height 1.1))))
+ (font-lock-string-face ((t (:foreground "red" :height 1.0))))
+ (font-lock-type-face ((t (:foreground "lightblue3"))))
+ (font-lock-variable-name-face ((t (:bold t :foreground "gray" :weight bold :height 1.0))))
+ (font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold))))
+ (fringe ((t (:background "DarkSlateGray"))))
+ (gnus-cite-attribution-face ((t (:italic t :slant italic))))
+ (gnus-cite-face-1 ((t (:foreground "light blue"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "light cyan"))))
+ (gnus-cite-face-3 ((t (:foreground "light yellow"))))
+ (gnus-cite-face-4 ((t (:foreground "light pink"))))
+ (gnus-cite-face-5 ((t (:foreground "pale green"))))
+ (gnus-cite-face-6 ((t (:foreground "beige"))))
+ (gnus-cite-face-7 ((t (:foreground "orange"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t :weight bold))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (:italic t :slant italic))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold))))
+ (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold))))
+ (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "aquamarine1"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "aquamarine1" :weight bold))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "aquamarine2"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "aquamarine2" :weight bold))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "aquamarine3"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "aquamarine3" :weight bold))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "aquamarine4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine4" :weight bold))))
+ (gnus-group-news-1-empty-face ((t (:foreground "PaleTurquoise"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "PaleTurquoise" :weight bold))))
+ (gnus-group-news-2-empty-face ((t (:foreground "turquoise"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "turquoise" :weight bold))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t :weight bold))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t :weight bold))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t :weight bold))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t :weight bold))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise" :weight bold))))
+ (gnus-header-content-face ((t (:italic t :foreground "forest green" :slant italic))))
+ (gnus-header-from-face ((t (:foreground "spring green"))))
+ (gnus-header-name-face ((t (:foreground "SeaGreen"))))
+ (gnus-header-newsgroups-face ((t (:italic t :foreground "yellow" :slant italic))))
+ (gnus-header-subject-face ((t (:foreground "SeaGreen3"))))
+ (gnus-signature-face ((t (:italic t :slant italic))))
+ (gnus-splash-face ((t (:foreground "Brown"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "SkyBlue" :weight bold))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "PaleGreen" :weight bold))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "pink" :weight bold))))
+ (gnus-summary-high-unread-face ((t (:bold t :weight bold))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "SkyBlue" :slant italic))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "PaleGreen" :slant italic))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "pink" :slant italic))))
+ (gnus-summary-low-unread-face ((t (:italic t :slant italic))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "PaleGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "pink"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (header-line ((t (:underline "blueviolet" :overline "blueviolet" :box (:line-width -1 :style released-button) :background "grey20" :foreground "grey90" :box nil))))
+ (highlight ((t (:background "darkolivegreen"))))
+ (html-helper-bold-face ((t (:bold t :foreground "wheat" :weight bold))))
+ (html-helper-italic-face ((t (:italic t :foreground "spring green" :slant italic))))
+ (html-helper-underline-face ((t (:foreground "cornsilk" :underline t))))
+ (html-tag-face ((t (:bold t :foreground "deep sky blue" :weight bold))))
+ (info-menu-6 ((t (nil))))
+ (isearch ((t (:background "palevioletred2" :foreground "brown4"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise4"))))
+ (italic ((t (:italic t :slant italic))))
+ (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan"))))
+ (jde-db-active-breakpoint-face ((t (:background "red" :foreground "black"))))
+ (jde-db-requested-breakpoint-face ((t (:background "yellow" :foreground "black"))))
+ (jde-db-spec-breakpoint-face ((t (:background "green" :foreground "black"))))
+ (jde-java-font-lock-api-face ((t (:foreground "light goldenrod"))))
+ (jde-java-font-lock-bold-face ((t (:bold t :weight bold))))
+ (jde-java-font-lock-code-face ((t (nil))))
+ (jde-java-font-lock-constant-face ((t (:foreground "Aquamarine"))))
+ (jde-java-font-lock-doc-tag-face ((t (:foreground "light coral"))))
+ (jde-java-font-lock-italic-face ((t (:italic t :slant italic))))
+ (jde-java-font-lock-link-face ((t (:foreground "blue" :underline t :slant normal))))
+ (jde-java-font-lock-modifier-face ((t (:foreground "LightSteelBlue"))))
+ (jde-java-font-lock-number-face ((t (:foreground "LightSalmon"))))
+ (jde-java-font-lock-operator-face ((t (:foreground "medium blue"))))
+ (jde-java-font-lock-package-face ((t (:foreground "steelblue1"))))
+ (jde-java-font-lock-pre-face ((t (nil))))
+ (jde-java-font-lock-underline-face ((t (:underline t))))
+ (menu ((t (nil))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:bold t :foreground "green4" :weight bold))))
+ (message-header-name-face ((t (:foreground "DarkGreen"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "yellow" :slant italic :weight bold))))
+ (message-header-other-face ((t (:foreground "#b00000"))))
+ (message-header-subject-face ((t (:foreground "green3"))))
+ (message-header-to-face ((t (:bold t :foreground "green2" :weight bold))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "blue3"))))
+ (minibuffer-prompt ((t (:foreground "cyan"))))
+ (mode-line ((t (:background "Darkslategray" :foreground "white" :box (:line-width -1 :style released-button) :overline "blueviolet" :underline "blueviolet"))))
+ (mode-line-inactive ((t (:italic t :underline "blueviolet" :overline "blueviolet" :background "white" :foreground "cadetblue" :box (:line-width -1 :color "grey75") :slant oblique :weight light))))
+ (modeline ((t (:background "Darkslategray" :foreground "white" :box (:line-width -1 :style released-button) :overline "blueviolet" :underline "blueviolet"))))
+ (modeline-buffer-id ((t (:background "Darkslategray" :foreground "white" :box (:line-width -1 :style released-button) :overline "blueviolet" :underline "blueviolet"))))
+ (modeline-mousable ((t (:background "Darkslategray" :foreground "white" :box (:line-width -1 :style released-button) :overline "blueviolet" :underline "blueviolet"))))
+ (modeline-mousable-minor-mode ((t (:background "Darkslategray" :foreground "white" :box (:line-width -1 :style released-button) :overline "blueviolet" :underline "blueviolet"))))
+ (mouse ((t (:background "black"))))
+ (primary-selection ((t (:background "dimgray"))))
+ (region ((t (:background "dimgray"))))
+ (scroll-bar ((t (nil))))
+ (secondary-selection ((t (:background "SkyBlue4"))))
+ (semantic-dirty-token-face ((t (:background "lightyellow"))))
+ (semantic-unmatched-syntax-face ((t (:underline "red"))))
+ (senator-intangible-face ((t (:foreground "gray75"))))
+ (senator-momentary-highlight-face ((t (:background "gray30"))))
+ (senator-read-only-face ((t (:background "#664444"))))
+ (show-paren-match-face ((t (:bold t :foreground "lightblue" :weight bold :height 1.1))))
+ (show-paren-mismatch-face ((t (:bold t :foreground "red" :weight bold :height 1.1))))
+ (show-tabs-space-face ((t (:foreground "yellow"))))
+ (show-tabs-tab-face ((t (:foreground "red"))))
+ (speedbar-button-face ((t (:foreground "green3"))))
+ (speedbar-directory-face ((t (:foreground "light blue"))))
+ (speedbar-file-face ((t (:foreground "cyan"))))
+ (speedbar-highlight-face ((t (:background "sea green"))))
+ (speedbar-selected-face ((t (:foreground "red" :underline t))))
+ (speedbar-tag-face ((t (:foreground "yellow"))))
+ (template-message-face ((t (:bold t :weight bold))))
+ (term-black ((t (:foreground "black"))))
+ (term-blackbg ((t (:background "black"))))
+ (term-blue ((t (:foreground "blue"))))
+ (term-bluebg ((t (:background "blue"))))
+ (term-bold ((t (:bold t :weight bold))))
+ (term-cyan ((t (:foreground "cyan"))))
+ (term-cyanbg ((t (:background "cyan"))))
+ (term-default ((t (:stipple nil :background "DarkSlateGray" :foreground "palegreen" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "outline-lucida sans typewriter"))))
+ (term-default-bg ((t (nil))))
+ (term-default-bg-inv ((t (nil))))
+ (term-default-fg ((t (nil))))
+ (term-default-fg-inv ((t (nil))))
+ (term-green ((t (:foreground "green"))))
+ (term-greenbg ((t (:background "green"))))
+ (term-invisible ((t (nil))))
+ (term-invisible-inv ((t (nil))))
+ (term-magenta ((t (:foreground "magenta"))))
+ (term-magentabg ((t (:background "magenta"))))
+ (term-red ((t (:foreground "red"))))
+ (term-redbg ((t (:background "red"))))
+ (term-underline ((t (:underline t))))
+ (term-white ((t (:foreground "white"))))
+ (term-whitebg ((t (:background "white"))))
+ (term-yellow ((t (:foreground "yellow"))))
+ (term-yellowbg ((t (:background "yellow"))))
+ (tool-bar ((t (:background "DarkSlateGray" :foreground "White" :box (:line-width 1 :color "blue")))))
+ (tooltip ((t (:background "lightyellow" :foreground "black"))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "helv"))))
+ (widget-button-face ((t (:bold t :weight bold))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "lime green"))))
+ (widget-field-face ((t (:background "dim gray"))))
+ (widget-inactive-face ((t (:foreground "light gray"))))
+ (widget-single-line-field-face ((t (:background "dim gray"))))
+ (zmacs-region ((t (:background "dimgray")))))))
+
+(defun color-theme-lethe ()
+ "Color theme by Ivica Loncar, created 2002-08-02.
+Some additional X resources as suggested by the author:
+
+Emacs*menubar.Foreground: Yellow
+Emacs*menubar.Background: #1a2b3c
+Emacs*menubar.topShadowColor: gray
+Emacs*menubar.bottomShadowColor: dimgray
+
+Some fonts I really like (note: this fonts are not highly
+available):
+
+Emacs.default.attributeFont: -letl-*-medium-r-*-*-*-*-*-*-*-*-iso8859-2
+Emacs*menubar*Font: -etl-fixed-medium-r-normal--14-*-*-*-*-*-iso8859-1
+
+Mouse fix:
+
+Emacs*dialog*XmPushButton.translations:#override\n\
+ <Btn1Down>: Arm()\n\
+ <Btn1Down>,<Btn1Up>: Activate()\
+ Disarm()\n\
+ <Btn1Down>(2+): MultiArm()\n\
+ <Btn1Up>(2+): MultiActivate()\n\
+ <Btn1Up>: Activate()\
+ Disarm()\n\
+ <Key>osfSelect: ArmAndActivate()\n\
+ <Key>osfActivate: ArmAndActivate()\n\
+ <Key>osfHelp: Help()\n\
+ ~Shift ~Meta ~Alt <Key>Return: ArmAndActivate()\n\
+ <EnterWindow>: Enter()\n\
+ <LeaveWindow>: Leave()\n
+
+Bonus: do not use 3D modeline."
+ (interactive)
+ (color-theme-install
+ '(color-theme-lethe
+ ((background-color . "black")
+ (background-mode . dark)
+ (background-toolbar-color . "#000000000000")
+ (border-color . "#000000000000")
+ (bottom-toolbar-shadow-color . "red")
+ (cursor-color . "red")
+ (foreground-color . "peachpuff")
+ (mouse-color . "red")
+ (top-toolbar-shadow-color . "#f5f5f5f5f5f5"))
+ ((buffers-tab-face . buffers-tab)
+ (cscope-use-face . t)
+ (gnus-mouse-face . highlight))
+ (default ((t (nil))))
+ (bg:erc-color-face0 ((t (:background "White"))))
+ (bg:erc-color-face1 ((t (nil))))
+ (bg:erc-color-face10 ((t (:background "lightblue1"))))
+ (bg:erc-color-face11 ((t (:background "cyan"))))
+ (bg:erc-color-face12 ((t (:background "blue"))))
+ (bg:erc-color-face13 ((t (:background "deeppink"))))
+ (bg:erc-color-face14 ((t (:background "gray50"))))
+ (bg:erc-color-face15 ((t (:background "gray90"))))
+ (bg:erc-color-face2 ((t (:background "blue4"))))
+ (bg:erc-color-face3 ((t (:background "green4"))))
+ (bg:erc-color-face4 ((t (:background "red"))))
+ (bg:erc-color-face5 ((t (:background "brown"))))
+ (bg:erc-color-face6 ((t (:background "purple"))))
+ (bg:erc-color-face7 ((t (:background "orange"))))
+ (bg:erc-color-face8 ((t (:background "yellow"))))
+ (bg:erc-color-face9 ((t (:background "green"))))
+ (blue ((t (:foreground "blue"))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t))))
+ (border ((t (nil))))
+ (border-glyph ((t (nil))))
+ (buffers-tab ((t (:bold t :foreground "red"))))
+ (button ((t (:underline t))))
+ (calendar-today-face ((t (:underline t))))
+ (comint-highlight-input ((t (:bold t))))
+ (comint-highlight-prompt ((t (:foreground "cyan"))))
+ (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue"))))
+ (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red"))))
+ (cperl-nonoverridable-face ((t (:foreground "chartreuse3"))))
+ (cscope-file-face ((t (:foreground "blue"))))
+ (cscope-function-face ((t (:foreground "magenta"))))
+ (cscope-line-face ((t (:foreground "green"))))
+ (cscope-line-number-face ((t (:foreground "red"))))
+ (cscope-mouse-face ((t (:background "blue" :foreground "white"))))
+ (cursor ((t (nil))))
+ (custom-button-face ((t (nil))))
+ (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black"))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-comment-face ((t (:background "dim gray"))))
+ (custom-comment-tag-face ((t (:foreground "gray80"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:underline t :foreground "blue"))))
+ (custom-group-tag-face-1 ((t (:underline t :foreground "red"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "dark green"))))
+ (custom-variable-button-face ((t (:underline t :bold t))))
+ (custom-variable-tag-face ((t (:underline t :foreground "blue"))))
+ (cyan ((t (:foreground "cyan"))))
+ (diary-face ((t (:foreground "red"))))
+ (dired-face-boring ((t (:foreground "Gray65"))))
+ (dired-face-directory ((t (:bold t))))
+ (dired-face-executable ((t (:foreground "SeaGreen"))))
+ (dired-face-flagged ((t (:background "LightSlateGray"))))
+ (dired-face-marked ((t (:background "PaleVioletRed"))))
+ (dired-face-permissions ((t (:background "grey75" :foreground "black"))))
+ (dired-face-setuid ((t (:foreground "Red"))))
+ (dired-face-socket ((t (:foreground "magenta"))))
+ (dired-face-symlink ((t (:foreground "cyan"))))
+ (display-time-mail-balloon-enhance-face ((t (:background "orange"))))
+ (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue"))))
+ (display-time-time-balloon-face ((t (:foreground "red"))))
+ (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick"))))
+ (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black"))))
+ (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid"))))
+ (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy"))))
+ (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black"))))
+ (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black"))))
+ (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy"))))
+ (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black"))))
+ (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black"))))
+ (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black"))))
+ (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White"))))
+ (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black"))))
+ (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black"))))
+ (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White"))))
+ (erc-action-face ((t (:bold t))))
+ (erc-bold-face ((t (:bold t))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (:foreground "IndianRed"))))
+ (erc-error-face ((t (:background "Red" :foreground "White"))))
+ (erc-input-face ((t (:foreground "brown"))))
+ (erc-inverse-face ((t (:background "Black" :foreground "White"))))
+ (erc-notice-face ((t (:bold t :foreground "SlateBlue"))))
+ (erc-prompt-face ((t (:bold t :background "lightBlue2" :foreground "Black"))))
+ (erc-timestamp-face ((t (:bold t :foreground "green"))))
+ (erc-underline-face ((t (:underline t))))
+ (eshell-ls-archive-face ((t (:bold t :foreground "Orchid"))))
+ (eshell-ls-backup-face ((t (:foreground "OrangeRed"))))
+ (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed"))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "Blue"))))
+ (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen"))))
+ (eshell-ls-missing-face ((t (:bold t :foreground "Red"))))
+ (eshell-ls-product-face ((t (:foreground "OrangeRed"))))
+ (eshell-ls-readonly-face ((t (:foreground "Brown"))))
+ (eshell-ls-special-face ((t (:bold t :foreground "Magenta"))))
+ (eshell-ls-symlink-face ((t (:bold t :foreground "DarkCyan"))))
+ (eshell-ls-unreadable-face ((t (:foreground "Grey30"))))
+ (eshell-prompt-face ((t (:bold t :foreground "Red"))))
+ (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed"))))
+ (eshell-test-ok-face ((t (:bold t :foreground "Green"))))
+ (excerpt ((t (:italic t))))
+ (fg:erc-color-face0 ((t (:foreground "White"))))
+ (fg:erc-color-face1 ((t (:foreground "black"))))
+ (fg:erc-color-face10 ((t (:foreground "lightblue1"))))
+ (fg:erc-color-face11 ((t (:foreground "cyan"))))
+ (fg:erc-color-face12 ((t (:foreground "blue"))))
+ (fg:erc-color-face13 ((t (:foreground "deeppink"))))
+ (fg:erc-color-face14 ((t (:foreground "gray50"))))
+ (fg:erc-color-face15 ((t (:foreground "gray90"))))
+ (fg:erc-color-face2 ((t (:foreground "blue4"))))
+ (fg:erc-color-face3 ((t (:foreground "green4"))))
+ (fg:erc-color-face4 ((t (:foreground "red"))))
+ (fg:erc-color-face5 ((t (:foreground "brown"))))
+ (fg:erc-color-face6 ((t (:foreground "purple"))))
+ (fg:erc-color-face7 ((t (:foreground "orange"))))
+ (fg:erc-color-face8 ((t (:foreground "yellow"))))
+ (fg:erc-color-face9 ((t (:foreground "green"))))
+ (fixed ((t (:bold t))))
+ (fixed-pitch ((t (:size "16"))))
+ (flyspell-duplicate-face ((t (:underline t :bold t :foreground "Gold3"))))
+ (flyspell-incorrect-face ((t (:underline t :bold t :foreground "OrangeRed"))))
+ (font-lock-builtin-face ((t (:foreground "Orchid"))))
+ (font-lock-comment-face ((t (:bold t :foreground "cyan"))))
+ (font-lock-constant-face ((t (:foreground "CadetBlue"))))
+ (font-lock-doc-face ((t (:bold t :foreground "red"))))
+ (font-lock-doc-string-face ((t (:bold t :foreground "red"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "white"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "yellow"))))
+ (font-lock-preprocessor-face ((t (:bold t :foreground "blue"))))
+ (font-lock-reference-face ((t (:foreground "red3"))))
+ (font-lock-string-face ((t (:bold t :foreground "magenta"))))
+ (font-lock-type-face ((t (:bold t :foreground "lightgreen"))))
+ (font-lock-variable-name-face ((t (:bold t :foreground "white"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red"))))
+ (fringe ((t (:background "grey95"))))
+ (gdb-arrow-face ((t (:bold t :background "yellow" :foreground "red"))))
+ (gnus-cite-attribution-face ((t (:italic t))))
+ (gnus-cite-face-1 ((t (:foreground "MidnightBlue"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "firebrick"))))
+ (gnus-cite-face-3 ((t (:foreground "dark green"))))
+ (gnus-cite-face-4 ((t (:foreground "OrangeRed"))))
+ (gnus-cite-face-5 ((t (:foreground "dark khaki"))))
+ (gnus-cite-face-6 ((t (:foreground "dark violet"))))
+ (gnus-cite-face-7 ((t (:foreground "SteelBlue4"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t))))
+ (gnus-emphasis-highlight-words ((t (:foreground "yellow"))))
+ (gnus-emphasis-italic ((t (:italic t))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:underline t :bold t))))
+ (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t))))
+ (gnus-emphasis-underline-italic ((t (:underline t :italic t))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "magenta4"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4"))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-header-content-face ((t (:italic t :foreground "indianred4"))))
+ (gnus-header-from-face ((t (:foreground "red3"))))
+ (gnus-header-name-face ((t (:foreground "maroon"))))
+ (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue"))))
+ (gnus-header-subject-face ((t (:foreground "red4"))))
+ (gnus-picons-face ((t (:background "white" :foreground "black"))))
+ (gnus-picons-xbm-face ((t (:background "white" :foreground "black"))))
+ (gnus-signature-face ((t (:italic t))))
+ (gnus-splash-face ((t (:foreground "ForestGreen"))))
+ (gnus-summary-cancelled-face ((t (:foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick"))))
+ (gnus-summary-high-unread-face ((t (:bold t))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue"))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen"))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick"))))
+ (gnus-summary-low-unread-face ((t (:italic t))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "DarkGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "firebrick"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (gnus-x-face ((t (:background "white" :foreground "black"))))
+ (green ((t (:foreground "green"))))
+ (gui-button-face ((t (:background "grey75" :foreground "black"))))
+ (gui-element ((t (:size "12" :background "Gray80" :foreground "black"))))
+ (header-line ((t (:background "grey20" :foreground "grey90"))))
+ (highlight ((t (:bold t :background "yellow" :foreground "red"))))
+ (highlight-changes-delete-face ((t (:underline t :foreground "red"))))
+ (highlight-changes-face ((t (:foreground "red"))))
+ (highline-face ((t (:background "paleturquoise"))))
+ (holiday-face ((t (:background "pink"))))
+ (hyper-apropos-documentation ((t (:foreground "#aaaaaa"))))
+ (hyper-apropos-heading ((t (:bold t :foreground "#999999"))))
+ (hyper-apropos-hyperlink ((t (:foreground "Violet"))))
+ (hyper-apropos-major-heading ((t (:bold t :foreground "#ff0000"))))
+ (hyper-apropos-section-heading ((t (:italic t :bold t :foreground "#33aa55"))))
+ (hyper-apropos-warning ((t (:bold t :foreground "red"))))
+ (info-menu-5 ((t (:underline t))))
+ (info-node ((t (:italic t :bold t))))
+ (info-xref ((t (:bold t))))
+ (isearch ((t (:background "paleturquoise"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise4"))))
+ (isearch-secondary ((t (:foreground "red3"))))
+ (italic ((t (:italic t))))
+ (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan"))))
+ (jde-db-active-breakpoint-face ((t (:background "red" :foreground "black"))))
+ (jde-db-requested-breakpoint-face ((t (:background "yellow" :foreground "black"))))
+ (jde-db-spec-breakpoint-face ((t (:background "green" :foreground "black"))))
+ (jde-java-font-lock-api-face ((t (:foreground "light goldenrod"))))
+ (jde-java-font-lock-bold-face ((t (:bold t))))
+ (jde-java-font-lock-code-face ((t (nil))))
+ (jde-java-font-lock-constant-face ((t (:foreground "Aquamarine"))))
+ (jde-java-font-lock-doc-tag-face ((t (:foreground "light coral"))))
+ (jde-java-font-lock-italic-face ((t (:italic t))))
+ (jde-java-font-lock-link-face ((t (:underline t :foreground "cadetblue"))))
+ (jde-java-font-lock-modifier-face ((t (:foreground "LightSteelBlue"))))
+ (jde-java-font-lock-number-face ((t (:foreground "LightSalmon"))))
+ (jde-java-font-lock-operator-face ((t (:foreground "medium blue"))))
+ (jde-java-font-lock-package-face ((t (:foreground "steelblue1"))))
+ (jde-java-font-lock-pre-face ((t (nil))))
+ (jde-java-font-lock-underline-face ((t (:underline t))))
+ (left-margin ((t (nil))))
+ (list-mode-item-selected ((t (:background "gray68"))))
+ (magenta ((t (:foreground "magenta"))))
+ (makefile-space-face ((t (:background "hotpink"))))
+ (menu ((t (nil))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:foreground "MidnightBlue"))))
+ (message-header-name-face ((t (:foreground "cornflower blue"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4"))))
+ (message-header-other-face ((t (:foreground "steel blue"))))
+ (message-header-subject-face ((t (:bold t :foreground "navy blue"))))
+ (message-header-to-face ((t (:bold t :foreground "MidnightBlue"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:bold t :foreground "cyan"))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (minibuffer-prompt ((t (:foreground "cyan"))))
+ (mode-line ((t (:background "grey75" :foreground "black"))))
+ (mode-line-inactive ((t (:background "grey30" :foreground "grey80"))))
+ (modeline ((t (:bold t :background "red" :foreground "yellow"))))
+ (modeline-buffer-id ((t (:bold t :background "red" :foreground "yellow"))))
+ (modeline-mousable ((t (:background "red" :foreground "yellow"))))
+ (modeline-mousable-minor-mode ((t (:background "red" :foreground "green4"))))
+ (mouse ((t (nil))))
+ (paren-blink-off ((t (:foreground "black"))))
+ (paren-match ((t (:bold t :background "yellow" :foreground "red"))))
+ (paren-mismatch ((t (:background "DeepPink"))))
+ (pointer ((t (nil))))
+ (primary-selection ((t (:background "gray65"))))
+ (red ((t (:foreground "red"))))
+ (region ((t (:background "gray75"))))
+ (right-margin ((t (nil))))
+ (scroll-bar ((t (nil))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (semantic-dirty-token-face ((t (:background "lightyellow"))))
+ (semantic-unmatched-syntax-face ((t (nil))))
+ (senator-intangible-face ((t (:foreground "gray75"))))
+ (senator-momentary-highlight-face ((t (:background "gray30"))))
+ (senator-read-only-face ((t (:background "#664444"))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (speedbar-button-face ((t (:foreground "green4"))))
+ (speedbar-directory-face ((t (:foreground "blue4"))))
+ (speedbar-file-face ((t (:foreground "cyan4"))))
+ (speedbar-highlight-face ((t (:background "green"))))
+ (speedbar-selected-face ((t (:underline t :foreground "red"))))
+ (speedbar-tag-face ((t (:foreground "brown"))))
+ (template-message-face ((t (:bold t))))
+ (term-black ((t (:foreground "black"))))
+ (term-blackbg ((t (nil))))
+ (term-blue ((t (:foreground "blue"))))
+ (term-blue-bold-face ((t (:bold t :foreground "blue"))))
+ (term-blue-face ((t (:foreground "blue"))))
+ (term-blue-inv-face ((t (:background "blue"))))
+ (term-blue-ul-face ((t (:underline t :foreground "blue"))))
+ (term-bluebg ((t (:background "blue"))))
+ (term-bold ((t (:bold t))))
+ (term-cyan ((t (:foreground "cyan"))))
+ (term-cyan-bold-face ((t (:bold t :foreground "cyan"))))
+ (term-cyan-face ((t (:foreground "cyan"))))
+ (term-cyan-inv-face ((t (:background "cyan"))))
+ (term-cyan-ul-face ((t (:underline t :foreground "cyan"))))
+ (term-cyanbg ((t (:background "cyan"))))
+ (term-default-bg ((t (nil))))
+ (term-default-bg-inv ((t (nil))))
+ (term-default-bold-face ((t (:bold t))))
+ (term-default-face ((t (nil))))
+ (term-default-fg ((t (nil))))
+ (term-default-fg-inv ((t (nil))))
+ (term-default-inv-face ((t (:background "peachpuff" :foreground "black"))))
+ (term-default-ul-face ((t (:underline t))))
+ (term-green ((t (:foreground "green"))))
+ (term-green-bold-face ((t (:bold t :foreground "green"))))
+ (term-green-face ((t (:foreground "green"))))
+ (term-green-inv-face ((t (:background "green"))))
+ (term-green-ul-face ((t (:underline t :foreground "green"))))
+ (term-greenbg ((t (:background "green"))))
+ (term-invisible ((t (nil))))
+ (term-invisible-inv ((t (nil))))
+ (term-magenta ((t (:foreground "magenta"))))
+ (term-magenta-bold-face ((t (:bold t :foreground "magenta"))))
+ (term-magenta-face ((t (:foreground "magenta"))))
+ (term-magenta-inv-face ((t (:background "magenta"))))
+ (term-magenta-ul-face ((t (:underline t :foreground "magenta"))))
+ (term-magentabg ((t (:background "magenta"))))
+ (term-red ((t (:foreground "red"))))
+ (term-red-bold-face ((t (:bold t :foreground "red"))))
+ (term-red-face ((t (:foreground "red"))))
+ (term-red-inv-face ((t (:background "red"))))
+ (term-red-ul-face ((t (:underline t :foreground "red"))))
+ (term-redbg ((t (:background "red"))))
+ (term-underline ((t (:underline t))))
+ (term-white ((t (:foreground "white"))))
+ (term-white-bold-face ((t (:bold t :foreground "white"))))
+ (term-white-face ((t (:foreground "white"))))
+ (term-white-inv-face ((t (nil))))
+ (term-white-ul-face ((t (:underline t :foreground "white"))))
+ (term-whitebg ((t (:background "white"))))
+ (term-yellow ((t (:foreground "yellow"))))
+ (term-yellow-bold-face ((t (:bold t :foreground "yellow"))))
+ (term-yellow-face ((t (:foreground "yellow"))))
+ (term-yellow-inv-face ((t (:background "yellow"))))
+ (term-yellow-ul-face ((t (:underline t :foreground "yellow"))))
+ (term-yellowbg ((t (:background "yellow"))))
+ (text-cursor ((t (:background "red" :foreground "black"))))
+ (tool-bar ((t (:background "grey75" :foreground "black"))))
+ (toolbar ((t (:background "Gray80" :foreground "black"))))
+ (tooltip ((t (:background "lightyellow" :foreground "black"))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (nil))))
+ (vcursor ((t (:underline t :background "cyan" :foreground "blue"))))
+ (vertical-divider ((t (:background "Gray80" :foreground "black"))))
+ (vhdl-font-lock-attribute-face ((t (:foreground "Orchid"))))
+ (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue"))))
+ (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4"))))
+ (vhdl-font-lock-function-face ((t (:foreground "Orchid4"))))
+ (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red"))))
+ (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange"))))
+ (vhdl-font-lock-translate-off-face ((t (:background "LightGray"))))
+ (vhdl-speedbar-architecture-face ((t (:foreground "Blue"))))
+ (vhdl-speedbar-architecture-selected-face ((t (:underline t :foreground "Blue"))))
+ (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod"))))
+ (vhdl-speedbar-configuration-selected-face ((t (:underline t :foreground "DarkGoldenrod"))))
+ (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen"))))
+ (vhdl-speedbar-entity-selected-face ((t (:underline t :foreground "ForestGreen"))))
+ (vhdl-speedbar-instantiation-face ((t (:foreground "Brown"))))
+ (vhdl-speedbar-instantiation-selected-face ((t (:underline t :foreground "Brown"))))
+ (vhdl-speedbar-package-face ((t (:foreground "Grey50"))))
+ (vhdl-speedbar-package-selected-face ((t (:underline t :foreground "Grey50"))))
+ (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black"))))
+ (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen"))))
+ (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-search-face ((t (:background "khaki" :foreground "Black"))))
+ (white ((t (:foreground "white"))))
+ (widget ((t (:size "12" :background "Gray80" :foreground "black"))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (nil))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "gray85"))))
+ (x-face ((t (:bold t :background "wheat" :foreground "black"))))
+ (xrdb-option-name-face ((t (:bold t :foreground "yellow"))))
+ (xrdb-option-value-face ((t (:bold t :foreground "magenta"))))
+ (yellow ((t (:foreground "yellow"))))
+ (zmacs-region ((t (:background "white" :foreground "black")))))))
+
+(defun color-theme-shaman ()
+ "Color theme by shaman, created 2002-11-11."
+ (interactive)
+ (color-theme-install
+ '(color-theme-shaman
+ ((background-color . "#456345")
+ (background-mode . dark)
+ (background-toolbar-color . "#cf3ccf3ccf3c")
+ (border-color . "#000000000000")
+ (bottom-toolbar-shadow-color . "#79e77df779e7")
+ (foreground-color . "White")
+ (top-toolbar-shadow-color . "#f7defbeef7de"))
+ ((buffers-tab-face . buffers-tab))
+ (default ((t (nil))))
+ (blue ((t (:foreground "blue"))))
+ (bold ((t (:bold t :size "12"))))
+ (bold-italic ((t (:italic t :bold t :size "12"))))
+ (border-glyph ((t (nil))))
+ (buffers-tab ((t (:background "Gray80" :foreground "black"))))
+ (font-lock-builtin-face ((t (:foreground "cadetblue2"))))
+ (font-lock-comment-face ((t (:foreground "gray80"))))
+ (font-lock-constant-face ((t (:foreground "steelblue1"))))
+ (font-lock-doc-face ((t (:foreground "light coral"))))
+ (font-lock-doc-string-face ((t (:foreground "light coral"))))
+ (font-lock-function-name-face ((t (:foreground "aquamarine"))))
+ (font-lock-keyword-face ((t (:foreground "cyan"))))
+ (font-lock-preprocessor-face ((t (:foreground "steelblue1"))))
+ (font-lock-reference-face ((t (:foreground "cadetblue2"))))
+ (font-lock-string-face ((t (:foreground "tan"))))
+ (font-lock-type-face ((t (:foreground "wheat"))))
+ (font-lock-variable-name-face ((t (:foreground "cyan3"))))
+ (font-lock-warning-face ((t (:bold t :size "12" :foreground "Pink"))))
+ (fringe ((t (nil))))
+ (gnus-x-face ((t (:background "white" :foreground "black"))))
+ (green ((t (:foreground "green"))))
+ (gui-button-face ((t (:background "grey75" :foreground "black"))))
+ (gui-element ((t (:size "12" :background "Gray80" :foreground "black"))))
+ (highlight ((t (:background "darkseagreen2"))))
+ (isearch ((t (:background "paleturquoise"))))
+ (isearch-secondary ((t (:foreground "red3"))))
+ (italic ((t (:italic t :size "12"))))
+ (left-margin ((t (nil))))
+ (list-mode-item-selected ((t (:background "gray68"))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:bold t :foreground "green4"))))
+ (message-header-name-face ((t (:foreground "DarkGreen"))))
+ (message-header-newsgroups-face ((t (:bold t :foreground "yellow"))))
+ (message-header-other-face ((t (:foreground "#b00000"))))
+ (message-header-subject-face ((t (:foreground "green3"))))
+ (message-header-to-face ((t (:bold t :foreground "green2"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "blue3"))))
+ (mode-line ((t (:background "Gray80" :foreground "black"))))
+ (modeline ((t (:background "Gray80" :foreground "black"))))
+ (modeline-buffer-id ((t (:background "Gray80" :foreground "blue4"))))
+ (modeline-mousable ((t (:background "Gray80" :foreground "firebrick"))))
+ (modeline-mousable-minor-mode ((t (:background "Gray80" :foreground "green4"))))
+ (pointer ((t (:foreground "White"))))
+ (primary-selection ((t (:background "gray65"))))
+ (red ((t (:foreground "red"))))
+ (region ((t (:background "gray65"))))
+ (right-margin ((t (nil))))
+ (rpm-spec-dir-face ((t (:foreground "green"))))
+ (rpm-spec-doc-face ((t (:foreground "magenta"))))
+ (rpm-spec-ghost-face ((t (:foreground "red"))))
+ (rpm-spec-macro-face ((t (:foreground "yellow"))))
+ (rpm-spec-package-face ((t (:foreground "red"))))
+ (rpm-spec-tag-face ((t (:foreground "blue"))))
+ (rpm-spec-var-face ((t (:foreground "maroon"))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (text-cursor ((t (:background "Pink" :foreground "Black"))))
+ (tool-bar ((t (nil))))
+ (toolbar ((t (:background "Gray80" :foreground "black"))))
+ (underline ((t (:underline t))))
+ (vertical-divider ((t (:background "Gray80" :foreground "black"))))
+ (widget ((t (:size "12" :background "Gray80" :foreground "black"))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "lime green"))))
+ (widget-field-face ((t (:background "dim gray"))))
+ (widget-inactive-face ((t (:foreground "light gray"))))
+ (yellow ((t (:foreground "yellow"))))
+ (zmacs-region ((t (:background "gray65")))))))
+
+(defun color-theme-emacs-nw ()
+ "Follow emacs21's color-theme, with -nw getting 100% compatibility.
+
+Alex's `color-theme-emacs-21' follows emacs21's theme, but in the
+current scheme of things, that means that when it works on X, it won't
+work in -nw perfectly. The modeline and menuline will have same
+colors as the rest of emacs, which can be particularly disturbing when
+there are multiple windows.
+
+OTOH, `color-theme-emacs-nw' follows emacs21's theme but the goal is
+100% -nw compatibility, and in X; we shall try for decent color
+scheme, and as much compability default emacs21's X as possble.
+Bugs to deego@gnufans.org.
+
+TODO: Try to make this theme relative to color-theme-emacs-21 rather
+than absolute, viz: call that first and then tweak minor stuff."
+ (interactive)
+ (color-theme-install
+ '(color-theme-emacs-nw
+ ((background-color . "white")
+ (background-mode . light)
+ (border-color . "black")
+ (cursor-color . "black")
+ (foreground-color . "black")
+ (mouse-color . "black"))
+ ((Man-overstrike-face . bold)
+ (Man-underline-face . underline)
+ (cperl-here-face . font-lock-string-face)
+ (cperl-invalid-face . underline)
+ (cperl-pod-face . font-lock-comment-face)
+ (cperl-pod-head-face . font-lock-variable-name-face)
+ (gnus-article-button-face . bold)
+ (gnus-article-mouse-face . highlight)
+ (gnus-cite-attribution-face . gnus-cite-attribution-face)
+ (gnus-mouse-face . highlight)
+ (gnus-signature-face . gnus-signature-face)
+ (gnus-summary-selected-face . gnus-summary-selected-face)
+ (help-highlight-face . underline)
+ (idlwave-class-arrow-face . bold)
+ (idlwave-shell-breakpoint-face . idlwave-shell-bp-face)
+ (idlwave-shell-expression-face . secondary-selection)
+ (idlwave-shell-stop-line-face . highlight)
+ (ispell-highlight-face . highlight)
+ (list-matching-lines-face . bold)
+ (view-highlight-face . highlight)
+ (viper-insert-state-cursor-color . "Green")
+ (viper-replace-overlay-cursor-color . "Red")
+ (widget-mouse-face . highlight))
+ (default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728))))
+ (Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44))))
+ (Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2))))
+ (Info-title-4-face ((t (:bold t :family "helv" :weight bold))))
+ (antlr-font-lock-keyword-face ((t (:bold t :foreground "black" :weight bold))))
+ (antlr-font-lock-literal-face ((t (:bold t :foreground "brown4" :weight bold))))
+ (antlr-font-lock-ruledef-face ((t (:bold t :foreground "blue" :weight bold))))
+ (antlr-font-lock-ruleref-face ((t (:foreground "blue4"))))
+ (antlr-font-lock-tokendef-face ((t (:bold t :foreground "blue" :weight bold))))
+ (antlr-font-lock-tokenref-face ((t (:foreground "orange4"))))
+ (bold ((t (:bold t :weight bold))))
+ (bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (border ((t (:background "black"))))
+ (calendar-today-face ((t (:underline t))))
+ (change-log-acknowledgement-face ((t (:foreground "Firebrick"))))
+ (change-log-conditionals-face ((t (:foreground "DarkGoldenrod"))))
+ (change-log-date-face ((t (:foreground "RosyBrown"))))
+ (change-log-email-face ((t (:foreground "DarkGoldenrod"))))
+ (change-log-file-face ((t (:foreground "Blue"))))
+ (change-log-function-face ((t (:foreground "DarkGoldenrod"))))
+ (change-log-list-face ((t (:foreground "Purple"))))
+ (change-log-name-face ((t (:foreground "CadetBlue"))))
+ (comint-highlight-input ((t (:bold t :weight bold))))
+ (comint-highlight-prompt ((t (:foreground "dark blue"))))
+ (cperl-array-face ((t (:bold t :background "lightyellow2" :foreground "Blue" :weight bold))))
+ (cperl-hash-face ((t (:italic t :bold t :background "lightyellow2" :foreground "Red" :slant italic :weight bold))))
+ (cperl-nonoverridable-face ((t (:foreground "chartreuse3"))))
+ (cursor ((t (:background "black"))))
+ (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button)))))
+ (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button)))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-comment-face ((t (:background "gray85"))))
+ (custom-comment-tag-face ((t (:foreground "blue4"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2))))
+ (custom-group-tag-face ((t (:bold t :foreground "blue" :weight bold :height 1.2))))
+ (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "red" :weight bold :height 1.2))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "dark green"))))
+ (custom-variable-button-face ((t (:bold t :underline t :weight bold))))
+ (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "blue" :weight bold :height 1.2))))
+ (cvs-filename-face ((t (:foreground "blue4"))))
+ (cvs-handled-face ((t (:foreground "pink"))))
+ (cvs-header-face ((t (:bold t :foreground "blue4" :weight bold))))
+ (cvs-marked-face ((t (:bold t :foreground "green3" :weight bold))))
+ (cvs-msg-face ((t (:italic t :slant italic))))
+ (cvs-need-action-face ((t (:foreground "orange"))))
+ (cvs-unknown-face ((t (:foreground "red"))))
+ (diary-face ((t (:foreground "red"))))
+ (diff-added-face ((t (nil))))
+ (diff-changed-face ((t (nil))))
+ (diff-context-face ((t (:foreground "grey50"))))
+ (diff-file-header-face ((t (:bold t :background "grey70" :weight bold))))
+ (diff-function-face ((t (:foreground "grey50"))))
+ (diff-header-face ((t (:background "grey85"))))
+ (diff-hunk-header-face ((t (:background "grey85"))))
+ (diff-index-face ((t (:bold t :weight bold :background "grey70"))))
+ (diff-nonexistent-face ((t (:bold t :weight bold :background "grey70"))))
+ (diff-removed-face ((t (nil))))
+ (dired-face-boring ((t (:foreground "RosyBrown"))))
+ (dired-face-directory ((t (:foreground "Blue"))))
+ (dired-face-executable ((t (nil))))
+ (dired-face-flagged ((t (:foreground "Red" :weight bold))))
+ (dired-face-marked ((t (:foreground "Red" :weight bold))))
+ (dired-face-permissions ((t (nil))))
+ (dired-face-setuid ((t (nil))))
+ (dired-face-socket ((t (nil))))
+ (dired-face-symlink ((t (:foreground "Purple"))))
+ (ebrowse-default-face ((t (nil))))
+ (ebrowse-file-name-face ((t (:italic t :slant italic))))
+ (ebrowse-member-attribute-face ((t (:foreground "red"))))
+ (ebrowse-member-class-face ((t (:foreground "purple"))))
+ (ebrowse-progress-face ((t (:background "blue"))))
+ (ebrowse-root-class-face ((t (:bold t :foreground "blue" :weight bold))))
+ (ebrowse-tree-mark-face ((t (:foreground "red"))))
+ (ediff-current-diff-face-A ((t (:background "pale green" :foreground "firebrick"))))
+ (ediff-current-diff-face-Ancestor ((t (:background "VioletRed" :foreground "Black"))))
+ (ediff-current-diff-face-B ((t (:background "Yellow" :foreground "DarkOrchid"))))
+ (ediff-current-diff-face-C ((t (:background "Pink" :foreground "Navy"))))
+ (ediff-even-diff-face-A ((t (:background "light grey" :foreground "Black"))))
+ (ediff-even-diff-face-Ancestor ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-B ((t (:background "Grey" :foreground "White"))))
+ (ediff-even-diff-face-C ((t (:background "light grey" :foreground "Black"))))
+ (ediff-fine-diff-face-A ((t (:background "sky blue" :foreground "Navy"))))
+ (ediff-fine-diff-face-Ancestor ((t (:background "Green" :foreground "Black"))))
+ (ediff-fine-diff-face-B ((t (:background "cyan" :foreground "Black"))))
+ (ediff-fine-diff-face-C ((t (:background "Turquoise" :foreground "Black"))))
+ (ediff-odd-diff-face-A ((t (:background "Grey" :foreground "White"))))
+ (ediff-odd-diff-face-Ancestor ((t (:background "light grey" :foreground "Black"))))
+ (ediff-odd-diff-face-B ((t (:background "light grey" :foreground "Black"))))
+ (ediff-odd-diff-face-C ((t (:background "Grey" :foreground "White"))))
+ (eshell-ls-archive-face ((t (:bold t :foreground "Orchid" :weight bold))))
+ (eshell-ls-backup-face ((t (:foreground "OrangeRed"))))
+ (eshell-ls-clutter-face ((t (:bold t :foreground "OrangeRed" :weight bold))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "Blue" :weight bold))))
+ (eshell-ls-executable-face ((t (:bold t :foreground "ForestGreen" :weight bold))))
+ (eshell-ls-missing-face ((t (:bold t :foreground "Red" :weight bold))))
+ (eshell-ls-product-face ((t (:foreground "OrangeRed"))))
+ (eshell-ls-readonly-face ((t (:foreground "Brown"))))
+ (eshell-ls-special-face ((t (:bold t :foreground "Magenta" :weight bold))))
+ (eshell-ls-symlink-face ((t (:bold t :foreground "Dark Cyan" :weight bold))))
+ (eshell-ls-unreadable-face ((t (:foreground "Grey30"))))
+ (eshell-prompt-face ((t (:bold t :foreground "Red" :weight bold))))
+ (eshell-test-failed-face ((t (:bold t :foreground "OrangeRed" :weight bold))))
+ (eshell-test-ok-face ((t (:bold t :foreground "Green" :weight bold))))
+ (excerpt ((t (:italic t :slant italic))))
+ (fixed ((t (:bold t :weight bold))))
+ (fixed-pitch ((t (:family "courier"))))
+ (flyspell-duplicate-face ((t (:bold t :foreground "Gold3" :underline t :weight bold))))
+ (flyspell-incorrect-face ((t (:bold t :foreground "OrangeRed" :underline t :weight bold))))
+ (font-lock-builtin-face ((t (:foreground "Orchid"))))
+ (font-lock-comment-face ((t (:foreground "Firebrick"))))
+ (font-lock-constant-face ((t (:foreground "CadetBlue"))))
+ (font-lock-doc-face ((t (:foreground "RosyBrown"))))
+ (font-lock-doc-string-face ((t (:foreground "RosyBrown"))))
+ (font-lock-function-name-face ((t (:foreground "Blue"))))
+ (font-lock-keyword-face ((t (:foreground "Purple"))))
+ (font-lock-preprocessor-face ((t (:foreground "CadetBlue"))))
+ (font-lock-reference-face ((t (:foreground "Orchid"))))
+ (font-lock-string-face ((t (:foreground "RosyBrown"))))
+ (font-lock-type-face ((t (:foreground "ForestGreen"))))
+ (font-lock-variable-name-face ((t (:foreground "DarkGoldenrod"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red" :weight bold))))
+ (fringe ((t (:background "grey95"))))
+ (gnus-cite-attribution-face ((t (:italic t :slant italic))))
+ (gnus-cite-face-1 ((t (:foreground "MidnightBlue"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "firebrick"))))
+ (gnus-cite-face-3 ((t (:foreground "dark green"))))
+ (gnus-cite-face-4 ((t (:foreground "OrangeRed"))))
+ (gnus-cite-face-5 ((t (:foreground "dark khaki"))))
+ (gnus-cite-face-6 ((t (:foreground "dark violet"))))
+ (gnus-cite-face-7 ((t (:foreground "SteelBlue4"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t :weight bold))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (:italic t :slant italic))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold))))
+ (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold))))
+ (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3" :weight bold))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3" :weight bold))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "magenta4"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4" :weight bold))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4" :weight bold))))
+ (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen" :weight bold))))
+ (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4" :weight bold))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t :weight bold))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t :weight bold))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t :weight bold))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t :weight bold))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen" :weight bold))))
+ (gnus-header-content-face ((t (:italic t :foreground "indianred4" :slant italic))))
+ (gnus-header-from-face ((t (:foreground "red3"))))
+ (gnus-header-name-face ((t (:foreground "maroon"))))
+ (gnus-header-newsgroups-face ((t (:italic t :foreground "MidnightBlue" :slant italic))))
+ (gnus-header-subject-face ((t (:foreground "red4"))))
+ (gnus-signature-face ((t (:italic t :slant italic))))
+ (gnus-splash-face ((t (:foreground "Brown"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue" :weight bold))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen" :weight bold))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "firebrick" :weight bold))))
+ (gnus-summary-high-unread-face ((t (:bold t :weight bold))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue" :slant italic))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen" :slant italic))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick" :slant italic))))
+ (gnus-summary-low-unread-face ((t (:italic t :slant italic))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "DarkGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "firebrick"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (header-line ((t (:box (:line-width -1 :style released-button) :background "grey90" :foreground "grey20" :box nil))))
+ (hi-black-b ((t (:bold t :weight bold))))
+ (hi-black-hb ((t (:bold t :family "helv" :weight bold :height 1.67))))
+ (hi-blue ((t (:background "light blue"))))
+ (hi-blue-b ((t (:bold t :foreground "blue" :weight bold))))
+ (hi-green ((t (:background "green"))))
+ (hi-green-b ((t (:bold t :foreground "green" :weight bold))))
+ (hi-pink ((t (:background "pink"))))
+ (hi-red-b ((t (:bold t :foreground "red" :weight bold))))
+ (hi-yellow ((t (:background "yellow"))))
+ (highlight ((t (:background "darkseagreen2"))))
+ (highlight-changes-delete-face ((t (:foreground "red" :underline t))))
+ (highlight-changes-face ((t (:foreground "red"))))
+ (holiday-face ((t (:background "pink"))))
+ (idlwave-help-link-face ((t (:foreground "Blue"))))
+ (idlwave-shell-bp-face ((t (:background "Pink" :foreground "Black"))))
+ (info-header-node ((t (:italic t :bold t :weight bold :slant italic :foreground "brown"))))
+ (info-header-xref ((t (:bold t :weight bold :foreground "magenta4"))))
+ (info-menu-5 ((t (:foreground "red1"))))
+ (info-menu-header ((t (:bold t :family "helv" :weight bold))))
+ (info-node ((t (:italic t :bold t :foreground "brown" :slant italic :weight bold))))
+ (info-xref ((t (:bold t :foreground "magenta4" :weight bold))))
+ (isearch ((t (:background "magenta4" :foreground "lightskyblue1"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise"))))
+ (italic ((t (:italic t :slant italic))))
+ (log-view-file-face ((t (:bold t :background "grey70" :weight bold))))
+ (log-view-message-face ((t (:background "grey85"))))
+ (makefile-space-face ((t (:background "hotpink"))))
+ (menu ((t (:background "grey50" :foreground "white" :box (:line-width -1 :style released-button)))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:foreground "MidnightBlue"))))
+ (message-header-name-face ((t (:foreground "cornflower blue"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4" :slant italic :weight bold))))
+ (message-header-other-face ((t (:foreground "steel blue"))))
+ (message-header-subject-face ((t (:bold t :foreground "navy blue" :weight bold))))
+ (message-header-to-face ((t (:bold t :foreground "MidnightBlue" :weight bold))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (mode-line ((t (:background "grey50" :foreground "white" :box (:line-width -1 :style released-button)))))
+ (modeline ((t (:background "grey50" :foreground "white" :box (:line-width -1 :style released-button)))))
+ (modeline-buffer-id ((t (:bold t :background "grey75" :foreground "black" :box (:line-width -1 :style released-button)))))
+ (modeline-mousable ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button)))))
+ (modeline-mousable-minor-mode ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button)))))
+ (mouse ((t (:background "black"))))
+ (primary-selection ((t (:background "lightgoldenrod2"))))
+ (reb-match-0 ((t (:background "lightblue"))))
+ (reb-match-1 ((t (:background "aquamarine"))))
+ (reb-match-2 ((t (:background "springgreen"))))
+ (reb-match-3 ((t (:background "yellow"))))
+ (region ((t (:background "lightgoldenrod2"))))
+ (scroll-bar ((t (:background "grey75"))))
+ (secondary-selection ((t (:background "yellow"))))
+ (sh-heredoc-face ((t (:foreground "tan"))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (show-tabs-space-face ((t (:foreground "yellow"))))
+ (show-tabs-tab-face ((t (:foreground "red"))))
+ (smerge-base-face ((t (:foreground "red"))))
+ (smerge-markers-face ((t (:background "grey85"))))
+ (smerge-mine-face ((t (:foreground "blue"))))
+ (smerge-other-face ((t (:foreground "darkgreen"))))
+ (speedbar-button-face ((t (:foreground "green4"))))
+ (speedbar-directory-face ((t (:foreground "blue4"))))
+ (speedbar-file-face ((t (:foreground "cyan4"))))
+ (speedbar-highlight-face ((t (:background "green"))))
+ (speedbar-selected-face ((t (:foreground "red" :underline t))))
+ (speedbar-tag-face ((t (:foreground "brown"))))
+ (strokes-char-face ((t (:background "lightgray"))))
+ (term-black ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-blackbg ((t (:stipple nil :background "black" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-blue ((t (:stipple nil :background "white" :foreground "blue" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-bluebg ((t (:stipple nil :background "blue" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-bold ((t (:bold t :stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight bold :width normal :family "adobe-courier"))))
+ (term-cyan ((t (:stipple nil :background "white" :foreground "cyan" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-cyanbg ((t (:stipple nil :background "cyan" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-default-bg ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-default-bg-inv ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-default-fg ((t (:stipple nil :background "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-default-fg-inv ((t (:stipple nil :background "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-green ((t (:stipple nil :background "white" :foreground "green" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-greenbg ((t (:stipple nil :background "green" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-invisible ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-invisible-inv ((t (:stipple nil :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-magenta ((t (:stipple nil :background "white" :foreground "magenta" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-magentabg ((t (:stipple nil :background "magenta" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-red ((t (:stipple nil :background "white" :foreground "red" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-redbg ((t (:stipple nil :background "red" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-underline ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline t :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-white ((t (:stipple nil :background "white" :foreground "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-whitebg ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-yellow ((t (:stipple nil :background "white" :foreground "yellow" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (term-yellowbg ((t (:stipple nil :background "yellow" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :family "adobe-courier"))))
+ (tex-math-face ((t (:foreground "RosyBrown"))))
+ (texinfo-heading-face ((t (:foreground "Blue"))))
+ (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button)))))
+ (tooltip ((t (:background "lightyellow" :foreground "black"))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "helv"))))
+ (vcursor ((t (:background "cyan" :foreground "blue" :underline t))))
+ (vhdl-font-lock-attribute-face ((t (:foreground "Orchid"))))
+ (vhdl-font-lock-directive-face ((t (:foreground "CadetBlue"))))
+ (vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4"))))
+ (vhdl-font-lock-function-face ((t (:foreground "Orchid4"))))
+ (vhdl-font-lock-prompt-face ((t (:bold t :foreground "Red" :weight bold))))
+ (vhdl-font-lock-reserved-words-face ((t (:bold t :foreground "Orange" :weight bold))))
+ (vhdl-font-lock-translate-off-face ((t (:background "LightGray"))))
+ (vhdl-speedbar-architecture-face ((t (:foreground "Blue"))))
+ (vhdl-speedbar-architecture-selected-face ((t (:foreground "Blue" :underline t))))
+ (vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod"))))
+ (vhdl-speedbar-configuration-selected-face ((t (:foreground "DarkGoldenrod" :underline t))))
+ (vhdl-speedbar-entity-face ((t (:foreground "ForestGreen"))))
+ (vhdl-speedbar-entity-selected-face ((t (:foreground "ForestGreen" :underline t))))
+ (vhdl-speedbar-instantiation-face ((t (:foreground "Brown"))))
+ (vhdl-speedbar-instantiation-selected-face ((t (:foreground "Brown" :underline t))))
+ (vhdl-speedbar-package-face ((t (:foreground "Grey50"))))
+ (vhdl-speedbar-package-selected-face ((t (:foreground "Grey50" :underline t))))
+ (viper-minibuffer-emacs-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-minibuffer-insert-face ((t (:background "pink" :foreground "Black"))))
+ (viper-minibuffer-vi-face ((t (:background "grey" :foreground "DarkGreen"))))
+ (viper-replace-overlay-face ((t (:background "darkseagreen2" :foreground "Black"))))
+ (viper-search-face ((t (:background "khaki" :foreground "Black"))))
+ (widget-button-face ((t (:bold t :weight bold))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "gray85"))))
+ (woman-addition-face ((t (:foreground "orange"))))
+ (woman-bold-face ((t (:bold t :foreground "blue" :weight bold))))
+ (woman-italic-face ((t (:italic t :foreground "red" :underline t :slant italic))))
+ (woman-unknown-face ((t (:foreground "brown"))))
+ (zmacs-region ((t (:background "lightgoldenrod2")))))))
+
+(defun color-theme-late-night ()
+ "Color theme by Alex Schroeder, created 2003-08-07.
+This theme is for use late at night, with only little light in the room.
+The goal was to make something as dark and subtle as the text console in
+its default 80x25 state -- dark grey on black."
+ (interactive)
+ (let ((color-theme-is-cumulative t))
+ (color-theme-dark-erc)
+ (color-theme-dark-gnus)
+ ;; (color-theme-dark-diff)
+ ;; (color-theme-dark-eshell)
+ (color-theme-dark-info)
+ (color-theme-dark-font-lock)
+ (color-theme-install
+ '(color-theme-late-night
+ ((background-color . "#000")
+ (background-mode . dark)
+ (background-toolbar-color . "#000")
+ (border-color . "#000")
+ (bottom-toolbar-shadow-color . "#000")
+ (cursor-color . "#888")
+ (foreground-color . "#666")
+ (top-toolbar-shadow-color . "#111"))
+ (default ((t (nil))))
+ (bold ((t (:bold t))))
+ (button ((t (:bold t))))
+ (custom-button-face ((t (:bold t :foreground "#999"))))
+ (fringe ((t (:background "#111" :foreground "#444"))))
+ (header-line ((t (:background "#333" :foreground "#000"))))
+ (highlight ((t (:background "dark slate blue" :foreground "light blue"))))
+ (holiday-face ((t (:background "#000" :foreground "#777"))))
+ (isearch ((t (:foreground "pink" :background "red"))))
+ (isearch-lazy-highlight-face ((t (:foreground "red"))))
+ (italic ((t (:bold t))))
+ (menu ((t (:background "#111" :foreground "#444"))))
+ (minibuffer-prompt ((t (:foreground "555"))))
+ (modeline ((t (:background "#111" :foreground "#444"))))
+ (mode-line-inactive ((t (:background "#000" :foreground "#444"))))
+ (modeline-buffer-id ((t (:background "#000" :foreground "#555"))))
+ (modeline-mousable ((t (:background "#000" :foreground "#555"))))
+ (modeline-mousable-minor-mode ((t (:background "#000" :foreground "#555"))))
+ (region ((t (:background "dark cyan" :foreground "cyan"))))
+ (secondary-selection ((t (:background "Aquamarine" :foreground "SlateBlue"))))
+ (show-paren-match-face ((t (:foreground "white" :background "light slate blue"))))
+ (show-paren-mismatch-face ((t (:foreground "white" :background "red"))))
+ (tool-bar ((t (:background "#111" :foreground "#777"))))
+ (tooltip ((t (:background "#333" :foreground "#777"))))
+ (underline ((t (:bold t))))
+ (variable-pitch ((t (nil))))
+ (widget-button-face ((t (:bold t :foreground "#888"))))
+ (widget-field-face ((t (:bold t :foreground "#999"))))))))
+
+(defun color-theme-clarity ()
+ "White on black color theme by Richard Wellum, created 2003-01-16."
+ (interactive)
+ (color-theme-install
+ '(color-theme-clarity
+ ((background-color . "black")
+ (background-mode . dark)
+ (border-color . "white")
+ (cursor-color . "yellow")
+ (foreground-color . "white")
+ (mouse-color . "white"))
+ ((CUA-mode-global-mark-cursor-color . "cyan")
+ (CUA-mode-normal-cursor-color . "yellow")
+ (CUA-mode-overwrite-cursor-color . "red")
+ (CUA-mode-read-only-cursor-color . "green")
+ (help-highlight-face . underline)
+ (ibuffer-dired-buffer-face . font-lock-function-name-face)
+ (ibuffer-help-buffer-face . font-lock-comment-face)
+ (ibuffer-hidden-buffer-face . font-lock-warning-face)
+ (ibuffer-occur-match-face . font-lock-warning-face)
+ (ibuffer-read-only-buffer-face . font-lock-type-face)
+ (ibuffer-special-buffer-face . font-lock-keyword-face)
+ (ibuffer-title-face . font-lock-type-face)
+ (list-matching-lines-face . bold)
+ (ps-line-number-color . "black")
+ (ps-zebra-color . 0.95)
+ (tags-tag-face . default)
+ (view-highlight-face . highlight)
+ (widget-mouse-face . highlight))
+ (default ((t (nil))))
+ (CUA-global-mark-face ((t (:background "cyan" :foreground "black"))))
+ (CUA-rectangle-face ((t (:background "maroon" :foreground "white"))))
+ (CUA-rectangle-noselect-face ((t (:background "dimgray" :foreground "white"))))
+ (bold ((t (:bold t :weight bold))))
+ (bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (border ((t (:background "white"))))
+ (clearcase-dired-checkedout-face ((t (:foreground "red"))))
+ (comint-highlight-input ((t (:bold t :weight bold))))
+ (comint-highlight-prompt ((t (:foreground "cyan"))))
+ (cursor ((t (:background "yellow"))))
+ (fixed-pitch ((t (:family "courier"))))
+ (flash-paren-face-off ((t (nil))))
+ (flash-paren-face-on ((t (nil))))
+ (flash-paren-face-region ((t (nil))))
+ (font-lock-builtin-face ((t (:foreground "LightSteelBlue"))))
+ (font-lock-comment-face ((t (:foreground "OrangeRed"))))
+ (font-lock-constant-face ((t (:foreground "Aquamarine"))))
+ (font-lock-doc-face ((t (:foreground "LightSalmon"))))
+ (font-lock-function-name-face ((t (:foreground "LightSkyBlue"))))
+ (font-lock-keyword-face ((t (:foreground "Cyan"))))
+ (font-lock-string-face ((t (:foreground "LightSalmon"))))
+ (font-lock-type-face ((t (:foreground "PaleGreen"))))
+ (font-lock-variable-name-face ((t (:foreground "LightGoldenrod"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold))))
+ (fringe ((t (:background "grey10"))))
+ (header-line ((t (:box (:line-width -1 :style released-button) :foreground "grey20" :background "grey90" :box nil))))
+ (highlight ((t (:background "darkolivegreen"))))
+ (ibuffer-deletion-face ((t (:foreground "red"))))
+ (ibuffer-marked-face ((t (:foreground "green"))))
+ (isearch ((t (:background "palevioletred2" :foreground "brown4"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise4"))))
+ (italic ((t (:italic t :slant italic))))
+ (menu ((t (nil))))
+ (mode-line ((t (:foreground "yellow" :background "darkslateblue" :box (:line-width -1 :style released-button)))))
+ (mouse ((t (:background "white"))))
+ (region ((t (:background "blue"))))
+ (scroll-bar ((t (nil))))
+ (secondary-selection ((t (:background "darkslateblue"))))
+ (show-block-face1 ((t (:background "gray10"))))
+ (show-block-face2 ((t (:background "gray15"))))
+ (show-block-face3 ((t (:background "gray20"))))
+ (show-block-face4 ((t (:background "gray25"))))
+ (show-block-face5 ((t (:background "gray30"))))
+ (show-block-face6 ((t (:background "gray35"))))
+ (show-block-face7 ((t (:background "gray40"))))
+ (show-block-face8 ((t (:background "gray45"))))
+ (show-block-face9 ((t (:background "gray50"))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button)))))
+ (tooltip ((t (:background "lightyellow" :foreground "black"))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "helv"))))
+ (widget-button-face ((t (:bold t :weight bold))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "lime green"))))
+ (widget-field-face ((t (:background "dim gray"))))
+ (widget-inactive-face ((t (:foreground "light gray"))))
+ (widget-single-line-field-face ((t (:background "dim gray")))))))
+
+(defun color-theme-andreas ()
+ "Color theme by Andreas Busch, created 2003-02-06."
+ (interactive)
+ (color-theme-install
+ '(color-theme-andreas
+ ((background-mode . light)
+ (background-color . "white")
+ (background-toolbar-color . "#cccccccccccc")
+ (border-color . "#000000000000")
+ (bottom-toolbar-shadow-color . "#7a7a7a7a7a7a")
+ (foreground-color . "black")
+ (top-toolbar-shadow-color . "#f5f5f5f5f5f5"))
+ ((gnus-mouse-face . highlight)
+ (ispell-highlight-face . highlight))
+ (default ((t (nil))))
+ (OrangeRed ((t (nil))))
+ (blue ((t (:foreground "blue"))))
+ (bold ((t (:bold t))))
+ (bold-italic ((t (:italic t :bold t))))
+ (border-glyph ((t (nil))))
+ (calendar-today-face ((t (:underline t))))
+ (color-mode-face-@ ((t (:foreground "orange"))))
+ (color-mode-face-a ((t (:foreground "blue"))))
+ (color-mode-face-b ((t (:foreground "red"))))
+ (color-mode-face-c ((t (:foreground "green3"))))
+ (color-mode-face-d ((t (:background "red" :foreground "white"))))
+ (color-mode-face-e ((t (:background "orange" :foreground "blue"))))
+ (color-mode-face-f ((t (:background "blue" :foreground "yellow"))))
+ (color-mode-face-g ((t (:background "lightblue" :foreground "brown"))))
+ (color-mode-face-h ((t (:background "brown" :foreground "white"))))
+ (custom-button-face ((t (:bold t))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:underline t :foreground "blue"))))
+ (custom-group-tag-face-1 ((t (:underline t :foreground "red"))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "dark green"))))
+ (custom-variable-button-face ((t (:underline t :bold t :background "gray90"))))
+ (custom-variable-tag-face ((t (:underline t :background "gray95" :foreground "blue"))))
+ (diary-face ((t (:foreground "red"))))
+ (display-time-mail-balloon-enhance-face ((t (:background "orange"))))
+ (display-time-mail-balloon-gnus-group-face ((t (:foreground "blue"))))
+ (display-time-time-balloon-face ((t (:foreground "red"))))
+ (emacs-wiki-bad-link-face ((t (:bold t :foreground "red"))))
+ (emacs-wiki-link-face ((t (:bold t :foreground "green"))))
+ (font-lock-comment-face ((t (:foreground "orange1"))))
+ (font-lock-doc-string-face ((t (:foreground "green4"))))
+ (font-lock-function-name-face ((t (:foreground "blue3"))))
+ (font-lock-keyword-face ((t (:foreground "red1"))))
+ (font-lock-preprocessor-face ((t (:foreground "blue3"))))
+ (font-lock-reference-face ((t (:foreground "red3"))))
+ (font-lock-string-face ((t (:foreground "green4"))))
+ (font-lock-type-face ((t (:foreground "#6920ac"))))
+ (font-lock-variable-name-face ((t (:foreground "blue3"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red"))))
+ (gnu-cite-face-3 ((t (nil))))
+ (gnu-cite-face-4 ((t (nil))))
+ (gnus-cite-attribution-face ((t (:underline t))))
+ (gnus-cite-face-1 ((t (:foreground "MidnightBlue"))))
+ (gnus-cite-face-10 ((t (:foreground "medium purple"))))
+ (gnus-cite-face-11 ((t (:foreground "turquoise"))))
+ (gnus-cite-face-2 ((t (:foreground "firebrick"))))
+ (gnus-cite-face-3 ((t (:foreground "dark green"))))
+ (gnus-cite-face-4 ((t (:foreground "OrangeRed"))))
+ (gnus-cite-face-5 ((t (:foreground "dark khaki"))))
+ (gnus-cite-face-6 ((t (:foreground "dark violet"))))
+ (gnus-cite-face-7 ((t (:foreground "SteelBlue4"))))
+ (gnus-cite-face-8 ((t (:foreground "magenta"))))
+ (gnus-cite-face-9 ((t (:foreground "violet"))))
+ (gnus-emphasis-bold ((t (:bold t))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t))))
+ (gnus-emphasis-italic ((t (:italic t))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:underline t :bold t))))
+ (gnus-emphasis-underline-bold-italic ((t (:underline t :italic t :bold t))))
+ (gnus-emphasis-underline-italic ((t (:underline t :italic t))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "DeepPink3"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "DeepPink3"))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "HotPink3"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "HotPink3"))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "magenta4"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "magenta4"))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "DeepPink4"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "DeepPink4"))))
+ (gnus-group-news-1-empty-face ((t (:foreground "ForestGreen"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "ForestGreen"))))
+ (gnus-group-news-2-empty-face ((t (:foreground "CadetBlue4"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "CadetBlue4"))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t))))
+ (gnus-group-news-low-empty-face ((t (:foreground "DarkGreen"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-header-content-face ((t (:italic t :foreground "indianred4"))))
+ (gnus-header-from-face ((t (:bold t :foreground "red3"))))
+ (gnus-header-name-face ((t (:foreground "maroon"))))
+ (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "MidnightBlue"))))
+ (gnus-header-subject-face ((t (:bold t :foreground "red4"))))
+ (gnus-splash-face ((t (:foreground "red"))))
+ (gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "RoyalBlue"))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "DarkGreen"))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "DarkRed"))))
+ (gnus-summary-high-unread-face ((t (:bold t))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "RoyalBlue"))))
+ (gnus-summary-low-read-face ((t (:italic t :foreground "DarkGreen"))))
+ (gnus-summary-low-ticked-face ((t (:italic t :foreground "firebrick"))))
+ (gnus-summary-low-unread-face ((t (:italic t))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "RoyalBlue"))))
+ (gnus-summary-normal-read-face ((t (:foreground "DarkGreen"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "Red"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (gnus-x-face ((t (nil))))
+ (green ((t (:foreground "green"))))
+ (gui-button-face ((t (:background "grey75"))))
+ (gui-element ((t (:background "Gray80"))))
+ (highlight ((t (nil))))
+ (holiday-face ((t (:background "pink"))))
+ (hyper-apropos-documentation ((t (:foreground "darkred"))))
+ (hyper-apropos-heading ((t (:bold t))))
+ (hyper-apropos-hyperlink ((t (:foreground "blue4"))))
+ (hyper-apropos-major-heading ((t (:bold t))))
+ (hyper-apropos-section-heading ((t (:italic t :bold t))))
+ (hyper-apropos-warning ((t (:bold t :foreground "red"))))
+ (info-node ((t (:italic t :bold t))))
+ (info-xref ((t (:bold t))))
+ (isearch ((t (:background "yellow" :foreground "red"))))
+ (italic ((t (:italic t))))
+ (kai-gnus-cite-face-1 ((t (:foreground "LightCyan4"))))
+ (kai-gnus-cite-face-2 ((t (:foreground "LightSkyBlue2"))))
+ (kai-gnus-cite-face-3 ((t (:foreground "DodgerBlue3"))))
+ (kai-gnus-group-mail-face ((t (:foreground "darkslategrey"))))
+ (kai-gnus-group-nonempty-mail-face ((t (:foreground "DarkRed"))))
+ (kai-gnus-group-starred-face ((t (:foreground "grey50"))))
+ (left-margin ((t (nil))))
+ (list-mode-item-selected ((t (:background "gray68"))))
+ (message-cited-text ((t (:italic t))))
+ (message-cited-text-face ((t (:foreground "red"))))
+ (message-header-cc-face ((t (:foreground "MidnightBlue"))))
+ (message-header-contents ((t (:italic t))))
+ (message-header-name-face ((t (:foreground "cornflower blue"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "blue4"))))
+ (message-header-other-face ((t (:foreground "steel blue"))))
+ (message-header-subject-face ((t (:bold t :foreground "navy blue"))))
+ (message-header-to-face ((t (:bold t :foreground "MidnightBlue"))))
+ (message-header-xheader-face ((t (:foreground "blue"))))
+ (message-headers ((t (:bold t))))
+ (message-highlighted-header-contents ((t (:italic t :bold t))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "brown"))))
+ (modeline ((t (:background "Gray75" :foreground "Black"))))
+ (modeline-buffer-id ((t (:background "Gray75" :foreground "blue4"))))
+ (modeline-mousable ((t (:background "Gray75" :foreground "firebrick"))))
+ (modeline-mousable-minor-mode ((t (:background "Gray75" :foreground "green4"))))
+ (paren-blink-off ((t (:foreground "gray80"))))
+ (paren-match ((t (:background "red" :foreground "white"))))
+ (paren-mismatch ((t (:background "DeepPink"))))
+ (pointer ((t (:foreground "blue"))))
+ (primary-selection ((t (:background "gray65"))))
+ (red ((t (:foreground "red"))))
+ (region ((t (:background "gray75"))))
+ (right-margin ((t (nil))))
+ (secondary-selection ((t (:background "paleturquoise"))))
+ (text-cursor ((t (:background "red" :foreground "LightYellow1"))))
+ (toolbar ((t (:background "Gray80"))))
+ (underline ((t (:underline t))))
+ (vertical-divider ((t (:background "Gray80"))))
+ (widget-button-face ((t (:bold t))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (x-face ((t (:background "white"))))
+ (yellow ((t (:foreground "yellow"))))
+ (zmacs-region ((t (:background "gray65" :foreground "yellow")))))))
+
+(defun color-theme-charcoal-black ()
+ "Color theme by Lars Chr. Hausmann, created 2003-03-24."
+ (interactive)
+ (color-theme-install
+ '(color-theme-charcoal-black
+ ((background-color . "Grey15")
+ (background-mode . dark)
+ (border-color . "Grey")
+ (cursor-color . "Grey")
+ (foreground-color . "Grey")
+ (mouse-color . "Grey"))
+ ((display-time-mail-face . mode-line)
+ (gnus-article-button-face . bold)
+ (gnus-article-mouse-face . highlight)
+ (gnus-mouse-face . highlight)
+ (gnus-server-agent-face . gnus-server-agent-face)
+ (gnus-server-closed-face . gnus-server-closed-face)
+ (gnus-server-denied-face . gnus-server-denied-face)
+ (gnus-server-offline-face . gnus-server-offline-face)
+ (gnus-server-opened-face . gnus-server-opened-face)
+ (gnus-signature-face . gnus-signature-face)
+ (gnus-summary-selected-face . gnus-summary-selected-face)
+ (help-highlight-face . underline)
+ (list-matching-lines-face . bold)
+ (mime-button-face . bold)
+ (mime-button-mouse-face . highlight)
+ (sgml-set-face . t)
+ (tags-tag-face . default)
+ (view-highlight-face . highlight)
+ (widget-mouse-face . highlight))
+ (default ((t (:stipple nil :background "Grey15" :foreground "Grey" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 87 :width semi-condensed :family "misc-fixed"))))
+ (Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728))))
+ (Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44))))
+ (Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2))))
+ (Info-title-4-face ((t (:bold t :family "helv" :weight bold))))
+ (bg:erc-color-face0 ((t (nil))))
+ (bg:erc-color-face1 ((t (nil))))
+ (bg:erc-color-face10 ((t (nil))))
+ (bg:erc-color-face11 ((t (nil))))
+ (bg:erc-color-face12 ((t (nil))))
+ (bg:erc-color-face13 ((t (nil))))
+ (bg:erc-color-face14 ((t (nil))))
+ (bg:erc-color-face15 ((t (nil))))
+ (bg:erc-color-face2 ((t (nil))))
+ (bg:erc-color-face3 ((t (nil))))
+ (bg:erc-color-face4 ((t (nil))))
+ (bg:erc-color-face5 ((t (nil))))
+ (bg:erc-color-face6 ((t (nil))))
+ (bg:erc-color-face7 ((t (nil))))
+ (bg:erc-color-face8 ((t (nil))))
+ (bg:erc-color-face9 ((t (nil))))
+ (bold ((t (:bold t :weight bold))))
+ (bold-italic ((t (:bold t :foreground "beige" :weight bold))))
+ (border ((t (:background "Grey"))))
+ (calendar-today-face ((t (:underline t))))
+ (comint-highlight-input ((t (:bold t :weight bold))))
+ (comint-highlight-prompt ((t (:foreground "cyan"))))
+ (cperl-array-face ((t (:bold t :foreground "light salmon" :weight bold))))
+ (cperl-hash-face ((t (:italic t :bold t :foreground "beige" :slant italic :weight bold))))
+ (cperl-nonoverridable-face ((t (:foreground "aquamarine"))))
+ (cursor ((t (:background "Grey"))))
+ (custom-button-face ((t (:foreground "gainsboro"))))
+ (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style pressed-button)))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-comment-face ((t (:background "dim gray"))))
+ (custom-comment-tag-face ((t (:foreground "gray80"))))
+ (custom-documentation-face ((t (:foreground "light blue"))))
+ (custom-face-tag-face ((t (:underline t))))
+ (custom-group-tag-face ((t (:bold t :foreground "pale turquoise" :weight bold))))
+ (custom-group-tag-face-1 ((t (:foreground "pale turquoise" :underline t))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "light salmon"))))
+ (custom-variable-button-face ((t (:bold t :underline t :weight bold))))
+ (custom-variable-tag-face ((t (:bold t :foreground "turquoise" :weight bold))))
+ (diary-face ((t (:foreground "red"))))
+ (dired-face-directory ((t (:bold t :foreground "sky blue" :weight bold))))
+ (dired-face-executable ((t (:foreground "green yellow"))))
+ (dired-face-flagged ((t (:foreground "tomato"))))
+ (dired-face-marked ((t (:foreground "light salmon"))))
+ (dired-face-permissions ((t (:foreground "aquamarine"))))
+ (erc-action-face ((t (nil))))
+ (erc-bold-face ((t (:bold t :weight bold))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (:foreground "pale green"))))
+ (erc-error-face ((t (:bold t :foreground "IndianRed" :weight bold))))
+ (erc-highlight-face ((t (:bold t :foreground "pale green" :weight bold))))
+ (erc-input-face ((t (:foreground "light blue"))))
+ (erc-inverse-face ((t (:background "steel blue"))))
+ (erc-notice-face ((t (:foreground "light salmon"))))
+ (erc-pal-face ((t (:foreground "pale green"))))
+ (erc-prompt-face ((t (:bold t :foreground "light blue" :weight bold))))
+ (eshell-ls-archive-face ((t (:bold t :foreground "medium purple" :weight bold))))
+ (eshell-ls-backup-face ((t (:foreground "dim gray"))))
+ (eshell-ls-clutter-face ((t (:foreground "dim gray"))))
+ (eshell-ls-directory-face ((t (:bold t :foreground "medium slate blue" :weight bold))))
+ (eshell-ls-executable-face ((t (:bold t :foreground "aquamarine" :weight bold))))
+ (eshell-ls-missing-face ((t (:foreground "black"))))
+ (eshell-ls-picture-face ((t (:foreground "violet"))))
+ (eshell-ls-product-face ((t (:foreground "light steel blue"))))
+ (eshell-ls-readonly-face ((t (:foreground "aquamarine"))))
+ (eshell-ls-special-face ((t (:foreground "gold"))))
+ (eshell-ls-symlink-face ((t (:foreground "white"))))
+ (eshell-ls-unreadable-face ((t (:foreground "dim gray"))))
+ (eshell-prompt-face ((t (:bold t :foreground "light sky blue" :weight bold))))
+ (excerpt ((t (:italic t :slant italic))))
+ (fg:erc-color-face0 ((t (:foreground "white"))))
+ (fg:erc-color-face1 ((t (:foreground "beige"))))
+ (fg:erc-color-face10 ((t (:foreground "pale goldenrod"))))
+ (fg:erc-color-face11 ((t (:foreground "light goldenrod yellow"))))
+ (fg:erc-color-face12 ((t (:foreground "light yellow"))))
+ (fg:erc-color-face13 ((t (:foreground "yellow"))))
+ (fg:erc-color-face14 ((t (:foreground "light goldenrod"))))
+ (fg:erc-color-face15 ((t (:foreground "lime green"))))
+ (fg:erc-color-face2 ((t (:foreground "lemon chiffon"))))
+ (fg:erc-color-face3 ((t (:foreground "light cyan"))))
+ (fg:erc-color-face4 ((t (:foreground "powder blue"))))
+ (fg:erc-color-face5 ((t (:foreground "sky blue"))))
+ (fg:erc-color-face6 ((t (:foreground "dark sea green"))))
+ (fg:erc-color-face7 ((t (:foreground "pale green"))))
+ (fg:erc-color-face8 ((t (:foreground "medium spring green"))))
+ (fg:erc-color-face9 ((t (:foreground "khaki"))))
+ (fixed ((t (:bold t :weight bold))))
+ (fixed-pitch ((t (:family "courier"))))
+ (flyspell-duplicate-face ((t (:bold t :foreground "Gold3" :underline t :weight bold))))
+ (flyspell-incorrect-face ((t (:bold t :foreground "OrangeRed" :underline t :weight bold))))
+ (font-lock-builtin-face ((t (:foreground "aquamarine"))))
+ (font-lock-comment-face ((t (:foreground "light blue"))))
+ (font-lock-constant-face ((t (:foreground "pale green"))))
+ (font-lock-doc-face ((t (:foreground "light sky blue"))))
+ (font-lock-doc-string-face ((t (:foreground "sky blue"))))
+ (font-lock-function-name-face ((t (:bold t :foreground "aquamarine" :weight bold))))
+ (font-lock-keyword-face ((t (:bold t :foreground "pale turquoise" :weight bold))))
+ (font-lock-reference-face ((t (:foreground "pale green"))))
+ (font-lock-string-face ((t (:foreground "light sky blue"))))
+ (font-lock-type-face ((t (:bold t :foreground "sky blue" :weight bold))))
+ (font-lock-variable-name-face ((t (:bold t :foreground "turquoise" :weight bold))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red" :weight bold))))
+ (fringe ((t (:background "Grey15"))))
+ (gnus-cite-face-1 ((t (:foreground "LightSalmon"))))
+ (gnus-cite-face-2 ((t (:foreground "Khaki"))))
+ (gnus-cite-face-3 ((t (:foreground "Coral"))))
+ (gnus-cite-face-4 ((t (:foreground "yellow green"))))
+ (gnus-cite-face-5 ((t (:foreground "dark khaki"))))
+ (gnus-cite-face-6 ((t (:foreground "bisque"))))
+ (gnus-cite-face-7 ((t (:foreground "peru"))))
+ (gnus-cite-face-8 ((t (:foreground "light coral"))))
+ (gnus-cite-face-9 ((t (:foreground "plum"))))
+ (gnus-emphasis-bold ((t (:bold t :weight bold))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
+ (gnus-emphasis-italic ((t (:italic t :slant italic))))
+ (gnus-emphasis-strikethru ((t (nil))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold))))
+ (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold))))
+ (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic))))
+ (gnus-group-mail-1-empty-face ((t (:foreground "White"))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "White" :weight bold))))
+ (gnus-group-mail-2-empty-face ((t (:foreground "light cyan"))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "light cyan" :weight bold))))
+ (gnus-group-mail-3-empty-face ((t (:foreground "LightBlue"))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "LightBlue" :weight bold))))
+ (gnus-group-mail-low-empty-face ((t (:foreground "Aquamarine"))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "Aquamarine" :weight bold))))
+ (gnus-group-news-1-empty-face ((t (:foreground "White"))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "White" :weight bold))))
+ (gnus-group-news-2-empty-face ((t (:foreground "light cyan"))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "light cyan" :weight bold))))
+ (gnus-group-news-3-empty-face ((t (:foreground "LightBlue"))))
+ (gnus-group-news-3-face ((t (:bold t :foreground "LightBlue" :weight bold))))
+ (gnus-group-news-4-empty-face ((t (:foreground "Aquamarine"))))
+ (gnus-group-news-4-face ((t (:bold t :foreground "Aquamarine" :weight bold))))
+ (gnus-group-news-5-empty-face ((t (:foreground "MediumAquamarine"))))
+ (gnus-group-news-5-face ((t (:bold t :foreground "MediumAquamarine" :weight bold))))
+ (gnus-group-news-6-empty-face ((t (:foreground "MediumAquamarine"))))
+ (gnus-group-news-6-face ((t (:bold t :foreground "MediumAquamarine" :weight bold))))
+ (gnus-group-news-low-empty-face ((t (:foreground "MediumAquamarine"))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "MediumAquamarine" :weight bold))))
+ (gnus-header-content-face ((t (:foreground "LightSkyBlue3"))))
+ (gnus-header-from-face ((t (:bold t :foreground "light cyan" :weight bold))))
+ (gnus-header-name-face ((t (:bold t :foreground "LightBlue" :weight bold))))
+ (gnus-header-newsgroups-face ((t (:italic t :bold t :foreground "MediumAquamarine" :slant italic :weight bold))))
+ (gnus-header-subject-face ((t (:bold t :foreground "light cyan" :weight bold))))
+ (gnus-server-agent-face ((t (:bold t :foreground "PaleTurquoise" :weight bold))))
+ (gnus-server-closed-face ((t (:italic t :foreground "Light Steel Blue" :slant italic))))
+ (gnus-server-denied-face ((t (:bold t :foreground "Pink" :weight bold))))
+ (gnus-server-offline-face ((t (:bold t :foreground "Yellow" :weight bold))))
+ (gnus-server-opened-face ((t (:bold t :foreground "Green1" :weight bold))))
+ (gnus-signature-face ((t (:foreground "Grey"))))
+ (gnus-splash-face ((t (:foreground "ForestGreen"))))
+ (gnus-summary-cancelled-face ((t (:background "Black" :foreground "Yellow"))))
+ (gnus-summary-high-ancient-face ((t (:bold t :foreground "MediumAquamarine" :weight bold))))
+ (gnus-summary-high-read-face ((t (:bold t :foreground "Aquamarine" :weight bold))))
+ (gnus-summary-high-ticked-face ((t (:bold t :foreground "LightSalmon" :weight bold))))
+ (gnus-summary-high-unread-face ((t (:italic t :bold t :foreground "beige" :slant italic :weight bold))))
+ (gnus-summary-low-ancient-face ((t (:italic t :foreground "DimGray" :slant italic))))
+ (gnus-summary-low-read-face ((t (:foreground "slate gray"))))
+ (gnus-summary-low-ticked-face ((t (:foreground "Pink"))))
+ (gnus-summary-low-unread-face ((t (:foreground "LightGray"))))
+ (gnus-summary-normal-ancient-face ((t (:foreground "MediumAquamarine"))))
+ (gnus-summary-normal-read-face ((t (:foreground "Aquamarine"))))
+ (gnus-summary-normal-ticked-face ((t (:foreground "LightSalmon"))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:underline t))))
+ (header-line ((t (:box (:line-width -1 :style released-button) :background "grey20" :foreground "grey90" :box nil))))
+ (highlight ((t (:background "dark slate blue" :foreground "light blue"))))
+ (highline-face ((t (:background "DeepSkyBlue4"))))
+ (holiday-face ((t (:background "pink"))))
+ (info-header-node ((t (:bold t :weight bold))))
+ (info-header-xref ((t (:bold t :weight bold :foreground "sky blue"))))
+ (info-menu-5 ((t (:underline t))))
+ (info-menu-header ((t (:bold t :family "helv" :weight bold))))
+ (info-node ((t (:bold t :weight bold))))
+ (info-xref ((t (:bold t :foreground "sky blue" :weight bold))))
+ (isearch ((t (:background "slate blue"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise4"))))
+ (italic ((t (:foreground "sky blue"))))
+ (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan"))))
+ (jde-bug-breakpoint-marker ((t (:background "yellow" :foreground "red"))))
+ (jde-java-font-lock-api-face ((t (:foreground "light goldenrod"))))
+ (jde-java-font-lock-bold-face ((t (:bold t :weight bold))))
+ (jde-java-font-lock-code-face ((t (nil))))
+ (jde-java-font-lock-constant-face ((t (:foreground "Aquamarine"))))
+ (jde-java-font-lock-doc-tag-face ((t (:foreground "light coral"))))
+ (jde-java-font-lock-italic-face ((t (:italic t :slant italic))))
+ (jde-java-font-lock-link-face ((t (:foreground "blue" :underline t :slant normal))))
+ (jde-java-font-lock-modifier-face ((t (:foreground "LightSteelBlue"))))
+ (jde-java-font-lock-number-face ((t (:foreground "LightSalmon"))))
+ (jde-java-font-lock-package-face ((t (:foreground "steelblue1"))))
+ (jde-java-font-lock-pre-face ((t (nil))))
+ (jde-java-font-lock-underline-face ((t (:underline t))))
+ (makefile-space-face ((t (:background "hotpink"))))
+ (menu ((t (:background "MidnightBlue" :foreground "Grey"))))
+ (message-cited-text-face ((t (:foreground "LightSalmon"))))
+ (message-header-cc-face ((t (:foreground "light cyan"))))
+ (message-header-name-face ((t (:foreground "LightBlue"))))
+ (message-header-newsgroups-face ((t (:italic t :bold t :foreground "MediumAquamarine" :slant italic :weight bold))))
+ (message-header-other-face ((t (:foreground "MediumAquamarine"))))
+ (message-header-subject-face ((t (:bold t :foreground "light cyan" :weight bold))))
+ (message-header-to-face ((t (:bold t :foreground "light cyan" :weight bold))))
+ (message-header-xheader-face ((t (:foreground "MediumAquamarine"))))
+ (message-mml-face ((t (:foreground "ForestGreen"))))
+ (message-separator-face ((t (:foreground "chocolate"))))
+ (mode-line ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style released-button)))))
+ (mouse ((t (:background "Grey"))))
+ (region ((t (:background "DarkSlateBlue"))))
+ (scroll-bar ((t (:background "grey75"))))
+ (secondary-selection ((t (:background "steel blue"))))
+ (semantic-dirty-token-face ((t (:background "gray10"))))
+ (semantic-unmatched-syntax-face ((t (:underline "red"))))
+ (show-paren-match-face ((t (:background "light slate blue" :foreground "white"))))
+ (show-paren-mismatch-face ((t (:background "red" :foreground "white"))))
+ (speedbar-button-face ((t (:foreground "seashell2"))))
+ (speedbar-directory-face ((t (:foreground "seashell3"))))
+ (speedbar-file-face ((t (:foreground "seashell4"))))
+ (speedbar-highlight-face ((t (:background "dark slate blue" :foreground "wheat"))))
+ (speedbar-selected-face ((t (:foreground "seashell1" :underline t))))
+ (speedbar-separator-face ((t (:background "blue" :foreground "white" :overline "gray"))))
+ (speedbar-tag-face ((t (:foreground "antique white"))))
+ (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button)))))
+ (tooltip ((t (:background "lightyellow" :foreground "black"))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "helv"))))
+ (widget-button-face ((t (:bold t :weight bold))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "light blue"))))
+ (widget-field-face ((t (:background "RoyalBlue4" :foreground "wheat"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "slate blue" :foreground "wheat"))))
+ (woman-bold-face ((t (:bold t :foreground "sky blue" :weight bold))))
+ (woman-italic-face ((t (:foreground "deep sky blue"))))
+ (woman-unknown-face ((t (:foreground "LightSalmon"))))
+ (zmacs-region ((t (:background "DarkSlateBlue")))))))
+
+(defun color-theme-vim-colors ()
+ "Color theme by Michael Soulier, created 2003-03-26."
+ (interactive)
+ (color-theme-install
+ '(color-theme-vim-colors
+ ((background-color . "#ffffff")
+ (background-mode . light)
+ (border-color . "black")
+ (cursor-color . "#000000")
+ (foreground-color . "#000000")
+ (mouse-color . "#000000"))
+ ((Man-overstrike-face . bold)
+ (Man-underline-face . underline)
+ (apropos-keybinding-face . underline)
+ (apropos-label-face . italic)
+ (apropos-match-face . secondary-selection)
+ (apropos-property-face . bold-italic)
+ (apropos-symbol-face . bold)
+ (cperl-here-face . font-lock-string-face)
+ (cperl-invalid-face quote underline)
+ (cperl-pod-face . font-lock-comment-face)
+ (cperl-pod-head-face . font-lock-variable-name-face)
+ (help-highlight-face . underline)
+ (ispell-highlight-face . highlight)
+ (list-matching-lines-face . bold)
+ (rpm-spec-dir-face . rpm-spec-dir-face)
+ (rpm-spec-doc-face . rpm-spec-doc-face)
+ (rpm-spec-ghost-face . rpm-spec-ghost-face)
+ (rpm-spec-macro-face . rpm-spec-macro-face)
+ (rpm-spec-package-face . rpm-spec-package-face)
+ (rpm-spec-tag-face . rpm-spec-tag-face)
+ (tags-tag-face . default)
+ (view-highlight-face . highlight)
+ (widget-mouse-face . highlight))
+ (default ((t (:background "#ffffff" :foreground "#000000"))))
+ (Info-title-1-face ((t (nil))))
+ (Info-title-2-face ((t (nil))))
+ (Info-title-3-face ((t (nil))))
+ (Info-title-4-face ((t (:bold (bold extra-bold ultra-bold)))))
+ (bold ((t (:bold (bold extra-bold ultra-bold)))))
+ (bold-italic ((t (:italic (italic oblique) :bold (bold extra-bold ultra-bold)))))
+ (border ((t (:background "black"))))
+ (comint-highlight-input ((t (:bold (bold extra-bold ultra-bold)))))
+ (comint-highlight-prompt ((t (:foreground "dark blue"))))
+ (cperl-array-face ((t (:foreground "brown"))))
+ (cperl-hash-face ((t (:foreground "red"))))
+ (cperl-nonoverridable-face ((t (:foreground "#008b8b"))))
+ (cursor ((t (:background "#000000"))))
+ (fixed-pitch ((t (nil))))
+ (font-lock-builtin-face ((t (:foreground "purple"))))
+ (font-lock-comment-face ((t (:foreground "blue"))))
+ (font-lock-constant-face ((t (:foreground "green4"))))
+ (font-lock-doc-face ((t (:background "#f2f2f2"))))
+ (font-lock-function-name-face ((t (:foreground "#008b8b"))))
+ (font-lock-keyword-face ((t (:bold (bold extra-bold ultra-bold) :foreground "#a52a2a"))))
+ (font-lock-string-face ((t (:background "#f2f2f2" :foreground "#ff00ff"))))
+ (font-lock-type-face ((t (:foreground "ForestGreen"))))
+ (font-lock-variable-name-face ((t (:foreground "#008b8b"))))
+ (font-lock-warning-face ((t (:bold (bold extra-bold ultra-bold) :foreground "Red"))))
+ (fringe ((t (:background "#e5e5e5"))))
+ (header-line ((t (:background "grey90" :foreground "grey20"))))
+ (highlight ((t (:background "darkseagreen2"))))
+ (info-header-node ((t (nil))))
+ (info-header-xref ((t (nil))))
+ (info-menu-5 ((t (:foreground "red1"))))
+ (info-menu-header ((t (:bold (bold extra-bold ultra-bold)))))
+ (info-node ((t (:italic (italic oblique) :bold (bold extra-bold ultra-bold) :foreground "brown"))))
+ (info-xref ((t (:bold (bold extra-bold ultra-bold) :foreground "magenta4"))))
+ (isearch ((t (:background "magenta4" :foreground "lightskyblue1"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise"))))
+ (italic ((t (:italic (italic oblique)))))
+ (menu ((t (nil))))
+ (mode-line ((t (:background "grey75" :foreground "black"))))
+ (mouse ((t (:background "#000000"))))
+ (region ((t (:background "lightgoldenrod2"))))
+ (rpm-spec-dir-face ((t (:foreground "green"))))
+ (rpm-spec-doc-face ((t (:foreground "magenta"))))
+ (rpm-spec-ghost-face ((t (:foreground "red"))))
+ (rpm-spec-macro-face ((t (:foreground "purple"))))
+ (rpm-spec-package-face ((t (:foreground "red"))))
+ (rpm-spec-tag-face ((t (:foreground "blue"))))
+ (scroll-bar ((t (:background "grey75" :foreground "#000000"))))
+ (secondary-selection ((t (:background "yellow"))))
+ (sh-heredoc-face ((t (:foreground "tan"))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (tool-bar ((t (:background "grey75" :foreground "black"))))
+ (tooltip ((t (:background "lightyellow" :foreground "black"))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (nil))))
+ (widget-button-face ((t (:bold (bold extra-bold ultra-bold)))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "gray85")))))))
+
+(defun color-theme-calm-forest ()
+ "Color theme by Artur Hefczyc, created 2003-04-18."
+ (interactive)
+ (color-theme-install
+ '(color-theme-calm-forest
+ ((background-color . "gray12")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "orange")
+ (foreground-color . "green")
+ (mouse-color . "yellow"))
+ ((help-highlight-face . underline)
+ (list-matching-lines-face . bold)
+ (senator-eldoc-use-color . t)
+ (view-highlight-face . highlight)
+ (widget-mouse-face . highlight))
+ (default ((t (:stipple nil :background "gray12" :foreground "green" :inverse-video nil :box nil
+:strike-through nil :overline nil :underline nil :slant normal :weight normal :height 98 :width
+normal :family "outline-courier new"))))
+ (Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728))))
+ (Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44))))
+ (Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2))))
+ (Info-title-4-face ((t (:bold t :family "helv" :weight bold))))
+ (bold ((t (:bold t :weight bold))))
+ (bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (border ((t (:background "black"))))
+ (comint-highlight-input ((t (:bold t :weight bold))))
+ (comint-highlight-prompt ((t (:foreground "cyan"))))
+ (cparen-around-andor-face ((t (:bold t :foreground "maroon" :weight bold))))
+ (cparen-around-begin-face ((t (:foreground "maroon"))))
+ (cparen-around-conditional-face ((t (:bold t :foreground "RoyalBlue" :weight bold))))
+ (cparen-around-define-face ((t (:bold t :foreground "Blue" :weight bold))))
+ (cparen-around-lambda-face ((t (:foreground "LightSeaGreen"))))
+ (cparen-around-letdo-face ((t (:bold t :foreground "LightSeaGreen" :weight bold))))
+ (cparen-around-quote-face ((t (:foreground "SaddleBrown"))))
+ (cparen-around-set!-face ((t (:foreground "OrangeRed"))))
+ (cparen-around-syntax-rules-face ((t (:foreground "Magenta"))))
+ (cparen-around-vector-face ((t (:foreground "chocolate"))))
+ (cparen-binding-face ((t (:foreground "ForestGreen"))))
+ (cparen-binding-list-face ((t (:bold t :foreground "ForestGreen" :weight bold))))
+ (cparen-conditional-clause-face ((t (:foreground "RoyalBlue"))))
+ (cparen-normal-paren-face ((t (:foreground "grey50"))))
+ (cursor ((t (:background "orange"))))
+ (custom-button-face ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style
+released-button)))))
+ (custom-button-pressed-face ((t (:background "lightgrey" :foreground "black" :box (:line-width
+2 :style pressed-button)))))
+ (custom-changed-face ((t (:background "blue" :foreground "white"))))
+ (custom-comment-face ((t (:background "dim gray"))))
+ (custom-comment-tag-face ((t (:foreground "gray80"))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.2))))
+ (custom-group-tag-face ((t (:bold t :foreground "light blue" :weight bold :height 1.2))))
+ (custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "pink" :weight bold :height
+1.2))))
+ (custom-invalid-face ((t (:background "red" :foreground "yellow"))))
+ (custom-modified-face ((t (:background "blue" :foreground "white"))))
+ (custom-rogue-face ((t (:background "black" :foreground "pink"))))
+ (custom-saved-face ((t (:underline t))))
+ (custom-set-face ((t (:background "white" :foreground "blue"))))
+ (custom-state-face ((t (:foreground "lime green"))))
+ (custom-variable-button-face ((t (:bold t :underline t :weight bold))))
+ (custom-variable-tag-face ((t (:bold t :family "helv" :foreground "light blue" :weight bold
+:height 1.2))))
+ (eieio-custom-slot-tag-face ((t (:foreground "light blue"))))
+ (extra-whitespace-face ((t (:background "pale green"))))
+ (fixed-pitch ((t (:family "courier"))))
+ (font-latex-bold-face ((t (:bold t :foreground "OliveDrab" :weight bold))))
+ (font-latex-italic-face ((t (:italic t :foreground "OliveDrab" :slant italic))))
+ (font-latex-math-face ((t (:foreground "burlywood"))))
+ (font-latex-sedate-face ((t (:foreground "LightGray"))))
+ (font-latex-string-face ((t (:foreground "RosyBrown"))))
+ (font-latex-warning-face ((t (:bold t :foreground "Red" :weight bold))))
+ (font-lock-builtin-face ((t (:foreground "LightSteelBlue"))))
+ (font-lock-comment-face ((t (:foreground "chocolate1"))))
+ (font-lock-constant-face ((t (:foreground "Aquamarine"))))
+ (font-lock-doc-face ((t (:foreground "LightSalmon"))))
+ (font-lock-function-name-face ((t (:foreground "LightSkyBlue"))))
+ (font-lock-keyword-face ((t (:foreground "Cyan"))))
+ (font-lock-string-face ((t (:foreground "LightSalmon"))))
+ (font-lock-type-face ((t (:foreground "PaleGreen"))))
+ (font-lock-variable-name-face ((t (:foreground "LightGoldenrod"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold))))
+ (fringe ((t (:background "grey10"))))
+ (header-line ((t (:box (:line-width -1 :style released-button) :background "grey20" :foreground
+"grey90" :box nil))))
+ (highlight ((t (:background "darkolivegreen"))))
+ (info-header-node ((t (:italic t :bold t :weight bold :slant italic :foreground "white"))))
+ (info-header-xref ((t (:bold t :weight bold :foreground "cyan"))))
+ (info-menu-5 ((t (:foreground "red1"))))
+ (info-menu-header ((t (:bold t :family "helv" :weight bold))))
+ (info-node ((t (:italic t :bold t :foreground "white" :slant italic :weight bold))))
+ (info-xref ((t (:bold t :foreground "cyan" :weight bold))))
+ (isearch ((t (:background "palevioletred2" :foreground "brown4"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise4"))))
+ (italic ((t (:italic t :slant italic))))
+ (jde-bug-breakpoint-cursor ((t (:background "brown" :foreground "cyan"))))
+ (jde-db-active-breakpoint-face ((t (:background "red" :foreground "black"))))
+ (jde-db-requested-breakpoint-face ((t (:background "yellow" :foreground "black"))))
+ (jde-db-spec-breakpoint-face ((t (:background "green" :foreground "black"))))
+ (jde-java-font-lock-api-face ((t (:foreground "light goldenrod"))))
+ (jde-java-font-lock-bold-face ((t (:bold t :weight bold))))
+ (jde-java-font-lock-code-face ((t (nil))))
+ (jde-java-font-lock-constant-face ((t (:foreground "Aquamarine"))))
+ (jde-java-font-lock-doc-tag-face ((t (:foreground "light coral"))))
+ (jde-java-font-lock-italic-face ((t (:italic t :slant italic))))
+ (jde-java-font-lock-link-face ((t (:foreground "blue" :underline t :slant normal))))
+ (jde-java-font-lock-modifier-face ((t (:foreground "LightSteelBlue"))))
+ (jde-java-font-lock-number-face ((t (:foreground "LightSalmon"))))
+ (jde-java-font-lock-operator-face ((t (:foreground "medium blue"))))
+ (jde-java-font-lock-package-face ((t (:foreground "steelblue1"))))
+ (jde-java-font-lock-pre-face ((t (nil))))
+ (jde-java-font-lock-underline-face ((t (:underline t))))
+ (menu ((t (nil))))
+ (mode-line ((t (:background "grey75" :foreground "black" :box (:line-width -1 :style
+released-button)))))
+ (mouse ((t (:background "yellow"))))
+ (region ((t (:background "blue3"))))
+ (scroll-bar ((t (nil))))
+ (secondary-selection ((t (:background "SkyBlue4"))))
+ (semantic-dirty-token-face ((t (:background "gray10"))))
+ (semantic-unmatched-syntax-face ((t (:underline "red"))))
+ (senator-intangible-face ((t (:foreground "gray75"))))
+ (senator-momentary-highlight-face ((t (:background "gray30"))))
+ (senator-read-only-face ((t (:background "#664444"))))
+ (show-paren-match-face ((t (:background "turquoise"))))
+ (show-paren-mismatch-face ((t (:background "purple" :foreground "white"))))
+ (speedbar-button-face ((t (:foreground "green3"))))
+ (speedbar-directory-face ((t (:foreground "light blue"))))
+ (speedbar-file-face ((t (:foreground "cyan"))))
+ (speedbar-highlight-face ((t (:background "sea green"))))
+ (speedbar-selected-face ((t (:foreground "red" :underline t))))
+ (speedbar-separator-face ((t (:background "blue" :foreground "white" :overline "gray"))))
+ (speedbar-tag-face ((t (:foreground "yellow"))))
+ (tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style
+released-button)))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "helv"))))
+ (widget-button-face ((t (:bold t :weight bold))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "lime green"))))
+ (widget-field-face ((t (:background "dim gray"))))
+ (widget-inactive-face ((t (:foreground "light gray"))))
+ (widget-single-line-field-face ((t (:background "dim gray")))))))
+
+(defun color-theme-lawrence ()
+ "Color theme by lawrence mitchell <wence@gmx.li>.
+Mainly shades of green.
+Contains faces for erc, gnus, most of jde."
+ (interactive)
+ (color-theme-install
+ '(color-theme-lawrence
+ ((background-color . "black")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "green")
+ (foreground-color . "#00CC00")
+ (mouse-color . "black"))
+ ((erc-button-face . bold)
+ (erc-button-mouse-face . highlight)
+ (gnus-article-button-face . bold)
+ (gnus-article-mouse-face . highlight)
+ (gnus-cite-attribution-face . gnus-cite-attribution-face)
+ (gnus-mouse-face . highlight)
+ (gnus-server-agent-face . gnus-server-agent-face)
+ (gnus-server-closed-face . gnus-server-closed-face)
+ (gnus-server-denied-face . gnus-server-denied-face)
+ (gnus-server-offline-face . gnus-server-offline-face)
+ (gnus-server-opened-face . gnus-server-opened-face)
+ (gnus-signature-face . gnus-signature-face)
+ (gnus-summary-selected-face . gnus-summary-selected-face)
+ (gnus-treat-display-face . head)
+ (gnus-treat-display-xface . head)
+ (list-matching-lines-buffer-name-face . underline)
+ (list-matching-lines-face . bold)
+ (paren-match-face . paren-face-match)
+ (paren-mismatch-face . paren-face-mismatch)
+ (paren-no-match-face . paren-face-no-match)
+ (sgml-set-face . t)
+ (tags-tag-face . default)
+ (view-highlight-face . highlight)
+ (widget-mouse-face . highlight))
+ (default ((t (nil))))
+ (Buffer-menu-buffer-face ((t (:bold t :weight bold))))
+ (bg:erc-color-face0 ((t (:background "White"))))
+ (bg:erc-color-face1 ((t (:background "black"))))
+ (bg:erc-color-face10 ((t (:background "lightblue1"))))
+ (bg:erc-color-face11 ((t (:background "cyan"))))
+ (bg:erc-color-face12 ((t (:background "blue"))))
+ (bg:erc-color-face13 ((t (:background "deeppink"))))
+ (bg:erc-color-face14 ((t (:background "gray50"))))
+ (bg:erc-color-face15 ((t (:background "gray90"))))
+ (bg:erc-color-face2 ((t (:background "blue4"))))
+ (bg:erc-color-face3 ((t (:background "green4"))))
+ (bg:erc-color-face4 ((t (:background "red"))))
+ (bg:erc-color-face5 ((t (:background "brown"))))
+ (bg:erc-color-face6 ((t (:background "purple"))))
+ (bg:erc-color-face7 ((t (:background "orange"))))
+ (bg:erc-color-face8 ((t (:background "yellow"))))
+ (bg:erc-color-face9 ((t (:background "green"))))
+ (bold ((t (:bold t :foreground "#00CC00" :background "black"))))
+ (bold-italic ((t (:italic t :bold t :slant oblique :weight semi-bold))))
+ (border ((t (:background "black"))))
+ (button ((t (:underline t))))
+ (comint-highlight-input ((t (nil))))
+ (comint-highlight-prompt ((t (:bold t :foreground "#00CC00" :background "black" :weight bold))))
+ (cursor ((t (:background "green"))))
+ (custom-button-face ((t (:bold t :foreground "#00CC00" :background "black"))))
+ (custom-button-pressed-face ((t (nil))))
+ (custom-changed-face ((t (:italic t :foreground "#00CC00" :background "black" :slant oblique))))
+ (custom-comment-face ((t (nil))))
+ (custom-comment-tag-face ((t (nil))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (nil))))
+ (custom-group-tag-face ((t (nil))))
+ (custom-group-tag-face-1 ((t (nil))))
+ (custom-invalid-face ((t (:foreground "#00CC00" :background "black" :strike-through t))))
+ (custom-modified-face ((t (nil))))
+ (custom-rogue-face ((t (nil))))
+ (custom-saved-face ((t (nil))))
+ (custom-set-face ((t (nil))))
+ (custom-state-face ((t (nil))))
+ (custom-variable-button-face ((t (nil))))
+ (custom-variable-tag-face ((t (nil))))
+ (erc-action-face ((t (:bold t :weight semi-bold))))
+ (erc-bold-face ((t (:bold t :weight bold))))
+ (erc-current-nick-face ((t (:bold t :foreground "LightSeaGreen" :weight semi-bold))))
+ (erc-dangerous-host-face ((t (:foreground "red"))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (:foreground "IndianRed"))))
+ (erc-error-face ((t (:bold t :weight semi-bold :background "darkblue" :foreground "#00CC00"))))
+ (erc-fool-face ((t (:foreground "dim gray"))))
+ (erc-input-face ((t (:foreground "springgreen"))))
+ (erc-inverse-face ((t (:bold t :background "Darkgreen" :foreground "Black" :weight semi-bold))))
+ (erc-keyword-face ((t (:bold t :foreground "pale green" :weight bold))))
+ (erc-nick-default-face ((t (:bold t :weight semi-bold))))
+ (erc-nick-msg-face ((t (:bold t :foreground "springgreen" :weight semi-bold))))
+ (erc-notice-face ((t (:foreground "seagreen" :weight normal))))
+ (erc-pal-face ((t (:bold t :foreground "Magenta" :weight bold))))
+ (erc-prompt-face ((t (:bold t :background "lightBlue2" :foreground "Black" :weight semi-bold))))
+ (erc-timestamp-face ((t (:foreground "seagreen" :weight normal))))
+ (erc-underline-face ((t (:underline t))))
+ (fg:erc-color-face0 ((t (:foreground "White"))))
+ (fg:erc-color-face1 ((t (:foreground "black"))))
+ (fg:erc-color-face10 ((t (:foreground "lightblue1"))))
+ (fg:erc-color-face11 ((t (:foreground "cyan"))))
+ (fg:erc-color-face12 ((t (:foreground "blue"))))
+ (fg:erc-color-face13 ((t (:foreground "deeppink"))))
+ (fg:erc-color-face14 ((t (:foreground "gray50"))))
+ (fg:erc-color-face15 ((t (:foreground "gray90"))))
+ (fg:erc-color-face2 ((t (:foreground "blue4"))))
+ (fg:erc-color-face3 ((t (:foreground "green4"))))
+ (fg:erc-color-face4 ((t (:foreground "red"))))
+ (fg:erc-color-face5 ((t (:foreground "brown"))))
+ (fg:erc-color-face6 ((t (:foreground "purple"))))
+ (fg:erc-color-face7 ((t (:foreground "orange"))))
+ (fg:erc-color-face8 ((t (:foreground "yellow"))))
+ (fg:erc-color-face9 ((t (:foreground "green"))))
+ (fixed-pitch ((t (nil))))
+ (font-latex-string-face ((t (:bold t :weight semi-bold :foreground "seagreen" :background "black"))))
+ (font-latex-warning-face ((t (:bold t :weight semi-bold :background "darkblue" :foreground "#00CC00"))))
+ (font-lock-builtin-face ((t (:foreground "seagreen1"))))
+ (font-lock-comment-face ((t (:background "black" :foreground "medium spring green"))))
+ (font-lock-constant-face ((t (nil))))
+ (font-lock-doc-face ((t (:bold t :background "black" :foreground "seagreen" :weight semi-bold))))
+ (font-lock-function-name-face ((t (:bold t :foreground "#00CC00" :background "black"))))
+ (font-lock-keyword-face ((t (:bold t :background "black" :foreground "green" :underline t :weight semi-bold))))
+ (font-lock-preprocessor-face ((t (:foreground "#00ccdd"))))
+ (font-lock-string-face ((t (:bold t :background "black" :foreground "seagreen" :weight semi-bold))))
+ (font-lock-type-face ((t (nil))))
+ (font-lock-variable-name-face ((t (nil))))
+ (font-lock-warning-face ((t (:bold t :foreground "#00CC00" :background "darkblue" :weight semi-bold))))
+ (fringe ((t (:foreground "#00CC00" :background "#151515"))))
+ (gnus-cite-attribution-face ((t (:italic t :foreground "#00CC00" :background "black" :slant italic))))
+ (gnus-cite-face-1 ((t (:background "black" :foreground "springgreen"))))
+ (gnus-cite-face-10 ((t (nil))))
+ (gnus-cite-face-11 ((t (nil))))
+ (gnus-cite-face-2 ((t (:background "black" :foreground "lightseagreen"))))
+ (gnus-cite-face-3 ((t (:background "black" :foreground "darkseagreen"))))
+ (gnus-cite-face-4 ((t (:background "black" :foreground "forestgreen"))))
+ (gnus-cite-face-5 ((t (:background "black" :foreground "springgreen"))))
+ (gnus-cite-face-6 ((t (:background "black" :foreground "springgreen"))))
+ (gnus-cite-face-7 ((t (:background "black" :foreground "springgreen"))))
+ (gnus-cite-face-8 ((t (:background "black" :foreground "springgreen"))))
+ (gnus-cite-face-9 ((t (:background "black" :foreground "springgreen"))))
+ (gnus-emphasis-bold ((t (:bold t :weight semi-bold))))
+ (gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight semi-bold))))
+ (gnus-emphasis-highlight-words ((t (:bold t :foreground "#00CC00" :background "black" :underline t :weight bold))))
+ (gnus-emphasis-italic ((t (:italic t :slant italic))))
+ (gnus-emphasis-strikethru ((t (nil))))
+ (gnus-emphasis-underline ((t (:underline t))))
+ (gnus-emphasis-underline-bold ((t (:bold t :underline t :weight semi-bold))))
+ (gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight semi-bold))))
+ (gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic))))
+ (gnus-group-mail-1-empty-face ((t (nil))))
+ (gnus-group-mail-1-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold))))
+ (gnus-group-mail-2-empty-face ((t (nil))))
+ (gnus-group-mail-2-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold))))
+ (gnus-group-mail-3-empty-face ((t (nil))))
+ (gnus-group-mail-3-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold))))
+ (gnus-group-mail-low-empty-face ((t (nil))))
+ (gnus-group-mail-low-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold))))
+ (gnus-group-news-1-empty-face ((t (nil))))
+ (gnus-group-news-1-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold))))
+ (gnus-group-news-2-empty-face ((t (nil))))
+ (gnus-group-news-2-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold))))
+ (gnus-group-news-low-empty-face ((t (nil))))
+ (gnus-group-news-low-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold))))
+ (gnus-header-content-face ((t (:background "black" :foreground "springgreen"))))
+ (gnus-header-from-face ((t (nil))))
+ (gnus-header-name-face ((t (nil))))
+ (gnus-header-newsgroups-face ((t (nil))))
+ (gnus-header-subject-face ((t (nil))))
+ (gnus-server-agent-face ((t (:bold t :foreground "PaleTurquoise" :weight bold))))
+ (gnus-server-closed-face ((t (:italic t :foreground "Light Steel Blue" :slant italic))))
+ (gnus-server-denied-face ((t (:bold t :foreground "Pink" :weight semi-bold))))
+ (gnus-server-offline-face ((t (:bold t :foreground "Yellow" :weight bold))))
+ (gnus-server-opened-face ((t (:bold t :foreground "Green1" :weight semi-bold))))
+ (gnus-signature-face ((t (:background "black" :foreground "springgreen" :slant normal))))
+ (gnus-splash-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold))))
+ (gnus-summary-cancelled-face ((t (:foreground "#00CC00" :background "black" :strike-through t))))
+ (gnus-summary-high-ancient-face ((t (nil))))
+ (gnus-summary-high-read-face ((t (nil))))
+ (gnus-summary-high-ticked-face ((t (:background "black" :foreground "seagreen"))))
+ (gnus-summary-high-undownloaded-face ((t (:bold t :foreground "LightGray" :weight bold))))
+ (gnus-summary-high-unread-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold))))
+ (gnus-summary-low-ancient-face ((t (nil))))
+ (gnus-summary-low-read-face ((t (nil))))
+ (gnus-summary-low-ticked-face ((t (nil))))
+ (gnus-summary-low-undownloaded-face ((t (:italic t :foreground "LightGray" :slant italic :weight normal))))
+ (gnus-summary-low-unread-face ((t (:bold t :foreground "#00CC00" :background "black" :weight bold))))
+ (gnus-summary-normal-ancient-face ((t (nil))))
+ (gnus-summary-normal-read-face ((t (nil))))
+ (gnus-summary-normal-ticked-face ((t (:bold t :foreground "#00CC00" :background "black"))))
+ (gnus-summary-normal-undownloaded-face ((t (:foreground "LightGray" :weight normal))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (:background "#101010"))))
+ (gnus-x-face ((t (:background "white" :foreground "black"))))
+ (header-line ((t (nil))))
+ (highlight ((t (:foreground "#00CC00" :background "darkgreen"))))
+ (ido-first-match-face ((t (:bold t :weight bold))))
+ (ido-indicator-face ((t (:background "red" :foreground "yellow" :width condensed))))
+ (ido-only-match-face ((t (:foreground "ForestGreen"))))
+ (ido-subdir-face ((t (:foreground "red"))))
+ (isearch ((t (:background "seagreen" :foreground "black"))))
+ (isearch-lazy-highlight-face ((t (:background "darkseagreen" :foreground "black"))))
+ (italic ((t (:italic t :foreground "#00CC00" :background "black" :slant oblique))))
+ (menu ((t (:bold t :background "black" :foreground "green" :box (:line-width -1 :color "#606060") :weight semi-bold))))
+ (message-cited-text-face ((t (:italic t :foreground "#00CC00" :background "black" :slant oblique))))
+ (message-header-cc-face ((t (nil))))
+ (message-header-name-face ((t (nil))))
+ (message-header-newsgroups-face ((t (:bold t :foreground "#00CC00" :background "black"))))
+ (message-header-other-face ((t (:bold t :foreground "#00CC00" :background "black"))))
+ (message-header-subject-face ((t (:bold t :foreground "#00CC00" :background "black"))))
+ (message-header-to-face ((t (:bold t :foreground "#00CC00" :background "black"))))
+ (message-header-xheader-face ((t (nil))))
+ (message-mml-face ((t (:italic t :foreground "#00CC00" :background "black" :slant oblique))))
+ (message-separator-face ((t (nil))))
+ (minibuffer-prompt ((t (:background "black" :foreground "seagreen"))))
+ (mode-line ((t (:bold t :background "#404040" :foreground "green" :box (:line-width -1 :color "#606060") :weight semi-bold))))
+ (mode-line-inactive ((t (:bold t :weight semi-bold :box (:line-width -1 :color "#606060") :foreground "green" :background "#101010"))))
+ (mouse ((t (:background "black"))))
+ (paren-face ((t (:background "black" :foreground "darkgreen"))))
+ (paren-face-match ((t (:background "black" :foreground "springgreen"))))
+ (paren-face-mismatch ((t (:foreground "#00CC00" :background "black" :strike-through t))))
+ (paren-face-no-match ((t (:background "black" :foreground "red"))))
+ (region ((t (:background "seagreen" :foreground "black"))))
+ (scroll-bar ((t (nil))))
+ (secondary-selection ((t (:background "darkseagreen" :foreground "black"))))
+ (semantic-dirty-token-face ((t (:background "gray10"))))
+ (semantic-unmatched-syntax-face ((t (:underline "red"))))
+ (sgml-end-tag-face ((t (:foreground "seagreen"))))
+ (sgml-start-tag-face ((t (:foreground "seagreen"))))
+ (tabbar-button-face ((t (:background "black" :foreground "#00cc00" :box (:line-width 2 :color "black" :style released-button)))))
+ (tabbar-default-face ((t (:background "black" :foreground "#00cc00"))))
+ (tabbar-selected-face ((t (:background "black" :foreground "springgreen" :box (:line-width 2 :color "black" :style released-button)))))
+ (tabbar-separator-face ((t (:foreground "#00cc00" :background "black"))))
+ (tabbar-unselected-face ((t (:background "black" :foreground "seagreen" :box (:line-width 2 :color "black" :style pressed-button)))))
+ (tool-bar ((t (:box (:line-width 1 :style released-button)))))
+ (tooltip ((t (nil))))
+ (trailing-whitespace ((t (:background "lightseagreen" :foreground "black"))))
+ (underline ((t (:foreground "#00CC00" :background "black" :underline t))))
+ (variable-pitch ((t (:underline nil :foreground "#00CC00" :background "black"))))
+ (widget-button-face ((t (:bold t :foreground "#00CC00" :background "black"))))
+ (widget-button-pressed-face ((t (nil))))
+ (widget-documentation-face ((t (nil))))
+ (widget-field-face ((t (:italic t :foreground "#00CC00" :background "black" :slant oblique))))
+ (widget-inactive-face ((t (nil))))
+ (widget-single-line-field-face ((t (nil)))))))
+
+(defun color-theme-matrix ()
+ "Color theme by walterh@rocketmail.com, created 2003-10-16."
+ (interactive)
+ (color-theme-install
+ '(color-theme-matrix
+ ((background-color . "black")
+ (background-mode . dark)
+ (background-toolbar-color . "bisque")
+ (border-color . "orange")
+ (bottom-toolbar-shadow-color . "#909099999999")
+ (cursor-color . "#7eff00")
+ (foreground-color . "#7eff00")
+ (mouse-color . "#7eff00")
+ (top-toolbar-shadow-color . "#ffffffffffff"))
+ ((help-highlight-face . underline)
+ (list-matching-lines-face . bold)
+ (rmail-highlight-face . font-lock-function-name-face)
+ (view-highlight-face . highlight)
+ (widget-mouse-face . highlight))
+ (default ((t (:stipple nil :background "black" :foreground
+"#7eff00" :inverse-video nil :box nil :strike-through nil :overline nil
+:underline nil :slant normal :weight normal :height 90 :width normal
+:family "outline-courier new"))))
+ (Buffer-menu-buffer-face ((t (nil))))
+ (CUA-global-mark-face ((t (nil))))
+ (CUA-rectangle-face ((t (nil))))
+ (CUA-rectangle-noselect-face ((t (nil))))
+ (Info-title-1-face ((t (nil))))
+ (Info-title-2-face ((t (nil))))
+ (Info-title-3-face ((t (nil))))
+ (Info-title-4-face ((t (nil))))
+ (antlr-font-lock-keyword-face ((t (nil))))
+ (antlr-font-lock-literal-face ((t (nil))))
+ (antlr-font-lock-ruledef-face ((t (nil))))
+ (antlr-font-lock-ruleref-face ((t (nil))))
+ (antlr-font-lock-tokendef-face ((t (nil))))
+ (antlr-font-lock-tokenref-face ((t (nil))))
+ (bbdb-company ((t (nil))))
+ (bbdb-field-name ((t (nil))))
+ (bbdb-field-value ((t (nil))))
+ (bbdb-name ((t (nil))))
+ (bg:erc-color-face0 ((t (nil))))
+ (bg:erc-color-face1 ((t (nil))))
+ (bg:erc-color-face10 ((t (nil))))
+ (bg:erc-color-face11 ((t (nil))))
+ (bg:erc-color-face12 ((t (nil))))
+ (bg:erc-color-face13 ((t (nil))))
+ (bg:erc-color-face14 ((t (nil))))
+ (bg:erc-color-face15 ((t (nil))))
+ (bg:erc-color-face2 ((t (nil))))
+ (bg:erc-color-face3 ((t (nil))))
+ (bg:erc-color-face4 ((t (nil))))
+ (bg:erc-color-face5 ((t (nil))))
+ (bg:erc-color-face6 ((t (nil))))
+ (bg:erc-color-face7 ((t (nil))))
+ (bg:erc-color-face8 ((t (nil))))
+ (bg:erc-color-face9 ((t (nil))))
+ (blank-space-face ((t (nil))))
+ (blank-tab-face ((t (nil))))
+ (blue ((t (nil))))
+ (bold ((t (:bold t :weight bold))))
+ (bold-italic ((t (:bold t :weight bold))))
+ (border ((t (:background "orange"))))
+ (border-glyph ((t (nil))))
+ (buffers-tab ((t (nil))))
+ (button ((t (nil))))
+ (calendar-today-face ((t (nil))))
+ (change-log-acknowledgement-face ((t (nil))))
+ (change-log-conditionals-face ((t (nil))))
+ (change-log-date-face ((t (nil))))
+ (change-log-email-face ((t (nil))))
+ (change-log-file-face ((t (nil))))
+ (change-log-function-face ((t (nil))))
+ (change-log-list-face ((t (nil))))
+ (change-log-name-face ((t (nil))))
+ (clearcase-dired-checkedout-face ((t (nil))))
+ (comint-highlight-input ((t (nil))))
+ (comint-highlight-prompt ((t (nil))))
+ (cparen-around-andor-face ((t (nil))))
+ (cparen-around-begin-face ((t (nil))))
+ (cparen-around-conditional-face ((t (nil))))
+ (cparen-around-define-face ((t (nil))))
+ (cparen-around-lambda-face ((t (nil))))
+ (cparen-around-letdo-face ((t (nil))))
+ (cparen-around-quote-face ((t (nil))))
+ (cparen-around-set!-face ((t (nil))))
+ (cparen-around-syntax-rules-face ((t (nil))))
+ (cparen-around-vector-face ((t (nil))))
+ (cparen-binding-face ((t (nil))))
+ (cparen-binding-list-face ((t (nil))))
+ (cparen-conditional-clause-face ((t (nil))))
+ (cparen-normal-paren-face ((t (nil))))
+ (cperl-array-face ((t (nil))))
+ (cperl-hash-face ((t (nil))))
+ (cperl-invalid-face ((t (nil))))
+ (cperl-nonoverridable-face ((t (nil))))
+ (cursor ((t (:background "#7eff00" :foreground "black"))))
+ (custom-button-face ((t (nil))))
+ (custom-button-pressed-face ((t (nil))))
+ (custom-changed-face ((t (nil))))
+ (custom-comment-face ((t (nil))))
+ (custom-comment-tag-face ((t (nil))))
+ (custom-documentation-face ((t (nil))))
+ (custom-face-tag-face ((t (nil))))
+ (custom-group-tag-face ((t (nil))))
+ (custom-group-tag-face-1 ((t (nil))))
+ (custom-invalid-face ((t (nil))))
+ (custom-modified-face ((t (nil))))
+ (custom-rogue-face ((t (nil))))
+ (custom-saved-face ((t (nil))))
+ (custom-set-face ((t (nil))))
+ (custom-state-face ((t (nil))))
+ (custom-variable-button-face ((t (nil))))
+ (custom-variable-tag-face ((t (nil))))
+ (cvs-filename-face ((t (nil))))
+ (cvs-handled-face ((t (nil))))
+ (cvs-header-face ((t (nil))))
+ (cvs-marked-face ((t (nil))))
+ (cvs-msg-face ((t (nil))))
+ (cvs-need-action-face ((t (nil))))
+ (cvs-unknown-face ((t (nil))))
+ (cyan ((t (nil))))
+ (diary-face ((t (nil))))
+ (diff-added-face ((t (nil))))
+ (diff-changed-face ((t (nil))))
+ (diff-context-face ((t (nil))))
+ (diff-file-header-face ((t (nil))))
+ (diff-function-face ((t (nil))))
+ (diff-header-face ((t (nil))))
+ (diff-hunk-header-face ((t (nil))))
+ (diff-index-face ((t (nil))))
+ (diff-nonexistent-face ((t (nil))))
+ (diff-removed-face ((t (nil))))
+ (dired-face-boring ((t (nil))))
+ (dired-face-directory ((t (nil))))
+ (dired-face-executable ((t (nil))))
+ (dired-face-flagged ((t (nil))))
+ (dired-face-header ((t (nil))))
+ (dired-face-marked ((t (nil))))
+ (dired-face-permissions ((t (nil))))
+ (dired-face-setuid ((t (nil))))
+ (dired-face-socket ((t (nil))))
+ (dired-face-symlink ((t (nil))))
+ (display-time-mail-balloon-enhance-face ((t (nil))))
+ (display-time-mail-balloon-gnus-group-face ((t (nil))))
+ (display-time-time-balloon-face ((t (nil))))
+ (ebrowse-default-face ((t (nil))))
+ (ebrowse-file-name-face ((t (nil))))
+ (ebrowse-member-attribute-face ((t (nil))))
+ (ebrowse-member-class-face ((t (nil))))
+ (ebrowse-progress-face ((t (nil))))
+ (ebrowse-root-class-face ((t (nil))))
+ (ebrowse-tree-mark-face ((t (nil))))
+ (ecb-sources-face ((t (nil))))
+ (edb-inter-field-face ((t (nil))))
+ (edb-normal-summary-face ((t (nil))))
+ (ediff-current-diff-face-A ((t (nil))))
+ (ediff-current-diff-face-Ancestor ((t (nil))))
+ (ediff-current-diff-face-B ((t (nil))))
+ (ediff-current-diff-face-C ((t (nil))))
+ (ediff-even-diff-face-A ((t (nil))))
+ (ediff-even-diff-face-Ancestor ((t (nil))))
+ (ediff-even-diff-face-B ((t (nil))))
+ (ediff-even-diff-face-C ((t (nil))))
+ (ediff-fine-diff-face-A ((t (nil))))
+ (ediff-fine-diff-face-Ancestor ((t (nil))))
+ (ediff-fine-diff-face-B ((t (nil))))
+ (ediff-fine-diff-face-C ((t (nil))))
+ (ediff-odd-diff-face-A ((t (nil))))
+ (ediff-odd-diff-face-Ancestor ((t (nil))))
+ (ediff-odd-diff-face-B ((t (nil))))
+ (ediff-odd-diff-face-C ((t (nil))))
+ (eieio-custom-slot-tag-face ((t (nil))))
+ (emacs-wiki-bad-link-face ((t (nil))))
+ (emacs-wiki-link-face ((t (nil))))
+ (erc-action-face ((t (nil))))
+ (erc-bold-face ((t (nil))))
+ (erc-current-nick-face ((t (nil))))
+ (erc-dangerous-host-face ((t (nil))))
+ (erc-default-face ((t (nil))))
+ (erc-direct-msg-face ((t (nil))))
+ (erc-error-face ((t (nil))))
+ (erc-fool-face ((t (nil))))
+ (erc-highlight-face ((t (nil))))
+ (erc-input-face ((t (nil))))
+ (erc-inverse-face ((t (nil))))
+ (erc-keyword-face ((t (nil))))
+ (erc-nick-default-face ((t (nil))))
+ (erc-nick-msg-face ((t (nil))))
+ (erc-notice-face ((t (nil))))
+ (erc-pal-face ((t (nil))))
+ (erc-prompt-face ((t (nil))))
+ (erc-timestamp-face ((t (nil))))
+ (erc-underline-face ((t (nil))))
+ (eshell-ls-archive-face ((t (nil))))
+ (eshell-ls-backup-face ((t (nil))))
+ (eshell-ls-clutter-face ((t (nil))))
+ (eshell-ls-directory-face ((t (nil))))
+ (eshell-ls-executable-face ((t (nil))))
+ (eshell-ls-missing-face ((t (nil))))
+ (eshell-ls-picture-face ((t (nil))))
+ (eshell-ls-product-face ((t (nil))))
+ (eshell-ls-readonly-face ((t (nil))))
+ (eshell-ls-special-face ((t (nil))))
+ (eshell-ls-symlink-face ((t (nil))))
+ (eshell-ls-text-face ((t (nil))))
+ (eshell-ls-todo-face ((t (nil))))
+ (eshell-ls-unreadable-face ((t (nil))))
+ (eshell-prompt-face ((t (nil))))
+ (eshell-test-failed-face ((t (nil))))
+ (eshell-test-ok-face ((t (nil))))
+ (excerpt ((t (nil))))
+ (extra-whitespace-face ((t (nil))))
+ (ff-paths-non-existant-file-face ((t (nil))))
+ (fg:black ((t (nil))))
+ (fg:erc-color-face0 ((t (nil))))
+ (fg:erc-color-face1 ((t (nil))))
+ (fg:erc-color-face10 ((t (nil))))
+ (fg:erc-color-face11 ((t (nil))))
+ (fg:erc-color-face12 ((t (nil))))
+ (fg:erc-color-face13 ((t (nil))))
+ (fg:erc-color-face14 ((t (nil))))
+ (fg:erc-color-face15 ((t (nil))))
+ (fg:erc-color-face2 ((t (nil))))
+ (fg:erc-color-face3 ((t (nil))))
+ (fg:erc-color-face4 ((t (nil))))
+ (fg:erc-color-face5 ((t (nil))))
+ (fg:erc-color-face6 ((t (nil))))
+ (fg:erc-color-face7 ((t (nil))))
+ (fg:erc-color-face8 ((t (nil))))
+ (fg:erc-color-face9 ((t (nil))))
+ (fixed ((t (nil))))
+ (fixed-pitch ((t (nil))))
+ (fl-comment-face ((t (nil))))
+ (fl-function-name-face ((t (nil))))
+ (fl-keyword-face ((t (nil))))
+ (fl-string-face ((t (nil))))
+ (fl-type-face ((t (nil))))
+ (flash-paren-face-off ((t (nil))))
+ (flash-paren-face-on ((t (nil))))
+ (flash-paren-face-region ((t (nil))))
+ (flyspell-duplicate-face ((t (nil))))
+ (flyspell-incorrect-face ((t (nil))))
+ (font-latex-bold-face ((t (nil))))
+ (font-latex-italic-face ((t (nil))))
+ (font-latex-math-face ((t (nil))))
+ (font-latex-sedate-face ((t (nil))))
+ (font-latex-string-face ((t (nil))))
+ (font-latex-warning-face ((t (nil))))
+ (font-lock-builtin-face ((t (:foreground "pink2"))))
+ (font-lock-comment-face ((t (:italic t :background "black" :slant
+italic))))
+ (font-lock-constant-face ((t (:foreground "magenta"))))
+ (font-lock-doc-face ((t (nil))))
+ (font-lock-doc-string-face ((t (nil))))
+ (font-lock-exit-face ((t (nil))))
+ (font-lock-function-name-face ((t (:bold t :underline t :weight
+bold))))
+ (font-lock-keyword-face ((t (:foreground "yellow1"))))
+ (font-lock-other-emphasized-face ((t (nil))))
+ (font-lock-other-type-face ((t (nil))))
+ (font-lock-preprocessor-face ((t (nil))))
+ (font-lock-reference-face ((t (nil))))
+ (font-lock-special-comment-face ((t (nil))))
+ (font-lock-special-keyword-face ((t (nil))))
+ (font-lock-string-face ((t (:foreground "yellow2"))))
+ (font-lock-type-face ((t (:foreground "LightYellow1"))))
+ (font-lock-variable-name-face ((t (:foreground "light green"))))
+ (font-lock-warning-face ((t (nil))))
+ (fringe ((t (nil))))
+ (gnus-cite-attribution-face ((t (nil))))
+ (gnus-cite-face-1 ((t (nil))))
+ (gnus-cite-face-10 ((t (nil))))
+ (gnus-cite-face-11 ((t (nil))))
+ (gnus-cite-face-2 ((t (nil))))
+ (gnus-cite-face-3 ((t (nil))))
+ (gnus-cite-face-4 ((t (nil))))
+ (gnus-cite-face-5 ((t (nil))))
+ (gnus-cite-face-6 ((t (nil))))
+ (gnus-cite-face-7 ((t (nil))))
+ (gnus-cite-face-8 ((t (nil))))
+ (gnus-cite-face-9 ((t (nil))))
+ (gnus-emphasis-bold ((t (nil))))
+ (gnus-emphasis-bold-italic ((t (nil))))
+ (gnus-emphasis-highlight-words ((t (nil))))
+ (gnus-emphasis-italic ((t (nil))))
+ (gnus-emphasis-strikethru ((t (nil))))
+ (gnus-emphasis-underline ((t (nil))))
+ (gnus-emphasis-underline-bold ((t (nil))))
+ (gnus-emphasis-underline-bold-italic ((t (nil))))
+ (gnus-emphasis-underline-italic ((t (nil))))
+ (gnus-filterhist-face-1 ((t (nil))))
+ (gnus-group-mail-1-empty-face ((t (nil))))
+ (gnus-group-mail-1-face ((t (nil))))
+ (gnus-group-mail-2-empty-face ((t (nil))))
+ (gnus-group-mail-2-face ((t (nil))))
+ (gnus-group-mail-3-empty-face ((t (nil))))
+ (gnus-group-mail-3-face ((t (nil))))
+ (gnus-group-mail-low-empty-face ((t (nil))))
+ (gnus-group-mail-low-face ((t (nil))))
+ (gnus-group-news-1-empty-face ((t (nil))))
+ (gnus-group-news-1-face ((t (nil))))
+ (gnus-group-news-2-empty-face ((t (nil))))
+ (gnus-group-news-2-face ((t (nil))))
+ (gnus-group-news-3-empty-face ((t (nil))))
+ (gnus-group-news-3-face ((t (nil))))
+ (gnus-group-news-4-empty-face ((t (nil))))
+ (gnus-group-news-4-face ((t (nil))))
+ (gnus-group-news-5-empty-face ((t (nil))))
+ (gnus-group-news-5-face ((t (nil))))
+ (gnus-group-news-6-empty-face ((t (nil))))
+ (gnus-group-news-6-face ((t (nil))))
+ (gnus-group-news-low-empty-face ((t (nil))))
+ (gnus-group-news-low-face ((t (nil))))
+ (gnus-header-content-face ((t (nil))))
+ (gnus-header-from-face ((t (nil))))
+ (gnus-header-name-face ((t (nil))))
+ (gnus-header-newsgroups-face ((t (nil))))
+ (gnus-header-subject-face ((t (nil))))
+ (gnus-picon-face ((t (nil))))
+ (gnus-picon-xbm-face ((t (nil))))
+ (gnus-picons-face ((t (nil))))
+ (gnus-picons-xbm-face ((t (nil))))
+ (gnus-server-agent-face ((t (nil))))
+ (gnus-server-closed-face ((t (nil))))
+ (gnus-server-denied-face ((t (nil))))
+ (gnus-server-offline-face ((t (nil))))
+ (gnus-server-opened-face ((t (nil))))
+ (gnus-signature-face ((t (nil))))
+ (gnus-splash ((t (nil))))
+ (gnus-splash-face ((t (nil))))
+ (gnus-summary-cancelled-face ((t (nil))))
+ (gnus-summary-high-ancient-face ((t (nil))))
+ (gnus-summary-high-read-face ((t (nil))))
+ (gnus-summary-high-ticked-face ((t (nil))))
+ (gnus-summary-high-undownloaded-face ((t (nil))))
+ (gnus-summary-high-unread-face ((t (nil))))
+ (gnus-summary-low-ancient-face ((t (nil))))
+ (gnus-summary-low-read-face ((t (nil))))
+ (gnus-summary-low-ticked-face ((t (nil))))
+ (gnus-summary-low-undownloaded-face ((t (nil))))
+ (gnus-summary-low-unread-face ((t (nil))))
+ (gnus-summary-normal-ancient-face ((t (nil))))
+ (gnus-summary-normal-read-face ((t (nil))))
+ (gnus-summary-normal-ticked-face ((t (nil))))
+ (gnus-summary-normal-undownloaded-face ((t (nil))))
+ (gnus-summary-normal-unread-face ((t (nil))))
+ (gnus-summary-selected-face ((t (nil))))
+ (gnus-x-face ((t (nil))))
+ (green ((t (nil))))
+ (gui-button-face ((t (nil))))
+ (gui-element ((t (nil))))
+ (header-line ((t (nil))))
+ (hi-black-b ((t (nil))))
+ (hi-black-hb ((t (nil))))
+ (hi-blue ((t (nil))))
+ (hi-blue-b ((t (nil))))
+ (hi-green ((t (nil))))
+ (hi-green-b ((t (nil))))
+ (hi-pink ((t (nil))))
+ (hi-red-b ((t (nil))))
+ (hi-yellow ((t (nil))))
+ (highlight ((t (:background "#7eff00" :foreground "black"))))
+ (highlight-changes-delete-face ((t (nil))))
+ (highlight-changes-face ((t (nil))))
+ (highline-face ((t (nil))))
+ (holiday-face ((t (nil))))
+ (html-helper-bold-face ((t (nil))))
+ (html-helper-bold-italic-face ((t (nil))))
+ (html-helper-builtin-face ((t (nil))))
+ (html-helper-italic-face ((t (nil))))
+ (html-helper-underline-face ((t (nil))))
+ (html-tag-face ((t (nil))))
+ (hyper-apropos-documentation ((t (nil))))
+ (hyper-apropos-heading ((t (nil))))
+ (hyper-apropos-hyperlink ((t (nil))))
+ (hyper-apropos-major-heading ((t (nil))))
+ (hyper-apropos-section-heading ((t (nil))))
+ (hyper-apropos-warning ((t (nil))))
+ (ibuffer-deletion-face ((t (nil))))
+ (ibuffer-marked-face ((t (nil))))
+ (idlwave-help-link-face ((t (nil))))
+ (idlwave-shell-bp-face ((t (nil))))
+ (ido-first-match-face ((t (nil))))
+ (ido-indicator-face ((t (nil))))
+ (ido-only-match-face ((t (nil))))
+ (ido-subdir-face ((t (nil))))
+ (info-header-node ((t (nil))))
+ (info-header-xref ((t (nil))))
+ (info-menu-5 ((t (nil))))
+ (info-menu-6 ((t (nil))))
+ (info-menu-header ((t (nil))))
+ (info-node ((t (nil))))
+ (info-xref ((t (nil))))
+ (isearch ((t (nil))))
+ (isearch-lazy-highlight-face ((t (nil))))
+ (isearch-secondary ((t (nil))))
+ (italic ((t (:underline t))))
+ (jde-bug-breakpoint-cursor ((t (nil))))
+ (jde-bug-breakpoint-marker ((t (nil))))
+ (jde-db-active-breakpoint-face ((t (nil))))
+ (jde-db-requested-breakpoint-face ((t (nil))))
+ (jde-db-spec-breakpoint-face ((t (nil))))
+ (jde-java-font-lock-api-face ((t (nil))))
+ (jde-java-font-lock-bold-face ((t (nil))))
+ (jde-java-font-lock-code-face ((t (nil))))
+ (jde-java-font-lock-constant-face ((t (nil))))
+ (jde-java-font-lock-doc-tag-face ((t (nil))))
+ (jde-java-font-lock-italic-face ((t (nil))))
+ (jde-java-font-lock-link-face ((t (nil))))
+ (jde-java-font-lock-modifier-face ((t (nil))))
+ (jde-java-font-lock-number-face ((t (nil))))
+ (jde-java-font-lock-operator-face ((t (nil))))
+ (jde-java-font-lock-package-face ((t (nil))))
+ (jde-java-font-lock-pre-face ((t (nil))))
+ (jde-java-font-lock-underline-face ((t (nil))))
+ (lazy-highlight-face ((t (nil))))
+ (left-margin ((t (nil))))
+ (linemenu-face ((t (nil))))
+ (list-mode-item-selected ((t (nil))))
+ (log-view-file-face ((t (nil))))
+ (log-view-message-face ((t (nil))))
+ (magenta ((t (nil))))
+ (makefile-space-face ((t (nil))))
+ (man-bold ((t (nil))))
+ (man-heading ((t (nil))))
+ (man-italic ((t (nil))))
+ (man-xref ((t (nil))))
+ (menu ((t (nil))))
+ (message-cited-text ((t (nil))))
+ (message-cited-text-face ((t (nil))))
+ (message-header-cc-face ((t (nil))))
+ (message-header-contents ((t (nil))))
+ (message-header-name-face ((t (nil))))
+ (message-header-newsgroups-face ((t (nil))))
+ (message-header-other-face ((t (nil))))
+ (message-header-subject-face ((t (nil))))
+ (message-header-to-face ((t (nil))))
+ (message-header-xheader-face ((t (nil))))
+ (message-headers ((t (nil))))
+ (message-highlighted-header-contents ((t (nil))))
+ (message-mml-face ((t (nil))))
+ (message-separator-face ((t (nil))))
+ (message-url ((t (nil))))
+ (minibuffer-prompt ((t (nil))))
+ (mmm-face ((t (nil))))
+ (mode-line ((t (:bold t :background "gray" :foreground "black"
+:weight bold))))
+ (mode-line-inactive ((t (nil))))
+ (modeline-buffer-id ((t (:background "orange" :foreground
+"black"))))
+ (modeline-mousable ((t (:background "orange" :foreground
+"black"))))
+ (modeline-mousable-minor-mode ((t (:background "orange"
+:foreground "black"))))
+ (mouse ((t (nil))))
+ (mpg123-face-cur ((t (nil))))
+ (mpg123-face-slider ((t (nil))))
+ (my-tab-face ((t (nil))))
+ (nil ((t (nil))))
+ (overlay-empty-face ((t (nil))))
+ (p4-diff-del-face ((t (nil))))
+ (paren-blink-off ((t (nil))))
+ (paren-face ((t (nil))))
+ (paren-face-match ((t (nil))))
+ (paren-face-mismatch ((t (nil))))
+ (paren-face-no-match ((t (nil))))
+ (paren-match ((t (nil))))
+ (paren-mismatch ((t (nil))))
+ (paren-mismatch-face ((t (nil))))
+ (paren-no-match-face ((t (nil))))
+ (pointer ((t (nil))))
+ (primary-selection ((t (nil))))
+ (reb-match-0 ((t (nil))))
+ (reb-match-1 ((t (nil))))
+ (reb-match-2 ((t (nil))))
+ (reb-match-3 ((t (nil))))
+ (red ((t (nil))))
+ (region ((t (:background "#7eff00" :foreground "black"))))
+ (right-margin ((t (nil))))
+ (rpm-spec-dir-face ((t (nil))))
+ (rpm-spec-doc-face ((t (nil))))
+ (rpm-spec-ghost-face ((t (nil))))
+ (rpm-spec-macro-face ((t (nil))))
+ (rpm-spec-package-face ((t (nil))))
+ (rpm-spec-tag-face ((t (nil))))
+ (rpm-spec-var-face ((t (nil))))
+ (scroll-bar ((t (nil))))
+ (secondary-selection ((t (:background "orange" :foreground
+"black"))))
+ (semantic-dirty-token-face ((t (nil))))
+ (semantic-intangible-face ((t (nil))))
+ (semantic-read-only-face ((t (nil))))
+ (semantic-unmatched-syntax-face ((t (nil))))
+ (senator-intangible-face ((t (nil))))
+ (senator-momentary-highlight-face ((t (nil))))
+ (senator-read-only-face ((t (nil))))
+ (sgml-comment-face ((t (nil))))
+ (sgml-doctype-face ((t (nil))))
+ (sgml-end-tag-face ((t (nil))))
+ (sgml-entity-face ((t (nil))))
+ (sgml-ignored-face ((t (nil))))
+ (sgml-ms-end-face ((t (nil))))
+ (sgml-ms-start-face ((t (nil))))
+ (sgml-pi-face ((t (nil))))
+ (sgml-sgml-face ((t (nil))))
+ (sgml-short-ref-face ((t (nil))))
+ (sgml-shortref-face ((t (nil))))
+ (sgml-start-tag-face ((t (nil))))
+ (sh-heredoc-face ((t (nil))))
+ (shell-option-face ((t (nil))))
+ (shell-output-2-face ((t (nil))))
+ (shell-output-3-face ((t (nil))))
+ (shell-output-face ((t (nil))))
+ (shell-prompt-face ((t (nil))))
+ (show-block-face1 ((t (nil))))
+ (show-block-face2 ((t (nil))))
+ (show-block-face3 ((t (nil))))
+ (show-block-face4 ((t (nil))))
+ (show-block-face5 ((t (nil))))
+ (show-block-face6 ((t (nil))))
+ (show-block-face7 ((t (nil))))
+ (show-block-face8 ((t (nil))))
+ (show-block-face9 ((t (nil))))
+ (show-paren-match-face ((t (:background "orange" :foreground
+"black"))))
+ (show-paren-mismatch-face ((t (:underline t))))
+ (show-tabs-space-face ((t (nil))))
+ (show-tabs-tab-face ((t (nil))))
+ (smerge-base-face ((t (nil))))
+ (smerge-markers-face ((t (nil))))
+ (smerge-mine-face ((t (nil))))
+ (smerge-other-face ((t (nil))))
+ (speedbar-button-face ((t (nil))))
+ (speedbar-directory-face ((t (nil))))
+ (speedbar-file-face ((t (nil))))
+ (speedbar-highlight-face ((t (nil))))
+ (speedbar-selected-face ((t (nil))))
+ (speedbar-separator-face ((t (nil))))
+ (speedbar-tag-face ((t (nil))))
+ (strokes-char-face ((t (nil))))
+ (swbuff-current-buffer-face ((t (nil))))
+ (tabbar-button-face ((t (nil))))
+ (tabbar-default-face ((t (nil))))
+ (tabbar-selected-face ((t (nil))))
+ (tabbar-separator-face ((t (nil))))
+ (tabbar-unselected-face ((t (nil))))
+ (template-message-face ((t (nil))))
+ (term-black ((t (nil))))
+ (term-blackbg ((t (nil))))
+ (term-blue ((t (nil))))
+ (term-blue-bold-face ((t (nil))))
+ (term-blue-face ((t (nil))))
+ (term-blue-inv-face ((t (nil))))
+ (term-blue-ul-face ((t (nil))))
+ (term-bluebg ((t (nil))))
+ (term-bold ((t (nil))))
+ (term-cyan ((t (nil))))
+ (term-cyan-bold-face ((t (nil))))
+ (term-cyan-face ((t (nil))))
+ (term-cyan-inv-face ((t (nil))))
+ (term-cyan-ul-face ((t (nil))))
+ (term-cyanbg ((t (nil))))
+ (term-default ((t (nil))))
+ (term-default-bg ((t (nil))))
+ (term-default-bg-inv ((t (nil))))
+ (term-default-bold-face ((t (nil))))
+ (term-default-face ((t (nil))))
+ (term-default-fg ((t (nil))))
+ (term-default-fg-inv ((t (nil))))
+ (term-default-inv-face ((t (nil))))
+ (term-default-ul-face ((t (nil))))
+ (term-green ((t (nil))))
+ (term-green-bold-face ((t (nil))))
+ (term-green-face ((t (nil))))
+ (term-green-inv-face ((t (nil))))
+ (term-green-ul-face ((t (nil))))
+ (term-greenbg ((t (nil))))
+ (term-invisible ((t (nil))))
+ (term-invisible-inv ((t (nil))))
+ (term-magenta ((t (nil))))
+ (term-magenta-bold-face ((t (nil))))
+ (term-magenta-face ((t (nil))))
+ (term-magenta-inv-face ((t (nil))))
+ (term-magenta-ul-face ((t (nil))))
+ (term-magentabg ((t (nil))))
+ (term-red ((t (nil))))
+ (term-red-bold-face ((t (nil))))
+ (term-red-face ((t (nil))))
+ (term-red-inv-face ((t (nil))))
+ (term-red-ul-face ((t (nil))))
+ (term-redbg ((t (nil))))
+ (term-underline ((t (nil))))
+ (term-white ((t (nil))))
+ (term-white-bold-face ((t (nil))))
+ (term-white-face ((t (nil))))
+ (term-white-inv-face ((t (nil))))
+ (term-white-ul-face ((t (nil))))
+ (term-whitebg ((t (nil))))
+ (term-yellow ((t (nil))))
+ (term-yellow-bold-face ((t (nil))))
+ (term-yellow-face ((t (nil))))
+ (term-yellow-inv-face ((t (nil))))
+ (term-yellow-ul-face ((t (nil))))
+ (term-yellowbg ((t (nil))))
+ (tex-math-face ((t (nil))))
+ (texinfo-heading-face ((t (nil))))
+ (text-cursor ((t (nil))))
+ (tool-bar ((t (nil))))
+ (tooltip ((t (nil))))
+ (trailing-whitespace ((t (nil))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (nil))))
+ (vc-annotate-face-0046FF ((t (nil))))
+ (vcursor ((t (nil))))
+ (vertical-divider ((t (nil))))
+ (vhdl-font-lock-attribute-face ((t (nil))))
+ (vhdl-font-lock-directive-face ((t (nil))))
+ (vhdl-font-lock-enumvalue-face ((t (nil))))
+ (vhdl-font-lock-function-face ((t (nil))))
+ (vhdl-font-lock-generic-/constant-face ((t (nil))))
+ (vhdl-font-lock-prompt-face ((t (nil))))
+ (vhdl-font-lock-reserved-words-face ((t (nil))))
+ (vhdl-font-lock-translate-off-face ((t (nil))))
+ (vhdl-font-lock-type-face ((t (nil))))
+ (vhdl-font-lock-variable-face ((t (nil))))
+ (vhdl-speedbar-architecture-face ((t (nil))))
+ (vhdl-speedbar-architecture-selected-face ((t (nil))))
+ (vhdl-speedbar-configuration-face ((t (nil))))
+ (vhdl-speedbar-configuration-selected-face ((t (nil))))
+ (vhdl-speedbar-entity-face ((t (nil))))
+ (vhdl-speedbar-entity-selected-face ((t (nil))))
+ (vhdl-speedbar-instantiation-face ((t (nil))))
+ (vhdl-speedbar-instantiation-selected-face ((t (nil))))
+ (vhdl-speedbar-package-face ((t (nil))))
+ (vhdl-speedbar-package-selected-face ((t (nil))))
+ (vhdl-speedbar-subprogram-face ((t (nil))))
+ (viper-minibuffer-emacs-face ((t (nil))))
+ (viper-minibuffer-insert-face ((t (nil))))
+ (viper-minibuffer-vi-face ((t (nil))))
+ (viper-replace-overlay-face ((t (nil))))
+ (viper-search-face ((t (nil))))
+ (vm-xface ((t (nil))))
+ (vmpc-pre-sig-face ((t (nil))))
+ (vmpc-sig-face ((t (nil))))
+ (w3m-anchor-face ((t (nil))))
+ (w3m-arrived-anchor-face ((t (nil))))
+ (w3m-header-line-location-content-face ((t (nil))))
+ (w3m-header-line-location-title-face ((t (nil))))
+ (white ((t (nil))))
+ (widget ((t (nil))))
+ (widget-button-face ((t (nil))))
+ (widget-button-pressed-face ((t (nil))))
+ (widget-documentation-face ((t (nil))))
+ (widget-field-face ((t (nil))))
+ (widget-inactive-face ((t (nil))))
+ (widget-single-line-field-face ((t (nil))))
+ (woman-addition-face ((t (nil))))
+ (woman-bold-face ((t (nil))))
+ (woman-italic-face ((t (nil))))
+ (woman-unknown-face ((t (nil))))
+ (x-face ((t (nil))))
+ (xrdb-option-name-face ((t (nil))))
+ (xref-keyword-face ((t (nil))))
+ (xref-list-default-face ((t (nil))))
+ (xref-list-pilot-face ((t (nil))))
+ (xref-list-symbol-face ((t (nil))))
+ (yellow ((t (nil))))
+ (zmacs-region ((t (nil)))))))
+
+(defun color-theme-feng-shui ()
+ "Color theme by walterh@rocketmail.com (www.xanadb.com), created
+ 2003-10-16. Evolved from color-theme-katester"
+ (interactive)
+ (color-theme-install
+ '(color-theme-feng-shui
+ ((background-color . "ivory")
+ (background-mode . light)
+ (border-color . "black")
+ (cursor-color . "slateblue")
+ (foreground-color . "black")
+ (mouse-color . "slateblue"))
+ ((help-highlight-face . underline)
+ (list-matching-lines-face . bold)
+ (view-highlight-face . highlight)
+ (widget-mouse-face . highlight))
+ (default ((t (:stipple nil :background "ivory" :foreground "black"
+:inverse-video nil :box nil :strike-through nil :overline nil
+:underline nil :slant normal :weight normal :height 90 :width normal
+:family "outline-courier new"))))
+ (bold ((t (:bold t :weight bold))))
+ (bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
+ (border ((t (:background "black"))))
+ (cursor ((t (:background "slateblue" :foreground "black"))))
+ (fixed-pitch ((t (:family "courier"))))
+ (font-lock-builtin-face ((t (:foreground "black"))))
+ (font-lock-comment-face ((t (:italic t :background "seashell"
+:slant italic))))
+ (font-lock-constant-face ((t (:foreground "darkblue"))))
+ (font-lock-doc-face ((t (:background "lemonChiffon"))))
+ (font-lock-function-name-face ((t (:bold t :underline t :weight
+bold))))
+ (font-lock-keyword-face ((t (:foreground "blue"))))
+ (font-lock-string-face ((t (:background "lemonChiffon"))))
+ (font-lock-type-face ((t (:foreground "black"))))
+ (font-lock-variable-name-face ((t (:foreground "black"))))
+ (font-lock-warning-face ((t (:bold t :foreground "Red" :weight
+bold))))
+ (fringe ((t (:background "grey95"))))
+ (header-line ((t (:bold t :weight bold :underline t :background
+"grey90" :foreground "grey20" :box nil))))
+ (highlight ((t (:background "mistyRose" :foreground "black"))))
+ (isearch ((t (:background "magenta4" :foreground
+"lightskyblue1"))))
+ (isearch-lazy-highlight-face ((t (:background "paleturquoise"))))
+ (italic ((t (:italic t :slant italic))))
+ (menu ((t (nil))))
+ (mode-line ((t (:bold t :background "mistyRose" :foreground "navy"
+:underline t :weight bold))))
+ (mouse ((t (:background "slateblue"))))
+ (region ((t (:background "lavender" :foreground "black"))))
+ (scroll-bar ((t (nil))))
+ (secondary-selection ((t (:background "yellow"))))
+ (tool-bar ((t (:background "grey75" :foreground "black" :box
+(:line-width 1 :style released-button)))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "helv"))))
+ (widget-button-face ((t (:bold t :weight bold))))
+ (widget-button-pressed-face ((t (:foreground "red"))))
+ (widget-documentation-face ((t (:foreground "dark green"))))
+ (widget-field-face ((t (:background "gray85"))))
+ (widget-inactive-face ((t (:foreground "dim gray"))))
+ (widget-single-line-field-face ((t (:background "gray85")))))))
+
+
+(defun color-theme-renegade ()
+ "Renegade BBS styled color theme. Works well in X and terminals.
+Created by Dave Benjamin <ramen@ramenfest.com> Dec 23 2005."
+ (interactive)
+ (color-theme-install
+ '(color-theme-renegade
+ ((background-color . "black")
+ (background-mode . dark)
+ (border-color . "black")
+ (cursor-color . "black")
+ (foreground-color . "cyan3")
+ (mouse-color . "white"))
+ (default ((t (nil))))
+ (bold ((t (:bold t :foreground "cyan" :weight bold))))
+ (bold-italic ((t (:italic t :bold t :foreground "cyan" :slant italic :weight bold))))
+ (fixed-pitch ((t (:family "courier"))))
+ (font-lock-builtin-face ((t (:bold t :foreground "cornflower blue" :weight bold))))
+ (font-lock-comment-face ((t (:bold t :foreground "yellow" :weight bold))))
+ (font-lock-constant-face ((t (:foreground "magenta3"))))
+ (font-lock-doc-face ((t (:bold t :weight bold :foreground "red"))))
+ (font-lock-function-name-face ((t (:foreground "gray"))))
+ (font-lock-keyword-face ((t (:bold t :foreground "cyan" :weight bold))))
+ (font-lock-string-face ((t (:bold t :foreground "red" :weight bold))))
+ (font-lock-type-face ((t (:bold t :foreground "cyan" :weight bold))))
+ (font-lock-variable-name-face ((t (:foreground "cyan3"))))
+ (font-lock-warning-face ((t (:bold t :foreground "red" :weight bold))))
+ (fringe ((t (:background "gray32"))))
+ (highlight ((t (:background "blue"))))
+ (isearch ((t (:background "blue" :foreground "cyan3"))))
+ (isearch-lazy-highlight-face ((t (:background "turquoise3" :foreground "black"))))
+ (menu ((t (nil))))
+ (mode-line ((t (:bold t :background "blue3" :foreground "white" :box (:line-width -1 :style released-button) :weight bold))))
+ (mouse ((t (:background "white"))))
+ (region ((t (:bold t :background "white" :foreground "blue" :weight bold))))
+ (scroll-bar ((t (nil))))
+ (trailing-whitespace ((t (:background "red"))))
+ (underline ((t (:underline t))))
+ (variable-pitch ((t (:family "helv")))))))
+
+;;; color-theme-library.el ends here
diff --git a/.emacs.d/tramp b/.emacs.d/tramp
new file mode 100644
index 0000000..407d593
--- /dev/null
+++ b/.emacs.d/tramp
@@ -0,0 +1,20 @@
+;; -*- emacs-lisp -*-
+;; Tramp connection history. Don't change this file.
+;; You can delete it, forcing Tramp to reapply the checks.
+
+((["scp" "slash" "192.168.1.90" nil]
+ ("uname" "Linux 2.6.33.5-112.fc13.i686")
+ ("test" "test")
+ ("remote-path"
+ ("/bin" "/usr/bin" "/usr/sbin" "/usr/local/bin"))
+ ("remote-shell" "/bin/sh")
+ ("~" "/home/slash")
+ ("file-exists" "test -e")
+ ("stat" "\\stat")
+ ("id" "/usr/bin/id")
+ ("gid-integer" 500)
+ ("local-encoding" base64-encode-region)
+ ("local-decoding" base64-decode-region)
+ ("remote-encoding" "base64")
+ ("remote-decoding" "base64 -d")
+ ("perl" "\\perl")))
diff --git a/.emacs.d/vala-mode.el b/.emacs.d/vala-mode.el
new file mode 100644
index 0000000..0358790
--- /dev/null
+++ b/.emacs.d/vala-mode.el
@@ -0,0 +1,395 @@
+;;; vala-mode.el --- Vala mode derived mode
+
+;; Author: 2005 Dylan R. E. Moonfire
+;; 2008 Étienne BERSAC
+;; Maintainer: Étienne BERSAC <bersace03@laposte.net>
+;; Created: 2008 May the 4th
+;; Modified: May 2008
+;; Version: 0.1
+;; Keywords: vala languages oop
+
+;; 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
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; see the file COPYING. If not, write to
+;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+;;
+;; See http://live.gnome.org/Vala for details about Vala language.
+;;
+;; This is a separate mode to implement the Vala constructs and
+;; font-locking. It is mostly the csharp-mode from
+;; http://mfgames.com/linux/csharp-mode with vala specific keywords
+;; and filename suffixes.
+;;
+;; Note: The interface used in this file requires CC Mode 5.30 or
+;; later.
+
+;;; .emacs (don't put in (require 'vala-mode))
+;; (autoload 'vala-mode "vala-mode" "Major mode for editing Vala code." t)
+;; (setq auto-mode-alist
+;; (append '(("\\.vala$" . vala-mode)) auto-mode-alist))
+
+;;; Versions:
+;;
+;; 0.1 : Initial version based on csharp-mode
+;;
+
+;; This is a copy of the function in cc-mode which is used to handle
+;; the eval-when-compile which is needed during other times.
+(defun c-filter-ops (ops opgroup-filter op-filter &optional xlate)
+ ;; See cc-langs.el, a direct copy.
+ (unless (listp (car-safe ops))
+ (setq ops (list ops)))
+ (cond ((eq opgroup-filter t)
+ (setq opgroup-filter (lambda (opgroup) t)))
+ ((not (functionp opgroup-filter))
+ (setq opgroup-filter `(lambda (opgroup)
+ (memq opgroup ',opgroup-filter)))))
+ (cond ((eq op-filter t)
+ (setq op-filter (lambda (op) t)))
+ ((stringp op-filter)
+ (setq op-filter `(lambda (op)
+ (string-match ,op-filter op)))))
+ (unless xlate
+ (setq xlate 'identity))
+ (c-with-syntax-table (c-lang-const c-mode-syntax-table)
+ (delete-duplicates
+ (mapcan (lambda (opgroup)
+ (when (if (symbolp (car opgroup))
+ (when (funcall opgroup-filter (car opgroup))
+ (setq opgroup (cdr opgroup))
+ t)
+ t)
+ (mapcan (lambda (op)
+ (when (funcall op-filter op)
+ (let ((res (funcall xlate op)))
+ (if (listp res) res (list res)))))
+ opgroup)))
+ ops)
+ :test 'equal)))
+
+;; This inserts the bulk of the code.
+(require 'cc-mode)
+
+;; These are only required at compile time to get the sources for the
+;; language constants. (The cc-fonts require and the font-lock
+;; related constants could additionally be put inside an
+;; (eval-after-load "font-lock" ...) but then some trickery is
+;; necessary to get them compiled.)
+(eval-when-compile
+ (let ((load-path
+ (if (and (boundp 'byte-compile-dest-file)
+ (stringp byte-compile-dest-file))
+ (cons (file-name-directory byte-compile-dest-file) load-path)
+ load-path)))
+ (load "cc-mode" nil t)
+ (load "cc-fonts" nil t)
+ (load "cc-langs" nil t)))
+
+(eval-and-compile
+ ;; Make our mode known to the language constant system. Use Java
+ ;; mode as the fallback for the constants we don't change here.
+ ;; This needs to be done also at compile time since the language
+ ;; constants are evaluated then.
+ (c-add-language 'vala-mode 'java-mode))
+
+;; Java uses a series of regexes to change the font-lock for class
+;; references. The problem comes in because Java uses Pascal (leading
+;; space in names, SomeClass) for class and package names, but
+;; Camel-casing (initial lowercase, upper case in words,
+;; i.e. someVariable) for variables.
+;;(error (byte-compile-dest-file))
+;;(error (c-get-current-file))
+(c-lang-defconst c-opt-after-id-concat-key
+ vala (if (c-lang-const c-opt-identifier-concat-key)
+ (c-lang-const c-symbol-start)))
+
+(c-lang-defconst c-basic-matchers-before
+ vala `(
+;;;; Font-lock the attributes by searching for the
+;;;; appropriate regex and marking it as TODO.
+ ;;,`(,(concat "\\(" vala-attribute-regex "\\)")
+ ;; 0 font-lock-function-name-face)
+
+ ;; Put a warning face on the opener of unclosed strings that
+ ;; can't span lines. Later font
+ ;; lock packages have a `font-lock-syntactic-face-function' for
+ ;; this, but it doesn't give the control we want since any
+ ;; fontification done inside the function will be
+ ;; unconditionally overridden.
+ ,(c-make-font-lock-search-function
+ ;; Match a char before the string starter to make
+ ;; `c-skip-comments-and-strings' work correctly.
+ (concat ".\\(" c-string-limit-regexp "\\)")
+ '((c-font-lock-invalid-string)))
+
+ ;; Fontify keyword constants.
+ ,@(when (c-lang-const c-constant-kwds)
+ (let ((re (c-make-keywords-re nil
+ (c-lang-const c-constant-kwds))))
+ `((eval . (list ,(concat "\\<\\(" re "\\)\\>")
+ 1 c-constant-face-name)))))
+
+ ;; Fontify all keywords except the primitive types.
+ ,`(,(concat "\\<" (c-lang-const c-regular-keywords-regexp))
+ 1 font-lock-keyword-face)
+
+ ;; Fontify leading identifiers in fully
+ ;; qualified names like "Foo.Bar".
+ ,@(when (c-lang-const c-opt-identifier-concat-key)
+ `((,(byte-compile
+ `(lambda (limit)
+ (while (re-search-forward
+ ,(concat "\\(\\<" ; 1
+ "\\(" (c-lang-const c-symbol-key)
+ "\\)" ; 2
+ "[ \t\n\r\f\v]*"
+ (c-lang-const
+ c-opt-identifier-concat-key)
+ "[ \t\n\r\f\v]*"
+ "\\)"
+ "\\("
+ (c-lang-const
+ c-opt-after-id-concat-key)
+ "\\)")
+ limit t)
+ (unless (progn
+ (goto-char (match-beginning 0))
+ (c-skip-comments-and-strings limit))
+ (or (get-text-property (match-beginning 2) 'face)
+ (c-put-font-lock-face (match-beginning 2)
+ (match-end 2)
+ c-reference-face-name))
+ (goto-char (match-end 1)))))))))
+ ))
+
+;; Vala does not allow a leading qualifier operator. It also doesn't
+;; allow the ".*" construct of Java. So, we redo this regex without
+;; the "\\|\\*" regex.
+(c-lang-defconst c-identifier-key
+ vala (concat "\\(" (c-lang-const c-symbol-key) "\\)" ; 1
+ (concat "\\("
+ "[ \t\n\r\f\v]*"
+ (c-lang-const c-opt-identifier-concat-key)
+ "[ \t\n\r\f\v]*"
+ (concat "\\("
+ "\\(" (c-lang-const c-symbol-key) "\\)"
+ "\\)")
+ "\\)*")))
+
+;; Vala has a few rules that are slightly different than Java for
+;; operators. This also removed the Java's "super" and replaces it
+;; with the Vala's "base".
+(c-lang-defconst c-operators
+ vala `((prefix "base")))
+
+;; Vala directives ?
+;; (c-lang-defconst c-opt-cpp-prefix
+;; csharp "^\\s *#.*")
+
+
+;; Vala uses the following assignment operators
+(c-lang-defconst c-assignment-operators
+ vala '("=" "*=" "/=" "%=" "+=" "-=" ">>=" "<<="
+ "&=" "^=" "|=" "++" "--"))
+
+;; This defines the primative types for Vala
+(c-lang-defconst c-primitive-type-kwds
+ vala '("void" "char" "int" "float" "double" "string"))
+
+;; The keywords that define that the following is a type, such as a
+;; class definition.
+(c-lang-defconst c-type-prefix-kwds
+ vala '("class" "interface" "struct" "enum" "signal"))
+
+;; Type modifier keywords. They appear anywhere in types, but modifiy
+;; instead create one.
+(c-lang-defconst c-type-modifier-kwds
+ vala '("const"))
+
+;; Structures that are similiar to classes.
+(c-lang-defconst c-class-decl-kwds
+ vala '("class" "interface"))
+
+;; The various modifiers used for class and method descriptions.
+(c-lang-defconst c-modifier-kwds
+ vala '("public" "partial" "private" "const" "abstract"
+ "protected" "ref" "in" "out" "static" "virtual"
+ "override" "params" "internal" "weak" "owned"
+ "unowned"))
+
+;; We don't use the protection level stuff because it breaks the
+;; method indenting. Not sure why, though.
+(c-lang-defconst c-protection-kwds
+ vala nil)
+
+;; Define the keywords that can have something following after them.
+(c-lang-defconst c-type-list-kwds
+ vala '("struct" "class" "interface" "is" "as"
+ "delegate" "event" "set" "get" "add" "remove"
+ "callback" "signal" "var" "default"))
+
+;; This allows the classes after the : in the class declartion to be
+;; fontified.
+(c-lang-defconst c-typeless-decl-kwds
+ vala '(":"))
+
+;; Sets up the enum to handle the list properly
+(c-lang-defconst c-brace-list-decl-kwds
+ vala '("enum" "errordomain"))
+
+;; We need to remove Java's package keyword
+(c-lang-defconst c-ref-list-kwds
+ vala '("using" "namespace" "construct"))
+
+;; Follow-on blocks that don't require a brace
+(c-lang-defconst c-block-stmt-2-kwds
+ vala '("for" "if" "switch" "while" "catch" "foreach" "lock"))
+
+;; Statements that break out of braces
+(c-lang-defconst c-simple-stmt-kwds
+ vala '("return" "continue" "break" "throw"))
+
+;; Statements that allow a label
+;; TODO?
+(c-lang-defconst c-before-label-kwds
+ vala nil)
+
+;; Constant keywords
+(c-lang-defconst c-constant-kwds
+ vala '("true" "false" "null"))
+
+;; Keywords that start "primary expressions."
+(c-lang-defconst c-primary-expr-kwds
+ vala '("this" "base"))
+
+;; We need to treat namespace as an outer block to class indenting
+;; works properly.
+(c-lang-defconst c-other-block-decl-kwds
+ vala '("namespace"))
+
+;; We need to include the "in" for the foreach
+(c-lang-defconst c-other-kwds
+ vala '("in" "sizeof" "typeof"))
+
+(require 'cc-awk)
+
+(c-lang-defconst c-at-vsemi-p-fn
+ vala 'c-awk-at-vsemi-p)
+
+
+(defcustom vala-font-lock-extra-types nil
+ "*List of extra types (aside from the type keywords) to recognize in Vala mode.
+Each list item should be a regexp matching a single identifier.")
+
+(defconst vala-font-lock-keywords-1 (c-lang-const c-matchers-1 vala)
+ "Minimal highlighting for Vala mode.")
+
+(defconst vala-font-lock-keywords-2 (c-lang-const c-matchers-2 vala)
+ "Fast normal highlighting for Vala mode.")
+
+(defconst vala-font-lock-keywords-3 (c-lang-const c-matchers-3 vala)
+ "Accurate normal highlighting for Vala mode.")
+
+(defvar vala-font-lock-keywords vala-font-lock-keywords-3
+ "Default expressions to highlight in Vala mode.")
+
+(defvar vala-mode-syntax-table
+ nil
+ "Syntax table used in vala-mode buffers.")
+(or vala-mode-syntax-table
+ (setq vala-mode-syntax-table
+ (funcall (c-lang-const c-make-mode-syntax-table vala))))
+
+(defvar vala-mode-abbrev-table nil
+ "Abbreviation table used in vala-mode buffers.")
+(c-define-abbrev-table 'vala-mode-abbrev-table
+ ;; Keywords that if they occur first on a line
+ ;; might alter the syntactic context, and which
+ ;; therefore should trig reindentation when
+ ;; they are completed.
+ '(("else" "else" c-electric-continued-statement 0)
+ ("while" "while" c-electric-continued-statement 0)
+ ("catch" "catch" c-electric-continued-statement 0)
+ ("finally" "finally" c-electric-continued-statement 0)))
+
+(defvar vala-mode-map (let ((map (c-make-inherited-keymap)))
+ ;; Add bindings which are only useful for Vala
+ map)
+ "Keymap used in vala-mode buffers.")
+
+;;(easy-menu-define vala-menu vala-mode-map "Vala Mode Commands"
+;; ;; Can use `vala' as the language for `c-mode-menu'
+;; ;; since its definition covers any language. In
+;; ;; this case the language is used to adapt to the
+;; ;; nonexistence of a cpp pass and thus removing some
+;; ;; irrelevant menu alternatives.
+;; (cons "Vala" (c-lang-const c-mode-menu vala)))
+
+;;; Autoload mode trigger
+(add-to-list 'auto-mode-alist '("\\.vala$" . vala-mode))
+(add-to-list 'auto-mode-alist '("\\.vapi$" . vala-mode))
+
+;; Custom variables
+(defcustom vala-mode-hook nil
+ "*Hook called by `vala-mode'."
+ :type 'hook
+ :group 'c)
+
+;;; The entry point into the mode
+;;;###autoload
+(defun vala-mode ()
+ "Major mode for editing Vala code.
+This is a simple example of a separate mode derived from CC Mode
+to support a language with syntax similar to
+C#/C/C++/ObjC/Java/IDL/Pike.
+
+The hook `c-mode-common-hook' is run with no args at mode
+initialization, then `vala-mode-hook'.
+
+Key bindings:
+\\{vala-mode-map}"
+ (interactive)
+ (kill-all-local-variables)
+ (c-initialize-cc-mode t)
+ (set-syntax-table vala-mode-syntax-table)
+ (setq major-mode 'vala-mode
+ mode-name "Vala"
+ local-abbrev-table vala-mode-abbrev-table
+ abbrev-mode t)
+ (use-local-map c-mode-map)
+ ;; `c-init-language-vars' is a macro that is expanded at compile
+ ;; time to a large `setq' with all the language variables and their
+ ;; customized values for our language.
+ (c-init-language-vars vala-mode)
+ ;; `c-common-init' initializes most of the components of a CC Mode
+ ;; buffer, including setup of the mode menu, font-lock, etc.
+ ;; There's also a lower level routine `c-basic-common-init' that
+ ;; only makes the necessary initialization to get the syntactic
+ ;; analysis and similar things working.
+ (c-common-init 'vala-mode)
+ ;;(easy-menu-add vala-menu)
+ (c-set-style "linux")
+ (setq indent-tabs-mode t)
+ (setq c-basic-offset 4)
+ (setq tab-width 4)
+ (c-toggle-auto-newline -1)
+ (c-toggle-hungry-state -1)
+ (run-hooks 'c-mode-common-hook)
+ (run-hooks 'vala-mode-hook)
+ (c-update-modeline))
+
+(provide 'vala-mode)
+
+;;; vala-mode.el ends here
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..91c6753
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+*~
+*session.*
+*\#*
+.emacs.d/ac-comphist.dat \ No newline at end of file
diff --git a/README b/README
new file mode 100644
index 0000000..538f3d5
--- /dev/null
+++ b/README
@@ -0,0 +1,7 @@
+To use these settings you need:
+ * Pyflakes
+
+To install this in Ubuntu use:
+ sudo apt-get install pyflakes
+To install this in Fedora use:
+ su -c "yum install pyflakes" \ No newline at end of file
diff --git a/install.bat b/install.bat
new file mode 100644
index 0000000..3dfeb83
--- /dev/null
+++ b/install.bat
@@ -0,0 +1,5 @@
+@echo off
+REM An install script for windows
+
+copy /Y .emacs %APPDATA%\
+copy /Y .emacs.d %APPDATA%\ \ No newline at end of file
diff --git a/install.sh b/install.sh
new file mode 100644
index 0000000..030e7a0
--- /dev/null
+++ b/install.sh
@@ -0,0 +1,9 @@
+INSTALL_BASEFILE=`readlink -f $0`
+INSTALL_BASEDIR=`dirname $INSTALL_BASEFILE`
+
+ln -sf $INSTALL_BASEDIR/.emacs $HOME/.emacs
+
+if [ -d $HOME/.emacs.d ]; then
+ rm -rf $HOME/.emacs.d
+fi
+ln -sf $INSTALL_BASEDIR/.emacs.d $HOME/ \ No newline at end of file