Add HTML versions of my init files
authorSteve Youngs <steve@sxemacs.org>
Wed, 15 Apr 2020 08:24:40 +0000 (18:24 +1000)
committerSteve Youngs <steve@sxemacs.org>
Wed, 15 Apr 2020 08:24:40 +0000 (18:24 +1000)
Signed-off-by: Steve Youngs <steve@sxemacs.org>
19 files changed:
SYinits/00-build.html [new file with mode: 0644]
SYinits/01-vars.html [new file with mode: 0644]
SYinits/02-keys.html [new file with mode: 0644]
SYinits/03-c-mode.html [new file with mode: 0644]
SYinits/04-w3.html [new file with mode: 0644]
SYinits/05-latex.html [new file with mode: 0644]
SYinits/07-html.html [new file with mode: 0644]
SYinits/08-sounds.html [new file with mode: 0644]
SYinits/09-toolbar.html [new file with mode: 0644]
SYinits/10-pkgs.html [new file with mode: 0644]
SYinits/11-cal.html [new file with mode: 0644]
SYinits/12-misc.html [new file with mode: 0644]
SYinits/13-bbdb.html [new file with mode: 0644]
SYinits/14-fonts.html [new file with mode: 0644]
SYinits/15-supercite.html [new file with mode: 0644]
SYinits/16-riece.html [new file with mode: 0644]
SYinits/17-emchat.html [new file with mode: 0644]
SYinits/index.html [new file with mode: 0755]
SYinits/init-el.html [new file with mode: 0644]

diff --git a/SYinits/00-build.html b/SYinits/00-build.html
new file mode 100644 (file)
index 0000000..9c6bd8c
--- /dev/null
@@ -0,0 +1,136 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>00-build.el</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Steve Youngs" />
+    <meta name="owner" content="steve@sxemacs.org" />
+    <style type="text/css">
+    <!--
+      body {
+        color: #ffffff;
+        background-color: #000000;
+      }
+      .comment {
+        /* font-lock-comment-face */
+        color: #87ceeb;
+      }
+
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+    -->
+    </style>
+  </head>
+  <body>
+    <pre>
+<span class="comment">;; 00-build.el --- Loads the required crap for all my init files
+</span>
+<span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
+</span>
+<span class="comment">;;     Author: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;; Maintainer: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;;    Created: &lt;2007-12-02&gt;
+;; Time-stamp: &lt;Thursday Apr  9, 2020 06:33:39 steve&gt;
+;;   Download: &lt;<a href="https://downloads.sxemacs.org/SYinits/">https://downloads.sxemacs.org/SYinits/</a>&gt;
+;;   HTMLised: &lt;<a href="https://www.sxemacs.org/SYinits/00-build.html">https://www.sxemacs.org/SYinits/00-build.html</a>&gt;
+;;   Git Repo: git clone https://git.sxemacs.org/syinit
+;;   Keywords: init, compile
+</span>
+<span class="comment">;; This file is part of SYinit
+</span>
+<span class="comment">;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;;    notice, this list of conditions and the following disclaimer.
+;;
+;; 2. Redistributions in binary form must reproduce the above copyright
+;;    notice, this list of conditions and the following disclaimer in the
+;;    documentation and/or other materials provided with the distribution.
+;;
+;; 3. Neither the name of the author nor the names of any contributors
+;;    may be used to endorse or promote products derived from this
+;;    software without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+<span class="comment">;;; Commentary:
+;;
+;;   This simply loads everything needed to compile and load my init
+;;   files.
+</span>
+<span class="comment">;;; Credits:
+;;
+;;   The HTML version of this file was created with Hrvoje Niksic's
+;;   htmlize.el which is part of the XEmacs "text-modes" package.
+;;
+</span>
+<span class="comment">;;; Todo:
+;;
+;;     
+</span>
+<span class="comment">;;; Code:
+</span>
+<span class="comment">;; This used to have a whole swag of eval-and-compile's and a tonne of
+;; vars globally-declare-boundp'd, but it would seem that my current
+;; inits are sufficiently well written to not need anything in here to
+;; get a clean init compile.  Go me!!
+</span>
+<span class="comment">;;; 00-build.el ends here
+</span></pre>
+  <!--  SXEmacs Logo -->
+    <div class="img">
+      <a href="https://www.sxemacs.org/" target="_parent">
+       <img style="padding:0px 5px 0px 0px;border:0;width:88px;height:31px"
+         src="/Images/cbsx.png"
+         title="This page was created entirely in SXEmacs"
+         alt="Created with SXEmacs" />
+      </a>
+<!--  End SXEmacs Logo -->
+<!--  Valid XHTML 1.0 -->
+      <a href="http://validator.w3.org/check?uri=https%3a%2f%2fwww.sxemacs.org%2fSYinits%2f00-build.html" target="_blank">
+       <img style="padding:0px 5px 0px 10px;border:0;width:88px;height:31px"
+         src="/Images/valid-xhtml10.png"
+         title="Valid XHTML 1.0 Transitional!"
+         alt="Valid XHTML 1.0 Transitional!" />
+      </a>
+    </div>
+<!--  End Valid XHTML 1.0 -->
+
+    <h6>Copyright &#169; 2020 Steve Youngs<br />
+     Verbatim copying and distribution is permitted in any medium,
+    providing this notice is preserved.<br />
+<!-- hhmts start -->
+Last modified: Wed Apr 15 18:12:18 AEST 2020
+<!-- hhmts end -->
+   </h6>
+
+</body>
+</html>
diff --git a/SYinits/01-vars.html b/SYinits/01-vars.html
new file mode 100644 (file)
index 0000000..2ac017d
--- /dev/null
@@ -0,0 +1,283 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>01-vars.el</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Steve Youngs" />
+    <meta name="owner" content="steve@sxemacs.org" />
+    <style type="text/css">
+    <!--
+      body {
+        color: #ffffff;
+        background-color: #000000;
+      }
+      .comment {
+        /* font-lock-comment-face */
+        color: #87ceeb;
+      }
+      .doc-string {
+        /* font-lock-doc-string-face */
+        color: #32cd32;
+      }
+      .function-name {
+        /* font-lock-function-name-face */
+        color: #ffff00;
+        font-weight: bold;
+      }
+      .keyword {
+        /* font-lock-keyword-face */
+        color: #fa8072;
+      }
+      .reference {
+        /* font-lock-reference-face */
+        color: #40e0d0;
+      }
+      .string {
+        /* font-lock-string-face */
+        color: #00cd00;
+      }
+      .variable-name {
+        /* font-lock-variable-name-face */
+        color: #ffdab9;
+      }
+
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+    -->
+    </style>
+  </head>
+  <body>
+    <pre>
+<span class="comment">;; 01-vars.el --- Various variables
+</span>
+<span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
+</span>
+<span class="comment">;;     Author: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;; Maintainer: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;;    Created: &lt;2007-12-02&gt;
+;; Time-stamp: &lt;Thursday Apr  9, 2020 06:38:48 steve&gt;
+;;   Download: &lt;<a href="https://downloads.sxemacs.org/SYinits/">https://downloads.sxemacs.org/SYinits/</a>&gt;
+;;   HTMLised: &lt;<a href="https://www.sxemacs.org/SYinits/01-vars.html">https://www.sxemacs.org/SYinits/01-vars.html</a>&gt;
+;;   Git Repo: git clone https://git.sxemacs.org/syinit
+;;   Keywords: init, compile
+</span>
+<span class="comment">;; This file is part of SYinit
+</span>
+<span class="comment">;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;;    notice, this list of conditions and the following disclaimer.
+;;
+;; 2. Redistributions in binary form must reproduce the above copyright
+;;    notice, this list of conditions and the following disclaimer in the
+;;    documentation and/or other materials provided with the distribution.
+;;
+;; 3. Neither the name of the author nor the names of any contributors
+;;    may be used to endorse or promote products derived from this
+;;    software without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+<span class="comment">;;; Commentary:
+;;
+;;   This init file sets up a few miscelaneous variables and whatnot.
+;;   If anything has to be loaded very early in the boot up I'll put
+;;   it in here because this file is loaded first.
+;;
+</span>
+<span class="comment">;;; Credits:
+;;
+;;   The HTML version of this file was created with Hrvoje Niksic's
+;;   htmlize.el which is part of the XEmacs "text-modes" package.
+;;
+</span>
+<span class="comment">;;; Todo:
+;;
+;;     
+</span>
+<span class="comment">;;; Code:
+</span>
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Keep garbage collection out of my way.
+;;
+</span>(setq gc-cons-threshold 50000000)
+
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Set default font
+</span>(<span class="keyword">defvar</span> <span class="variable-name">sydeffaces</span>
+  '(default bold bold-italic italic)
+  "<span class="doc-string">List symbols for default fonts.</span>")
+
+(mapc
+ #'(<span class="keyword">lambda</span> (font)
+     (remove-specifier (face-font font) 'global '(x default) nil))
+ sydeffaces)
+
+(<span class="keyword">progn</span>
+  (set-face-font 'default
+                 (make-font-instance
+                  "<span class="string">-xos4-terminus-medium-r-*-*-*-150-*-*-*-*-iso8859-*</span>")
+                 'global '(x default))
+  (set-face-font 'bold
+                 (make-font-instance
+                  "<span class="string">-xos4-terminus-bold-r-*-*-*-150-*-*-*-*-iso8859-*</span>")
+                 'global '(x default))
+  (set-face-font 'bold-italic
+                 (make-font-instance
+                  "<span class="string">-*-times-bold-i-*-*-*-140-*-*-*-*-iso8859-*</span>")
+                 'global '(x default))
+  (set-face-font 'italic
+                 (make-font-instance
+                  "<span class="string">-*-times-medium-i-*-*-*-140-*-*-*-*-*-*</span>")
+                 'global '(x default)))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Lossage Messages
+;; A lot of the time I'm running some very unstable code.  So I set
+;; this quite high so I can catch all the help-lossage messages.
+</span>(setq view-lossage-message-count 1000)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> SXEmacs has a sane filename for custom-file
+</span>(<span class="keyword">unless</span> (<span class="keyword">featurep</span> '<span class="reference">sxemacs</span>)
+  (setq custom-file
+        (expand-file-name "<span class="string">custom-steve.el</span>" user-init-directory))
+  (load-file custom-file))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Set the default font
+</span>(set-face-property
+ 'default
+ 'face "<span class="doc-string">-*-Terminus-medium-r-*-*-*-140-*-*-*-*-iso8859-*</span>")
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Stuff. Lots of stuff...
+</span>
+(setq-default
+ buffers-menu-grouping-function
+ 'group-buffers-menu-by-mode-then-alphabetically
+ buffers-menu-sort-function
+ 'sort-buffers-menu-by-mode-then-alphabetically
+ buffers-menu-submenus-for-groups-p t
+ case-fold-search t
+ case-replace t
+ get-frame-for-buffer-default-instance-limit nil
+ mouse-yank-at-point t
+ next-line-add-newlines nil
+ overwrite-mode nil
+ require-final-newline t
+ teach-extended-commands-p t
+ teach-extended-commands-timeout 5
+ temp-buffer-show-function 'show-temp-buffer-in-current-frame
+ zmacs-regions t)
+
+(<span class="keyword">defvar</span> <span class="variable-name">gnus-directory</span> (paths-construct-path 
+                        (list (user-home-directory) "<span class="string">Gnus</span>"))
+  "<span class="doc-string">Gnus directory.</span>")
+   
+(<span class="keyword">defvar</span> <span class="variable-name">message-directory</span> (paths-construct-path 
+                           (list (user-home-directory) "<span class="string">Gnus</span>"))
+  "<span class="doc-string">Gnus directory.</span>")
+
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Unicode shit
+;(unless (fboundp 'ucs-to-char)
+</span>(<span class="keyword">when</span> (<span class="keyword">featurep</span> '(and mule mule-ucs-autoloads))
+  <span class="comment">;; Order is important here
+</span>  (<span class="keyword">progn</span>
+    (<span class="keyword">require</span> '<span class="reference">tae</span>)
+    (<span class="keyword">require</span> '<span class="reference">un-define</span>)
+    (set-coding-priority-list '(utf-8))
+    (set-coding-category-system 'utf-8 'utf-8))
+  (and (coding-system-p (find-coding-system 'utf-8))
+       (setq-default buffer-file-coding-system
+                     (coding-system-name
+                      (find-coding-system 'utf-8)))))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Fix #'run-at-time
+;;  You get an `</span><span class="comment"><span class="reference">args-out-of-range</span></span><span class="comment">' error if you try to set a #'run-at-time
+;;  to go off in the past.  That's not as silly as it sounds, think of
+;;  things you want to run once per day.  At some point the 'time' will be
+;;  in the past for the current day.
+</span>(or (<span class="keyword">featurep</span> '<span class="reference">timer-funcs</span>)
+    (<span class="keyword">require</span> '<span class="reference">timer-funcs</span>))
+
+(<span class="keyword">defadvice</span> <span class="function-name">run-at-time</span> (before future-run-at-time first activate)
+  "<span class="doc-string">If TIME is in the past, set it for tomorrow.</span>"
+  (<span class="keyword">when</span> (stringp time)
+    (<span class="keyword">let</span> ((tspec (timer-parse-time time)))
+      (<span class="keyword">if</span> tspec
+          (<span class="keyword">progn</span>
+            (setq time
+                  (ceiling
+                   (itimer-time-difference tspec (current-time))))
+            (<span class="keyword">if</span> (&lt; time 0)
+                (setq time (+ time 86400))))))))
+   
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Here because sometimes... order important it is
+</span>(<span class="keyword">require</span> '<span class="reference">ffi-wand</span>)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*</span></span><span class="comment">
+</span>(message "<span class="doc-string">variables initialiased</span>")
+</pre>
+  <!--  SXEmacs Logo -->
+    <div class="img">
+      <a href="https://www.sxemacs.org/" target="_parent">
+       <img style="padding:0px 5px 0px 0px;border:0;width:88px;height:31px"
+         src="/Images/cbsx.png"
+         title="This page was created entirely in SXEmacs"
+         alt="Created with SXEmacs" />
+      </a>
+<!--  End SXEmacs Logo -->
+<!--  Valid XHTML 1.0 -->
+      <a href="http://validator.w3.org/check?uri=https%3a%2f%2fwww.sxemacs.org%2fSYinits%2f01-vars.html" target="_blank">
+       <img style="padding:0px 5px 0px 10px;border:0;width:88px;height:31px"
+         src="/Images/valid-xhtml10.png"
+         title="Valid XHTML 1.0 Transitional!"
+         alt="Valid XHTML 1.0 Transitional!" />
+      </a>
+    </div>
+<!--  End Valid XHTML 1.0 -->
+
+    <h6>Copyright &#169; 2020 Steve Youngs<br />
+     Verbatim copying and distribution is permitted in any medium,
+    providing this notice is preserved.<br />
+<!-- hhmts start -->
+Last modified: Wed Apr 15 18:12:00 AEST 2020
+<!-- hhmts end -->
+   </h6>
+
+</body>
+</html>
diff --git a/SYinits/02-keys.html b/SYinits/02-keys.html
new file mode 100644 (file)
index 0000000..951faed
--- /dev/null
@@ -0,0 +1,281 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>02-keys.el</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Steve Youngs" />
+    <meta name="owner" content="steve@sxemacs.org" />
+    <style type="text/css">
+    <!--
+      body {
+        color: #ffffff;
+        background-color: #000000;
+      }
+      .comment {
+        /* font-lock-comment-face */
+        color: #87ceeb;
+      }
+      .doc-string {
+        /* font-lock-doc-string-face */
+        color: #32cd32;
+      }
+      .function-name {
+        /* font-lock-function-name-face */
+        color: #ffff00;
+        font-weight: bold;
+      }
+      .keyword {
+        /* font-lock-keyword-face */
+        color: #fa8072;
+      }
+      .reference {
+        /* font-lock-reference-face */
+        color: #40e0d0;
+      }
+      .string {
+        /* font-lock-string-face */
+        color: #00cd00;
+      }
+      .variable-name {
+        /* font-lock-variable-name-face */
+        color: #ffdab9;
+      }
+
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+    -->
+    </style>
+  </head>
+  <body>
+    <pre>
+<span class="comment">;; 02-keys.el --- Keybindings
+</span>
+<span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
+</span>
+<span class="comment">;;     Author: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;; Maintainer: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;;    Created: &lt;2007-12-02&gt;
+;; Time-stamp: &lt;Thursday Apr  9, 2020 06:44:18 steve&gt;
+;;   Download: &lt;<a href="https://downloads.sxemacs.org/SYinits/">https://downloads.sxemacs.org/SYinits/</a>&gt;
+;;   HTMLised: &lt;<a href="https://www.sxemacs.org/SYinits/02-keys.html">https://www.sxemacs.org/SYinits/02-keys.html</a>&gt;
+;;   Git Repo: git clone https://git.sxemacs.org/syinit
+;;   Keywords: init, compile
+</span>
+<span class="comment">;; This file is part of SYinit
+</span>
+<span class="comment">;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;;    notice, this list of conditions and the following disclaimer.
+;;
+;; 2. Redistributions in binary form must reproduce the above copyright
+;;    notice, this list of conditions and the following disclaimer in the
+;;    documentation and/or other materials provided with the distribution.
+;;
+;; 3. Neither the name of the author nor the names of any contributors
+;;    may be used to endorse or promote products derived from this
+;;    software without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+<span class="comment">;;; Commentary:
+;;
+;;   Sets up my keybindings
+;;
+;;   BTW, there are a number of different ways to actually set a
+;;   keybinding in emacs and I honestly could not tell you which way
+;;   is best.  I don't think any one way is really any better than
+;;   any other.  I've used most (all?) of them here in this file.
+;;   Whichever format you like is the right one to use. </span><span class="comment"><span class="reference">:-</span></span><span class="comment">)
+</span>
+<span class="comment">;;; Credits:
+;;
+;;   The HTML version of this file was created with Hrvoje Niksic's
+;;   htmlize.el which is part of the XEmacs "text-modes" package.
+;;
+</span>
+<span class="comment">;;; Todo:
+;;
+;;     
+</span>
+<span class="comment">;;; Code:
+</span>
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Global key bindings
+</span>(global-set-key "<span class="doc-string">\C-xw</span>" 'what-line)
+(global-set-key [f2] 'undo)
+(global-set-key [(super tab)] 'lisp-complete-symbol)
+(global-set-key [(meta f3)] 'view-file)
+(global-set-key [f5] "<span class="doc-string">\M-w</span>")
+(global-set-key [f6] "<span class="doc-string">\C-y</span>")
+(global-set-key [f7] 'save-buffer)
+(global-set-key [f8] 'start-kbd-macro)
+(global-set-key [f9] 'end-kbd-macro)
+(global-set-key [(control f8)] 'call-last-kbd-macro)
+(global-set-key [(control f5)] 'sy-extent-kill-save)
+(global-set-key [XF86Copy] #'copy-primary-selection)
+(global-set-key [XF86Cut] #'kill-primary-selection)
+(global-set-key [XF86Paste] #'yank-clipboard-selection)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> compose-key t&#244; t&#165;p&#233; f&#252;nky &#163;&#239;ttl&#234; ch&#227;rs
+</span>(<span class="keyword">require</span> '<span class="reference">x-compose</span>)
+(global-set-key "<span class="doc-string">\C-cm</span>" compose-map)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> cursor into first line with C-pageup
+</span>(<span class="keyword">define-key</span> <span class="variable-name">global-map</span> '(control prior) 'beginning-of-buffer)
+(<span class="keyword">define-key</span> <span class="variable-name">global-map</span> '(control next) 'end-of-buffer)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Enable menubar accelerators (double-wow!)
+</span>(setq menu-accelerator-enabled 'menu-fallback)
+(setq menu-accelerator-modifiers '(super))
+(setq menu-accelerator-prefix nil)
+(<span class="keyword">define-key</span> <span class="variable-name">global-map</span> [f10] 'accelerate-menu)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Popup window with buffer list ; from XEmacs FAQ (2.61)
+</span>(<span class="keyword">defun</span> <span class="function-name">cw-build-buffers</span> ()
+  "<span class="doc-string">Popup buffer menu.</span>"
+  (interactive "<span class="string">@</span>")
+  (run-hooks 'activate-menubar-hook)
+  (popup-menu (car (find-menu-item current-menubar '("<span class="string">Buffers</span>")))))
+(global-set-key '(control !) 'cw-build-buffers)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> keymapping to resize frames
+</span>(<span class="keyword">define-key</span> <span class="variable-name">global-map</span> [(control x) (up)] #'shrink-window)
+(<span class="keyword">define-key</span> <span class="variable-name">global-map</span> [(control x) (down)]  #'enlarge-window)
+(<span class="keyword">define-key</span> <span class="variable-name">global-map</span> [(control x) (left)] #'shrink-window-horizontally)
+(<span class="keyword">define-key</span> <span class="variable-name">global-map</span> [(control x) (right)]  #'enlarge-window-horizontally)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> bind key to kill-whole-line
+</span>(global-set-key '(control ,) 'kill-entire-line)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Set C-x C-b to use ibuffer
+</span>(<span class="keyword">define-key</span> <span class="variable-name">global-map</span> [(control x) (control b)] 'ibuffer)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> OK, so just who the hell is sending those emails
+</span>(<span class="keyword">define-key</span> <span class="variable-name">global-map</span> [f12] 'from)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Bind the Euro to a key
+</span>(<span class="keyword">define-key</span> <span class="variable-name">global-map</span> "<span class="doc-string">\C-ce</span>"
+  (<span class="keyword">lambda</span> () 
+    (interactive) 
+    (insert (make-char 'latin-iso8859-15 #x24))))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Toggle in/out of eshell
+</span>(global-set-key (kbd "<span class="string">C-c s</span>") 'eshell-toggle)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Extra Mouse buttons (wheel etc)
+;;
+;;  A little bragging never hurts... SXEmacs allows you to bind up to
+;;  32 mouse buttons.  I'm not sure about GNU/Emacs, but XEmacs only
+;;  lets you bind 10 (or is it 12?).  OK, I've never seen a rat that
+;;  had 32 buttons, but you never know what these gamer kiddies will
+;;  want one day. </span><span class="comment"><span class="reference">:-</span></span><span class="comment">)
+</span>(<span class="keyword">require</span> '<span class="reference">mwheel</span>)
+(<span class="keyword">define-key</span> <span class="variable-name">global-map</span> [(button4)] 'mwheel-scroll)
+(<span class="keyword">define-key</span> <span class="variable-name">global-map</span> [(button5)] 'mwheel-scroll)
+(<span class="keyword">define-key</span> <span class="variable-name">global-map</span> [(shift button4)] 'mwheel-scroll)
+(<span class="keyword">define-key</span> <span class="variable-name">global-map</span> [(shift button5)] 'mwheel-scroll)
+(<span class="keyword">define-key</span> <span class="variable-name">global-map</span> [(button9)] 'beginning-of-buffer)
+(<span class="keyword">define-key</span> <span class="variable-name">global-map</span> [(button8)] 'end-of-buffer)
+(<span class="keyword">define-key</span> <span class="variable-name">global-map</span> [(button10)] 'recenter)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Numeric keypad
+</span>(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-divide]     [?/])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-multiply]   [?*])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-subtract]   [?-])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-add]        [?+])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-enter]     [?\r])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-decimal]    [?.])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-begin]   [begin])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-home]     [home])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-end]       [end])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-next]     [next])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-prior]   [prior])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-left]     [left])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-right]   [right])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-up]         [up])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-down]     [down])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-insert] [insert])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-delete] [delete])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-0]          [?0])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-1]          [?1])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-2]          [?2])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-3]          [?3])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-4]          [?4])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-5]          [?5])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-6]          [?6])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-7]          [?7])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-8]          [?8])
+(<span class="keyword">define-key</span> <span class="variable-name">key-translation-map</span> [kp-9]          [?9])
+<span class="comment">;</span><span class="comment"><span class="reference">:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::</span></span><span class="comment">
+</span>(message "<span class="doc-string">Key maps set successfully</span>")
+</pre>
+  <!--  SXEmacs Logo -->
+    <div class="img">
+      <a href="https://www.sxemacs.org/" target="_parent">
+       <img style="padding:0px 5px 0px 0px;border:0;width:88px;height:31px"
+         src="/Images/cbsx.png"
+         title="This page was created entirely in SXEmacs"
+         alt="Created with SXEmacs" />
+      </a>
+<!--  End SXEmacs Logo -->
+<!--  Valid XHTML 1.0 -->
+      <a href="http://validator.w3.org/check?uri=https%3a%2f%2fwww.sxemacs.org%2fSYinits%2f02-keys.html" target="_blank">
+       <img style="padding:0px 5px 0px 10px;border:0;width:88px;height:31px"
+         src="/Images/valid-xhtml10.png"
+         title="Valid XHTML 1.0 Transitional!"
+         alt="Valid XHTML 1.0 Transitional!" />
+      </a>
+    </div>
+<!--  End Valid XHTML 1.0 -->
+
+    <h6>Copyright &#169; 2020 Steve Youngs<br />
+     Verbatim copying and distribution is permitted in any medium,
+    providing this notice is preserved.<br />
+<!-- hhmts start -->
+Last modified: Wed Apr 15 18:11:41 AEST 2020
+<!-- hhmts end -->
+   </h6>
+
+</body>
+</html>
diff --git a/SYinits/03-c-mode.html b/SYinits/03-c-mode.html
new file mode 100644 (file)
index 0000000..ad72bf1
--- /dev/null
@@ -0,0 +1,211 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>03-c-mode.el</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Steve Youngs" />
+    <meta name="owner" content="steve@sxemacs.org" />
+    <style type="text/css">
+    <!--
+      body {
+        color: #ffffff;
+        background-color: #000000;
+      }
+      .comment {
+        /* font-lock-comment-face */
+        color: #87ceeb;
+      }
+      .doc-string {
+        /* font-lock-doc-string-face */
+        color: #32cd32;
+      }
+      .function-name {
+        /* font-lock-function-name-face */
+        color: #ffff00;
+        font-weight: bold;
+      }
+      .keyword {
+        /* font-lock-keyword-face */
+        color: #fa8072;
+      }
+      .reference {
+        /* font-lock-reference-face */
+        color: #40e0d0;
+      }
+      .string {
+        /* font-lock-string-face */
+        color: #00cd00;
+      }
+      .variable-name {
+        /* font-lock-variable-name-face */
+        color: #ffdab9;
+      }
+
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+    -->
+    </style>
+  </head>
+  <body>
+    <pre>
+<span class="comment">;; 03-c-mode.el --- Set up C mode
+</span>
+<span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
+</span>
+<span class="comment">;;     Author: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;; Maintainer: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;;    Created: &lt;2007-12-02&gt;
+;; Time-stamp: &lt;Thursday Apr  9, 2020 06:45:27 steve&gt;
+;;   Download: &lt;<a href="https://downloads.sxemacs.org/SYinits/">https://downloads.sxemacs.org/SYinits/</a>&gt;
+;;   HTMLised: &lt;<a href="https://www.sxemacs.org/SYinits/03-c-mode.html">https://www.sxemacs.org/SYinits/03-c-mode.html</a>&gt;
+;;   Git Repo: git clone https://git.sxemacs.org/syinit
+;;   Keywords: init, compile
+</span>
+<span class="comment">;; This file is part of SYinit
+</span>
+<span class="comment">;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;;    notice, this list of conditions and the following disclaimer.
+;;
+;; 2. Redistributions in binary form must reproduce the above copyright
+;;    notice, this list of conditions and the following disclaimer in the
+;;    documentation and/or other materials provided with the distribution.
+;;
+;; 3. Neither the name of the author nor the names of any contributors
+;;    may be used to endorse or promote products derived from this
+;;    software without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+<span class="comment">;;; Commentary:
+;;   This sets up my C programming styles.  Note, too, that with this
+;;   setup I am able to have different styles for different projects.
+;;   It is a little kludgy, but it works.
+</span>
+<span class="comment">;;; Credits:
+;;
+;;   The HTML version of this file was created with Hrvoje Niksic's
+;;   htmlize.el which is part of the XEmacs "text-modes" package.
+;;
+</span>
+<span class="comment">;;; Todo:
+;;
+;;     
+</span>
+<span class="comment">;;; Code:
+;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Defaults
+</span>(setq c-comment-leader "<span class="doc-string">  </span>")
+(setq c-default-style
+      '((c-mode . "<span class="string">linux</span>")
+        (c++-mode . "<span class="string">linux</span>")
+        (java-mode . "<span class="string">java</span>")
+        (python-mode . "<span class="string">python</span>")
+        (other . "<span class="string">gnu</span>")))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Special style for Linux source files
+</span>(<span class="keyword">defun</span> <span class="function-name">linux-c-mode</span> ()
+  "<span class="doc-string">C mode with adjusted defaults for use with the Linux kernel.
+
+Key-bindings:
+\\{c-mode-map}</span>"
+  (c-mode)
+  (c-set-style "<span class="string">linux</span>")
+  (setq mode-name "<span class="string">Linux/C</span>"))
+
+(add-to-list
+ 'auto-mode-alist '("<span class="string">^.*/linux.*/.*\\.[ch]$</span>" . linux-c-mode))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> C style for XEmacs core source files
+</span>(<span class="keyword">defun</span> <span class="function-name">xemacs-c-mode</span> ()
+  "<span class="doc-string">C mode with adjusted defaults for use with XEmacs core sources.
+
+Key-bindings:
+\\{c-mode-map}</span>"
+  (c-mode)
+  (c-set-style "<span class="string">gnu</span>")
+  (setq mode-name "<span class="string">XE/C</span>"))
+
+(add-to-list
+ 'auto-mode-alist '("<span class="string">^.*/xemacs.*/.*\\.[ch]$</span>" . xemacs-c-mode))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> C style for SXEmacs core source files
+</span>(<span class="keyword">defvar</span> <span class="variable-name">c-enable-xemacs-performance-kludge-p</span>)
+(<span class="keyword">defun</span> <span class="function-name">sxemacs-c-mode</span> ()
+  "<span class="doc-string">C mode with adjusted defaults for use with SXEmacs core sources.
+
+Key-bindings:
+\\{c-mode-map}</span>"
+  (c-mode)
+  (c-set-style "<span class="string">linux</span>")
+  (setq mode-name "<span class="string">SXE/C</span>")
+  (make-variable-buffer-local 'c-enable-xemacs-performance-kludge-p)
+  (setq c-enable-xemacs-performance-kludge-p t))
+
+(add-to-list
+ 'auto-mode-alist '("<span class="string">^.*/sxemacs.*/.*\\.[ch]$</span>" . sxemacs-c-mode))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::</span></span><span class="comment">
+</span>(message "<span class="doc-string">C mode initialised.</span>")
+</pre>
+  <!--  SXEmacs Logo -->
+    <div class="img">
+      <a href="https://www.sxemacs.org/" target="_parent">
+       <img style="padding:0px 5px 0px 0px;border:0;width:88px;height:31px"
+         src="/Images/cbsx.png"
+         title="This page was created entirely in SXEmacs"
+         alt="Created with SXEmacs" />
+      </a>
+<!--  End SXEmacs Logo -->
+<!--  Valid XHTML 1.0 -->
+      <a href="http://validator.w3.org/check?uri=https%3a%2f%2fwww.sxemacs.org%2fSYinits%2f03-c-mode.html" target="_blank">
+       <img style="padding:0px 5px 0px 10px;border:0;width:88px;height:31px"
+         src="/Images/valid-xhtml10.png"
+         title="Valid XHTML 1.0 Transitional!"
+         alt="Valid XHTML 1.0 Transitional!" />
+      </a>
+    </div>
+<!--  End Valid XHTML 1.0 -->
+
+    <h6>Copyright &#169; 2020 Steve Youngs<br />
+     Verbatim copying and distribution is permitted in any medium,
+    providing this notice is preserved.<br />
+<!-- hhmts start -->
+Last modified: Wed Apr 15 18:11:21 AEST 2020
+<!-- hhmts end -->
+   </h6>
+
+</body>
+</html>
diff --git a/SYinits/04-w3.html b/SYinits/04-w3.html
new file mode 100644 (file)
index 0000000..1898727
--- /dev/null
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>04-w3.el</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Steve Youngs" />
+    <meta name="owner" content="steve@sxemacs.org" />
+    <style type="text/css">
+    <!--
+      body {
+        color: #ffffff;
+        background-color: #000000;
+      }
+      .comment {
+        /* font-lock-comment-face */
+        color: #87ceeb;
+      }
+      .doc-string {
+        /* font-lock-doc-string-face */
+        color: #32cd32;
+      }
+      .reference {
+        /* font-lock-reference-face */
+        color: #40e0d0;
+      }
+
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+    -->
+    </style>
+  </head>
+  <body>
+    <pre>
+<span class="comment">;; 04-w3.el --- W3 Settings
+</span>
+<span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
+</span>
+<span class="comment">;;     Author: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;; Maintainer: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;;    Created: &lt;2007-12-02&gt;
+;; Time-stamp: &lt;Thursday Apr  9, 2020 06:47:51 steve&gt;
+;;   Download: &lt;<a href="https://downloads.sxemacs.org/SYinits/">https://downloads.sxemacs.org/SYinits/</a>&gt;
+;;   HTMLised: &lt;<a href="https://www.sxemacs.org/SYinits/04-w3.html">https://www.sxemacs.org/SYinits/04-w3.html</a>&gt;
+;;   Git Repo: git clone https://git.sxemacs.org/syinit
+;;   Keywords: init, compile
+</span>
+<span class="comment">;; This file is part of SYinit
+</span>
+<span class="comment">;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;;    notice, this list of conditions and the following disclaimer.
+;;
+;; 2. Redistributions in binary form must reproduce the above copyright
+;;    notice, this list of conditions and the following disclaimer in the
+;;    documentation and/or other materials provided with the distribution.
+;;
+;; 3. Neither the name of the author nor the names of any contributors
+;;    may be used to endorse or promote products derived from this
+;;    software without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+<span class="comment">;;; Commentary:
+;;
+;;   I very rarely use W3, but it does work (I'll leave the interpretation
+;;   of "work" up to you)
+;;
+</span>
+<span class="comment">;;; Credits:
+;;
+;;   The HTML version of this file was created with Hrvoje Niksic's
+;;   htmlize.el which is part of the XEmacs "text-modes" package.
+;;
+</span>
+<span class="comment">;;; Todo:
+;;
+;;     
+</span>
+<span class="comment">;;; Code:
+</span>(setq 
+ url-automatic-caching t
+ url-be-asynchronous t
+ url-keep-history t
+ url-news-use-article-mode t
+ url-personal-mail-address "<span class="doc-string">steve@steveyoungs.com</span>"
+ url-privacy-level 'none
+ url-proxy-services nil
+ w3-auto-image-alt nil
+ w3-default-homepage "<span class="doc-string">http://localhost/</span>"
+ w3-do-incremental-display t
+ w3-do-scripting t
+ w3-documentation-root "<span class="doc-string">/home/steve/documents/XEmacs/w3/</span>"
+ w3-honor-stylesheets t
+ w3-hotlist-file "<span class="doc-string">~/.url/.mosaic-hotlist-default</span>"
+ w3-java-vm-program "<span class="doc-string">/opt/jdk/jre/bin/java_vm</span>"
+ w3-latex-print-links 'footnote
+ w3-min-img-size 5
+ w3-use-menus 
+ '(file edit view go bookmark options buffers style search emacs nil help)
+ w3-use-terminal-characters t
+ w3-user-colors-take-precedence t 
+ w3-user-fonts-take-precedence nil)
+<span class="comment">;</span><span class="comment"><span class="reference">:*====================================================================</span></span><span class="comment">
+</span>(message "<span class="doc-string">W3 initialised</span>")
+</pre>
+  <!--  SXEmacs Logo -->
+    <div class="img">
+      <a href="https://www.sxemacs.org/" target="_parent">
+       <img style="padding:0px 5px 0px 0px;border:0;width:88px;height:31px"
+         src="/Images/cbsx.png"
+         title="This page was created entirely in SXEmacs"
+         alt="Created with SXEmacs" />
+      </a>
+<!--  End SXEmacs Logo -->
+<!--  Valid XHTML 1.0 -->
+      <a href="http://validator.w3.org/check?uri=https%3a%2f%2fwww.sxemacs.org%2fSYinits%2f04-w3.html" target="_blank">
+       <img style="padding:0px 5px 0px 10px;border:0;width:88px;height:31px"
+         src="/Images/valid-xhtml10.png"
+         title="Valid XHTML 1.0 Transitional!"
+         alt="Valid XHTML 1.0 Transitional!" />
+      </a>
+    </div>
+<!--  End Valid XHTML 1.0 -->
+
+    <h6>Copyright &#169; 2020 Steve Youngs<br />
+     Verbatim copying and distribution is permitted in any medium,
+    providing this notice is preserved.<br />
+<!-- hhmts start -->
+Last modified: Wed Apr 15 18:12:39 AEST 2020
+<!-- hhmts end -->
+   </h6>
+
+</body>
+</html>
diff --git a/SYinits/05-latex.html b/SYinits/05-latex.html
new file mode 100644 (file)
index 0000000..2b90582
--- /dev/null
@@ -0,0 +1,382 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>05-latex.el</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Steve Youngs" />
+    <meta name="owner" content="steve@sxemacs.org" />
+    <style type="text/css">
+    <!--
+      body {
+        color: #ffffff;
+        background-color: #000000;
+      }
+      .comment {
+        /* font-lock-comment-face */
+        color: #87ceeb;
+      }
+      .doc-string {
+        /* font-lock-doc-string-face */
+        color: #32cd32;
+      }
+      .function-name {
+        /* font-lock-function-name-face */
+        color: #ffff00;
+        font-weight: bold;
+      }
+      .keyword {
+        /* font-lock-keyword-face */
+        color: #fa8072;
+      }
+      .reference {
+        /* font-lock-reference-face */
+        color: #40e0d0;
+      }
+      .string {
+        /* font-lock-string-face */
+        color: #00cd00;
+      }
+      .variable-name {
+        /* font-lock-variable-name-face */
+        color: #ffdab9;
+      }
+
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+    -->
+    </style>
+  </head>
+  <body>
+    <pre>
+<span class="comment">;; 05-latex.el --- LaTeX Settings
+</span>
+<span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
+</span>
+<span class="comment">;;     Author: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;; Maintainer: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;;    Created: &lt;2007-12-02&gt;
+;; Time-stamp: &lt;Thursday Apr  9, 2020 06:49:13 steve&gt;
+;;   Download: &lt;<a href="https://downloads.sxemacs.org/SYinits/">https://downloads.sxemacs.org/SYinits/</a>&gt;
+;;   HTMLised: &lt;<a href="https://www.sxemacs.org/SYinits/05-latex.html">https://www.sxemacs.org/SYinits/05-latex.html</a>&gt;
+;;   Git Repo: git clone https://git.sxemacs.org/syinit
+;;   Keywords: init, compile
+</span>
+<span class="comment">;; This file is part of SYinit
+</span>
+<span class="comment">;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;;    notice, this list of conditions and the following disclaimer.
+;;
+;; 2. Redistributions in binary form must reproduce the above copyright
+;;    notice, this list of conditions and the following disclaimer in the
+;;    documentation and/or other materials provided with the distribution.
+;;
+;; 3. Neither the name of the author nor the names of any contributors
+;;    may be used to endorse or promote products derived from this
+;;    software without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+<span class="comment">;;; Commentary:
+;;
+;;   Do you remember back in the old days when you'd write a letter
+;;   on a piece of paper, stick it in an envelope, put a stamp on it
+;;   and have the postal service deliver it for you?  Well I still do
+;;   that and LaTeX is how I get it done.  At least the writing,
+;;   formatting, and printing side of it anyway.
+</span>
+<span class="comment">;;; Credits:
+;;
+;;   The HTML version of this file was created with Hrvoje Niksic's
+;;   htmlize.el which is part of the XEmacs "text-modes" package.
+;;
+</span>
+<span class="comment">;;; Todo:
+;;
+;;     
+</span>
+<span class="comment">;;; Code:
+;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Initialise aucTeX
+</span>(<span class="keyword">require</span> '<span class="reference">tex-site</span>)
+(<span class="keyword">require</span> '<span class="reference">latex</span>)
+(<span class="keyword">require</span> '<span class="reference">reftex</span>)
+(<span class="keyword">require</span> '<span class="reference">reftex-vars</span>)
+(<span class="keyword">require</span> '<span class="reference">latex-units</span>)
+(<span class="keyword">require</span> '<span class="reference">font-latex</span>)
+(<span class="keyword">require</span> '<span class="reference">latex-toolbar</span>)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> auto-mode-alist
+;; LaTeX or latex ???  It doesn't really matter because LaTeX-mode is
+;; an alias to latex-mode, I just prefer the former name and like to
+;; keep things less messy.
+;;
+;; Remove the ones set from tex-mode.el in the texinfo pkg that use
+;; latex-mode
+</span>(remove-alist 'auto-mode-alist "<span class="doc-string">\\.\\(?:sty\\|cls\\|bbl\\)\\'</span>")
+(remove-alist 'auto-mode-alist "<span class="doc-string">\\.[tT]e[xX]\\'</span>")
+(remove-alist 'auto-mode-alist "<span class="doc-string">\\.ltx\\'</span>")
+<span class="comment">;; Add them back for LaTeX-mode
+</span>(add-to-list 'auto-mode-alist '("<span class="string">\\.\\(?:sty\\|cls\\|bbl\\)\\'</span>" . LaTeX-mode))
+(add-to-list 'auto-mode-alist '("<span class="string">\\.[tT]e[xX]\\'</span>" . LaTeX-mode))
+(add-to-list 'auto-mode-alist '("<span class="string">\\.ltx\\'</span>" . LaTeX-mode))
+(add-to-list 'auto-mode-alist '("<span class="string">\\.drv\\'</span>" . LaTeX-mode))
+<span class="comment">;; doctex
+</span>(add-to-list 'auto-mode-alist '("<span class="string">\\.dtx\\'</span>" . doctex-mode))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Shutup the byte-compiler
+</span>(<span class="keyword">defvar</span> <span class="variable-name">ispell-extra-args</span>)
+(<span class="keyword">defvar</span> <span class="variable-name">LaTeX-mode-map</span>)
+(<span class="keyword">defvar</span> <span class="variable-name">TeX-shell</span>)
+
+(setq
+ LaTeX-float nil
+ TeX-arg-cite-note-p t
+ TeX-arg-footnote-number-p t
+ TeX-arg-item-label-p nil
+ TeX-auto-parse-length 999999999
+ TeX-auto-private
+ (file-name-as-directory
+  (expand-file-name "<span class="string">documents/TeXauto</span>" (getenv "<span class="string">HOME</span>")))
+ TeX-auto-save t
+ TeX-debug-bad-boxes nil
+ TeX-macro-private
+ (file-name-as-directory
+  (expand-file-name "<span class="string">documents/TeX</span>" (getenv "<span class="string">HOME</span>")))
+ TeX-outline-extra nil
+ TeX-parse-self t
+ TeX-printer-default "<span class="doc-string">Single Colour</span>"
+ TeX-printer-list
+ '(("<span class="string">Duplex Colour</span>" "<span class="string">dvips -f %s|lpr -PDuplex_Colour</span>" "<span class="string">lpq -PDuplex_Colour</span>")
+   ("<span class="string">Single Colour</span>" "<span class="string">dvips -f %s|lpr -PSingle_Colour</span>" "<span class="string">lpq -PSingle_Colour</span>")
+   ("<span class="string">Duplex Grey</span>" "<span class="string">dvips -f %s|lpr -PDuplex_Grey</span>" "<span class="string">lpq -PDuplex_Grey</span>")
+   ("<span class="string">Single Grey</span>" "<span class="string">dvips -f %s|lpr -PSingle_Grey</span>" "<span class="string">lpq -PSingle_Grey</span>")
+   ("<span class="string">Photo</span>" "<span class="string">dvips -f %s|lpr -PPhoto</span>" "<span class="string">lpq -PPhoto</span>")
+   ("<span class="string">DL Envelope</span>" "<span class="string">dvips -f %s|lpr -PDL_Envelope</span>" "<span class="string">lpq -PDL_Envelope</span>")))
+
+(setq-default LaTeX-default-options "<span class="doc-string">a4paper,12pt</span>")
+(setq-default TeX-master t)
+
+(setq TeX-view-style '(("<span class="string">^a5$</span>" "<span class="string">xdvi -thorough %d -paper a5</span>")
+                       ("<span class="string">^landscape$</span>" "<span class="string">xdvi -thorough %d -paper a4r -s 4</span>")
+                       ("<span class="string">.</span>" "<span class="string">xdvi -thorough %d</span>")))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Count words in a TeX text
+</span>(<span class="keyword">defun</span> <span class="function-name">sds-word-count</span> (start end)
+  "<span class="doc-string">Count lines/words/characters from START to END.
+Replacement for count-lines-region.</span>"
+  (interactive "<span class="string">r</span>")
+  (<span class="keyword">let</span> ((ost (syntax-table)) 
+        (nst (copy-syntax-table)))
+    (modify-syntax-entry ?_ "<span class="string">w</span>" nst)
+    (modify-syntax-entry ?- "<span class="string">w</span>" nst)
+    (<span class="keyword">save-excursion</span>
+      (<span class="keyword">save-restriction</span>
+        (narrow-to-region start end)
+        (goto-char (min start end))
+        (<span class="keyword">unwind-protect</span>
+            (<span class="keyword">progn</span> (set-syntax-table nst)
+                   (message 
+                    "<span class="string">Region (%d to %d) has: %d lines; %d words; %d characters.</span>"
+                             start end (count-lines start end)
+                             (string-to-number (how-many "<span class="string">\\&lt;</span>"))
+                             (- end start)))
+          (set-syntax-table ost))))))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment">  RefTeX Minor Mode 
+</span>
+<span class="comment">;; Turn on RefTeX Minor Mode for all LaTeX files
+</span>(<span class="keyword">autoload</span> 'reftex-mode     "<span class="doc-string">reftex</span>" "<span class="doc-string">RefTeX Minor Mode</span>" t)
+(<span class="keyword">autoload</span> 'turn-on-reftex  "<span class="doc-string">reftex</span>" "<span class="doc-string">RefTeX Minor Mode</span>" nil)
+(<span class="keyword">autoload</span> 'reftex-citation "<span class="doc-string">reftex-cite</span>" "<span class="doc-string">Make citation</span>" nil)
+
+<span class="comment">;: RefTeX is a minor mode with distinct support for \ref, \label and
+;: \cite commands in (multi-file) LaTeX documents.
+</span>(setq 
+ reftex-default-label-alist-entries
+ '(Sideways AMSTeX amsmath endnotes fancybox floatfig longtable
+            picinpar rotating sidecap subfigure supertab wrapfig LaTeX)
+ reftex-enable-partial-scans t
+ reftex-extra-bindings t
+ reftex-guess-label-type t
+ reftex-initialize-temporary-buffers t
+ reftex-insert-label-flags '(t t)
+ reftex-keep-temporary-buffers t
+ reftex-label-alist 
+ '((nil ?s nil nil nil ("<span class="string">Capital</span>" "<span class="string">Cap.</span>" "<span class="string">Section</span>" "<span class="string">Part</span>") -3)
+   (nil ?e nil nil nil ("<span class="string">Equation</span>" "<span class="string">Eq.</span>") -3)
+   (nil ?t nil nil nil ("<span class="string">Table</span>") -3)
+   (nil ?f nil nil nil ("<span class="string">Figure</span>" "<span class="string">Illustration</span>" "<span class="string">Ill.</span>") -3)
+   (nil ?n nil nil nil ("<span class="string">Comment</span>") -3)
+   (nil ?i nil nil nil ("<span class="string">Point</span>") -3))
+ reftex-label-menu-flags '(t t t t t t t t)
+ reftex-plug-into-AUCTeX t
+ reftex-save-parse-info t
+ reftex-toc-follow-mode t
+ reftex-toc-include-labels t
+ reftex-use-multiple-selection-buffers t
+ reftex-vref-is-default t)
+
+(<span class="keyword">define-key</span> <span class="variable-name">reftex-mode-map</span> [(shift button=)]
+  'reftex-mouse-view-crossref)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Index support
+;;When writing a document with an index you will probably define
+;;additional macros which make entries into the index.  Let's look at an
+;;example.
+;;     \newcommand{\ix}[1]{#1\index{#1}}
+;;     \newcommand{\nindex}[1]{\textit{#1}\index[name]{#1}}
+</span>(setq reftex-index-macros '(("<span class="string">\\ix{*}</span>" "<span class="string">idx</span>" ?x "" nil nil)
+                            ("<span class="string">\\nindex{*}</span>" "<span class="string">name</span>" ?n "" nil nil)
+                            index))
+
+(<span class="keyword">defun</span> <span class="function-name">return-created-string</span> ()
+  "<span class="doc-string">Return a \"Created:\" string.</span>"
+  (<span class="keyword">let</span> ((time (current-time-string)))
+    (concat "<span class="string">Created at: </span>"
+            (substring time 0 20)
+            (nth 1 (current-time-zone))
+            "<span class="string"> </span>"
+            (substring time -4) "<span class="string"> </span>")))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;* Hooks.
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-LaTeX-toolbar</span> ()
+  (interactive)
+  (set-specifier left-toolbar-width (cons (current-buffer) 32))
+  (latex-toolbar-install))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-LaTeX-mode-hook</span> ()
+  (turn-on-auto-fill)
+  (setq TeX-shell "<span class="string">/bin/zsh</span>")
+  (make-local-variable 'ispell-extra-args)
+  (push "<span class="string">-t</span>" ispell-extra-args)
+  (turn-on-reftex)
+  (add-to-list 'TeX-command-list
+               '("<span class="string">xpdf</span>" "<span class="string">xpdf %s.pdf</span>" TeX-run-silent t nil))
+  (add-to-list 'TeX-command-list
+               '("<span class="string">gv</span>" "<span class="string">gv %s.ps</span>" TeX-run-silent t nil))
+  (add-to-list 'TeX-command-list
+               '("<span class="string">pdflatex</span>" "<span class="string">pdflatex -interaction=nonstopmode %t</span>"
+                 TeX-run-command nil t))
+  (<span class="keyword">when</span> (device-on-window-system-p)
+    (outl-mouse-minor-mode 1)
+    <span class="comment">;; I can't get my extra toolbar to display from the hook, I don't
+</span>    <span class="comment">;; yet know why, so instead I bind `</span><span class="comment"><span class="reference">S-H-t</span></span><span class="comment">' locally to load it.
+</span>    (local-set-key [(super hyper t)] #'sy-LaTeX-toolbar)))
+
+(add-hook 'LaTeX-mode-hook #'sy-LaTeX-mode-hook 'append)
+
+(setq LaTeX-section-hook
+      '(LaTeX-section-heading
+        LaTeX-section-title
+        LaTeX-section-toc
+        LaTeX-section-section
+        LaTeX-section-label))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Texinfo
+;; Jumping through hoops to ensure that we DO NOT get the AUCTeX
+;; tex-info.  The texinfo.el from the "texinfo" (S)XEmacs package is
+;; older, but far, far, superior.  Honestly, the AUCTeX / GNU people
+;; have no idea what they're missing.
+</span>(<span class="keyword">eval-after-load</span> 'tex-info
+  (<span class="keyword">progn</span>
+    (delq 'texinfo-mode TeX-modes)
+    (defalias 'texinfo-mode #'ignore)
+    (<span class="keyword">require</span> '<span class="reference">texinfo</span>)))
+
+(set-face-parent 'texinfo-heading-face 'font-lock-function-name-face)
+
+<span class="comment">;; Perdy colours!
+</span>(setq texinfo-font-lock-keywords
+      `(("<span class="string">@\\([a-zA-Z]+\\|[^ \t\n]\\)</span>" 1 font-lock-keyword-face) <span class="comment">;commands
+</span>        ("<span class="string">^\\*\\([^\n:]*\\)</span>" 1 font-lock-function-name-face t) <span class="comment">;menu items
+</span>        ("<span class="string">@\\(emph\\|i\\|sc\\){\\([^}]+\\)</span>" 2 'italic)
+        ("<span class="string">@\\(strong\\|b\\){\\([^}]+\\)</span>" 2 'bold)
+        ("<span class="string">@\\(kbd\\|key\\|url\\|uref\\){\\([^}]+\\)</span>" 2 font-lock-string-face)
+        ("<span class="string">@\\(file\\|email\\){\\([^}]+\\)</span>" 2 font-lock-string-face keep)
+        ("<span class="string">@\\(samp\\|code\\|var\\|math\\|env\\|command\\|option\\){\\([^}]+\\)</span>"
+         2 font-lock-variable-name-face keep)
+        ("<span class="string">@\\(cite\\|x?ref\\|pxref\\|dfn\\|inforef\\){\\([^}]+\\)</span>"
+         2 font-lock-reference-face) <span class="comment">;; #### XEmacs change
+</span>        ("<span class="string">@\\(anchor\\){\\([^}]+\\)</span>" 2 font-lock-type-face)
+        ("<span class="string">@\\(dmn\\|acronym\\|value\\){\\([^}]+\\)</span>" 2 font-lock-builtin-face)
+        ("<span class="string">@\\(end\\|itemx?\\) +\\(.+\\)</span>" 2 font-lock-keyword-face keep)
+        (,(concat "<span class="string">^@\\(</span>" (regexp-opt (mapcar 'car texinfo-section-list) t)
+                  "<span class="string">\\)\\(.*\n\\)</span>") 3 texinfo-heading-face t)
+        ("<span class="string">@c\\(omment\\)? \\(.*$\\)</span>" 2 font-lock-comment-face)
+        ("<span class="string">@node \\(.*$\\)</span>" 1 font-lock-warning-face)
+        ("<span class="string">^@[cfvkpt]index \\(.*$\\)</span>" 1 font-lock-variable-name-face)))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-texinfo-menu</span> ()
+  (easy-menu-add texinfo-mode-menu))
+
+(add-hook 'texinfo-mode-hook #'sy-texinfo-menu)
+(add-hook 'texinfo-mode-hook #'font-lock-mode)
+<span class="comment">;</span><span class="comment"><span class="reference">:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*</span></span><span class="comment">
+</span>(message "<span class="doc-string">LaTeX initialised</span>")
+</pre>
+  <!--  SXEmacs Logo -->
+    <div class="img">
+      <a href="https://www.sxemacs.org/" target="_parent">
+       <img style="padding:0px 5px 0px 0px;border:0;width:88px;height:31px"
+         src="/Images/cbsx.png"
+         title="This page was created entirely in SXEmacs"
+         alt="Created with SXEmacs" />
+      </a>
+<!--  End SXEmacs Logo -->
+<!--  Valid XHTML 1.0 -->
+      <a href="http://validator.w3.org/check?uri=https%3a%2f%2fwww.sxemacs.org%2fSYinits%2f05-latex.html" target="_blank">
+       <img style="padding:0px 5px 0px 10px;border:0;width:88px;height:31px"
+         src="/Images/valid-xhtml10.png"
+         title="Valid XHTML 1.0 Transitional!"
+         alt="Valid XHTML 1.0 Transitional!" />
+      </a>
+    </div>
+<!--  End Valid XHTML 1.0 -->
+
+    <h6>Copyright &#169; 2020 Steve Youngs<br />
+     Verbatim copying and distribution is permitted in any medium,
+    providing this notice is preserved.<br />
+<!-- hhmts start -->
+Last modified: Wed Apr 15 18:12:55 AEST 2020
+<!-- hhmts end -->
+   </h6>
+
+</body>
+</html>
diff --git a/SYinits/07-html.html b/SYinits/07-html.html
new file mode 100644 (file)
index 0000000..6efbdb6
--- /dev/null
@@ -0,0 +1,394 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>07-html.el</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Steve Youngs" />
+    <meta name="owner" content="steve@sxemacs.org" />
+    <style type="text/css">
+    <!--
+      body {
+        color: #ffffff;
+        background-color: #000000;
+      }
+      .comment {
+        /* font-lock-comment-face */
+        color: #87ceeb;
+      }
+      .doc-string {
+        /* font-lock-doc-string-face */
+        color: #32cd32;
+      }
+      .function-name {
+        /* font-lock-function-name-face */
+        color: #ffff00;
+        font-weight: bold;
+      }
+      .keyword {
+        /* font-lock-keyword-face */
+        color: #fa8072;
+      }
+      .reference {
+        /* font-lock-reference-face */
+        color: #40e0d0;
+      }
+      .string {
+        /* font-lock-string-face */
+        color: #00cd00;
+      }
+      .type {
+        /* font-lock-type-face */
+        color: #1e90ff;
+      }
+      .variable-name {
+        /* font-lock-variable-name-face */
+        color: #ffdab9;
+      }
+
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+    -->
+    </style>
+  </head>
+  <body>
+    <pre>
+<span class="comment">;; 07-html-sy.el --- HTML settings
+</span>
+<span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
+</span>
+<span class="comment">;;     Author: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;; Maintainer: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;;    Created: &lt;2007-12-02&gt;
+;; Time-stamp: &lt;Wednesday Apr 15, 2020 18:03:47 steve&gt;
+;;   Download: &lt;<a href="https://downloads.sxemacs.org/SYinits/">https://downloads.sxemacs.org/SYinits/</a>&gt;
+;;   HTMLised: &lt;<a href="https://www.sxemacs.org/SYinits/07-html.html">https://www.sxemacs.org/SYinits/07-html.html</a>&gt;
+;;   Git Repo: git clone https://git.sxemacs.org/syinit
+;;   Keywords: init, compile
+</span>
+<span class="comment">;; This file is part of SYinit
+</span>
+<span class="comment">;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;;    notice, this list of conditions and the following disclaimer.
+;;
+;; 2. Redistributions in binary form must reproduce the above copyright
+;;    notice, this list of conditions and the following disclaimer in the
+;;    documentation and/or other materials provided with the distribution.
+;;
+;; 3. Neither the name of the author nor the names of any contributors
+;;    may be used to endorse or promote products derived from this
+;;    software without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+<span class="comment">;;; Commentary:
+;;
+;;   Sets up things for writing HTML.
+</span>
+<span class="comment">;;; Credits:
+;;
+;;   The HTML version of this file was created with Hrvoje Niksic's
+;;   htmlize.el which is part of the XEmacs "text-modes" package.
+;;
+</span>
+<span class="comment">;;; Todo:
+;;
+;;     
+</span>
+<span class="comment">;;; Code:
+;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> General HTML settings.
+</span>(setq
+ html-helper-htmldtd-version
+ "<span class="doc-string">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;
+&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
+ \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"&gt;\n</span>"
+ html-helper-use-expert-menu t
+ hm--html-automatic-create-modified-line t
+ hm--html-automatic-update-modified-line t
+ hm--html-changed-comment-prefix "<span class="doc-string">Changed with SXEmacs, by: </span>"
+ hm--html-created-comment-prefix "<span class="doc-string">Created with SXEmacs, by: </span>"
+ hm--html-expert t
+ hm--html-html-doctype-version
+ "<span class="doc-string">\"-//W3C//DTD XHTML 1.0 Transitional//EN\"
+ \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"</span>"
+ hm--html-log-date-format "<span class="doc-string">%y-%m-%d</span>"
+ hm--html-template-dir 
+ (file-name-as-directory 
+  (expand-file-name "<span class="string">templates</span>"
+                    (locate-data-directory "<span class="string">hm--html-menus</span>")))
+ hm--html-frame-template-file 
+ (expand-file-name "<span class="string">frame.html.tmpl</span>" hm--html-template-dir)
+ hm--html-title-date-format "<span class="doc-string">%y-%m-%d</span>"
+ hm--html-username "<span class="doc-string">Steve Youngs</span>"
+ html-sigusr1-signal-value 10)
+
+<span class="comment">;; SGML stuff.
+</span>(setq
+ sgml-auto-activate-dtd t
+ sgml-live-element-indicator t
+ sgml-validate-command "<span class="doc-string">onsgmls -s -m  %s %s</span>")
+
+(<span class="keyword">defvar</span> <span class="variable-name">sy-sgml-dirs</span>
+  (directory-files-recur "<span class="string">/usr/share/sgml</span>" 'full nil nil 'subdir)
+  "<span class="doc-string">List of directories for `</span><span class="doc-string"><span class="reference">sgml-system-path</span></span><span class="doc-string">'.</span>")
+
+(setq sgml-system-path
+      (append '("<span class="string">.</span>" 
+                "<span class="string">/usr/share/sxemacs/xemacs-packages/etc/psgml-dtds/</span>")
+              sy-sgml-dirs))
+
+(<span class="keyword">autoload</span> 'html-mode "<span class="doc-string">psgml-html</span>" "<span class="doc-string">Load psgml-html-mode</span>" t)
+(<span class="keyword">autoload</span> 'css-mode "<span class="doc-string">css-mode</span>")
+
+(add-hook 'html-mode-hook #'hm--html-minor-mode)
+(<span class="keyword">eval-when-compile</span> (defvar ispell-extra-args))
+(add-hook 'html-mode-hook
+          #'(<span class="keyword">lambda</span> ()
+              (make-local-variable 'ispell-extra-args)
+              (push "<span class="string">-H</span>" ispell-extra-args)))
+(add-hook 'html-helper-timestamp-hook #'html-helper-default-insert-timestamp)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Hrvoje Niksic's htmlize
+;;
+;;  `</span><span class="comment"><span class="reference">htmlize.el</span></span><span class="comment">' comes with the "text-modes" SXEmacs package.
+;;
+;;  `</span><span class="comment"><span class="reference">htmlize.el</span></span><span class="comment">' is a lovely piece of code for converting Emacs buffers
+;;  into HTML.  The default settings should be fine for most people most
+;;  of the time in most situations.  But, by now, I'm sure that you've
+;;  come to the realisation that I don't fit into that category.  So
+;;  lets hack... </span><span class="comment"><span class="reference">:-</span></span><span class="comment">)
+</span>(<span class="keyword">eval-and-compile</span>
+  (<span class="keyword">require</span> '<span class="reference">htmlize</span>))
+
+<span class="comment">;; Force XHTML 1.0 Transitional
+</span>(<span class="keyword">defun</span> <span class="function-name">htmlize-default-doctype</span> ()
+  nil
+  "<span class="doc-string">&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
+ \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"&gt;</span>")
+
+<span class="comment">;; File-local variables can cause problems so this advice simply
+;; disables them when htmlize runs.
+</span>(<span class="keyword">defadvice</span> <span class="function-name">htmlize-buffer</span> (around nolocals (<span class="type">&amp;rest</span> args) activate)
+  "<span class="doc-string">Turn off file local variables during htmlize-buffer.</span>"
+  (<span class="keyword">let</span> ((enable-local-variables nil)
+        buf)
+    (setq buf ad-do-it)
+    (<span class="keyword">when</span> (interactive-p) (switch-to-buffer buf))))
+
+<span class="comment">;; By default htmlize would turn 'file.el' into 'file.el.html', I
+;; prefer that it turned it into 'file.html'.  That's what this advice
+;; does.
+</span>(<span class="keyword">defadvice</span> <span class="function-name">htmlize-make-file-name</span> (before filename activate)
+  "<span class="doc-string">Prefer filenames \"file.ext\" -&gt; \"file.html\".</span>"
+  (setq file (file-name-sans-extension file)))
+
+<span class="comment">;; This function, run from `</span><span class="comment"><span class="reference">htmlize-after-hook</span></span><span class="comment">' lets me embed HTML
+;; comments inside normal source comments and also allows me to set up
+;; relative hyperlinks.
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-htmlize-set-links</span> ()
+  "<span class="doc-string">Function run from `</span><span class="doc-string"><span class="reference">htmlize-after-hook</span></span><span class="doc-string">'.
+
+It takes care of any relative hyperlinks and also dequotes any HTML
+comments that were incorrectly quoted.
+
+Relative hyperlinks need to be prepared in a particular way in the
+file that is to be converted to HTML.  For example, in an emacs lisp
+file you might see:
+
+    Get the latest rls=/src/foo.el;rld=version here;rle.
+
+Which would be converted to:
+
+    Get the latest &lt;a href=\"/src/foo.el\"&gt;version here&lt;/a&gt;.</span>"
+  <span class="comment">;; LOL, we actually need to _NOT_ do it in _this_ file so the doc
+</span>  <span class="comment">;; string for this function looks right.
+</span>  (<span class="keyword">unless</span> (string-match "<span class="string">07-html</span>" (buffer-name htmlbuf))
+    (<span class="keyword">save-excursion</span>
+      (goto-char (point-min))
+      (mapcar
+       '(<span class="keyword">lambda</span> (x) (<span class="keyword">save-excursion</span> (eval x)))
+       '((replace-string "<span class="string">rls=</span>" "<span class="string">&lt;a href=\"</span>")
+         (replace-string "<span class="string">;rld=</span>" "<span class="string">\"&gt;</span>")
+         (replace-string "<span class="string">;rle</span>" "<span class="string">&lt;/a&gt;</span>")
+         (replace-string "<span class="string">&amp;lt;!--</span>" "<span class="string">&lt;!--</span>")
+         (replace-string "<span class="string">--&amp;gt;</span>" "<span class="string">--&gt;</span>"))))))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-htmlize-add-xmlns</span> ()
+  "<span class="doc-string">Adds a xmlns property to the html tag.
+
+Because we are trying to output XHTML we need to add the xmlns to the
+html tag.  Done via `</span><span class="doc-string"><span class="reference">htmlize-after-hook</span></span><span class="doc-string">'.</span>"
+  (<span class="keyword">save-excursion</span>
+    (goto-char (point-min))
+    (re-search-forward "<span class="string">&lt;html&gt;</span>" nil t)
+    (replace-match
+     "<span class="string">&lt;html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\"&gt;</span>")))
+
+<span class="comment">;; I know that the pages generated by `</span><span class="comment"><span class="reference">htmlize.el</span></span><span class="comment">' are valid HTML and
+;; are created by SXEmacs.  So I announce the fact by adding the appropriate
+;; logos to the bottom of the page, together with a copyright notice.  This
+;; is the raw HTML for that.
+;; Used to have valid CSS as well but that is way too much mucking
+;; about to get the validator to work from within an iframe.  In case
+;; you are wondering, the CSS produced from htmlize is definitely
+;; valid.
+;; &lt;a href=\"http://jigsaw.w3.org/css-validator/check/referer\" target=\"_blank\"&gt;
+;;   &lt;img style=\"padding:0px 0px 0px 5px;border:0;width:88px;height:31px\"
+;;     src=\"/Images/vcss.png\"
+;;     title=\"Valid CSS!\" alt=\"Valid CSS!\" /&gt;
+;; &lt;/a&gt;
+</span>(<span class="keyword">defvar</span> <span class="variable-name">sy-htmlize-appendix</span>
+  (concat "<span class="string">&lt;!--  SXEmacs Logo --&gt;
+    &lt;div class=\"img\"&gt;
+      &lt;a href=\"https://www.sxemacs.org/\" target=\"_parent\"&gt;
+        &lt;img style=\"padding:0px 5px 0px 0px;border:0;width:88px;height:31px\"
+          src=\"/Images/cbsx.png\"
+          title=\"This page was created entirely in SXEmacs\"
+          alt=\"Created with SXEmacs\" /&gt;
+      &lt;/a&gt;
+&lt;!--  End SXEmacs Logo --&gt;
+&lt;!--  Valid XHTML 1.0 --&gt;
+      &lt;a href=\"http://validator.w3.org/check?uri=</span>" "<span class="string">%s</span>" "<span class="string">\" target=\"_blank\"&gt;
+       &lt;img style=\"padding:0px 5px 0px 10px;border:0;width:88px;height:31px\"
+          src=\"/Images/valid-xhtml10.png\"
+          title=\"Valid XHTML 1.0 Transitional!\"
+          alt=\"Valid XHTML 1.0 Transitional!\" /&gt;
+      &lt;/a&gt;
+    &lt;/div&gt;
+&lt;!--  End Valid XHTML 1.0 --&gt;
+
+    &lt;h6&gt;Copyright &amp;#169; </span>"
+          (format-time-string "<span class="string">%Y</span>") "<span class="string"> Steve Youngs&lt;br /&gt;
+     Verbatim copying and distribution is permitted in any medium,
+    providing this notice is preserved.&lt;br /&gt;
+&lt;!-- hhmts start --&gt;
+&lt;!-- hhmts end --&gt;
+   &lt;/h6&gt;
+
+</span>"
+))
+
+<span class="comment">;; Appends the above to each page.  Run from `</span><span class="comment"><span class="reference">htmlize-after-hook</span></span><span class="comment">'.
+</span>(<span class="keyword">autoload</span> 'url-hexify-string "<span class="doc-string">url-util</span>")
+(<span class="keyword">defun</span> <span class="function-name">sy-htmlize-append</span> ()
+  "<span class="doc-string">Append some things to the end of files produced by `</span><span class="doc-string"><span class="reference">htmlize.el</span></span><span class="doc-string">'.</span>"
+  (<span class="keyword">let</span> ((html (url-hexify-string
+               (concat "<span class="string">https://www.sxemacs.org/SYinits/</span>"
+                       (buffer-name)))))
+    (goto-char (point-max))
+    (re-search-backward "<span class="string">&lt;/body&gt;</span>" nil t)
+    (insert (format sy-htmlize-appendix html))))
+
+<span class="comment">;; Set a couple of basic things.
+</span>(setq
+ htmlize-html-charset nil
+ htmlize-html-major-mode 'html-mode
+ htmlize-head-tags
+ "<span class="doc-string">&lt;meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /&gt;
+    &lt;meta name=\"author\" content=\"Steve Youngs\" /&gt;
+    &lt;meta name=\"owner\" content=\"steve@sxemacs.org\" /&gt;
+</span>")
+
+(setq htmlize-hyperlink-style "<span class="doc-string">
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+</span>")
+
+<span class="comment">;; Hooks
+</span>(<span class="keyword">defvar</span> <span class="variable-name">sy-htmlize-this-file</span> nil
+  "<span class="doc-string">The name of the file we htmlize'd.</span>")
+(<span class="keyword">defun</span> <span class="function-name">sy-htmlize-before-hook</span> ()
+  "<span class="doc-string">Prepares the buffer for htmlising.
+Turns off howm-mode as it can play havoc with the font-locking, and we
+force a fontify of the buffer.</span>"
+  (setq sy-htmlize-this-file (buffer-file-name))
+  (and howm-mode (howm-mode 0))
+  (font-lock-fontify-buffer))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-htmlize-after-hook</span> ()
+  (sy-htmlize-set-links)
+  (sy-htmlize-append)
+  (sy-htmlize-add-xmlns)
+  (<span class="keyword">with-current-buffer</span> (get-file-buffer sy-htmlize-this-file)
+    (normal-mode)) <span class="comment">; Will turn howm-mode back on if it was off
+</span>  (setq sy-htmlize-this-file nil))
+
+(add-hook 'htmlize-before-hook #'sy-htmlize-before-hook)
+(add-hook 'htmlize-after-hook #'sy-htmlize-after-hook)
+<span class="comment">;</span><span class="comment"><span class="reference">:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*</span></span><span class="comment">
+</span>(message "<span class="doc-string">HTML settings initialised</span>")
+</pre>
+  <!--  SXEmacs Logo -->
+    <div class="img">
+      <a href="https://www.sxemacs.org/" target="_parent">
+       <img style="padding:0px 5px 0px 0px;border:0;width:88px;height:31px"
+         src="/Images/cbsx.png"
+         title="This page was created entirely in SXEmacs"
+         alt="Created with SXEmacs" />
+      </a>
+<!--  End SXEmacs Logo -->
+<!--  Valid XHTML 1.0 -->
+      <a href="http://validator.w3.org/check?uri=https%3a%2f%2fwww.sxemacs.org%2fSYinits%2f07-html.html" target="_blank">
+       <img style="padding:0px 5px 0px 10px;border:0;width:88px;height:31px"
+         src="/Images/valid-xhtml10.png"
+         title="Valid XHTML 1.0 Transitional!"
+         alt="Valid XHTML 1.0 Transitional!" />
+      </a>
+    </div>
+<!--  End Valid XHTML 1.0 -->
+
+    <h6>Copyright &#169; 2020 Steve Youngs<br />
+     Verbatim copying and distribution is permitted in any medium,
+    providing this notice is preserved.<br />
+<!-- hhmts start -->
+Last modified: Wed Apr 15 18:13:12 AEST 2020
+<!-- hhmts end -->
+   </h6>
+
+</body>
+</html>
diff --git a/SYinits/08-sounds.html b/SYinits/08-sounds.html
new file mode 100644 (file)
index 0000000..01c420f
--- /dev/null
@@ -0,0 +1,172 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>08-sounds.el</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Steve Youngs" />
+    <meta name="owner" content="steve@sxemacs.org" />
+    <style type="text/css">
+    <!--
+      body {
+        color: #ffffff;
+        background-color: #000000;
+      }
+      .comment {
+        /* font-lock-comment-face */
+        color: #87ceeb;
+      }
+      .keyword {
+        /* font-lock-keyword-face */
+        color: #fa8072;
+      }
+      .reference {
+        /* font-lock-reference-face */
+        color: #40e0d0;
+      }
+      .string {
+        /* font-lock-string-face */
+        color: #00cd00;
+      }
+
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+    -->
+    </style>
+  </head>
+  <body>
+    <pre>
+<span class="comment">;; 08-sounds.el --- Sound set up
+</span>
+<span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
+</span>
+<span class="comment">;;     Author: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;; Maintainer: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;;    Created: &lt;2007-12-02&gt;
+;; Time-stamp: &lt;Thursday Apr  9, 2020 07:39:34 steve&gt;
+;;   Download: &lt;<a href="https://downloads.sxemacs.org/SYinits">https://downloads.sxemacs.org/SYinits</a>&gt;
+;;   HTMLised: &lt;<a href="https://www.sxemacs.org/SYinits/08-sounds.html">https://www.sxemacs.org/SYinits/08-sounds.html</a>&gt;
+;;   Git Repo: git clone https://git.sxemacs.org/syinit
+;;   Keywords: init, compile
+</span>
+<span class="comment">;; This file is part of SYinit
+</span>
+<span class="comment">;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;;    notice, this list of conditions and the following disclaimer.
+;;
+;; 2. Redistributions in binary form must reproduce the above copyright
+;;    notice, this list of conditions and the following disclaimer in the
+;;    documentation and/or other materials provided with the distribution.
+;;
+;; 3. Neither the name of the author nor the names of any contributors
+;;    may be used to endorse or promote products derived from this
+;;    software without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+<span class="comment">;;; Commentary:
+;;
+;;   Just sets up sound stuff.
+;;
+</span>
+<span class="comment">;;; Credits:
+;;
+;;   The HTML version of this file was created with Hrvoje Niksic's
+;;   htmlize.el which is part of the XEmacs "text-modes" package.
+;;
+</span>
+<span class="comment">;;; Todo:
+;;
+;;     
+</span>
+<span class="comment">;;; Code:
+;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Set default sound device
+</span>(<span class="keyword">when</span> (getenv "<span class="string">DISPLAY</span>")                <span class="comment">; skip the lot if not in X11
+</span>  (setq default-audio-device (make-audio-device 'pulse))
+  <span class="comment">;(setq default-audio-device (make-audio-device 'alsa))
+</span>  (init-workers 6)
+  (setq synchronous-sounds nil)
+  (load "<span class="string">sound</span>")
+  (setq bell-volume 100)
+  (<span class="keyword">when</span> (device-sound-enabled-p)
+    (load-sound-file "<span class="string">low-smash</span>" 'auto-save-error)
+    (load-sound-file "<span class="string">bark</span>" 'command-error)
+    (load-sound-file "<span class="string">slap</span>" 'undefined-key)
+    (load-sound-file "<span class="string">slap</span>" 'undefined-click)
+    (load-sound-file "<span class="string">clink</span>" 'no-completion)
+    (load-sound-file "<span class="string">bong</span>" 'y-or-n-p)
+    (load-sound-file "<span class="string">explosion</span>" 'yes-or-no-p)
+    (load-sound-file "<span class="string">drip</span>" 'buffer-bound)
+    (load-sound-file "<span class="string">whip</span>" 'read-only)
+    (load-sound-file "<span class="string">bass-snap</span>" 'default)
+    (load-sound-file "<span class="string">yeep</span>" 'quit)
+    (load-sound-file "<span class="string">drum-beep</span>" 'isearch-failed)
+    (load-sound-file "<span class="string">bass-snap</span>" 'isearch-quit)
+    (load-sound-file "<span class="string">slap</span>" 'ready)
+    (load-sound-file "<span class="string">return</span>" 'warp)
+    (load-sound-file "<span class="string">cuckoo</span>" 'alarm))
+  )
+<span class="comment">;</span><span class="comment"><span class="reference">:*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::</span></span><span class="comment">
+</span>(<span class="keyword">if</span> default-audio-device
+    (message "<span class="string">sounds loaded</span>")
+  (message "<span class="string">sounds NOT loaded (OK if this is a TTY)</span>"))
+</pre>
+  <!--  SXEmacs Logo -->
+    <div class="img">
+      <a href="https://www.sxemacs.org/" target="_parent">
+       <img style="padding:0px 5px 0px 0px;border:0;width:88px;height:31px"
+         src="/Images/cbsx.png"
+         title="This page was created entirely in SXEmacs"
+         alt="Created with SXEmacs" />
+      </a>
+<!--  End SXEmacs Logo -->
+<!--  Valid XHTML 1.0 -->
+      <a href="http://validator.w3.org/check?uri=https%3a%2f%2fwww.sxemacs.org%2fSYinits%2f08-sounds.html" target="_blank">
+       <img style="padding:0px 5px 0px 10px;border:0;width:88px;height:31px"
+         src="/Images/valid-xhtml10.png"
+         title="Valid XHTML 1.0 Transitional!"
+         alt="Valid XHTML 1.0 Transitional!" />
+      </a>
+    </div>
+<!--  End Valid XHTML 1.0 -->
+
+    <h6>Copyright &#169; 2020 Steve Youngs<br />
+     Verbatim copying and distribution is permitted in any medium,
+    providing this notice is preserved.<br />
+<!-- hhmts start -->
+Last modified: Wed Apr 15 18:13:26 AEST 2020
+<!-- hhmts end -->
+   </h6>
+
+</body>
+</html>
diff --git a/SYinits/09-toolbar.html b/SYinits/09-toolbar.html
new file mode 100644 (file)
index 0000000..46d5855
--- /dev/null
@@ -0,0 +1,215 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>09-toolbar.el</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Steve Youngs" />
+    <meta name="owner" content="steve@sxemacs.org" />
+    <style type="text/css">
+    <!--
+      body {
+        color: #ffffff;
+        background-color: #000000;
+      }
+      .comment {
+        /* font-lock-comment-face */
+        color: #87ceeb;
+      }
+      .doc-string {
+        /* font-lock-doc-string-face */
+        color: #32cd32;
+      }
+      .function-name {
+        /* font-lock-function-name-face */
+        color: #ffff00;
+        font-weight: bold;
+      }
+      .keyword {
+        /* font-lock-keyword-face */
+        color: #fa8072;
+      }
+      .reference {
+        /* font-lock-reference-face */
+        color: #40e0d0;
+      }
+      .string {
+        /* font-lock-string-face */
+        color: #00cd00;
+      }
+      .variable-name {
+        /* font-lock-variable-name-face */
+        color: #ffdab9;
+      }
+
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+    -->
+    </style>
+  </head>
+  <body>
+    <pre>
+<span class="comment">;; 09-toolbar.el --- Toolbar set up
+</span>
+<span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
+</span>
+<span class="comment">;;     Author: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;; Maintainer: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;;    Created: &lt;2007-12-02&gt;
+;; Time-stamp: &lt;Thursday Apr  9, 2020 07:43:09 steve&gt;
+;;   Download: &lt;<a href="https://downloads.sxemacs.org/SYinits">https://downloads.sxemacs.org/SYinits</a>&gt;
+;;   HTMLised: &lt;<a href="https://www.sxemacs.org/SYinits/09-toolbar.html">https://www.sxemacs.org/SYinits/09-toolbar.html</a>&gt;
+;;   Git Repo: git clone https://git.sxemacs.org/syinit
+;;   Keywords: init, compile
+</span>
+<span class="comment">;; This file is part of SYinit
+</span>
+<span class="comment">;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;;    notice, this list of conditions and the following disclaimer.
+;;
+;; 2. Redistributions in binary form must reproduce the above copyright
+;;    notice, this list of conditions and the following disclaimer in the
+;;    documentation and/or other materials provided with the distribution.
+;;
+;; 3. Neither the name of the author nor the names of any contributors
+;;    may be used to endorse or promote products derived from this
+;;    software without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+<span class="comment">;;; Commentary:
+;;
+;;   Sets up the toolbar the way I like it.
+</span>
+<span class="comment">;;; Credits:
+;;
+;;   The HTML version of this file was created with Hrvoje Niksic's
+;;   htmlize.el which is part of the XEmacs "text-modes" package.
+;;
+</span>
+<span class="comment">;;; Todo:
+;;
+;;     
+</span>
+<span class="comment">;;; Code:
+;; Re-organise the default toolbar.
+</span>(<span class="keyword">when</span> (<span class="keyword">featurep</span> '<span class="reference">toolbar</span>)
+  (setq
+   toolbar-info-use-separate-frame t
+   toolbar-mail-reader 'gnus
+   toolbar-news-use-separate-frame t)
+  (customize-set-variable 'toolbar-captioned-p nil))
+
+(setq edit-toolbar-added-buttons-alist 'nil)
+
+(mapcar
+ (<span class="keyword">lambda</span> (cons)
+   (setf (symbol-value (car cons)) (toolbar-make-button-list (cdr cons))))
+ edit-toolbar-added-buttons-alist)
+
+(<span class="keyword">defun</span> <span class="function-name">toolbar-redo</span> ()
+  (interactive)
+  (call-interactively #'redo))
+
+(<span class="keyword">defvar</span> <span class="variable-name">toolbar-redo-icon</span>
+  (toolbar-make-button-list
+   (locate-data-file "<span class="string">redo.png</span>")))
+
+(<span class="keyword">defun</span> <span class="function-name">toolbar-irc</span> ()
+  (interactive)
+  (call-interactively #'sy-riece))
+
+(<span class="keyword">defvar</span> <span class="variable-name">toolbar-irc-icon</span>
+  (toolbar-make-button-list
+   (locate-data-file "<span class="string">irc@32x32.png</span>")))
+
+(<span class="keyword">defun</span> <span class="function-name">toolbar-emoney</span> ()
+  (interactive)
+  (call-interactively #'emoney))
+
+(<span class="keyword">defvar</span> <span class="variable-name">toolbar-emoney-icon</span>
+  (toolbar-make-button-list
+   (locate-data-file "<span class="string">emoney.png</span>")))
+
+(and (device-on-window-system-p)
+     (set-specifier
+      default-toolbar 
+      '([toolbar-file-icon toolbar-open t "<span class="string">Open a file</span>"] 
+        [toolbar-folder-icon toolbar-dired t "<span class="string">Edit a directory</span>"] 
+        [toolbar-disk-icon toolbar-save t "<span class="string">Save buffer</span>"] 
+        [toolbar-printer-icon toolbar-print t "<span class="string">Print buffer</span>"] 
+        [toolbar-cut-icon toolbar-cut t "<span class="string">Kill region</span>"] 
+        [toolbar-copy-icon toolbar-copy t "<span class="string">Copy region</span>"] 
+        [toolbar-paste-icon toolbar-paste t "<span class="string">Paste from clipboard</span>"] 
+        [toolbar-undo-icon toolbar-undo t "<span class="string">Undo</span>"]
+        [toolbar-redo-icon toolbar-redo t "<span class="string">Redo</span>"]
+        [toolbar-spell-icon toolbar-ispell t "<span class="string">Check spelling</span>"] 
+        [toolbar-replace-icon toolbar-replace t "<span class="string">Search &amp; Replace</span>"] 
+        [toolbar-compile-icon toolbar-compile t "<span class="string">Start a compilation</span>"] 
+        [toolbar-debug-icon toolbar-debug t "<span class="string">Start a debugger</span>"]
+        [toolbar-emoney-icon toolbar-emoney t "<span class="string">Manage your millions with eMoney</span>"]
+        [toolbar-irc-icon toolbar-irc t "<span class="string">Be productive with Riece</span>"]
+        [toolbar-news-icon gnus-other-frame t "<span class="string">Gnus</span>"]
+        nil 
+        [toolbar-info-icon toolbar-info t "<span class="string">Don't Panic!!</span>"])))
+<span class="comment">;</span><span class="comment"><span class="reference">:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::</span></span><span class="comment">
+</span>(message "<span class="doc-string">Toolbar set successfully</span>")
+</pre>
+  <!--  SXEmacs Logo -->
+    <div class="img">
+      <a href="https://www.sxemacs.org/" target="_parent">
+       <img style="padding:0px 5px 0px 0px;border:0;width:88px;height:31px"
+         src="/Images/cbsx.png"
+         title="This page was created entirely in SXEmacs"
+         alt="Created with SXEmacs" />
+      </a>
+<!--  End SXEmacs Logo -->
+<!--  Valid XHTML 1.0 -->
+      <a href="http://validator.w3.org/check?uri=https%3a%2f%2fwww.sxemacs.org%2fSYinits%2f09-toolbar.html" target="_blank">
+       <img style="padding:0px 5px 0px 10px;border:0;width:88px;height:31px"
+         src="/Images/valid-xhtml10.png"
+         title="Valid XHTML 1.0 Transitional!"
+         alt="Valid XHTML 1.0 Transitional!" />
+      </a>
+    </div>
+<!--  End Valid XHTML 1.0 -->
+
+    <h6>Copyright &#169; 2020 Steve Youngs<br />
+     Verbatim copying and distribution is permitted in any medium,
+    providing this notice is preserved.<br />
+<!-- hhmts start -->
+Last modified: Wed Apr 15 18:13:40 AEST 2020
+<!-- hhmts end -->
+   </h6>
+
+</body>
+</html>
diff --git a/SYinits/10-pkgs.html b/SYinits/10-pkgs.html
new file mode 100644 (file)
index 0000000..ce212a1
--- /dev/null
@@ -0,0 +1,798 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>10-pkgs.el</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Steve Youngs" />
+    <meta name="owner" content="steve@sxemacs.org" />
+    <style type="text/css">
+    <!--
+      body {
+        color: #ffffff;
+        background-color: #000000;
+      }
+      .comment {
+        /* font-lock-comment-face */
+        color: #87ceeb;
+      }
+      .doc-string {
+        /* font-lock-doc-string-face */
+        color: #32cd32;
+      }
+      .function-name {
+        /* font-lock-function-name-face */
+        color: #ffff00;
+        font-weight: bold;
+      }
+      .keyword {
+        /* font-lock-keyword-face */
+        color: #fa8072;
+      }
+      .reference {
+        /* font-lock-reference-face */
+        color: #40e0d0;
+      }
+      .string {
+        /* font-lock-string-face */
+        color: #00cd00;
+      }
+      .type {
+        /* font-lock-type-face */
+        color: #1e90ff;
+      }
+      .variable-name {
+        /* font-lock-variable-name-face */
+        color: #ffdab9;
+      }
+      .warning {
+        /* font-lock-warning-face */
+        color: #ff0000;
+        font-weight: bold;
+      }
+
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+    -->
+    </style>
+  </head>
+  <body>
+    <pre>
+<span class="comment">;; 10-pkgs.el --- Various XE Package Settings
+</span>
+<span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
+</span>
+<span class="comment">;;     Author: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;; Maintainer: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;;    Created: &lt;2007-12-02&gt;
+;; Time-stamp: &lt;Thursday Apr  9, 2020 07:58:14 steve&gt;
+;;   Download: &lt;<a href="https://downloads.sxemacs.org/SYinits">https://downloads.sxemacs.org/SYinits</a>&gt;
+;;   HTMLised: &lt;<a href="https://www.sxemacs.org/SYinits/10-pkgs.html">https://www.sxemacs.org/SYinits/10-pkgs.html</a>&gt;
+;;   Git Repo: git clone https://git.sxemacs.org/syinit
+;;   Keywords: init, compile
+</span>
+<span class="comment">;; This file is part of SYinit
+</span>
+<span class="comment">;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;;    notice, this list of conditions and the following disclaimer.
+;;
+;; 2. Redistributions in binary form must reproduce the above copyright
+;;    notice, this list of conditions and the following disclaimer in the
+;;    documentation and/or other materials provided with the distribution.
+;;
+;; 3. Neither the name of the author nor the names of any contributors
+;;    may be used to endorse or promote products derived from this
+;;    software without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+<span class="comment">;;; Commentary:
+;;
+;;   Lots of settings for various XEmacs packages that I use.  Plus a
+;;   few other packages.
+;;
+;;   I want to point out that I DO NOT blindly install the "sumo"
+;;   packages.  I only install what I need and use.  And I absolutely
+;;   DO NOT have the "fsf-compat" package installed, although I do
+;;   have overlay.el from there.  It just makes my life a tad easier.
+</span>
+<span class="comment">;;; Credits:
+;;
+;;   The HTML version of this file was created with Hrvoje Niksic's
+;;   htmlize.el which is part of the XEmacs "text-modes" package.
+;;
+</span>
+<span class="comment">;;; Todo:
+;;
+;;
+</span>
+<span class="comment">;;; Code:
+;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> MusicPD  (Not an XEmacs package)
+</span>(<span class="keyword">require</span> '<span class="reference">mpd</span>)
+
+(<span class="keyword">defun</span> <span class="function-name">sy-mpd-play</span> ()
+  "<span class="doc-string">Start playing music from a randomly chosen playlist.</span>"
+  (interactive)
+  (mpd-send "<span class="string">clear</span>")
+  (mpd-send "<span class="string">load Full-sorted.playlist</span>")
+  (mpd-send "<span class="string">random 1</span>")
+  (mpd-send "<span class="string">repeat 1</span>")
+  (mpd-playpause))
+
+(<span class="keyword">defun</span> <span class="function-name">2001-mpd-play</span> ()
+  "<span class="doc-string">Start playing 2001 audio book.</span>"
+  (interactive)
+  (mpd-send "<span class="string">clear</span>")
+  (mpd-send "<span class="string">load 2001_A_Space_Odyssey.playlist</span>")
+  (mpd-send "<span class="string">random 0</span>")
+  (mpd-send "<span class="string">repeat 0</span>")
+  (mpd-playpause))
+
+<span class="comment">;; Audio keybindings
+</span>(global-set-key [XF86AudioPlay] #'mpd-playpause)
+(global-set-key [XF86AudioStop] #'mpd-stop)
+(global-set-key [XF86AudioNext] #'mpd-next-track)
+(global-set-key [XF86AudioPrev] #'mpd-previous-track)
+(global-set-key [XF86AudioRaiseVolume] #'mpd-volume-up)
+(global-set-key [XF86AudioLowerVolume] #'mpd-volume-down)
+(global-set-key [XF86AudioMute] #'mpd-volume-mute/unmute)
+
+<span class="comment">;; Mpd frame props
+</span>(<span class="keyword">unless</span> (or (string= (getenv "<span class="string">KDE_FULL_SESSION</span>") "<span class="string">true</span>")
+            (string= (getenv "<span class="string">SAWFISH_IS_RUNNING</span>") "<span class="string">true</span>"))
+  (push (cons 'override-redirect t) mpd-dock-frame-plist))
+(push (cons 'left 1780) mpd-dock-frame-plist)
+(push (cons 'top 5) mpd-dock-frame-plist)
+(push (cons 'internal-border-width 4) mpd-dock-frame-plist)
+(push (cons 'border-width 1) mpd-dock-frame-plist)
+(push (cons 'border-color "<span class="string">red</span>") mpd-dock-frame-plist)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> View-process (`</span><span class="comment"><span class="reference">top</span></span><span class="comment">' for emacs)
+</span>(<span class="keyword">require</span> '<span class="reference">view-process-mode</span>)
+(setq View-process-host-names-and-system-types
+      '(("<span class="string">bastard.steveyoungs.com</span>"
+         ("<span class="string">linux</span>" nil "<span class="string">bsd</span>"
+          View-process-field-name-descriptions-linux
+          View-process-kill-signals-linux))))
+(setq View-process-status-command-switches-system-v "<span class="doc-string">auxw</span>")
+(setq View-process-ps-header-window-offset 3)
+(add-hook 'View-process-header-mode-hook
+          (<span class="keyword">lambda</span> ()
+            (set-specifier horizontal-scrollbar-visible-p nil (current-buffer))
+            (set-specifier vertical-scrollbar-visible-p nil (current-buffer))))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=====================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> whitespace-mode
+</span>(<span class="keyword">autoload</span> 'whitespace-mode "<span class="doc-string">whitespace-mode</span>" nil t)
+(<span class="keyword">autoload</span> 'whitespace-incremental-mode "<span class="doc-string">whitespace-mode</span>" nil t)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> func-menu
+</span>(<span class="keyword">require</span> '<span class="reference">func-menu</span>)
+(add-hook 'find-file-hooks 'fume-setup-buffer)
+(add-hook 'Manual-mode-hook 'turn-on-fume-mode)
+(<span class="keyword">define-key</span> <span class="variable-name">fume-mode-map</span> [(control button3)] #'mouse-function-menu)
+(setq
+ fume-display-in-modeline-p t
+ fume-menu-path '("<span class="string">View</span>"))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> recent-files.el --- Maintain menu of recently opened files.
+</span>(<span class="keyword">when</span> (<span class="keyword">featurep</span> '<span class="reference">menubar</span>)
+  (<span class="keyword">require</span> '<span class="reference">recent-files</span>)
+  (setq recent-files-non-permanent-submenu t
+        recent-files-menu-path '("<span class="string">File</span>")
+        recent-files-add-menu-before "<span class="string">Insert File...</span>"
+        recent-files-save-file
+        (expand-file-name "<span class="string">.recent-files.el</span>" user-init-directory)
+        recent-files-dont-include
+        '(#r"<span class="string">\.config/sxemacs/\(howm\|diary\).*$</span>"
+          #r"<span class="string">sxemacs/timelog$</span>"
+          #r"<span class="string">info/dir$</span>"
+          #r"<span class="string">\.\(newsrc*\|bbdb\)$</span>"
+          #r"<span class="string">init\.d\.el</span>"))
+  (recent-files-initialize))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> jka-compr
+;; Handle automatic (de)compresion of [bg]zip files
+</span>(<span class="keyword">require</span> '<span class="reference">jka-compr</span>)
+(jka-compr-install)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> iswitchb
+;: A really cool package to switch buffers
+</span>(<span class="keyword">require</span> '<span class="reference">iswitchb</span>)
+(setq iswitchb-default-method 'samewindow)
+(iswitchb-default-keybindings)
+(add-hook
+ 'iswitchb-define-mode-map-hook
+ '(<span class="keyword">lambda</span> ()
+    (define-key iswitchb-mode-map "<span class="string"> </span>" 'iswitchb-next-match)
+    (define-key iswitchb-mode-map [(control ?\ )] 'iswitchb-prev-match)
+    (define-key iswitchb-mode-map "<span class="string">\C-a</span>" 'iswitchb-toggle-ignore)))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> backup
+;:  move all backups in one directory
+</span>(<span class="keyword">require</span> '<span class="reference">backup-dir</span>)
+(setq bkup-backup-directory-info
+      '((t "<span class="string">~/.autosave/</span>" ok-create full-path)))
+(setq version-control 'preserve-prefer-numbered)
+(setq-default delete-old-versions t)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Load minibuffer history, but only if mule or file-coding is available
+</span>(<span class="keyword">when</span> (<span class="keyword">featurep</span> '(or mule file-coding))
+  (<span class="keyword">require</span> '<span class="reference">savehist</span>)
+  (setq savehist-file (expand-file-name "<span class="string">history</span>" user-init-directory))
+  (setq savehist-coding-system
+        (coding-system-name (find-coding-system 'utf-8)))
+  (savehist-mode 1))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Kyle Jones' redo package.
+</span>(<span class="keyword">when</span> running-xemacs
+  (<span class="keyword">require</span> '<span class="reference">redo</span>)
+  (global-set-key [(control f2)] 'redo))
+
+(<span class="keyword">require</span> '<span class="reference">scroll-in-place</span>)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> pending-del
+;:  Non-nil when Pending Delete mode is enabled. In Pending Delete mode, typed
+;:  text replaces the selected region. Normally, you shouldn't modify this
+;:  variable by hand, but use the function `</span><span class="comment"><span class="reference">pending-delete-mode</span></span><span class="comment">' instead. However,
+;:  you can customize the default value from the options menu (auto delete
+;:  selection).
+</span>(<span class="keyword">require</span> '<span class="reference">pending-del</span>)
+(turn-on-pending-delete nil)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> comment-region
+;:  Comment or uncomment each line in the region.
+;:  Comments are terminated on each line, even for syntax in which newline does
+;:  not end the comment.  Blank lines do not get comments.
+</span>(<span class="keyword">require</span> '<span class="reference">newcomment</span>)
+(global-set-key '(control f12)  'comment-or-uncomment-region)
+(global-set-key '(meta f12) 'comment-or-uncomment-region)
+
+<span class="comment">;;; </span><span class="comment"><span class="warning">FIXME:</span></span><span class="comment"> SXEInits
+;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> parens that mark sexpressions
+</span>(<span class="keyword">require</span> '<span class="reference">paren</span>)
+(paren-set-mode 'paren)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> easy editing of crontab files
+</span>(<span class="keyword">require</span> '<span class="reference">crontab-edit</span> "<span class="doc-string">crontab.elc</span>")
+(setq crontab-delete-blank-lines nil)
+(setq crontab-filename (expand-file-name "<span class="string">.crontab</span>" (user-home-directory)))
+(setq crontab-directory
+      (paths-construct-path '("<span class="string">spool</span>" "<span class="string">cron</span>" "<span class="string">crontabs</span>") "<span class="string">/var</span>"))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> a major mode for editing X resource database files
+</span>(<span class="keyword">autoload</span> 'xrdb-mode "<span class="doc-string">xrdb-mode</span>" "<span class="doc-string">Mode for editing X resource files</span>" t)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Footnote package
+</span>(<span class="keyword">require</span> '<span class="reference">footnote</span>)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Filladapt-Mode
+</span>(<span class="keyword">require</span> '<span class="reference">filladapt</span>)
+(setq-default filladapt-mode t)
+(setq filladapt-fill-column-tolerance 5)
+(add-hook 'c-mode-hook 'turn-off-filladapt-mode)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Speedbar
+;;; </span><span class="comment"><span class="warning">FIXME:</span></span><span class="comment">  Speedbar Tooltips
+;;; snap:///${XPKGS}/speedbar/speedbar.el
+</span>(setq
+ speedbar-query-confirmation-method 'none-but-delete
+ speedbar-show-unknown-files t
+ speedbar-tag-hierarchy-method '(speedbar-prefix-group-tag-hierarchy
+                                 speedbar-trim-words-tag-hierarchy
+                                 speedbar-simple-group-tag-hierarchy
+                                 speedbar-sort-tag-hierarchy)
+ <span class="comment">;; speedbar-track-mouse-flag t
+</span> <span class="comment">;; speedbar-use-tool-tips-flag t
+</span> speedbar-visiting-tag-hook 'speedbar-recenter-to-top)
+
+(<span class="keyword">when</span> (<span class="keyword">featurep</span> '<span class="reference">menubar</span>)
+  (add-menu-button '("<span class="string">Tools</span>")
+                   ["<span class="string">Speedbar</span>" speedbar-frame-mode
+                    <span class="reference">:style</span> toggle
+                    <span class="reference">:selected</span> (and (boundp 'speedbar-frame)
+                                   (frame-live-p speedbar-frame)
+                                   (frame-visible-p speedbar-frame))]
+                   "<span class="string">--</span>"))
+(global-set-key [(f4)] 'speedbar-get-focus)
+(<span class="keyword">require</span> '<span class="reference">sb-image</span>)
+(<span class="keyword">require</span> '<span class="reference">sb-info</span>)
+(<span class="keyword">require</span> '<span class="reference">sb-texinfo</span>)
+(<span class="keyword">eval-after-load</span> "<span class="doc-string">speedbar</span>" '(load-library "<span class="string">sb-texinfo</span>"))
+(<span class="keyword">eval-after-load</span> "<span class="doc-string">speedbar</span>" '(load-library "<span class="string">sb-html</span>"))
+(<span class="keyword">autoload</span> 'w3-speedbar-buttons "<span class="doc-string">sb-w3</span>"
+  "<span class="doc-string">W3 specific speedbar button generator.</span>")
+
+<span class="comment">;;; Speedbar frame props
+;;  'name' (so I can use matched windows in Sawfish)
+</span>(setq speedbar-frame-plist
+      (plist-put speedbar-frame-plist 'name "<span class="string">Speedbar::Frame</span>"))
+<span class="comment">;; No scrollbars
+</span>(setq speedbar-frame-plist
+      (plist-put speedbar-frame-plist 'scrollbar-height 0))
+(setq speedbar-frame-plist
+      (plist-put speedbar-frame-plist 'scrollbar-width 0))
+<span class="comment">;; A little wider than default
+</span>(setq speedbar-frame-plist
+      (plist-put speedbar-frame-plist 'width 25))
+
+<span class="comment">;; </span><span class="comment"><span class="warning">FIXME:</span></span><span class="comment"> see... PKGFix
+;; Try to load the speedbar on the right of the current frame
+</span>(<span class="keyword">defalias</span> '<span class="function-name">dframe-reposition-frame-xemacs</span> 'dframe-reposition-frame-emacs)
+(setq speedbar-default-position 'right)
+
+<span class="comment">;; Speedbar only does the repositioning thing if the frame has to be
+;; created.  If you have only closed the speedbar frame with 'q'
+;; instead of deleting it with 'Q' then the frame remains live.  As
+;; there is no perceptible speed difference of coming back from
+;; either a closed or deleted speedbar frame the following will
+;; force a delete-frame even if you are only closing it.
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-speedbar-kill</span> ()
+  (<span class="keyword">when</span> (frame-live-p speedbar-frame)
+    (delete-frame speedbar-frame)))
+
+(add-hook 'speedbar-before-delete-hook #'sy-speedbar-kill)
+
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Shell-mode
+;; Trying to get compilation buffers to recognise ANSI colour
+;; sequences because GCC.  Doesn't seem to work.  Probably have to
+;; stick to `GCC_COLORS= make'
+</span>(<span class="keyword">defun</span> <span class="function-name">sy/comint-hooks</span> ()
+  (ansi-color-for-comint-mode-on)
+  (fast-lock-mode 1)
+  (font-lock-mode 1))
+(<span class="keyword">autoload</span> 'ansi-color-for-comint-mode-on "<span class="doc-string">ansi-color</span>" nil t)
+(add-hook 'comint-mode-hook #'sy/comint-hooks)
+(add-hook 'compilation-mode-hook #'sy/comint-hooks)
+(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
+(add-hook 'shell-mode-hook 'turn-on-font-lock)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Shell-script
+</span>(setq sh-basic-offset 4)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Compile-Mode
+</span>(setq
+ compilation-always-signal-completion t
+ mode-compile-make-program "<span class="doc-string">GCC_COLORS= make</span>"
+ compilation-read-command t
+ compilation-window-height 10
+ compile-command "<span class="doc-string">GCC_COLORS= make</span>")
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Version Control
+</span>(vc-load-vc-hooks)
+<span class="comment">;; #'vc-load-vc-hooks brings in vc-xemacs which adds this hook. I
+;; would never need it.
+</span>(remove-hook 'find-file-hooks 'vc-xemacs-hg-find-file-hook)
+(setq
+ <span class="comment">;; I pretty much only use git now so there's no point in VC trying to
+</span> <span class="comment">;; handle any other type.
+</span> vc-handled-backends '(GIT)
+ vc-follow-symlinks t)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Ediff &amp; Diff-mode
+</span>(<span class="keyword">require</span> '<span class="reference">ediff</span>)
+(<span class="keyword">require</span> '<span class="reference">diff-mode</span>)
+(setq ediff-use-toolbar-p t
+      ediff-custom-diff-options "<span class="doc-string">-u</span>"
+      ediff-window-setup-function 'ediff-setup-windows-plain)
+(setq diff-switches "<span class="doc-string">-u</span>")
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=====================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Tramp
+</span>(<span class="keyword">require</span> '<span class="reference">tramp</span>)
+(setq tramp-default-method "<span class="doc-string">ssh</span>"
+      tramp-auto-save-directory "<span class="doc-string">~/.autosave/</span>"
+      tramp-remote-path
+      '("<span class="string">/usr/lib/pkgusr</span>"
+        "<span class="string">/usr/bin</span>"
+        "<span class="string">/bin</span>"
+        "<span class="string">/usr/X11R6/bin</span>"))
+
+<span class="comment">; </span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+; </span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Eshell
+</span>(setq
+ eshell-directory-name
+ (file-name-as-directory
+  (expand-file-name "<span class="string">eshell</span>" user-init-directory))
+ eshell-ask-to-save-history 'always
+ eshell-save-history-on-exit t
+ eshell-banner-message (concat "<span class="string">Welcome to Eshell on </span>"
+                               (system-name)
+                               "<span class="string">, running </span>"
+                               (shell-command-to-string "<span class="string">uname -rs</span>")
+                               "<span class="string">In: </span>"
+                               emacs-version
+                               "<span class="string">\n\n</span>")
+ eshell-hist-ignoredups t
+ eshell-modules-list '(eshell-alias
+                       eshell-banner
+                       eshell-basic
+                       eshell-cmpl
+                       eshell-dirs
+                       eshell-glob
+                       eshell-hist
+                       eshell-ls
+                       eshell-pred
+                       eshell-prompt
+                       <span class="comment">;eshell-rebind
+</span>                       eshell-script
+                       <span class="comment">;eshell-smart
+</span>                       eshell-term
+                       eshell-unix
+                       eshell-xtra))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-eshell-bol-maybe</span> (<span class="type">&amp;optional</span> prompt)
+  "<span class="doc-string">*Move point to beginning of command or bol if there already.
+ If at bol, move point to beginning of command.
+ Optional arg, PROMPT is a regexp of your eshell prompt.</span>"
+  (interactive)
+  (<span class="keyword">let*</span> ((prompt (or prompt "<span class="string">^.+ [$%] </span>"))
+         (lbpos (point-at-bol))
+         (prspos (<span class="keyword">save-excursion</span>
+                   (goto-char lbpos)
+                   (search-forward-regexp prompt (point-at-eol) t)))
+         (cpos (point)))
+    (goto-char
+     (<span class="keyword">cond</span> ((null prspos)
+            lbpos)
+           ((= cpos (or prspos 0))
+            lbpos)
+           (prspos)
+           (t lbpos)))))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-eshell-bol-maybe-key</span> ()
+  (define-key eshell-mode-map [(control ?a)] 'sy-eshell-bol-maybe))
+
+(add-hook 'eshell-mode-hook #'sy-eshell-bol-maybe)
+(add-hook 'eshell-mode-hook #'sy-eshell-bol-maybe-key t)
+(add-hook 'eshell-output-filter-functions #'eshell-handle-ansi-color)
+
+(<span class="keyword">defun</span> <span class="function-name">sy-esh-cdl</span> (<span class="type">&amp;optional</span> type)
+  "<span class="doc-string">Eshell function to find current kernel's build or source dir.
+
+ Non-nil TYPE means find the current kernel's build directory, otherwise
+ find the source directory.</span>"
+  (<span class="keyword">let*</span> ((base "<span class="string">/lib/modules/</span>")
+         (ver (substring (shell-command-to-string "<span class="string">uname -r</span>") 0 -1))
+         (dir (file-name-as-directory
+               (concat base ver "<span class="string">/</span>"
+                       (<span class="keyword">if</span> type
+                           "<span class="string">build</span>"
+                         "<span class="string">source</span>")))))
+    (cd dir)))
+
+(<span class="keyword">defun</span> <span class="function-name">cdls</span> ()
+  "<span class="doc-string">Change directory to current kernel source directory.
+
+ Convenience function to use with Eshell.</span>"
+  (interactive)
+  (sy-esh-cdl))
+
+(<span class="keyword">defun</span> <span class="function-name">cdlb</span> ()
+  "<span class="doc-string">Change directory to current kernel build directory.
+
+ Convenience function to use with Eshell.</span>"
+  (interactive)
+  (sy-esh-cdl 'build))
+
+<span class="comment">; </span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+; </span><span class="comment"><span class="reference">:*</span></span><span class="comment"> FFAP -- Find File At Point
+</span>(<span class="keyword">require</span> '<span class="reference">ffap</span>)
+
+<span class="comment">;; Make sure ffap does NOT get in my way...
+</span>(setq ffap-bindings nil)
+
+(global-set-key [f3] #'find-file-at-point)
+(global-set-key [(control x) ?4 f3] #'ffap-other-window)
+(global-set-key [(control x) ?5 f3] #'ffap-other-frame)
+(global-set-key [(shift button3)] #'ffap-at-mouse)
+(global-set-key [(control shift button3)] #'ffap-menu)
+
+(setq
+ ffap-machine-p-known 'accept
+ ffap-machine-p-unknown 'accept
+ ffap-machine-p-local 'accept)
+
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Auto-Insert
+</span>(<span class="keyword">require</span> '<span class="reference">auto-insert-tkld</span>)
+
+(setq auto-insert-alist '(("<span class="string">\\.texi\\(nfo\\)?$</span>" . "<span class="string">TeXinfo</span>")
+                          ("<span class="string">\\.c$</span>"              . "<span class="string">C</span>")
+                          ("<span class="string">\\.cc$</span>"             . "<span class="string">C++</span>")
+                          ("<span class="string">\\.h$</span>"              . "<span class="string">C Header</span>")
+                          ("<span class="string">\\.el$</span>"             . "<span class="string">Emacs Lisp</span>")
+                          ("<span class="string">[Mm]akefile</span>"        . "<span class="string">Makefile</span>")
+                          ("<span class="string">\\.sh$</span>"             . "<span class="string">Sh</span>")
+                          ("<span class="string">\\.pl$</span>"             . "<span class="string">Perl</span>")))
+
+(setq auto-insert-type-alist '(("<span class="string">TeXinfo</span>"    . "<span class="string">texinfo-insert.texi</span>")
+                               ("<span class="string">C</span>"          . "<span class="string">c-insert.c</span>")
+                               ("<span class="string">C Header</span>"   . "<span class="string">h-insert.h</span>")
+                               ("<span class="string">C++</span>"        . "<span class="string">c++-insert.cc</span>")
+                               ("<span class="string">Emacs Lisp</span>" . "<span class="string">elisp-insert.el</span>")
+                               ("<span class="string">Makefile</span>"   . "<span class="string">makefile.inc</span>")
+                               ("<span class="string">Perl</span>"       . "<span class="string">perl-insert.pl</span>")
+                               ("<span class="string">Sh</span>"         . "<span class="string">sh-insert.sh</span>")))
+
+(add-to-list 'auto-insert-path '"<span class="doc-string">~/documents/Templates/</span>")
+
+<span class="comment">;; Don't auto-insert into AucTeX style .els
+</span>(<span class="keyword">defadvice</span> <span class="function-name">TeX-auto-store</span> (around no-auto-insert activate)
+  "<span class="doc-string">Ensure auto-insert is deactivated</span>"
+  (<span class="keyword">let</span> ((auto-insert-automatically nil))
+    ad-do-it))
+(message "<span class="doc-string">Auto-Insert initialised!</span>")
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> My git shit
+</span>(<span class="keyword">require</span> '<span class="reference">sy-git</span>)
+(<span class="keyword">require</span> '<span class="reference">git</span>)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Emacs Lisp List
+</span>(<span class="keyword">defvar</span> <span class="variable-name">sxell-initialised-flag</span>)
+(<span class="keyword">defvar</span> <span class="variable-name">sxell-download-directory</span>)
+(<span class="keyword">when</span> (and (<span class="keyword">featurep</span> '(and sxemacs postgresql))
+           (fboundp 'ffi-defun))
+  (<span class="keyword">require</span> '<span class="reference">sxell</span>)
+  (setq sxell-initialised-flag t
+        sxell-download-directory
+        (file-name-as-directory (expand-file-name "<span class="string">download/SXEmacs</span>"
+                                                  (user-home-directory)))))
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> EasyPG
+</span>(<span class="keyword">require</span> '<span class="reference">epa-setup</span>)
+
+(<span class="keyword">defun</span> <span class="function-name">sy-epa-export-key</span> ()
+  "<span class="doc-string">Wrapper for `</span><span class="doc-string"><span class="reference">epa-export-keys</span></span><span class="doc-string">' to export ASCII armoured keys.</span>"
+  (interactive)
+  (<span class="keyword">let</span> ((epa-armor t))
+    (call-interactively #'epa-export-keys)))
+
+(<span class="keyword">define-key</span> <span class="variable-name">epa-key-list-mode-map</span> [?O] #'sy-epa-export-key)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Howm thing. (this needs mule, but that is default so no biggie)
+</span>(<span class="keyword">require</span> '<span class="reference">howm</span>)
+
+(setq
+ howm-directory (file-name-as-directory
+                 (expand-file-name "<span class="string">howm</span>" user-init-directory))
+ howm-keyword-file (expand-file-name "<span class="string">howm-keys</span>" user-init-directory)
+ howm-history-file (expand-file-name "<span class="string">howm-history</span>" user-init-directory))
+
+<span class="comment">;; howm has the unfortunate name that ends in `</span><span class="comment"><span class="reference">wm</span></span><span class="comment">' which is what
+;; winmgr-mode uses, so nuke winmgr-mode from auto-mode-alist
+</span>(remove-alist 'auto-mode-alist "<span class="doc-string">\\.[^/]*wm2?\\(?:rc\\)?\\'</span>")
+
+<span class="comment">;; The howm people are nuts, they bind C-h to scroll-down
+;; Get rid of it and replace with DEL and BACKSPACE
+</span>(<span class="keyword">define-key</span> <span class="variable-name">howm-menu-mode-map</span> "<span class="doc-string">\C-h</span>" nil)
+(<span class="keyword">define-key</span> <span class="variable-name">howm-menu-mode-map</span> [delete] #'scroll-down)
+(<span class="keyword">define-key</span> <span class="variable-name">howm-menu-mode-map</span> [backspace] #'scroll-down)
+(<span class="keyword">define-key</span> <span class="variable-name">riffle-summary-mode-map</span> "<span class="doc-string">\C-h</span>" nil)
+(<span class="keyword">define-key</span> <span class="variable-name">riffle-summary-mode-map</span> [delete] #'scroll-other-window-down)
+(<span class="keyword">define-key</span> <span class="variable-name">riffle-summary-mode-map</span> [backspace] #'scroll-other-window-down)
+(<span class="keyword">define-key</span> <span class="variable-name">riffle-contents-mode-map</span> "<span class="doc-string">\C-h</span>" nil)
+(<span class="keyword">define-key</span> <span class="variable-name">riffle-contents-mode-map</span> [delete] #'scroll-down)
+(<span class="keyword">define-key</span> <span class="variable-name">riffle-contents-mode-map</span> [backspace] #'scroll-down)
+
+<span class="comment">;; Add a binding to show the active todo list
+</span>(global-set-key [(control ?c) ?t] #'howm-list-active-todo)
+
+<span class="comment">;; Another problem with howm... it fucks up window configuration
+;; Advice time!
+</span>(<span class="keyword">defadvice</span> <span class="function-name">howm-keyword-search</span> (before howm-save-kw (<span class="type">&amp;rest</span> args) activate)
+ "<span class="doc-string">Save window configuration before viewing howm buffers.</span>"
+ (window-configuration-to-register ?h))
+
+(<span class="keyword">defadvice</span> <span class="function-name">howm-list-grep-fixed</span> (before howm-save-win1 (<span class="type">&amp;rest</span> args) activate)
+ "<span class="doc-string">Save window configuration before viewing howm buffers.</span>"
+ (window-configuration-to-register ?h))
+
+(<span class="keyword">defadvice</span> <span class="function-name">howm-list-grep</span> (before howm-save-win (<span class="type">&amp;rest</span> args) activate)
+ "<span class="doc-string">Save window configuration before viewing howm buffers.</span>"
+ (window-configuration-to-register ?h))
+
+(<span class="keyword">defadvice</span> <span class="function-name">howm-list-todo</span> (before howm-save-win (<span class="type">&amp;rest</span> args) activate)
+ "<span class="doc-string">Save window configuration before viewing howm buffers.</span>"
+ (window-configuration-to-register ?h))
+
+(<span class="keyword">defadvice</span> <span class="function-name">howm-list-active-todo</span> (before howm-save-win (<span class="type">&amp;rest</span> args) activate)
+ "<span class="doc-string">Save window configuration before viewing howm buffers.</span>"
+ (window-configuration-to-register ?h))
+
+(<span class="keyword">defadvice</span> <span class="function-name">riffle-kill-buffer</span> (after howm-restore-win (<span class="type">&amp;rest</span> args) activate)
+  "<span class="doc-string">Restore the original window configuration.</span>"
+  (jump-to-register ?h))
+
+<span class="comment">;; howm fucks up font-lock'ing like you wouldn't believe, adding a
+;; call to `</span><span class="comment"><span class="reference">turn-on-font-lock</span></span><span class="comment">' here at least restores a certain level
+;; of normalcy.
+</span>(<span class="keyword">defun</span> <span class="function-name">turn-on-howm-mode</span> ()
+  (turn-on-font-lock)
+  (howm-mode 1))
+
+(<span class="keyword">defun</span> <span class="function-name">turn-off-howm-mode</span> ()
+  (howm-mode 0)
+  (font-lock-mode))
+
+<span class="comment">;; Turn it on where I need it
+</span>(add-hook 'lisp-interaction-mode-hook #'turn-on-howm-mode)
+(add-hook 'text-mode-hook #'turn-on-howm-mode)
+(add-hook 'latex-mode-hook #'turn-on-howm-mode)
+(add-hook 'c-mode-hook #'turn-on-howm-mode)
+(add-hook 'sh-mode-hook #'turn-on-howm-mode)
+<span class="comment">;; You gotta be fooking kidding me, this prevents lisp-initd.el from
+;; compiling the generated .el (moved to init.el)
+;; (add-hook 'emacs-lisp-mode-hook #'turn-on-howm-mode)
+</span>
+<span class="comment">;; Turn it off where I don't
+;; I actually would love to have howm in all of these modes, but I
+;; cannot get the font-locking working properly with it on
+</span>(add-hook 'html-mode-hook #'turn-off-howm-mode)
+(add-hook 'texinfo-mode-hook #'turn-off-howm-mode)
+(add-hook 'message-mode-hook #'turn-off-howm-mode)
+(add-hook 'change-log-mode-hook #'turn-off-howm-mode)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=====================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> snap!
+;; save/load snapshot of application to/from text
+;; Usage:
+</span>
+<span class="comment">;; (1) M-x snap-record on application, e.g. Wanderlust.
+;; (2) Yank (C-y) on any buffer, e.g. *scratch* or ~/memo.txt.
+;; (3) M-x snap-play on yanked text ==&gt; snapshot (1) is restored.
+</span>(<span class="keyword">require</span> '<span class="reference">snap</span>)
+(global-set-key [(hyper ?s) ?r] #'snap-record)
+
+<span class="comment">;; env var trickery.
+</span>(setq snap-abbreviate-environment-variables
+      '("<span class="string">EMCHAT</span>" "<span class="string">JAVA_HOME</span>" "<span class="string">EL</span>" "<span class="string">XPKGS</span>" "<span class="string">MPKGS</span>" "<span class="string">PKGS</span>" "<span class="string">QTDIR</span>"
+        "<span class="string">BLDS</span>" "<span class="string">SXESITE</span>" "<span class="string">SXEWD</span>" "<span class="string">SYdrive</span>" "<span class="string">SYdrop</span>" "<span class="string">HOME</span>"))
+
+(<span class="keyword">defadvice</span> <span class="function-name">snap-abbreviate-file-name</span> (around env-var (raw-path) activate)
+  ad-do-it
+  (<span class="keyword">let</span> ((path (expand-file-name raw-path))
+        (rules (mapcar #'(<span class="keyword">lambda</span> (var)
+                           (<span class="keyword">let</span> ((val (getenv var)))
+                             (and val
+                                  (cons (concat "<span class="string">^</span>" (regexp-quote val))
+                                        (format "<span class="string">${%s}</span>" var)))))
+                       snap-abbreviate-environment-variables)))
+    (mapc #'(<span class="keyword">lambda</span> (r)
+              (<span class="keyword">when</span> (and r (string-match (car r) path))
+                (setq ad-return-value
+                      (replace-regexp-in-string (car r) (cdr r) path))))
+          (reverse rules))))
+
+<span class="comment">;; Bookmark extras
+</span>(<span class="keyword">eval-after-load</span> "<span class="doc-string">bookmark</span>"
+  (<span class="keyword">progn</span>
+    (ad-enable-advice 'bookmark-buffer-file-name 'around 'with-snap)
+    (ad-enable-advice 'bookmark-jump-noselect 'around 'with-snap)))
+
+<span class="comment">;; ffap extras
+</span>(setq ffap-url-regexp snap-ffap-url-regexp)
+(setq ffap-url-fetcher snap-ffap-url-fetcher)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> ElDoc (handy thingy dingy for lisp programming)
+;;  displays function args and var doc strings in echo area
+;(setq eldoc-use-idle-timer-p nil)
+;(autoload #'turn-on-eldoc-mode "eldoc" nil t)
+;(add-hook 'emacs-lisp-mode-hook #'turn-on-eldoc-mode)
+;(add-hook 'lisp-interaction-mode-hook #'turn-on-eldoc-mode)
+</span>
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Man pages
+</span>(<span class="keyword">require</span> '<span class="reference">man</span>)
+
+<span class="comment">;; You can't follow xrefs via keyboard, so...
+</span>(<span class="keyword">defun</span> <span class="function-name">sy:Manual-follow-xref-kbd</span> ()
+  "<span class="doc-string">Invoke `</span><span class="doc-string"><span class="reference">manual-entry</span></span><span class="doc-string">' on the cross-reference at point.</span>"
+  (interactive)
+  (<span class="keyword">let*</span> ((ext (extent-at (point)))
+         (data (and ext (extent-property ext 'man))))
+    (<span class="keyword">if</span> (eq (car-safe data) 'Manual-follow-xref)
+        (eval data)
+      (error 'search-failed "<span class="string">no manual cross-reference there.</span>"))
+    (or (manual-entry (extent-string ext))
+        <span class="comment">;; Couldn't find it, try other sections.
+</span>        (and (string-match "<span class="string">[ \t]*([^)]+)\\'</span>" (extent-string ext))
+             (<span class="keyword">progn</span>
+               (message "<span class="string">No entries found for %s; checking other sections...</span>"
+                        (extent-string ext))
+               (manual-entry
+                (substring (extent-string ext) 0 (match-beginning 0))
+                nil t))))))
+
+(<span class="keyword">define-key</span> <span class="variable-name">Manual-mode-map</span> [(control return)] #'sy:Manual-follow-xref-kbd)
+(<span class="keyword">define-key</span> <span class="variable-name">Manual-mode-map</span> [button1] #'Manual-follow-xref)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*</span></span><span class="comment">
+</span>(message "<span class="doc-string">packages loaded</span>")
+</pre>
+  <!--  SXEmacs Logo -->
+    <div class="img">
+      <a href="https://www.sxemacs.org/" target="_parent">
+       <img style="padding:0px 5px 0px 0px;border:0;width:88px;height:31px"
+         src="/Images/cbsx.png"
+         title="This page was created entirely in SXEmacs"
+         alt="Created with SXEmacs" />
+      </a>
+<!--  End SXEmacs Logo -->
+<!--  Valid XHTML 1.0 -->
+      <a href="http://validator.w3.org/check?uri=https%3a%2f%2fwww.sxemacs.org%2fSYinits%2f10-pkgs.html" target="_blank">
+       <img style="padding:0px 5px 0px 10px;border:0;width:88px;height:31px"
+         src="/Images/valid-xhtml10.png"
+         title="Valid XHTML 1.0 Transitional!"
+         alt="Valid XHTML 1.0 Transitional!" />
+      </a>
+    </div>
+<!--  End Valid XHTML 1.0 -->
+
+    <h6>Copyright &#169; 2020 Steve Youngs<br />
+     Verbatim copying and distribution is permitted in any medium,
+    providing this notice is preserved.<br />
+<!-- hhmts start -->
+Last modified: Wed Apr 15 18:13:56 AEST 2020
+<!-- hhmts end -->
+   </h6>
+
+</body>
+</html>
diff --git a/SYinits/11-cal.html b/SYinits/11-cal.html
new file mode 100644 (file)
index 0000000..e8adbd7
--- /dev/null
@@ -0,0 +1,733 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>11-cal.el</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Steve Youngs" />
+    <meta name="owner" content="steve@sxemacs.org" />
+    <style type="text/css">
+    <!--
+      body {
+        color: #ffffff;
+        background-color: #000000;
+      }
+      .comment {
+        /* font-lock-comment-face */
+        color: #87ceeb;
+      }
+      .doc-string {
+        /* font-lock-doc-string-face */
+        color: #32cd32;
+      }
+      .function-name {
+        /* font-lock-function-name-face */
+        color: #ffff00;
+        font-weight: bold;
+      }
+      .keyword {
+        /* font-lock-keyword-face */
+        color: #fa8072;
+      }
+      .reference {
+        /* font-lock-reference-face */
+        color: #40e0d0;
+      }
+      .string {
+        /* font-lock-string-face */
+        color: #00cd00;
+      }
+      .type {
+        /* font-lock-type-face */
+        color: #1e90ff;
+      }
+      .variable-name {
+        /* font-lock-variable-name-face */
+        color: #ffdab9;
+      }
+
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+    -->
+    </style>
+  </head>
+  <body>
+    <pre>
+<span class="comment">;; 11-cal.el --- Calendar Settings
+</span>
+<span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
+</span>
+<span class="comment">;;     Author: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;; Maintainer: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;;    Created: &lt;2007-12-02&gt;
+;; Time-stamp: &lt;Thursday Apr  9, 2020 08:12:34 steve&gt;
+;;   Download: &lt;<a href="https://downloads.sxemacs.org/SYinits">https://downloads.sxemacs.org/SYinits</a>&gt;
+;;   HTMLised: &lt;<a href="https://www.sxemacs.org/SYinits/11-cal.html">https://www.sxemacs.org/SYinits/11-cal.html</a>&gt;
+;;   Git Repo: git clone https://git.sxemacs.org/syinit
+;;   Keywords: init, compile
+</span>
+<span class="comment">;; This file is part of SYinit
+</span>
+<span class="comment">;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;;    notice, this list of conditions and the following disclaimer.
+;;
+;; 2. Redistributions in binary form must reproduce the above copyright
+;;    notice, this list of conditions and the following disclaimer in the
+;;    documentation and/or other materials provided with the distribution.
+;;
+;; 3. Neither the name of the author nor the names of any contributors
+;;    may be used to endorse or promote products derived from this
+;;    software without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+<span class="comment">;;; Commentary:
+;;
+;;   My calendar/diary settings
+;;
+</span>
+<span class="comment">;;; Credits:
+;;
+;;   The HTML version of this file was created with Hrvoje Niksic's
+;;   htmlize.el which is part of the XEmacs "text-modes" package.
+;;
+</span>
+<span class="comment">;;; Todo:
+;;
+;;     
+</span>
+<span class="comment">;;; Code:
+;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Calendar
+</span>(<span class="keyword">require</span> '<span class="reference">cedet-compat</span>)
+(<span class="keyword">require</span> '<span class="reference">diary-lib</span>)
+<span class="comment">;(require 'calendar)
+</span>(setq 
+ calendar-latitude -27.47
+ calendar-longitude 153.02
+ calendar-location-name "<span class="doc-string">Brisbane</span>"
+ calendar-time-zone 600
+ cal-tex-diary t
+<span class="comment">; calendar-date-display-form ; see: "Howm Integration" below
+; '((if dayname (concat dayname ", ")) day " " monthname " " year)
+</span> calendar-time-display-form
+ '(24-hours "<span class="string">:</span>" minutes
+            (<span class="keyword">if</span> time-zone "<span class="string"> (</span>") time-zone (<span class="keyword">if</span> time-zone "<span class="string">)</span>"))
+ calendar-week-start-day 1
+ diary-file (expand-file-name "<span class="string">diary</span>" user-init-directory)
+ diary-mail-addr "<span class="doc-string">steve</span>"
+ diary-mail-days 7
+ european-calendar-style t
+ mark-diary-entries-in-calendar t
+ number-of-diary-entries 7
+ view-diary-entries-initially t)
+
+<span class="comment">;; Use a dedicated frame for my calendar
+</span>(setq calendar-and-diary-frame-parameters
+      '((name . "<span class="string">Calendar</span>")
+        (title . "<span class="string">Calendar</span>")
+        (height . 40)
+        (width . 80)
+        (minibuffer . t)
+        (default-toolbar-visible-p . nil)
+        (default-gutter-visible-p . nil)
+        (menubar-visible-p . t))
+      calendar-setup 'one-frame)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Todo
+;; Turning this off for a while to see if I can get used to using Howm
+;; more.
+;;(autoload 'todo-mode "todo-mode"
+;;  "Major mode for editing TODO lists." t)
+;;(autoload 'todo-show "todo-mode"
+;;  "Show TODO items." t)
+;;(autoload 'todo-insert-item "todo-mode"
+;;  "Add TODO item." t)
+;;(global-set-key "\C-ct" 'todo-show) ;; switch to TODO buffer
+;;(global-set-key "\C-cn" 'todo-insert-item) ;; insert new item
+;; (setq
+;;  todo-prefix "&amp;%%(todo-cp)"
+;;  todo-file-do (expand-file-name "todo-do" (paths-construct-path
+;;                                         (list user-init-directory
+;;                                               "todo-mode")))
+;;  todo-file-done (expand-file-name "todo-done" (paths-construct-path
+;;                                             (list user-init-directory
+;;                                                   "todo-mode")))
+;;  todo-file-top (expand-file-name "todo-top" (paths-construct-path
+;;                                           (list user-init-directory
+;;                                                 "todo-mode")))
+;;  todo-time-string-format "%3b, %d")
+</span>
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Fancy Diary with perdy colours!
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-hide-fancy-dashes</span> ()
+  "<span class="doc-string">Hides the long lines of dashes from todo-mode in fancy diary display.</span>"
+  (<span class="keyword">save-excursion</span>
+    (goto-char (point-min))
+    (<span class="keyword">while</span> (re-search-forward "<span class="string">-----</span>" nil t)
+      (set-extent-property
+       (make-extent (match-beginning 0) (1+ (match-end 0)))
+       'invisible t))))
+
+(<span class="keyword">define-derived-mode</span> <span class="function-name">fancy-diary-display-mode</span> fundamental-mode "<span class="doc-string">Diary</span>"
+  "<span class="doc-string">Minor mode for displaying Fancy Diary entries buffer.</span>"
+  (set (make-local-variable 'font-lock-defaults)
+       '(fancy-diary-font-lock-keywords t))
+  (sy-hide-fancy-dashes)
+  (font-lock-mode)
+  (define-key (current-local-map) "<span class="string">o</span>" 'other-window)
+  (define-key (current-local-map) [space] 'scroll-up-command)
+  (define-key (current-local-map) [backspace] 'scroll-down-command))
+
+(<span class="keyword">defadvice</span> <span class="function-name">fancy-diary-display</span> (after set-mode activate)
+  "<span class="doc-string">Give the Fancy Diary Entries buffer a mode of its own.
+
+It has the ever-so-original name of: `</span><span class="doc-string"><span class="reference">fancy-diary-display-mode</span></span><span class="doc-string">', adds
+a couple of motion keybindings, and lets you set up font lock keywords
+for a fontified Diary buffer.</span>"
+  (<span class="keyword">save-excursion</span>
+    (set-buffer (get-buffer-create fancy-diary-buffer))
+    (fancy-diary-display-mode)))
+
+(<span class="keyword">defun</span> <span class="function-name">fancy-diary-font-lock-keywords</span> ()
+  (<span class="keyword">let*</span> ((today (regexp-opt (list (calendar-date-string (calendar-current-date)))))
+         (keywords `(("<span class="string">^---\\s-\\(.*$\\)</span>" (1 font-lock-function-name-face))
+                     ("<span class="string">^.*SY:</span>" . font-lock-keyword-face)
+                     ("<span class="string">\"\\(.*\\)\"</span>" (1 font-lock-string-face))
+                     ("<span class="string">`\\(.*?\\)'</span>" (1 font-lock-reference-face))
+                     ("<span class="string">[0-9]+:[0-9]+</span>" . font-lock-warning-face)
+                     (,today . font-lock-warning-face)
+                     ("<span class="string">\\(^.*\\)\n=</span>" (1 font-lock-comment-face)))))
+    keywords))
+
+(<span class="keyword">defvar</span> <span class="variable-name">fancy-diary-font-lock-keywords</span> (fancy-diary-font-lock-keywords))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Display ISO week numbers
+;;
+;; I saw this code mentioned on c.e.x.  I just snarfed what I needed
+;; and SXEmacserised it.
+</span>(<span class="keyword">require</span> '<span class="reference">cal-iso</span>)
+
+(<span class="keyword">defvar</span> <span class="variable-name">calendar-use-colours</span> t
+  "<span class="doc-string">Tries to fontify Calendar if non-nil.</span>")
+
+(<span class="keyword">defvar</span> <span class="variable-name">calendar-week-string</span> "<span class="doc-string">WK</span>"
+  "<span class="doc-string">String (up to three chars) used in calendar header to identify week numbers.</span>")
+
+(<span class="keyword">defun</span> <span class="function-name">sy-generate-calendar-month</span> (month year indent)
+  "<span class="doc-string">Produce a calendar for ISO-week, month, year on the Gregorian calendar.
+The calendar is inserted in the buffer starting at the line on which point
+is currently located, but indented INDENT spaces.  The indentation is done
+from the first character on the line and does not disturb the first INDENT
+characters on the line.</span>"
+  (<span class="keyword">let*</span> ((blank-days                    <span class="comment">; At start of month
+</span>          (mod
+           (- (calendar-day-of-week (list month 1 year))
+              calendar-week-start-day)
+           7))
+         (last (calendar-last-day-of-month month year)))
+    (goto-char (point-min))
+    (calendar-insert-indented
+     (calendar-string-spread
+      (list (format "<span class="string">%s %d</span>" (calendar-month-name month) year)) ?  20)
+     indent t)
+    <span class="comment">;; Add colour to month name
+</span>    (<span class="keyword">if</span> calendar-use-colours
+        (set-extent-property (make-extent (point-min) (1- (point)))
+                     'face 'calendar-header-face))
+    (calendar-insert-indented "" indent) <span class="comment">; Go to proper spot
+</span>    (calendar-for-loop
+     i from 0 to 6 do
+     (insert (substring (aref calendar-day-name-array
+                              (mod (+ calendar-week-start-day i) 7)) 0 2))
+     <span class="comment">;; Add colour to week day names and sundays
+</span>     (<span class="keyword">if</span> calendar-use-colours
+         (set-extent-property (make-extent  (- (point) 2) (point)) 'face
+                      (<span class="keyword">if</span> (= 0 (mod (+ calendar-week-start-day i) 7))
+                          'calendar-sunday-face
+                        'calendar-header-face)))
+     (insert "<span class="string"> </span>"))
+    <span class="comment">;; Add week-string after week dates
+</span>    (insert (concat calendar-week-string 
+                    (make-string (- 3 (length calendar-week-string)) ? )))
+    <span class="comment">;; Add colour to week-string
+</span>    (<span class="keyword">if</span> calendar-use-colours
+        (set-extent-property (make-extent  (- (point) 3) (point))
+                     'face 'calendar-week-face))
+    (calendar-insert-indented "" 0 t)<span class="comment">;; Force onto following line
+</span>    (calendar-insert-indented "" indent)<span class="comment">;; Go to proper spot
+</span>    <span class="comment">;; Add blank days before the first of the month
+</span>    (calendar-for-loop i from 1 to blank-days do (insert "<span class="string">   </span>"))
+    <span class="comment">;; Put in the days of the month
+</span>    (calendar-for-loop
+     i from 1 to last do
+     (insert (format "<span class="string">%2d </span>" i))
+     (<span class="keyword">if</span> (not calendar-use-colours)
+         nil
+       (put-text-property (- (point) 3) (1- (point)) 'mouse-face 'highlight)
+       <span class="comment">;; Add colour to sunday
+</span>       (<span class="keyword">if</span> (= 1 (mod (+ blank-days calendar-week-start-day i) 7))
+           (set-extent-property (make-extent  (- (point) 3) (1- (point)))
+                        'face 'calendar-sunday-face)))
+     (and (zerop (mod (+ i blank-days) 7))
+          <span class="comment">;; Add ISO-week # at the end each week entry
+</span>          (not (insert
+                (format "<span class="string">%2d </span>" (extract-calendar-month
+                                (calendar-iso-from-absolute
+                                 (calendar-absolute-from-gregorian
+                                  (list month i year)))))))
+          <span class="comment">;; Add colour to week #
+</span>          (<span class="keyword">if</span> calendar-use-colours
+              (set-extent-property (make-extent  (- (point) 3) (1- (point)))
+                           'face 'calendar-week-face)
+            t)
+          (/= i last)
+          (calendar-insert-indented "" 0 t)<span class="comment">;; Force onto following line
+</span>          (calendar-insert-indented "" indent)))))<span class="comment">;; Go to proper spot
+</span>
+(<span class="keyword">defalias</span> '<span class="function-name">generate-calendar-month</span> #'sy-generate-calendar-month)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Hooks
+</span>(add-hook 'diary-display-hook #'fancy-diary-display)
+(add-hook 'diary-hook #'appt-make-list)
+(add-hook 'list-diary-entries-hook
+          #'(<span class="keyword">lambda</span> ()
+             (sort-diary-entries)
+             (include-other-diary-files)))
+(add-hook 'mark-diary-entries-hook #'mark-included-diary-files)
+(add-hook 'today-visible-calendar-hook #'calendar-mark-today)
+(add-hook 'calendar-move-hook #'(<span class="keyword">lambda</span> () (diary-view-entries 1)))
+(add-hook 'calendar-mode-hook
+          #'(<span class="keyword">lambda</span> ()
+              (setq fancy-diary-font-lock-keywords
+                    (fancy-diary-font-lock-keywords))))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Holidays
+</span>(<span class="keyword">defvar</span> <span class="variable-name">displayed-month</span>)
+(<span class="keyword">defvar</span> <span class="variable-name">displayed-year</span>)
+(<span class="keyword">require</span> '<span class="reference">holidays</span>)
+
+<span class="comment">;; First up, a slightly re-written easter-holiday function
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-easter-holidays</span> ()
+  "<span class="doc-string">List of dates related to Easter, as visible in calendar window.
+Ever-so-slightly modified to include the Easter Monday holiday.</span>"
+ (<span class="keyword">if</span> (and (&gt; displayed-month 5) (not all-christian-calendar-holidays))
+     nil<span class="comment">;; Ash Wednesday, Good Friday, and Easter are not visible.
+</span>   (<span class="keyword">let*</span> ((century (1+ (/ displayed-year 100)))
+          (shifted-epact        <span class="comment">;; Age of moon for April 5...
+</span>           (% (+ 14 (* 11 (% displayed-year 19))<span class="comment">;;     ...by Nicaean rule
+</span>                 (-           <span class="comment">;; ...corrected for the Gregorian century rule
+</span>                  (/ (* 3 century) 4))
+                 (/    <span class="comment">;; ...corrected for Metonic cycle inaccuracy.
+</span>                  (+ 5 (* 8 century)) 25)
+                 (* 30 century))<span class="comment">;;              Keeps value positive.
+</span>              30))
+          (adjusted-epact       <span class="comment">;;  Adjust for 29.5 day month.
+</span>           (<span class="keyword">if</span> (or (= shifted-epact 0)
+                   (and (= shifted-epact 1) (&lt; 10 (% displayed-year 19))))
+               (1+ shifted-epact)
+             shifted-epact))
+          (paschal-moon       <span class="comment">;; Day after the full moon on or after March 21.
+</span>           (- (calendar-absolute-from-gregorian (list 4 19 displayed-year))
+              adjusted-epact))
+          (abs-easter (calendar-dayname-on-or-before 0 (+ paschal-moon 7)))
+          (mandatory
+           (list
+            (list (calendar-gregorian-from-absolute abs-easter)
+                  "<span class="string">Easter Sunday</span>")
+            (list (calendar-gregorian-from-absolute (- abs-easter 2))
+                  "<span class="string">Good Friday</span>")
+            (list (calendar-gregorian-from-absolute (+ abs-easter 1))
+                  "<span class="string">Easter Monday</span>")
+            (list (calendar-gregorian-from-absolute (- abs-easter 46))
+                  "<span class="string">Ash Wednesday</span>")
+            (list (calendar-gregorian-from-absolute (- abs-easter 47))
+                  "<span class="string">Shrove Tuesday \(Pancake Tuesday\)</span>")))
+          (optional
+           (list
+            (list (calendar-gregorian-from-absolute (- abs-easter 63))
+                  "<span class="string">Septuagesima Sunday</span>")
+            (list (calendar-gregorian-from-absolute (- abs-easter 56))
+                  "<span class="string">Sexagesima Sunday</span>")
+            (list (calendar-gregorian-from-absolute (- abs-easter 49))
+                  "<span class="string">Shrove Sunday</span>")
+            (list (calendar-gregorian-from-absolute (- abs-easter 48))
+                  "<span class="string">Shrove Monday</span>")
+            (list (calendar-gregorian-from-absolute (- abs-easter 14))
+                  "<span class="string">Passion Sunday</span>")
+            (list (calendar-gregorian-from-absolute (- abs-easter 7))
+                  "<span class="string">Palm Sunday</span>")
+            (list (calendar-gregorian-from-absolute (- abs-easter 3))
+                  "<span class="string">Maundy Thursday</span>")
+            (list (calendar-gregorian-from-absolute (+ abs-easter 35))
+                  "<span class="string">Rogation Sunday</span>")
+            (list (calendar-gregorian-from-absolute (+ abs-easter 39))
+                  "<span class="string">Ascension Day</span>")
+            (list (calendar-gregorian-from-absolute (+ abs-easter 49))
+                  "<span class="string">Pentecost (Whitsunday)</span>")
+            (list (calendar-gregorian-from-absolute (+ abs-easter 50))
+                  "<span class="string">Whitmonday</span>")
+            (list (calendar-gregorian-from-absolute (+ abs-easter 56))
+                  "<span class="string">Trinity Sunday</span>")
+            (list (calendar-gregorian-from-absolute (+ abs-easter 60))
+                  "<span class="string">Corpus Christi</span>")))
+          (output-list
+           (filter-visible-calendar-holidays mandatory)))
+     (<span class="keyword">if</span> all-christian-calendar-holidays
+         (setq output-list
+               (append 
+                (filter-visible-calendar-holidays optional)
+                output-list)))
+     output-list)))
+
+<span class="comment">;; Get rid of all the Americanised holidays
+</span>(setq
+ christian-holidays nil
+ hebrew-holidays nil
+ islamic-holidays nil
+ general-holidays nil
+ local-holidays nil
+ oriental-holidays nil
+ other-holidays nil)
+
+<span class="comment">;; Set up standard Aussie holidays
+</span>(setq calendar-holidays
+      '((holiday-fixed 1 1 "<span class="string">New Year's Day</span>")
+        <span class="comment">;; If New Year's day is on a weekend the public
+</span>        <span class="comment">;; holiday is the following Monday
+</span>        (<span class="keyword">if</span> (or (eq 0 (calendar-day-of-week (list 1 1 displayed-year)))
+                (eq 6 (calendar-day-of-week (list 1 1 displayed-year))))
+            (holiday-float 1 1 1 "<span class="string">New Year's Day Public Holiday</span>"))
+        (holiday-fixed 1 26 "<span class="string">Australia Day</span>")
+        <span class="comment">;; If Australia Day falls on a weekend, the
+</span>        <span class="comment">;; holiday is the following Monday
+</span>        (<span class="keyword">if</span> (eq 0 (calendar-day-of-week (list 1 26 displayed-year)))
+            (holiday-fixed 1 27 "<span class="string">Australia Day Public Holiday</span>"))
+        (<span class="keyword">if</span> (eq 6 (calendar-day-of-week (list 1 26 displayed-year)))
+            (holiday-fixed 1 28 "<span class="string">Australia Day Public Holiday</span>"))
+        (holiday-fixed 2 14 "<span class="string">Valentine's Day</span>")
+        (holiday-fixed 3 17 "<span class="string">St. Patrick's Day</span>")
+        (holiday-fixed 4 1 "<span class="string">April Fools' Day</span>")
+        (holiday-fixed 4 25 "<span class="string">Anzac Day</span>")
+        <span class="comment">;; If Anzac Day falls on a weekend, the holiday
+</span>        <span class="comment">;; is the following Monday
+</span>        (<span class="keyword">if</span> (eq 0 (calendar-day-of-week (list 4 25 displayed-year)))
+            (holiday-fixed 4 26 "<span class="string">Anzac Day Public Holiday</span>"))
+        (<span class="keyword">if</span> (eq 6 (calendar-day-of-week (list 4 25 displayed-year)))
+            (holiday-fixed 4 27 "<span class="string">Anzac Day Public Holiday</span>"))
+        (holiday-float 5 1 1 "<span class="string">Labour Day</span>")
+        (holiday-float 5 0 2 "<span class="string">Mother's Day</span>")
+        (holiday-float 6 1 2 "<span class="string">Queen's Birthday</span>")
+        <span class="comment">;; Brisbane Ekka holiday is on the 2nd Wednesday
+</span>        <span class="comment">;; in August, unless there are 5 Wednesdays in
+</span>        <span class="comment">;; August, then it is the 3rd Wednesday.
+</span>        (<span class="keyword">if</span> (eq 8 (car (calendar-nth-named-day 5 3 8 displayed-year)))
+            (holiday-float 8 3 3 "<span class="string">Brisbane Show Day</span>")
+          (holiday-float 8 3 2 "<span class="string">Brisbane Show Day</span>"))
+        (holiday-float 9 0 1 "<span class="string">Father's Day</span>")
+        (holiday-fixed 12 25 "<span class="string">Christmas Day</span>")
+        (holiday-fixed 12 26 "<span class="string">Boxing Day</span>")
+        <span class="comment">;; If Xmas falls on weekend, the public holiday
+</span>        <span class="comment">;; is the following Mon/Tue
+</span>        (<span class="keyword">if</span> (or (eq 0 (calendar-day-of-week (list 12 25 displayed-year)))
+                (eq 6 (calendar-day-of-week (list 12 25 displayed-year))))
+            (holiday-fixed 12 27 "<span class="string">Xmas Day Public Holiday</span>"))
+        (<span class="keyword">if</span> (or (eq 0 (calendar-day-of-week (list 12 26 displayed-year)))
+                (eq 6 (calendar-day-of-week (list 12 26 displayed-year))))
+            (holiday-fixed 12 28 "<span class="string">Boxing Day Public Holiday</span>"))
+        (solar-equinoxes-solstices)
+        (sy-easter-holidays)))
+(setq mark-holidays-in-calendar t)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Appointments
+</span>(<span class="keyword">require</span> '<span class="reference">appt</span>)
+(<span class="keyword">require</span> '<span class="reference">balloon-help</span>)
+(balloon-help-mode 1)
+(setq 
+ balloon-help-background "<span class="doc-string">BlanchedAlmond</span>"
+ balloon-help-foreground "<span class="doc-string">Black</span>"
+ display-time-24hr-format t
+ display-time-day-and-date t
+ display-time-no-mail-balloon "<span class="doc-string">What! No mail? That can't be right.</span>"
+ display-time-mail-balloon-show-gnus-group t
+ display-time-mail-balloon-max-displayed 20
+ display-time-mail-balloon-gnus-split-width 19
+ display-time-mail-balloon-enhance-gnus-group
+ '("<span class="string">private.*</span>")
+ display-time-mail-balloon-suppress-gnus-group
+ '("<span class="string">\\(SPAM.*\\|returned\\.mail\\)</span>"))
+(display-time)
+(appt-activate 1)
+(setq 
+ appt-message-warning-time 30
+ appt-display-format 'echo
+ appt-audible t
+ appt-display-mode-line t
+ appt-announce-method 'appt-persistent-message-announce)
+(add-hook 'appt-make-list-hook #'appt-included-diary-entries)
+(appt-activate 1)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Howm integration
+</span>(setq
+ calendar-date-display-form
+ '("<span class="string">[</span>" year "<span class="string">-</span>" (format "<span class="string">%02d</span>" (string-to-int month))
+   "<span class="string">-</span>" (format "<span class="string">%02d</span>" (string-to-int day)) "<span class="string">] </span>"
+   (<span class="keyword">if</span> dayname (concat dayname "<span class="string">, </span>")) day "<span class="string"> </span>" monthname "<span class="string"> </span>" year))
+
+(<span class="keyword">defun</span> <span class="function-name">howm-mark-calendar-date</span> ()
+  (interactive)
+  (<span class="keyword">let*</span> ((howm-schedule-types
+          howm-schedule-menu-types)
+         (raw (howm-reminder-search
+               howm-schedule-types))
+         (str nil) (yy nil) (mm nil) (dd nil))
+    (<span class="keyword">while</span> raw
+      (setq str (nth 1 (car raw)))
+      (<span class="keyword">when</span>
+          (string-match
+           "<span class="string">\\([0-9]+\\)-\\([0-9]+\\)-\\([0-9]+\\)</span>"
+           str)
+        (setq yy (match-string 1 str))
+        (setq mm (match-string 2 str))
+        (setq dd (match-string 3 str)))
+      (<span class="keyword">when</span> (and yy mm dd)
+        (mark-calendar-date-pattern
+         (string-to-int mm)
+         (string-to-int dd)
+         (string-to-int yy)))
+      (setq mm nil)
+      (setq dd nil)
+      (setq yy nil)
+      (setq raw (cdr raw)))))
+
+(<span class="keyword">defadvice</span> <span class="function-name">mark-diary-entries</span>
+  (after mark-howm-entry activate)
+  (howm-mark-calendar-date))
+
+(and-boundp 'howm-menu-display-rules
+  (setq
+   howm-menu-display-rules
+   (cons
+    (cons "<span class="string">%hdiary[\n]?</span>" 'howm-menu-diary)
+    howm-menu-display-rules)))
+
+(<span class="keyword">defun</span> <span class="function-name">howm-menu-diary</span> ()
+  (message "<span class="string">scanning diary...</span>")
+  (delete-region
+   (match-beginning 0) (match-end 0))
+  (<span class="keyword">let*</span> ((now (decode-time (current-time)))
+         (diary-date
+          (list (nth 4 now) (nth 3 now) (nth 5 now)))
+         (diary-display-hook 'ignore)
+         (howm-diary-entry nil)
+         (howm-diary-entry-day nil)
+         (str nil)
+         yy mm dd)
+    (<span class="keyword">unwind-protect</span>
+        (setq howm-diary-entry
+              (diary-list-entries
+               diary-date howm-menu-schedule-days))
+      (<span class="keyword">save-excursion</span>
+        (set-buffer
+         (find-buffer-visiting diary-file))
+        (subst-char-in-region
+         (point-min) (point-max) ?\^M ?\n t)
+        (setq selective-display nil)))
+    (<span class="keyword">while</span> howm-diary-entry
+      (setq howm-diary-entry-day (car howm-diary-entry))
+      (setq mm (nth 0 (car howm-diary-entry-day)))
+      (setq dd (nth 1 (car howm-diary-entry-day)))
+      (setq yy (nth 2 (car howm-diary-entry-day)))
+      (setq str (nth 1 howm-diary-entry-day))
+      (setq howm-diary-entry (cdr howm-diary-entry))
+      (insert
+       (format
+        "<span class="string">&gt;&gt;d [%04d-%02d-%02d] %s\n</span>" yy mm dd str))))
+  (message "<span class="string">scanning diary...done</span>"))
+
+(setq diary-date-forms
+      '((month "<span class="string">/</span>" day "<span class="string">[^/0-9]</span>")
+        (month "<span class="string">/</span>" day "<span class="string">/</span>" year "<span class="string">[^0-9]</span>")
+        ("<span class="string">\\[</span>" year "<span class="string">-</span>" month "<span class="string">-</span>" day "<span class="string">\\]</span>" "<span class="string">[^0-9]</span>")
+        (monthname "<span class="string"> *</span>" day "<span class="string">[^,0-9]</span>")
+        (monthname "<span class="string"> *</span>" day "<span class="string">, *</span>" year "<span class="string">[^0-9]</span>")
+        (dayname "<span class="string">\\W</span>")))
+
+(<span class="keyword">defun</span> <span class="function-name">howm-open-diary</span> (<span class="type">&amp;optional</span> dummy)
+  (interactive)
+  (<span class="keyword">let</span> ((date-str nil) (str nil))
+    (<span class="keyword">save-excursion</span>
+      (beginning-of-line)
+      (<span class="keyword">when</span> (re-search-forward
+             "<span class="string">&gt;&gt;d \\(\\[[-0-9]+\\]\\) </span>" nil t)
+        (setq str
+              (concat
+               "<span class="string">^.+</span>"
+               (buffer-substring-no-properties
+                (point) (line-end-position))))
+        (setq date-str
+              (concat
+               "<span class="string">^.+</span>"
+               (buffer-substring-no-properties
+                (match-beginning 1)
+                (match-end 1))
+               "<span class="string"> </span>" str))
+        (find-file
+         (substitute-in-file-name diary-file))
+        (howm-mode t)
+        (goto-char (point-min))
+        (<span class="keyword">if</span> (re-search-forward date-str nil t)
+            ()
+          (re-search-forward str nil t))))))
+
+(<span class="keyword">defun</span> <span class="function-name">add-diary-action-lock-rule</span> ()
+  (<span class="keyword">let</span> ((rule
+         (action-lock-general
+          'howm-open-diary
+          "<span class="string">^\\(&gt;&gt;d\\) </span>"
+          1 1)))
+    (<span class="keyword">if</span> (not (member rule action-lock-default-rules))
+        (<span class="keyword">progn</span>
+          (setq action-lock-default-rules
+                (cons rule action-lock-default-rules))
+          (action-lock-set-rules
+           action-lock-default-rules)))))
+
+(add-hook 'action-lock-mode-on-hook
+          'add-diary-action-lock-rule)
+
+(<span class="keyword">defadvice</span> <span class="function-name">make-diary-entry</span>
+  (after howm-mode activate)
+  (text-mode)
+  (howm-mode t))
+
+<span class="comment">;;; ;;;;;;;;;;
+</span>
+<span class="comment">;;; ;; M-x calendar, move cursor to a certain date, and
+;;; ;; M-x howm-from-calendar to search that date in howm notes.
+</span>(<span class="keyword">defun</span> <span class="function-name">howm-from-calendar</span> ()
+  (interactive)
+  (<span class="keyword">let*</span> ((mdy (calendar-cursor-to-date t))
+         (m (car mdy))
+         (d (second mdy))
+         (y (third mdy))
+         (key (format-time-string
+               howm-date-format
+               (encode-time 0 0 0 d m y))))
+    (howm-keyword-search key)))
+
+<span class="comment">;; Bind howm-from-calendar to "H-d" key.
+</span>(add-hook 'initial-calendar-window-hook
+          #'(<span class="keyword">lambda</span> ()
+            (local-set-key [(hyper ?d)] 'howm-from-calendar)))
+
+       
+
+<span class="comment">;; Type "H-d" in howm menu to open calendar.
+</span>(add-hook 'howm-menu-hook
+          #'(<span class="keyword">lambda</span> ()
+            (local-set-key [(hyper ?d)] 'calendar)))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> timeclock
+;;  I tried using it for a while but I found that because it wasn't
+;;  automated I never remembered to "clock-in" or "clock-out" and
+;;  change tasks.  I would probably use it if it were a lot more like
+;;  xwem-worklog.
+;;
+;; Track time spent doing certain things
+;; (require 'timeclock)
+;; (setq timeclock-file (expand-file-name "timelog" user-init-directory))
+;; (setq timeclock-relative nil)
+;; (add-hook 'kill-emacs-query-functions 'timeclock-query-out)
+;; (timeclock-modeline-display)
+</span>
+(<span class="keyword">define-key</span> <span class="variable-name">ctl-x-map</span> "<span class="doc-string">ti</span>" 'timeclock-in)
+(<span class="keyword">define-key</span> <span class="variable-name">ctl-x-map</span> "<span class="doc-string">to</span>" 'timeclock-out)
+(<span class="keyword">define-key</span> <span class="variable-name">ctl-x-map</span> "<span class="doc-string">tc</span>" 'timeclock-change)
+(<span class="keyword">define-key</span> <span class="variable-name">ctl-x-map</span> "<span class="doc-string">tr</span>" 'timeclock-reread-log)
+(<span class="keyword">define-key</span> <span class="variable-name">ctl-x-map</span> "<span class="doc-string">tu</span>" 'timeclock-update-modeline)
+(<span class="keyword">define-key</span> <span class="variable-name">ctl-x-map</span> "<span class="doc-string">tw</span>" 'timeclock-when-to-leave-string)
+
+
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Start itimer to refresh just after midnight
+;; This needs my `</span><span class="comment"><span class="reference">future-run-at-time</span></span><span class="comment">' advice.
+</span>(run-at-time "<span class="doc-string">00:01</span>" 86400 #'redraw-calendar)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Get the show on the road
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-calendar-setup</span> ()
+  (mark-diary-entries)
+  (mark-calendar-holidays)
+  (diary-show-all-entries))
+
+(add-hook 'calendar-load-hook 'sy-calendar-setup)
+<span class="comment">;</span><span class="comment"><span class="reference">:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*</span></span><span class="comment">
+</span>(message "<span class="doc-string">Calendar settings loaded</span>")
+</pre>
+  <!--  SXEmacs Logo -->
+    <div class="img">
+      <a href="https://www.sxemacs.org/" target="_parent">
+       <img style="padding:0px 5px 0px 0px;border:0;width:88px;height:31px"
+         src="/Images/cbsx.png"
+         title="This page was created entirely in SXEmacs"
+         alt="Created with SXEmacs" />
+      </a>
+<!--  End SXEmacs Logo -->
+<!--  Valid XHTML 1.0 -->
+      <a href="http://validator.w3.org/check?uri=https%3a%2f%2fwww.sxemacs.org%2fSYinits%2f11-cal.html" target="_blank">
+       <img style="padding:0px 5px 0px 10px;border:0;width:88px;height:31px"
+         src="/Images/valid-xhtml10.png"
+         title="Valid XHTML 1.0 Transitional!"
+         alt="Valid XHTML 1.0 Transitional!" />
+      </a>
+    </div>
+<!--  End Valid XHTML 1.0 -->
+
+    <h6>Copyright &#169; 2020 Steve Youngs<br />
+     Verbatim copying and distribution is permitted in any medium,
+    providing this notice is preserved.<br />
+<!-- hhmts start -->
+Last modified: Wed Apr 15 18:14:11 AEST 2020
+<!-- hhmts end -->
+   </h6>
+
+</body>
+</html>
diff --git a/SYinits/12-misc.html b/SYinits/12-misc.html
new file mode 100644 (file)
index 0000000..74d35ae
--- /dev/null
@@ -0,0 +1,1070 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>12-misc.el</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Steve Youngs" />
+    <meta name="owner" content="steve@sxemacs.org" />
+    <style type="text/css">
+    <!--
+      body {
+        color: #ffffff;
+        background-color: #000000;
+      }
+      .comment {
+        /* font-lock-comment-face */
+        color: #87ceeb;
+      }
+      .doc-string {
+        /* font-lock-doc-string-face */
+        color: #32cd32;
+      }
+      .function-name {
+        /* font-lock-function-name-face */
+        color: #ffff00;
+        font-weight: bold;
+      }
+      .keyword {
+        /* font-lock-keyword-face */
+        color: #fa8072;
+      }
+      .reference {
+        /* font-lock-reference-face */
+        color: #40e0d0;
+      }
+      .string {
+        /* font-lock-string-face */
+        color: #00cd00;
+      }
+      .type {
+        /* font-lock-type-face */
+        color: #1e90ff;
+      }
+      .variable-name {
+        /* font-lock-variable-name-face */
+        color: #ffdab9;
+      }
+
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+    -->
+    </style>
+  </head>
+  <body>
+    <pre>
+<span class="comment">;; 12-misc --- Miscellaneous Settings
+</span>
+<span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
+</span>
+<span class="comment">;;     Author: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;; Maintainer: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;;    Created: &lt;2007-12-02&gt;
+;; Time-stamp: &lt;Thursday Apr  9, 2020 18:46:14 steve&gt;
+;;   Download: &lt;<a href="https://downloads.sxemacs.org/SYinits">https://downloads.sxemacs.org/SYinits</a>&gt;
+;;   HTMLised: &lt;<a href="https://www.sxemacs.org/SYinits/12-misc.html">https://www.sxemacs.org/SYinits/12-misc.html</a>&gt;
+;;   Git Repo: git clone https://git.sxemacs.org/syinit
+;;   Keywords: init, compile
+</span>
+<span class="comment">;; This file is part of SYinit
+</span>
+<span class="comment">;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;;    notice, this list of conditions and the following disclaimer.
+;;
+;; 2. Redistributions in binary form must reproduce the above copyright
+;;    notice, this list of conditions and the following disclaimer in the
+;;    documentation and/or other materials provided with the distribution.
+;;
+;; 3. Neither the name of the author nor the names of any contributors
+;;    may be used to endorse or promote products derived from this
+;;    software without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+<span class="comment">;;; Commentary:
+;;
+;;  For stuff that just doesn't seem to fit anywhere else.
+;;
+</span>
+<span class="comment">;;; Credits:
+;;
+;;   The HTML version of this file was created with Hrvoje Niksic's
+;;   htmlize.el which is part of the XEmacs "text-modes" package.
+;;
+</span>
+<span class="comment">;;; Todo:
+;;
+;;     
+;;; Code:
+;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Why type 'y e s RET' or 'n o RET' when 'y' or 'n' will do.
+</span>(fset 'yes-or-no-p 'y-or-n-p)
+
+(setq x-allow-sendevents t)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;: Enable the command `</span><span class="comment"><span class="reference">narrow-to-region</span></span><span class="comment">' ("C-x n n")
+;(setq narrow-to-region t)
+</span>(put 'narrow-to-region 'disabled nil)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Enable `</span><span class="comment"><span class="reference">erase-buffer</span></span><span class="comment">'
+</span>(put 'erase-buffer 'disabled nil)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Put the mouse selection in the kill buffer
+;: Jan Vroonhof &lt;<a href="mailto:vroonhof&#64;frege.math.ethz.ch">vroonhof&#64;frege.math.ethz.ch</a>&gt;
+</span>(<span class="keyword">defun</span> <span class="function-name">mouse-track-drag-copy-to-kill</span> (event count)
+  "<span class="doc-string">Copy the dragged region to the kill ring</span>"
+  (<span class="keyword">let</span> ((region (default-mouse-track-return-dragged-selection event)))
+    (<span class="keyword">when</span> region
+      (copy-region-as-kill (car region)
+                           (cdr region)))
+    nil))
+(add-hook 'mouse-track-drag-up-hook 'mouse-track-drag-copy-to-kill)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Keep the mouse pointer away from the text cursor
+</span>(<span class="keyword">require</span> '<span class="reference">avoid</span>)
+(mouse-avoidance-mode 'banish)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment"> 
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Frame title.
+</span>(setq frame-title-format
+      (concat "<span class="string">-={%b}=- </span>"
+              (construct-emacs-version-name)
+              "<span class="string"> [</span>"
+              (and-boundp 'sxemacs-codename
+                sxemacs-codename)
+              "<span class="string">]</span>"))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Additions to the menubar.
+</span>(<span class="keyword">when</span> (<span class="keyword">featurep</span> '<span class="reference">menubar</span>)
+  (<span class="keyword">require</span> '<span class="reference">big-menubar</span>)
+
+  <span class="comment">;; Get rid of stuff from big-menubar that I don't like/use
+</span>  (delete-menu-item '("<span class="string">Top</span>"))
+  (delete-menu-item '("<span class="string">&lt;&lt;</span>"))
+  (delete-menu-item '("<span class="string"> | </span>"))
+  (delete-menu-item '("<span class="string">&gt;&gt;</span>"))
+  (delete-menu-item '("<span class="string">Bot</span>"))
+  (delete-menu-item '("<span class="string">Motion</span>"))
+
+  <span class="comment">;; Add back the "Motion" menu, but as a submenu under "Cmds"
+</span>  <span class="comment">;; Motion menu.
+</span>  (add-submenu
+   '("<span class="string">Cmds</span>")
+   '("<span class="string">Motion</span>"
+     ["<span class="string">Goto Mark</span>"                  exchange-point-and-mark (mark t)]
+     ["<span class="string">Goto Line...</span>"                          goto-line           t]
+     "<span class="string">---</span>"
+     ["<span class="string">End of Balanced Parentheses ( )</span>"       forward-list        t]
+     ["<span class="string">Beginning of Balanced Parentheses ( )</span>" backward-list       t]
+     ["<span class="string">Next Opening Parenthesis (</span>"            down-list           t]
+     ["<span class="string">Previous Opening Parenthesis (</span>"        backward-up-list    t]
+     ["<span class="string">Next Closing Parenthesis )</span>"            up-list             t]
+     "<span class="string">---</span>"
+     ["<span class="string">End of Balanced Expression</span>"            forward-sexp        t]
+     ["<span class="string">Beginning of Balanced Expression</span>"      backward-sexp       t]
+     "<span class="string">---</span>"
+     ["<span class="string">End of Function</span>"                       end-of-defun        t]
+     ["<span class="string">Beginning of Function</span>"                 beginning-of-defun  t]
+     "<span class="string">---</span>"
+     ["<span class="string">Next Page</span>"                             forward-page        t]
+     ["<span class="string">Previous Page</span>"                         backward-page       t]
+     "<span class="string">---</span>"
+     ["<span class="string">End of Buffer</span>"                         end-of-buffer       t]
+     ["<span class="string">Beginning of Buffer</span>"                   beginning-of-buffer t]
+     "<span class="string">---</span>"
+     ["<span class="string">Save Current Position...</span>"              point-to-register   t]
+     ["<span class="string">Goto Saved Position...</span>"                register-to-point   t]
+     "<span class="string">---</span>"
+     ["<span class="string">Set Marker...</span>"                         set-user-marker     t]
+     ["<span class="string">Goto Marker...</span>"                        goto-user-marker    t]
+     ["<span class="string">List Markers</span>"                          list-markers        t]
+     "<span class="string">---</span>"
+     ["<span class="string">Set Goal Column</span>"                       set-goal-column     t]
+     ["<span class="string">Cancel Goal Column</span>"          (set-goal-column t) goal-column])
+   "<span class="string">Abbrev</span>"))
+
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> create a Kill-Ring menu
+</span>(<span class="keyword">when</span> (<span class="keyword">featurep</span> '<span class="reference">menubar</span>)
+  (defvar str)
+  (defvar yank-menu-length 40
+    "<span class="string">*Maximum length of an item in the menu for select-and-yank.</span>")
+  (defun select-and-yank-filter (menu)
+    (<span class="keyword">let*</span> ((count 0))
+      (append menu
+              (mapcar
+               #'(<span class="keyword">lambda</span> (str)
+                   (<span class="keyword">if</span> (&gt; (length str) yank-menu-length)
+                       (setq str (substring str 0 yank-menu-length)))
+                   (<span class="keyword">prog1</span>
+                       (vector
+                        str
+                        (list
+                         'progn
+                         '(push-mark (point))
+                         (list 'insert (list 'current-kill count t)))
+                        t)
+                     (setq count (1+ count))))
+               kill-ring))))
+  (add-submenu '("<span class="string">Edit</span>") '("<span class="string">Kill-Ring</span>"
+                           <span class="reference">:included</span> kill-ring
+                           <span class="reference">:filter</span> select-and-yank-filter)))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;: resize-minibuffer-mode makes the minibuffer automatically
+;: resize as necessary when it's too big to hold its contents.
+;(autoload 'resize-minibuffer-mode "rsz-minibuf" nil t)
+;(resize-minibuffer-mode)
+;(setq resize-minibuffer-window-exactly nil)
+;(setq minibuffer-max-depth nil)
+</span>(setq resize-minibuffer-mode t)
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> don't invert colors when grabbing a password
+;:  (because sometimes it screws up and leaves the frame 
+;:  with dorked up colors).
+</span>(setq passwd-invert-frame-when-keyboard-grabbed nil)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> VI-style matching parenthesis
+;:  From Eric Hendrickson edh @ med.umn.edu
+</span>(<span class="keyword">defun</span> <span class="function-name">match-paren</span> (arg)
+  "<span class="doc-string">Go to the matching parenthesis if on parenthesis.</span>"
+  (interactive "<span class="string">p</span>")
+  (<span class="keyword">cond</span> ((looking-at "<span class="string">[([{]</span>") (forward-sexp 1) (backward-char))
+        ((looking-at "<span class="string">[])}]</span>") (forward-char) (backward-sexp 1))))
+(global-set-key '(control f1) 'match-paren)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Inserting elisp Comments
+; by Jonas Luster &lt;mailto:jonas @ nethammer.qad.org&gt;
+</span>(<span class="keyword">defun</span> <span class="function-name">elispcomment</span> ()
+<span class="comment">;</span><span class="comment"><span class="reference">:*=====================</span></span><span class="comment">
+</span>  (interactive)
+  (insert "<span class="string">;</span><span class="string"><span class="reference">:*=======================</span></span><span class="string">\n</span>")
+  (insert "<span class="string">;</span><span class="string"><span class="reference">:*</span></span><span class="string"> </span>" (setq str (read-input "<span class="string">Comment: </span>")) "<span class="string">\n</span>")
+  (insert "<span class="string">\n</span>"))
+(global-set-key '(control f3) 'elispcomment)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Time-Stamp
+</span>(<span class="keyword">require</span> '<span class="reference">time-stamp</span>)
+(add-hook 'write-file-hooks 'time-stamp)
+(set 'time-stamp-active t)
+(set 'time-stamp-format "<span class="doc-string">%a %3b %2d, %4y %02H:%02M:%02S %u</span>")
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Image formats
+</span>(<span class="keyword">require</span> '<span class="reference">image-mode</span>)
+<span class="comment">;; Needed to load this earlier for some reason that I have long since
+;; forgotten, so it is now in 01-vars-sy.el
+;;(require 'ffi-wand)
+</span>
+<span class="comment">;; If you want to use #'Wand-display whenever you C-x C-f imagefile
+;; uncomment this.  It's cool and all, but there are definitely times
+;; when you don't want to view images with #'Wand-display.  Editing
+;; XPM files for example.  Have you seen xpm-mode? it's awesome.
+;(Wand-find-file-enable)
+;; But sometimes you do want it so...
+</span>(global-set-key [(super ?x) (super ?f)] #'Wand-display)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> ffi-magic
+;; Automatic coding-system detection via libmagic
+</span>(<span class="keyword">require</span> '<span class="reference">ffi-magic</span>)
+(magic:find-file-magic-alist-enable)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Dired enhancements.
+</span>(<span class="keyword">require</span> '<span class="reference">dired</span>)
+(setq dired-ls-locale "<span class="doc-string">POSIX</span>")
+
+<span class="comment">;; Pack and Unpack tarballs
+</span>(<span class="keyword">require</span> '<span class="reference">dired-tar</span>)
+(setq dired-tar-compress-with 'xz)
+
+<span class="comment">;; FFI/libWand for image files in Dired
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-dired-wand</span> ()
+ (interactive)
+ (<span class="keyword">let</span> ((file (dired-get-filename)))
+   (Wand-display file)))
+
+(<span class="keyword">define-key</span> <span class="variable-name">dired-mode-map</span> [?b] #'sy-dired-wand)
+
+<span class="comment">;; Play audio files directly from dired.
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-dired-play-audio</span> ()
+  (interactive)
+  (<span class="keyword">let</span> ((file (dired-get-filename)))
+    (<span class="keyword">when</span> (magic:file-audio-p file)
+      (<span class="keyword">let</span> ((stream (make-media-stream <span class="reference">:file</span> file)))
+        (play-media-stream stream)))))
+
+(<span class="keyword">define-key</span> <span class="variable-name">dired-mode-map</span> [(control ?c) ?p] #'sy-dired-play-audio)
+
+<span class="comment">;(setq dired-use-ls-dired t)
+;(setq dired-listing-switches "-alih")
+</span>
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Change some modeline indicators
+</span>(setq pending-delete-modeline-string nil)
+(setq fume-mode-line-string nil)
+(setq filladapt-mode-line-string nil)
+(setq mouse-avoidance-mode-line-string nil)
+(add-minor-mode 'abbrev-mode "<span class="doc-string"> Ab</span>")
+(add-hook 'lisp-interaction-mode-hook #'(<span class="keyword">lambda</span> () (setq mode-name "<span class="string">LI</span>")))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Force efs into passive ftp because of my firewall
+</span>(setq efs-use-passive-mode t)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> ibuffer - replacement for buffer-menu
+</span>(<span class="keyword">require</span> '<span class="reference">ibuffer</span>)
+(setq 
+ ibuffer-expert t
+ ibuffer-default-sorting-mode 'major-mode
+ ibuffer-fontification-level t
+ ibuffer-saved-filter-groups
+ <span class="comment">;; First match wins.
+</span> '(("<span class="string">My-ibuffer-grps</span>"
+    ("<span class="string">ChangeLog</span>"
+     (mode . change-log-mode))
+    ("<span class="string">Dired</span>"
+     (mode . dired-mode))
+    ("<span class="string">Programming</span>"
+     (or
+      (mode . emacs-lisp-mode)
+      (mode . cperl-mode)
+      (mode . c-mode)
+      (mode . c++-mode)
+      (mode . java-mode) 
+      (mode . idl-mode)
+      (mode . lisp-mode)))
+    ("<span class="string">Documentation</span>"
+     (or
+      (mode . help-mode)
+      (mode . hyper-apropos-help-mode)
+      (mode . hyper-apropos-mode)
+      (mode . Info-mode)
+      (mode . Manual-mode)))
+    ("<span class="string">Riece</span>"
+     (or
+      (mode . riece-channel-list-mode)
+      (mode . riece-channel-mode)
+      (mode . riece-command-mode)
+      (mode . riece-dialogue-mode)
+      (mode . riece-others-mode)
+      (mode . riece-user-list-mode)))
+    ("<span class="string">Gnus</span>"
+     (or
+      (mode . message-mode)
+      (mode . mail-mode)
+      (mode . gnus-group-mode)
+      (mode . gnus-summary-mode) 
+      (mode . gnus-article-mode)))
+    ("<span class="string">Fundamental</span>"
+     (mode . fundamental-mode))
+    )))
+
+(add-hook 'ibuffer-mode-hooks 
+          (<span class="keyword">lambda</span> () 
+            (ibuffer-switch-to-saved-filter-groups "<span class="string">My-ibuffer-grps</span>")
+            (ibuffer-add-to-tmp-hide "<span class="string">\\*scratch\\*</span>")))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Sawfish mode
+</span>(<span class="keyword">require</span> '<span class="reference">sawfish</span>)
+(add-to-list 'auto-mode-alist '("<span class="string">\\.sawfishrc$</span>" . sawfish-mode))
+(add-to-list 'auto-mode-alist '("<span class="string">\\.jl$</span>" . sawfish-mode))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> from.el - check whose sent us mail
+;; Not that much use anymore now that most of my mail is via IMAP so
+;; doesn't go through my local server or spool.
+</span>(<span class="keyword">require</span> '<span class="reference">from</span>)
+(setq 
+ from-mailspools '("<span class="string">~/mail/INBOX</span>")
+ from-use-other-window nil
+ from-quit-command 'kill-buffer
+ from-highlight-regexp
+ #r"<span class="doc-string">Merge-Req\(?:uest\)?\|P\(?:-Req\|atch\|ull-Req\)\|SXEmacs\|patch</span>")
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> PS-Print
+</span>(<span class="keyword">require</span> '<span class="reference">ps-print</span>)
+(<span class="keyword">require</span> '<span class="reference">ps-mule</span>)
+(<span class="keyword">require</span> '<span class="reference">ps-bdf</span>)
+(<span class="keyword">require</span> '<span class="reference">lpr</span>)
+(setq 
+ bdf-directory-list '("<span class="string">/usr/share/fonts/bdf</span>")
+ ps-multibyte-buffer 'bdf-font-except-latin
+ ps-paper-type 'a4
+ printer-name "<span class="doc-string">Duplex_Colour</span>")
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Line and Column numbers.
+</span>(line-number-mode 1)
+(column-number-mode 1)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Setting initial default-directory.
+</span>(setq default-directory (file-name-as-directory (user-home-directory)))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Sane ChangeLogs
+</span>(<span class="keyword">when</span> (<span class="keyword">featurep</span> '<span class="reference">mule</span>)
+  <span class="comment">;; Cater for the majority of the World who don't have names and
+</span>  <span class="comment">;; languages that fit nicely into US-ASCII.
+</span>  (add-to-list 'file-coding-system-alist
+               (cons "<span class="string">ChangeLog\\(.?[[</span><span class="string"><span class="reference">:alnum:</span></span><span class="string">][</span><span class="string"><span class="reference">:punct:</span></span><span class="string">]]+\\)?</span>"
+                     '(utf-8 . utf-8))))
+
+<span class="comment">;; Try to have even the oddly named ChangeLogs in change-log-mode
+</span>(add-to-list
+ 'auto-mode-alist 
+ '("<span class="string">ChangeLog\\(.?[[</span><span class="string"><span class="reference">:alnum:</span></span><span class="string">][</span><span class="string"><span class="reference">:punct:</span></span><span class="string">]]+\\)?</span>" . change-log-mode))
+
+<span class="comment">;; My sy-git.el has nice font-locking for git logs, so use it outside
+;; of sy-git-mode as well.
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-change-log-mode-hook</span> ()
+  (<span class="keyword">save-excursion</span>
+    (<span class="keyword">when</span> (re-search-forward "<span class="string">^commit [0-9a-f]+</span>" 1000 t)
+      (set (make-local-variable 'font-lock-defaults)
+           '(sy-git-log-font-lock-keywords t t)))))
+
+(add-hook 'change-log-mode-hook #'sy-change-log-mode-hook)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Directory Abbrevs
+;;  Love this.  It saves me so much time.
+</span>(setq directory-abbrev-alist
+      `(("<span class="string">^/instcore</span>" . ,(concat (car emacs-roots)
+                                "<span class="string">share/sxemacs-</span>"
+                                emacs-program-version))
+        ("<span class="string">^/instpkg</span>" . ,(concat (car emacs-roots)
+                                "<span class="string">share/sxemacs</span>"))
+        ("<span class="string">^/prog</span>" . "<span class="string">~/programming</span>")
+        ("<span class="string">^/linux</span>" . "<span class="string">/usr/src/kernel/linux</span>")
+        ("<span class="string">^/src</span>" . "<span class="string">/usr/src</span>")
+        ("<span class="string">^/sxe</span>" . "<span class="string">/home/steve/programming/SXEmacs</span>")
+        ("<span class="string">^/core</span>" . "<span class="string">/home/steve/programming/SXEmacs/core/sxemacs.git</span>")
+        ("<span class="string">^/web</span>" . "<span class="string">/home/steve/programming/SXEmacs/web/website</span>")
+        ("<span class="string">^/init</span>" . ,(expand-file-name "<span class="string">init.d</span>" user-init-directory))
+        ("<span class="string">^/blds</span>" . "<span class="string">/home/steve/programming/SXEmacs/core/BUILDS</span>")
+        ("<span class="string">^/lisp</span>" . "<span class="string">/home/steve/programming/lisp</span>")
+        ("<span class="string">^/pkgs</span>" . "<span class="string">/home/steve/programming/SXEmacs/packages</span>")
+        ("<span class="string">^/xpkgs</span>" . "<span class="string">/home/steve/programming/SXEmacs/packages/xemacs-packages</span>")
+        ("<span class="string">^/mpkgs</span>" . "<span class="string">/home/steve/programming/SXEmacs/packages/mule-packages</span>")))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> The beginnings of procmail-mode.el.
+;;
+;; I can't remember who I stole this from, but if it was you, please
+;; let me know so I can give you the credit you deserve.
+</span>(<span class="keyword">defvar</span> <span class="variable-name">procmail-font-lock-keywords</span>)
+
+(<span class="keyword">define-derived-mode</span> <span class="function-name">procmail-mode</span> fundamental-mode "<span class="doc-string">Procmail</span>"
+  "<span class="doc-string">Major mode for editing procmail recipes.</span>"
+
+  (setq comment-start "<span class="string">#</span>")
+  (setq comment-start-skip "<span class="string">#[ \t]*</span>")
+
+  <span class="comment">;;register keywords
+</span>  (setq procmail-font-lock-keywords
+        (list '("<span class="string">#.*</span>"
+                . font-lock-comment-face)
+              '("<span class="string">^[\t ]*:.*</span>"
+                . font-lock-type-face)
+              '("<span class="string">[A-Za-z_]+=.*</span>"
+                . font-lock-keyword-face)
+              '("<span class="string">^[\t ]*\\*.*</span>"
+                . font-lock-doc-string-face)
+              '("<span class="string">\$[A-Za-z0-9_]+</span>"
+                . font-lock-function-name-face)))
+  (font-lock-mode))
+
+(add-to-list 'auto-mode-alist '("<span class="string">\\.procmailrc$</span>" . procmail-mode))
+
+<span class="comment">;; And because my ~/.procmailrc has lots of high ASCII to defeat
+;; Chinese SPAM I set its coding to binary.
+</span>(<span class="keyword">when</span> (<span class="keyword">featurep</span> '<span class="reference">mule</span>)
+  (add-to-list 'file-coding-system-alist '("<span class="string">\\.procmailrc$</span>" . binary)))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Build Reports
+</span>(setq
+ build-rpt-prompts '(("<span class="string">Status?: </span>"
+                      ("<span class="string">Success</span>"
+                       "<span class="string">Success (tests fail)</span>"
+                       "<span class="string">Failure</span>"
+                       "<span class="string">Failure (tests fail)</span>"
+                       "<span class="string">OK (with issues)</span>")))
+ build-rpt-use-gnus-group "<span class="doc-string">nnml:sxemacs.builds</span>"
+ build-rpt-use-gnus-p t
+ build-rpt-make-output-files
+ '("<span class="string">/usr/src/sxemacs/make.err</span>"
+   "<span class="string">/usr/src/sxemacs/check.err</span>"
+   "<span class="string">/usr/src/sxemacs/install.err</span>"
+   ))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Set the frame geometry
+</span>(<span class="keyword">unless</span> (getenv "<span class="string">XWEM_RUNNING</span>")
+  (setq default-frame-plist
+        '(name "<span class="string">SXEFrame</span>" width 90))
+  (setq initial-frame-plist '(width 90)))
+
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> The Beginnings of a Finance package
+</span>(setq
+ emoney-accounts-directory
+ (file-name-as-directory
+  (expand-file-name "<span class="string">emoney</span>" user-init-directory))
+ emoney-bank-url "<span class="doc-string">https://internetbanking.suncorpbank.com.au/</span>"
+ emoney-date-format "<span class="doc-string">%Y-%m-%d</span>"
+ emoney-default-account "<span class="doc-string">scorp-main.emy</span>"
+ emoney-recalculate-on-quit t
+ emoney-save-after-recalculate t
+ emoney-use-new-frame t)
+
+(<span class="keyword">require</span> '<span class="reference">emoney</span>)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Modeline enhancements.
+;;
+;; Reorganise the modeline so that the line and column numbers are on
+;; the left where you can see them.  Also add a bit of colour to the
+;; left and right ID extents so they stand out.
+</span>(<span class="keyword">when</span> (or (&lt; emacs-minor-version 5)
+          (<span class="keyword">featurep</span> '<span class="reference">sxemacs</span>))
+  (setq-default modeline-buffer-identification
+                (list (cons modeline-buffer-id-left-extent
+                            (cons 10 (list
+                                      (list 'line-number-mode "<span class="string">L%l </span>")
+                                      (list 'column-number-mode "<span class="string">C%c </span>")
+                                      (list (cons -3 (list "<span class="string">%p</span>")))
+                                      "<span class="string">:</span>")))
+                      (cons modeline-buffer-id-right-extent "<span class="string">%17b</span>")))
+
+  (setq-default
+   modeline-format
+   (list
+    ""
+    (<span class="keyword">if</span> (boundp 'modeline-multibyte-status)
+        "<span class="string">%C</span>" <span class="comment">;modeline-multibyte-status
+</span>      "<span class="string">NoMule</span>")
+    (cons modeline-modified-extent 'modeline-modified)
+    (cons modeline-buffer-id-extent 'modeline-buffer-identification)
+    "<span class="string"> </span>"
+    'global-mode-string
+    "<span class="string"> %[(</span>"
+    (cons modeline-minor-mode-extent
+          (list "" 'mode-name 'minor-mode-alist))
+    (cons modeline-narrowed-extent "<span class="string">%n</span>")
+    'modeline-process
+    "<span class="string">)%]----</span>"
+    "<span class="string">-%-</span>"))
+
+  (set-extent-face modeline-buffer-id-left-extent 'font-lock-warning-face)
+  (set-extent-face modeline-buffer-id-right-extent 'font-lock-comment-face))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Enable funky completion.
+;;
+;; This allows you to do things like type "M-x b-c-f RET" and it will
+;; expand to `</span><span class="comment"><span class="reference">byte-compile-file</span></span><span class="comment">'.
+</span>(<span class="keyword">require</span> '<span class="reference">completer</span>)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Misc Stuff that I haven't yet put anywhere permanent
+;;
+;;  I used to have my browse-url setting here, but because of xdg that
+;;  really isn't necessary anymore.
+</span>(setq 
+ abbrev-mode t
+ allow-deletion-of-last-visible-frame t
+ bookmark-default-file (expand-file-name "<span class="string">bookmarks</span>" user-init-directory)
+ bookmark-save-flag 1
+ complex-buffers-menu-p t
+ etalk-process-file "<span class="doc-string">talk</span>"
+ find-function-source-path nil
+ font-menu-ignore-scaled-fonts nil
+ ges-post-use-mime t
+ mail-user-agent 'message-user-agent
+ modeline-scrolling-method 'scrollbar
+ progress-feedback-use-echo-area t
+ report-xemacs-bug-no-explanations t
+ scroll-step 1
+ lookup-syntax-properties nil)
+
+(quietly-read-abbrev-file)
+(add-hook 'text-mode-hook 'turn-on-auto-fill)
+<span class="comment">;(customize-set-variable 'gutter-buffers-tab-visible-p nil)
+</span>(setq gutter-buffers-tab-enabled nil)
+(customize-set-variable 'user-mail-address "<span class="doc-string">steve@steveyoungs.com</span>")
+(setq query-user-mail-address nil)
+(blink-cursor-mode 1)
+<span class="comment">;; (when (featurep 'mule)
+;;   (set-language-environment "Latin-1"))
+</span>(<span class="keyword">unless</span> (gnuserv-running-p)
+  (gnuserv-start))
+(<span class="keyword">require</span> '<span class="reference">mozmail</span>)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Info-mode
+</span>(<span class="keyword">require</span> '<span class="reference">info</span>)
+
+(setq toolbar-info-frame-plist
+      '((width . 80)
+        (height . 45)
+        (name . "<span class="string">InfoFrame</span>")
+        (menubar-visible-p . nil)
+        (default-toolbar-visible-p . t)
+        <span class="comment">;; I have a idea to put nav buttons in the gutter.
+</span>        (default-gutter-visible-p . t)
+        (top-gutter-height . 24)))
+
+(<span class="keyword">unless</span> (fboundp 'Info-search-next)
+  (defun Info-search-next ()
+    "<span class="string">Repeat search starting from point with last regexp used in `</span><span class="string"><span class="reference">Info-search</span></span><span class="string">'.</span>"
+    (interactive)
+    (Info-search Info-last-search))
+  (define-key Info-mode-map "<span class="string">z</span>" 'Info-search-next))
+
+(setq
+ Info-directory-list
+ '("<span class="string">/home/steve/.local/share/sxemacs/site-packages/info</span>"
+   "<span class="string">/home/steve/.local/share/sxemacs/xemacs-packages/info</span>"
+   "<span class="string">/usr/share/info</span>"
+   <span class="comment">;; "/usr/share/sxemacs/site-packages/info"
+</span>   <span class="comment">;; "/usr/share/sxemacs/sxemacs-packages/info"
+</span>   "<span class="string">/usr/share/sxemacs/xemacs-packages/info</span>"
+   "<span class="string">/usr/share/sxemacs/mule-packages/info</span>")
+ Info-dir-contents-directory
+ "<span class="doc-string">/home/steve/.local/share/sxemacs/site-packages/info</span>"
+ Info-save-auto-generated-dir 'always
+ Info-button1-follows-hyperlink t)
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> gdb-highlight
+</span>(add-hook 'gdb-mode-hook #'(<span class="keyword">lambda</span> () (<span class="keyword">require</span> '<span class="reference">gdb-highlight</span>)))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> etags
+</span>(<span class="keyword">require</span> '<span class="reference">etags</span>)
+(<span class="keyword">defun</span> <span class="function-name">sy-find-tag-regex</span> (tagname)
+  "<span class="doc-string">Use `</span><span class="doc-string"><span class="reference">igrep-find</span></span><span class="doc-string">' command to find all occurances of tag with TAGNAME.</span>"
+  (interactive (<span class="keyword">if</span> current-prefix-arg (list (current-word))
+                 (list (find-tag-tag "<span class="string">Find tag: </span>"))))
+  (<span class="keyword">let</span> ((dir (file-name-directory tags-file-name)))
+    (igrep-find "<span class="string">grep</span>" tagname (concat dir "<span class="string">/*</span>"))))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Google
+</span>(<span class="keyword">require</span> '<span class="reference">google-query</span>)
+(setq google-query-mirror "<span class="doc-string">https://www.google.com.au</span>"
+      google-query-result-count 100)
+(global-set-key [(control f9)] 'google-query)
+(global-set-key [(meta f9)] 'google-query-region)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> What the fuck does that acronym mean?
+;; This requires wtf(6).  No idea where you get it from, but it comes
+;; with Slackware.
+;; (wtf "lol") =&gt; LOL: laughing out loud
+</span>(<span class="keyword">defun</span> <span class="function-name">wtf</span> (acronym)
+  "<span class="doc-string">What the fuck is... ACRONYM</span>"
+  (interactive "<span class="string">sWhat the fuck is: </span>")
+  (<span class="keyword">let*</span> ((wtf (executable-find "<span class="string">wtf</span>"))
+         (term (substring (shell-command-to-string
+                           (concat wtf "<span class="string"> </span>" acronym)) 0 -1)))
+    (<span class="keyword">if</span> (interactive-p)
+        (<span class="keyword">if</span> current-prefix-arg
+            (insert term)
+          (message term))
+      term)))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Interactively append to the latest kill
+;;
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-add-to-kill</span> (start end <span class="type">&amp;optional</span> prepend)
+  "<span class="doc-string">Copy region START END and append it to the latest kill.
+
+Or, PREPEND with prefix arg.
+
+With this you could select \"THIS \" word, `\\[</span><span class="doc-string"><span class="reference">kill-ring-save</span></span><span class="doc-string">]' to save it
+to the kill ring, then select this \"WORD \" and do `\\[</span><span class="doc-string"><span class="reference">sy-add-to-kill</span></span><span class="doc-string">]',
+then select this word \"HERE\", do `\\[</span><span class="doc-string"><span class="reference">sy-add-to-kill</span></span><span class="doc-string">]', then select these
+words \"DON'T WANT \", do `\\[</span><span class="doc-string"><span class="reference">universal-argument</span></span><span class="doc-string">] \\[</span><span class="doc-string"><span class="reference">sy-add-to-kill</span></span><span class="doc-string">]', and
+finally do `\\[</span><span class="doc-string"><span class="reference">yank</span></span><span class="doc-string">]' and you'd get...
+
+   DON'T WANT THIS WORD HERE</span>"
+  (interactive "<span class="string">r\nP</span>")
+  (<span class="keyword">let</span> ((prepend (or prepend
+                     current-prefix-arg)))
+    (<span class="keyword">if</span> prepend
+        (kill-append (buffer-substring start end) 'before)
+      (kill-append (buffer-substring start end) nil))))
+
+(global-set-key [(meta ?W)] 'sy-add-to-kill)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> DNS
+</span>(add-to-list 'auto-mode-alist '("<span class="string">/var/chroot/named/etc/zones/.*$</span>" . dns-mode))
+
+(<span class="keyword">defun</span> <span class="function-name">dig-mx</span> (domain)
+  "<span class="doc-string">View MX records for DOMAIN.
+
+With a prefix arg, prompt for a server to query.</span>"
+  (interactive "<span class="string">sDomain: </span>")
+  (<span class="keyword">unless</span> (interactive-p)
+    (error 'invalid-operation "<span class="string">`</span><span class="string"><span class="reference">dig-mx</span></span><span class="string">' must be called interactively</span>"))
+  (<span class="keyword">if</span> current-prefix-arg
+      (dig domain "<span class="string">MX</span>" nil nil nil
+           (format "<span class="string">%s</span>" (read-string "<span class="string">Server: </span>" nil nil "<span class="string">localhost</span>")))
+    (dig domain "<span class="string">MX</span>")))
+
+(<span class="keyword">defun</span> <span class="function-name">dig-ns</span> (domain)
+  "<span class="doc-string">View NS records for DOMAIN.
+
+With a prefix arg, prompt for a server to query.</span>"
+  (interactive "<span class="string">sDomain: </span>")
+  (<span class="keyword">unless</span> (interactive-p)
+    (error 'invalid-operation "<span class="string">`</span><span class="string"><span class="reference">dig-ns</span></span><span class="string">' must be called interactively</span>"))
+  (<span class="keyword">if</span> current-prefix-arg
+      (dig domain "<span class="string">NS</span>" nil nil nil
+           (format "<span class="string">%s</span>" (read-string "<span class="string">Server: </span>" nil nil "<span class="string">localhost</span>")))
+    (dig domain "<span class="string">NS</span>")))
+
+(<span class="keyword">defun</span> <span class="function-name">dig-any</span> (domain)
+  "<span class="doc-string">View DNS records for DOMAIN.
+
+With a prefix arg, prompt for a server to query.</span>"
+  (interactive "<span class="string">sDomain: </span>")
+  (<span class="keyword">unless</span> (interactive-p)
+    (error 'invalid-operation "<span class="string">`</span><span class="string"><span class="reference">dig-any</span></span><span class="string">' must be called interactively</span>"))
+  (<span class="keyword">if</span> current-prefix-arg
+      (dig domain "<span class="string">ANY</span>" nil nil nil
+           (format "<span class="string">%s</span>" (read-string "<span class="string">Server: </span>" nil nil "<span class="string">localhost</span>")))
+    (dig domain "<span class="string">ANY</span>")))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Hard disk temperature!
+;(or (ignore-errors (require 'hddtemp))
+;    (progn
+;      (load-module "cl-loop")
+;      (require 'hddtemp)))
+</span>
+<span class="comment">;;; get fancy and stick it in the modeline
+;(defvar hddtemp-global-mode-string "sda:0&#176;C"
+;  "Default hddtemp modeline string.")
+;(setq global-mode-string (append global-mode-string
+;                                (list hddtemp-global-mode-string)))
+</span>
+<span class="comment">;(defun hddtemp-modeline-string ()
+;  (let* ((disc0 (hddtemp 0))
+;        (str (format "sda:%s&#176;%s"
+;                     (nth 2 disc0) (nth 3 disc0))))
+;    (setq hddtemp-global-mode-string str)))
+</span>
+<span class="comment">;(start-itimer "hdd-modeline"
+;             #'(lambda ()
+;                 (progn
+;                   (setq global-mode-string
+;                         (delq hddtemp-global-mode-string global-mode-string))
+;                   (hddtemp-modeline-string)
+;                   (setq global-mode-string
+;                         (append global-mode-string
+;                                 (list hddtemp-global-mode-string)))))
+;             10 10)
+</span>
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Term
+; M-x term usually gives really horrid "staircase" output.  This fixes
+; that.
+</span>(add-hook 'term-exec-hook 
+          #'(<span class="keyword">lambda</span> ()
+              (set-buffer-process-coding-system 'binary 'binary)))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Phonetic Alphabet
+</span>(<span class="keyword">defvar</span> <span class="variable-name">phonetics-hash</span>
+  #s(hash-table test equal
+                data ("<span class="string">a</span>" "<span class="string">alpha</span>"
+                      "<span class="string">b</span>" "<span class="string">bravo</span>"
+                      "<span class="string">c</span>" "<span class="string">charlie</span>"
+                      "<span class="string">d</span>" "<span class="string">delta</span>"
+                      "<span class="string">e</span>" "<span class="string">echo</span>"
+                      "<span class="string">f</span>" "<span class="string">foxtrot</span>"
+                      "<span class="string">g</span>" "<span class="string">golf</span>"
+                      "<span class="string">h</span>" "<span class="string">hotel</span>"
+                      "<span class="string">i</span>" "<span class="string">india</span>"
+                      "<span class="string">j</span>" "<span class="string">juliet</span>"
+                      "<span class="string">k</span>" "<span class="string">kilo</span>"
+                      "<span class="string">l</span>" "<span class="string">lima</span>"
+                      "<span class="string">m</span>" "<span class="string">mike</span>"
+                      "<span class="string">n</span>" "<span class="string">november</span>"
+                      "<span class="string">o</span>" "<span class="string">oscar</span>"
+                      "<span class="string">p</span>" "<span class="string">papa</span>"
+                      "<span class="string">q</span>" "<span class="string">quebec</span>"
+                      "<span class="string">r</span>" "<span class="string">romeo</span>"
+                      "<span class="string">s</span>" "<span class="string">sierra</span>"
+                      "<span class="string">t</span>" "<span class="string">tango</span>"
+                      "<span class="string">u</span>" "<span class="string">uniform</span>"
+                      "<span class="string">v</span>" "<span class="string">victor</span>"
+                      "<span class="string">w</span>" "<span class="string">whiskey</span>"
+                      "<span class="string">x</span>" "<span class="string">x-ray</span>"
+                      "<span class="string">y</span>" "<span class="string">yankee</span>"
+                      "<span class="string">z</span>" "<span class="string">zulu</span>"
+                      "<span class="string"> </span>" "<span class="string">SPC</span>"
+                      "<span class="string">0</span>" "<span class="string">zero</span>"
+                      "<span class="string">1</span>" "<span class="string">one</span>"
+                      "<span class="string">2</span>" "<span class="string">two</span>"
+                      "<span class="string">3</span>" "<span class="string">three</span>"
+                      "<span class="string">4</span>" "<span class="string">four</span>"
+                      "<span class="string">5</span>" "<span class="string">five</span>"
+                      "<span class="string">6</span>" "<span class="string">six</span>"
+                      "<span class="string">7</span>" "<span class="string">seven</span>"
+                      "<span class="string">8</span>" "<span class="string">eight</span>"
+                      "<span class="string">9</span>" "<span class="string">niner</span>"))
+  "<span class="doc-string">Hash table of phonetic alphabet.</span>")
+
+(<span class="keyword">defun</span> <span class="function-name">phoneticise</span> (string)
+  "<span class="doc-string">Return STRING rewritten using the phonetic alphabet.
+
+For example: \"cat\" =&gt; \"charlie alpha tango\".
+With a prefix arg, insert phoneticised string at point.
+It ignores punctuation.</span>"
+  (interactive "<span class="string">sString to phoneticise: </span>")
+  (<span class="keyword">let</span> ((str (string-to-list (downcase string)))
+        phonetics)
+    (<span class="keyword">with-temp-buffer</span>
+      (<span class="keyword">while</span> str
+        (insert (or (gethash (char-to-string (car str)) phonetics-hash)
+                    (char-to-string (car str))) "<span class="string"> </span>")
+        (setq str (cdr str)))
+      (setq phonetics (buffer-string)))
+    (<span class="keyword">if</span> current-prefix-arg
+        (insert phonetics)
+      (<span class="keyword">if</span> (interactive-p)
+          (message "<span class="string">%s</span>" phonetics)
+        phonetics))))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Copy the text without the extents
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-extent-kill-save</span> ()
+  "<span class="doc-string">Save the extent under point's string to kill ring.</span>"
+  (interactive)
+  (kill-new (extent-string (extent-at (point)))))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> PkgUsr tools
+</span>(<span class="keyword">require</span> '<span class="reference">pkgusr</span>)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> There's a new sexy rc.d style init in SXEmacs, and this is how I
+;;  deal with it.
+;;
+;;  I now have my init files named with a 2 digit numerical prefix.
+;;  This is so I can control which order `</span><span class="comment"><span class="reference">lisp-initd-compile-and-load</span></span><span class="comment">'
+;;  will load my stuff.  Consequently, finding a particular init file is
+;;  much harder now because I can never remember what bloody number it
+;;  has.  This takes the remembering out of the equation.
+</span>(<span class="keyword">defvar</span> <span class="variable-name">sy-init-hash</span> (make-hash-table <span class="reference">:test</span> #'equal <span class="reference">:size</span> 20)
+  "<span class="doc-string">A hash table of my numbered init files.</span>")
+
+(<span class="keyword">defvar</span> <span class="variable-name">sy-init-files</span>
+  (directory-files lisp-initd-dir nil "<span class="string">.*\.el$</span>" 'sorted-list t)
+  "<span class="doc-string">List of my init files.</span>")
+
+(mapc
+ (<span class="keyword">lambda</span> (value)
+   (<span class="keyword">let</span> ((key (substring value 3 -3)))
+     (puthash key value sy-init-hash)))
+ sy-init-files)
+
+(<span class="keyword">defvar</span> <span class="variable-name">sy-init-hash-vector</span> (hash-keys-to-vector sy-init-hash)
+  "<span class="doc-string">A vector from my init file hash to use for completion.</span>")
+
+(<span class="keyword">defvar</span> <span class="variable-name">sy-init-history</span> nil
+  "<span class="doc-string">History for `</span><span class="doc-string"><span class="reference">sy-init-file-other-window</span></span><span class="doc-string">'.</span>")
+
+(<span class="keyword">defun</span> <span class="function-name">sy-init-file-other-window</span> (initf <span class="type">&amp;optional</span> codesys)
+  "<span class="doc-string">Basically, `</span><span class="doc-string"><span class="reference">find-file-other-window</span></span><span class="doc-string">', but for my init files.
+
+Argument INITF is the \"base\" name of the init file.
+Optional prefix arg, CODESYS, is to specify a coding system to use.
+
+I have this because I've prefixed all of my init files with a 2
+digit number so I can ensure they get loaded in the right order with
+`</span><span class="doc-string"><span class="reference">lisp-initd-compile-and-load</span></span><span class="doc-string">'.  And I can never remember what init
+files are assigned what numbers.</span>"
+  (interactive (list (completing-read "<span class="string">Init file: </span>"
+                                      (mapcar #'list sy-init-hash-vector)
+                                      nil nil nil sy-init-history)
+                     (<span class="keyword">when</span> current-prefix-arg
+                       (read-coding-system "<span class="string">Coding System: </span>"))))
+  (<span class="keyword">let*</span> ((lib (gethash initf sy-init-hash))
+         (expanded (expand-file-name lib lisp-initd-dir)))
+    (find-file-other-window expanded codesys)))
+
+(global-set-key [(control ?x) ?4 ?i] #'sy-init-file-other-window)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> "Active" menubar
+;; Nifty little thing that hides the menubar and makes it visible when
+;; the rat is on the toolbar.
+;; but it's annoying
+;(require 'active-menu)
+;(active-menu 1)
+</span>
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> LiveJournal posting thingy
+;;  Sadly, this no longer works because I neglected to keep it up to
+;;  date with LiveJournal API changes.  But it was damn cool while it
+;;  lasted.
+</span>(<span class="keyword">require</span> '<span class="reference">lj</span>)
+<span class="comment">;(setq lj-cookie-flavour 'chrome)
+</span>(setq lj-cookie-flavour 'firefox)
+(setq lj-user-id "<span class="doc-string">bastard_blog</span>")
+(setq lj-archive-posts t)
+(setq lj-bcc-address "<span class="doc-string">Steve Youngs &lt;<a href="mailto:steve&#64;localhost">steve&#64;localhost</a>&gt;</span>")
+(setq lj-default-location "<span class="doc-string">Brisbane, Australia</span>")
+(setq lj-signature
+      "<span class="doc-string">&lt;hr /&gt;
+&lt;p style=\"color:#FD00FD;font-size:10pt;font-weight:bold;\"&gt;
+Till next time...&lt;br /&gt;
+&lt;i&gt;Steve&lt;/i&gt;
+&lt;/p&gt;</span>")
+(add-hook 'lj-before-post-hook #'lj-validate)
+(add-hook 'lj-after-post-hook #'lj-get-tags)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Handy kbd macros
+;;
+;; numpoints -- make numbered list points.  Before using, initialise
+;; numeric register `n' to zero
+</span>(number-to-register 0 ?n)
+(<span class="keyword">defalias</span> '<span class="function-name">numpoints</span>
+  (read-kbd-macro "<span class="string">2*RET 2*SPC C-x r + n C-x r i n C-e ) SPC</span>"))
+(global-set-key [(control ?c) (control ?n)] #'numpoints)
+(<span class="keyword">define-key</span> <span class="variable-name">message-mode-map</span> [(hyper ?n)] #'numpoints)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Do things with environment variables let-bound
+;;
+;;  (with-environment-variables (("VAR" "VALUE") ("VAR2" "VALUE2"))
+;;    (do-shit-here))
+;;
+;(require 'with-environment-variables)
+</span>
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Play Sudoku
+</span>(<span class="keyword">require</span> '<span class="reference">sudoku</span>)
+(setq sudoku-level 'easy)
+(setq modeline-coding-system "<span class="doc-string">%C</span>")
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Stupid fucking Google Chrome is MIME-illiterate
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-browse-url-of-file</span> (<span class="type">&amp;optional</span> file)
+  "<span class="doc-string">Ask a WWW browser to display FILE.
+
+Display the current buffer's file if FILE is nil or if called
+interactively.  Turn the filename into a URL with function
+`</span><span class="doc-string"><span class="reference">browse-url-file-url</span></span><span class="doc-string">'.  Pass the URL to a browser using the
+`</span><span class="doc-string"><span class="reference">browse-url</span></span><span class="doc-string">' function then run `</span><span class="doc-string"><span class="reference">browse-url-of-file-hook</span></span><span class="doc-string">'.
+
+This has been reworked a little to cater for Google Chrome not knowing
+anything about MIME types.</span>"
+  (interactive)
+  (<span class="keyword">let</span> (oldfile)
+    (or file
+        (setq file (buffer-file-name))
+        (error "<span class="string">Current buffer has no file</span>"))
+    (<span class="keyword">unless</span> (string-match "<span class="string">^\\.html?$</span>" (file-name-extension file t))
+      (setq oldfile file)
+      (rename-file file (concat file "<span class="string">.html</span>"))
+      (setq file (concat file "<span class="string">.html</span>")))
+    (<span class="keyword">let</span> ((buf (get-file-buffer file)))
+      (<span class="keyword">if</span> buf
+          (<span class="keyword">save-excursion</span>
+            (set-buffer buf)
+            (<span class="keyword">cond</span> ((not (buffer-modified-p)))
+                  (browse-url-save-file (save-buffer))
+                  (t (message "<span class="string">%s modified since last save</span>" file))))))
+    (<span class="keyword">unwind-protect</span>
+        (<span class="keyword">progn</span>
+          (browse-url (browse-url-file-url file))
+          (sit-for 1))
+      (and oldfile (rename-file file oldfile))))
+  (run-hooks 'browse-url-of-file-hook))
+
+(fset #'browse-url-of-file #'sy-browse-url-of-file)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*</span></span><span class="comment">
+</span>(message "<span class="doc-string">miscellaneous initialised</span>")
+
+</pre>
+  <!--  SXEmacs Logo -->
+    <div class="img">
+      <a href="https://www.sxemacs.org/" target="_parent">
+       <img style="padding:0px 5px 0px 0px;border:0;width:88px;height:31px"
+         src="/Images/cbsx.png"
+         title="This page was created entirely in SXEmacs"
+         alt="Created with SXEmacs" />
+      </a>
+<!--  End SXEmacs Logo -->
+<!--  Valid XHTML 1.0 -->
+      <a href="http://validator.w3.org/check?uri=https%3a%2f%2fwww.sxemacs.org%2fSYinits%2f12-misc.html" target="_blank">
+       <img style="padding:0px 5px 0px 10px;border:0;width:88px;height:31px"
+         src="/Images/valid-xhtml10.png"
+         title="Valid XHTML 1.0 Transitional!"
+         alt="Valid XHTML 1.0 Transitional!" />
+      </a>
+    </div>
+<!--  End Valid XHTML 1.0 -->
+
+    <h6>Copyright &#169; 2020 Steve Youngs<br />
+     Verbatim copying and distribution is permitted in any medium,
+    providing this notice is preserved.<br />
+<!-- hhmts start -->
+Last modified: Wed Apr 15 18:14:27 AEST 2020
+<!-- hhmts end -->
+   </h6>
+
+</body>
+</html>
diff --git a/SYinits/13-bbdb.html b/SYinits/13-bbdb.html
new file mode 100644 (file)
index 0000000..8188d0e
--- /dev/null
@@ -0,0 +1,308 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>13-bbdb.el</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Steve Youngs" />
+    <meta name="owner" content="steve@sxemacs.org" />
+    <style type="text/css">
+    <!--
+      body {
+        color: #ffffff;
+        background-color: #000000;
+      }
+      .comment {
+        /* font-lock-comment-face */
+        color: #87ceeb;
+      }
+      .doc-string {
+        /* font-lock-doc-string-face */
+        color: #32cd32;
+      }
+      .function-name {
+        /* font-lock-function-name-face */
+        color: #ffff00;
+        font-weight: bold;
+      }
+      .keyword {
+        /* font-lock-keyword-face */
+        color: #fa8072;
+      }
+      .reference {
+        /* font-lock-reference-face */
+        color: #40e0d0;
+      }
+      .string {
+        /* font-lock-string-face */
+        color: #00cd00;
+      }
+      .warning {
+        /* font-lock-warning-face */
+        color: #ff0000;
+        font-weight: bold;
+      }
+
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+    -->
+    </style>
+  </head>
+  <body>
+    <pre>
+<span class="comment">;; 13-bbdb.el --- Big Brother DataBase (BBDB)
+</span>
+<span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
+</span>
+<span class="comment">;;     Author: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;; Maintainer: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;;    Created: &lt;2007-12-02&gt;
+;; Time-stamp: &lt;Thursday Apr  9, 2020 18:51:53 steve&gt;
+;;   Download: &lt;<a href="https://downloads.sxemacs.org/SYinits">https://downloads.sxemacs.org/SYinits</a>&gt;
+;;   HTMLised: &lt;<a href="https://www.sxemacs.org/SYinits/13-bbdb.html">https://www.sxemacs.org/SYinits/13-bbdb.html</a>&gt;
+;;   Git Repo: git clone https://git.sxemacs.org/syinit
+;;   Keywords: init, compile
+</span>
+<span class="comment">;; This file is part of SYinit
+</span>
+<span class="comment">;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;;    notice, this list of conditions and the following disclaimer.
+;;
+;; 2. Redistributions in binary form must reproduce the above copyright
+;;    notice, this list of conditions and the following disclaimer in the
+;;    documentation and/or other materials provided with the distribution.
+;;
+;; 3. Neither the name of the author nor the names of any contributors
+;;    may be used to endorse or promote products derived from this
+;;    software without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+<span class="comment">;;; Commentary:
+;;
+;;  BBDB settings.
+;;
+</span>
+<span class="comment">;;; Credits:
+;;
+;;   The HTML version of this file was created with Hrvoje Niksic's
+;;   htmlize.el which is part of the XEmacs "text-modes" package.
+;;
+</span>
+<span class="comment">;;; Todo:
+;;
+;;     
+</span>
+<span class="comment">;;; Code:
+;</span><span class="comment"><span class="reference">:*======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Some standard stuff first
+</span>(<span class="keyword">require</span> '<span class="reference">bbdb</span>)
+(<span class="keyword">require</span> '<span class="reference">bbdb-pgp</span>)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Make sure gnus stuff is loaded
+</span>(load-file (expand-file-name "<span class="string">.gnus</span>" (user-home-directory)))
+
+(bbdb-initialize 'gnus 'message 'w3 'sendmail)
+(bbdb-insinuate-gnus)
+(bbdb-insinuate-message)
+(bbdb-insinuate-sc)
+(bbdb-insinuate-sendmail)
+(bbdb-insinuate-w3)
+
+<span class="comment">;; BBDB/PGP stuff
+</span>(setq 
+ bbdb/pgp-method 'mml-pgpmime
+ bbdb/pgp-default-action 'sign
+ bbdb/pgp-quiet t)
+
+(<span class="keyword">defun</span> <span class="function-name">sy-bbdb-gnus-auto-notes-hook</span> (record)
+  "<span class="doc-string">Runs `</span><span class="doc-string"><span class="reference">bbdb-auto-notes-hook</span></span><span class="doc-string">' on the original article.
+This is so a header doesn't have to be visible for BBDB to notice
+any changes.
+Kudos to Robert Fenk &lt;<a href="mailto:fenk&#64;users.sf.net">fenk&#64;users.sf.net</a>&gt; for this.</span>"
+  (<span class="keyword">save-excursion</span>
+    (set-buffer (get-buffer gnus-article-buffer))
+    (set-buffer gnus-original-article-buffer)
+    (goto-char (point-min))
+    (bbdb-auto-notes-hook record)))
+
+(<span class="keyword">autoload</span> 'gnus-convert-face-to-png "<span class="doc-string">gnus-fun</span>")
+
+<span class="comment">;;; </span><span class="comment"><span class="warning">FIXME:</span></span><span class="comment"> Not ideal, it currently puts cface at one end of the name,
+;;; and the xface at the other.  I'd prefer both glyphs on the same
+;;; side (preferrably left)
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-bbdb-display-cx-face</span> ()
+  "<span class="doc-string">Search for face properties and display the faces.
+This is from Alex Shroeder.</span>"
+  (<span class="keyword">let</span> ((inhibit-read-only t)<span class="comment">; edit the BBDB buffer
+</span>        (all-records bbdb-records)
+        cface xface record start ext)
+    (<span class="keyword">while</span> all-records
+      (setq record (caar all-records)
+            cface (bbdb-record-getprop record 'cface)
+            xface (bbdb-record-getprop record 'face)
+            start (marker-position (nth 2 (car all-records))))
+      (<span class="keyword">when</span> (or cface xface)
+        (setq ext (extent-at start)))
+      (<span class="keyword">when</span> cface
+        (set-extent-begin-glyph
+         ext
+         (make-glyph
+          (list (vector 'png <span class="reference">:data</span> (gnus-convert-face-to-png cface))))))
+      (<span class="keyword">when</span> xface
+        (set-extent-end-glyph
+         ext
+         (make-glyph
+          (list (vector 'xface <span class="reference">:data</span> (concat "<span class="string">X-Face: </span>" xface)
+                        <span class="reference">:foreground</span> "<span class="string">black</span>"
+                        <span class="reference">:background</span> "<span class="string">white</span>")))))
+      (setq all-records (cddr all-records)))))
+
+(setq 
+ bbdb-always-add-addresses t
+ bbdb-canonicalize-redundant-nets-p t
+ bbdb-canonicalize-net-hook
+ (<span class="keyword">lambda</span> (addr)
+   (<span class="keyword">cond</span> 
+    ((string-match 
+      "<span class="string">\\`\\([^0-9]+\\)\\(-dated-[^@]+\\|-[0-9]+\\|\\+[^@]+\\.[^@]+\\)\\(@.*\\)\\'</span>"
+      addr)
+     (concat (substring addr (match-beginning 1) (match-end 1))
+             (substring addr (match-beginning 3) (match-end 3))))
+    (t addr)))
+ bbdb-complete-name-allow-cycling t
+ bbdb-completion-display-record t
+ bbdb-completion-type 'primary-or-name
+ bbdb-default-area-code 7
+ bbdb-dial-local-prefix nil
+ bbdb-display-layout 'multi-line
+ bbdb-dwim-net-address-allow-redundancy t
+ bbdb-electric-p nil
+ bbdb-new-nets-always-primary 'never
+ bbdb-north-american-phone-numbers-p nil
+ bbdb-notice-hook 'sy-bbdb-gnus-auto-notes-hook
+ bbdb-offer-save 'auto
+ bbdb-pop-up-display-layout 'multi-line
+ bbdb-pop-up-target-lines 7
+ bbdb-quiet-about-name-mismatches nil
+ bbdb-use-pop-up nil
+ bbdb/gnus-score-default 25
+ bbdb/gnus-summary-in-bbdb-format-letter "<span class="doc-string">X</span>"
+ bbdb/mail-auto-create-p nil
+ bbdb/news-auto-create-p nil)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> All my email addresses, well the important ones anyway.
+</span>(<span class="keyword">let</span> ((emails '("<span class="string">steve@steveyoungs.com</span>"
+                "<span class="string">steve@thereadinglamp.net</span>"
+                "<span class="string">steve@bastard.steveyoungs.com</span>"
+                "<span class="string">steve@bastard.no-ip.org</span>"
+                "<span class="string">steve@sxemacs.org</span>"
+                "<span class="string">steve@sywriting.com</span>"
+                "<span class="string">sryoungs@iinet.net.au</span>"
+                "<span class="string">steve.r.youngs@gmail.com</span>"
+                <span class="comment">;; The following aren't mine, but I'm using
+</span>                <span class="comment">;; `</span><span class="comment"><span class="reference">bbdb-user-mail-names</span></span><span class="comment">' in
+</span>                <span class="comment">;; `gnus-ignored-from-addresses.  It's just easier.
+</span>                "<span class="string">post@gwene.org</span>")))
+  (setq bbdb-user-mail-names (regexp-opt emails t)))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Update some stuff automatically
+</span>(setq bbdb-auto-notes-alist
+      '(("<span class="string">Organization</span>"
+         ("<span class="string">.*</span>" company 0 'replace))
+        ("<span class="string">Newsgroups</span>"
+         ("<span class="string">[^,]+</span>" newsgroups 0))
+        ("<span class="string">Subject</span>"
+         ("<span class="string">.*</span>" last-subj 0 'replace))
+        ("<span class="string">User-Agent</span>" 
+         ("<span class="string">.*</span>" mailer 0 'replace))
+        ("<span class="string">X-Mailer</span>" 
+         ("<span class="string">.*</span>" mailer 0 'replace))
+        ("<span class="string">X-Newsreader</span>" 
+         ("<span class="string">.*</span>" mailer 0 'replace))
+        ("<span class="string">X-Attribution</span>"
+         ("<span class="string">.*</span>" attribution 0 'replace))
+        ("<span class="string">X-Now-Playing</span>"
+         ("<span class="string">.*</span>" music 0 'replace))
+        ("<span class="string">X-Face</span>" 
+         ("<span class="string">.+</span>" face 0 'replace))
+        ("<span class="string">Face</span>" 
+         ("<span class="string">.+</span>" cface 0 'replace))))
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> mail aliases
+</span>(<span class="keyword">autoload</span> 'bbdb-define-all-aliases "<span class="doc-string">bbdb-com</span>" 
+  "<span class="doc-string">Hook mail alias feature of BBDB into message-mode.</span>" t)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Hooks
+</span>(add-hook 'bbdb-notice-hook 'bbdb-auto-notes-hook)
+(add-hook 'bbdb-change-hook 'bbdb-timestamp-hook) 
+(add-hook 'bbdb-create-hook 'bbdb-creation-date-hook)
+(add-hook 'bbdb-list-hook 'sy-bbdb-display-cx-face)
+(add-hook 'message-setup-hook 'bbdb-define-all-aliases)
+<span class="comment">;</span><span class="comment"><span class="reference">:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*</span></span><span class="comment">
+</span>(message "<span class="doc-string">bbdb initialised</span>")
+
+</pre>
+  <!--  SXEmacs Logo -->
+    <div class="img">
+      <a href="https://www.sxemacs.org/" target="_parent">
+       <img style="padding:0px 5px 0px 0px;border:0;width:88px;height:31px"
+         src="/Images/cbsx.png"
+         title="This page was created entirely in SXEmacs"
+         alt="Created with SXEmacs" />
+      </a>
+<!--  End SXEmacs Logo -->
+<!--  Valid XHTML 1.0 -->
+      <a href="http://validator.w3.org/check?uri=https%3a%2f%2fwww.sxemacs.org%2fSYinits%2f13-bbdb.html" target="_blank">
+       <img style="padding:0px 5px 0px 10px;border:0;width:88px;height:31px"
+         src="/Images/valid-xhtml10.png"
+         title="Valid XHTML 1.0 Transitional!"
+         alt="Valid XHTML 1.0 Transitional!" />
+      </a>
+    </div>
+<!--  End Valid XHTML 1.0 -->
+
+    <h6>Copyright &#169; 2020 Steve Youngs<br />
+     Verbatim copying and distribution is permitted in any medium,
+    providing this notice is preserved.<br />
+<!-- hhmts start -->
+Last modified: Wed Apr 15 18:14:43 AEST 2020
+<!-- hhmts end -->
+   </h6>
+
+</body>
+</html>
diff --git a/SYinits/14-fonts.html b/SYinits/14-fonts.html
new file mode 100644 (file)
index 0000000..4dba69f
--- /dev/null
@@ -0,0 +1,529 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>14-fonts.el</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Steve Youngs" />
+    <meta name="owner" content="steve@sxemacs.org" />
+    <style type="text/css">
+    <!--
+      body {
+        color: #ffffff;
+        background-color: #000000;
+      }
+      .comment {
+        /* font-lock-comment-face */
+        color: #87ceeb;
+      }
+      .doc-string {
+        /* font-lock-doc-string-face */
+        color: #32cd32;
+      }
+      .function-name {
+        /* font-lock-function-name-face */
+        color: #ffff00;
+        font-weight: bold;
+      }
+      .keyword {
+        /* font-lock-keyword-face */
+        color: #fa8072;
+      }
+      .reference {
+        /* font-lock-reference-face */
+        color: #40e0d0;
+      }
+      .string {
+        /* font-lock-string-face */
+        color: #00cd00;
+      }
+      .warning {
+        /* font-lock-warning-face */
+        color: #ff0000;
+        font-weight: bold;
+      }
+
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+    -->
+    </style>
+  </head>
+  <body>
+    <pre>
+<span class="comment">;; 14-fonts.el --- Fonts/Faces Settings
+</span>
+<span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
+</span>
+<span class="comment">;;     Author: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;; Maintainer: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;;    Created: &lt;2007-12-02&gt;
+;; Time-stamp: &lt;Thursday Apr  9, 2020 18:53:24 steve&gt;
+;;   Download: &lt;<a href="https://downloads.sxemacs.org/SYinits">https://downloads.sxemacs.org/SYinits</a>&gt;
+;;   HTMLised: &lt;<a href="https://www.sxemacs.org/SYinits/14-fonts.html">https://www.sxemacs.org/SYinits/14-fonts.html</a>&gt;
+;;   Git Repo: git clone https://git.sxemacs.org/syinit
+;;   Keywords: init, compile
+</span>
+<span class="comment">;; This file is part of SYinit
+</span>
+<span class="comment">;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;;    notice, this list of conditions and the following disclaimer.
+;;
+;; 2. Redistributions in binary form must reproduce the above copyright
+;;    notice, this list of conditions and the following disclaimer in the
+;;    documentation and/or other materials provided with the distribution.
+;;
+;; 3. Neither the name of the author nor the names of any contributors
+;;    may be used to endorse or promote products derived from this
+;;    software without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+<span class="comment">;;; Commentary:
+;;
+;;   Sets all my pretty colours and shit.
+;;
+</span>
+<span class="comment">;;; Credits:
+;;
+;;   The HTML version of this file was created with Hrvoje Niksic's
+;;   htmlize.el which is part of the XEmacs "text-modes" package.
+;;
+</span>
+<span class="comment">;;; Todo:
+;;
+;;     
+</span>
+<span class="comment">;;; Code:
+;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> font-lock
+</span>(<span class="keyword">require</span> '<span class="reference">font-lock</span>)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Turn on Lazy-(lock|shot)
+;;; Lazy-lock
+</span>(<span class="keyword">require</span> '<span class="reference">lazy-lock</span>)
+<span class="comment">;; (if (eq emacs-minor-version 5)
+;;     (setq font-lock-support-mode 'lazy-lock-mode)
+</span>(add-hook 'font-lock-mode-hook 'turn-on-lazy-lock)
+<span class="comment">;; (setq lazy-lock-stealth-time 15)
+</span>
+<span class="comment">;;; Lazy-shot (my preference)
+;; (require 'lazy-shot)
+;; (setq lazy-shot-verbose nil)
+;; (setq lazy-shot-stealth-verbose nil)
+;; (add-hook 'font-lock-mode-hook 'turn-on-lazy-shot)
+</span>
+<span class="comment">;;; Fast-lock (it has caching!)
+;; (require 'fast-lock)
+;; (setq fast-lock-cache-directories
+;;       (list (paths-construct-path (list (getenv "XDG_CACHE_HOME")
+;;                                      "sxemacs" "fast-lock"))))
+;; (push 'save-buffer fast-lock-save-events)
+;; (fast-lock-mode 1)
+;; (add-hook 'font-lock-mode-hook 'turn-on-fast-lock)
+;; (setq-default fast-lock-mode t)
+</span>
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> describe-face-at-point, a function to find out which face is which
+</span>(<span class="keyword">defun</span> <span class="function-name">describe-face-at-point</span> ()
+  "<span class="doc-string">Describe faces at point.</span>"
+  (interactive)
+  (<span class="keyword">let</span> ((faces (get-char-property (point) 'face)))
+    (<span class="keyword">if</span> (listp faces)
+        (hyper-apropos
+         (mapconcat
+          #'(<span class="keyword">lambda</span> (f)
+              (symbol-name f)) faces "<span class="string">\\|</span>") nil)
+      (hyper-describe-face faces)
+      (other-window 1))))
+
+<span class="comment">;; Some convenience face stuff
+</span>(<span class="keyword">require</span> '<span class="reference">facemenu</span>)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Alex Schroeder's color-theme
+;;
+;; A very nice package, get it from:
+;;     &lt;<a href="http://www.emacswiki.org/cgi-bin/wiki.pl?ColorTheme">http://www.emacswiki.org/cgi-bin/wiki.pl?ColorTheme</a>&gt;
+</span>(<span class="keyword">autoload</span> 'color-theme-install "<span class="doc-string">color-theme</span>")
+(<span class="keyword">defun</span> <span class="function-name">sy-colour-theme</span> ()
+  "<span class="doc-string">Colour theme by Steve Youngs, created 2001-09-01.</span>"
+  (interactive)
+  (color-theme-install
+   `(sy-colour-theme
+     <span class="comment">;; Misc basic stuff.
+</span>     ((background-color . "<span class="string">black</span>")
+      (frame-background-mode . dark)
+      (background-toolbar-color . "<span class="string">#cccccccccccc</span>")
+      (border-color . "<span class="string">#000000000000</span>")
+      (bottom-toolbar-shadow-color . "<span class="string">#7a7a7a7a7a7a</span>")
+      (cursor-color . "<span class="string">red3</span>")
+      (foreground-color . "<span class="string">white</span>")
+      (top-toolbar-shadow-color . "<span class="string">#f5f5f5f5f5f5</span>"))
+     ((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)
+      (paren-match-face . paren-face-match)
+      (paren-mismatch-face . paren-face-mismatch)
+      (paren-no-match-face . paren-face-no-match)
+      (smiley-mouse-face . highlight)
+      (vc-mode-face . highlight))
+     (about-headline-face ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">HotPink</span>"))))
+     (about-link-face ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">Yellow</span>"))))
+     (blue ((t (<span class="reference">:foreground</span> "<span class="string">blue</span>"))))
+     (buffers-tab ((t (<span class="reference">:bold</span> t <span class="reference">:background</span> "<span class="string">grey65</span>" <span class="reference">:foreground</span> "<span class="string">black</span>"))))
+     (green ((t (<span class="reference">:foreground</span> "<span class="string">green</span>"))))
+     (gui-button-face ((t (<span class="reference">:background</span> "<span class="string">grey75</span>" <span class="reference">:foreground</span> "<span class="string">black</span>"))))
+     (highlight ((t (<span class="reference">:background</span> "<span class="string">darkseagreen2</span>" <span class="reference">:foreground</span> "<span class="string">red</span>"))))
+     (list-mode-item-selected ((t (<span class="reference">:background</span> "<span class="string">gray68</span>" <span class="reference">:foreground</span> "<span class="string">white</span>"))))
+     (primary-selection ((t (<span class="reference">:background</span> "<span class="string">gray65</span>"))))
+     (red ((t (<span class="reference">:foreground</span> "<span class="string">red</span>"))))
+     (secondary-selection ((t (<span class="reference">:background</span> "<span class="string">paleturquoise</span>"))))
+     (text-cursor ((t (<span class="reference">:background</span> "<span class="string">red3</span>" <span class="reference">:foreground</span> "<span class="string">black</span>"))))
+     (underline ((t (<span class="reference">:underline</span> t))))
+     (yellow ((t (<span class="reference">:foreground</span> "<span class="string">yellow</span>"))))
+     <span class="comment">;; Calendar/Diary.
+</span>     (calendar-today-face ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">HotPink</span>"))))
+     (calendar-week-face ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">yellow</span>"))))
+     (calendar-header-face ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">HotPink</span>"))))
+     (calendar-sunday-face ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">Red</span>"))))
+     (diary-face ((t (<span class="reference">:foreground</span> "<span class="string">Cyan</span>"))))
+     (holiday-face ((t ( <span class="reference">:foreground</span> "<span class="string">Yellow</span>"))))
+     <span class="comment">;; cperl-mode.
+</span>     (cperl-array-face ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">Blue</span>"))))
+     (cperl-hash-face ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">Red</span>"))))
+     (cperl-nonoverridable-face ((t (<span class="reference">:foreground</span> "<span class="string">chartreuse3</span>"))))
+     <span class="comment">;; Custom
+</span>     (custom-group-tag-face ((t (<span class="reference">:foreground</span> "<span class="string">Yellow</span>"))))
+     (custom-state-face ((t (<span class="reference">:foreground</span> "<span class="string">Cyan</span>"))))
+     (custom-variable-tag-face ((t (<span class="reference">:foreground</span> "<span class="string">LawnGreen</span>"))))
+     <span class="comment">;; PCL-CVS
+</span>     <span class="comment">;(cvs-filename-face ((t (</span><span class="comment"><span class="reference">:bold</span></span><span class="comment"> t </span><span class="comment"><span class="reference">:foreground</span></span><span class="comment"> "Yellow"))))
+</span>     <span class="comment">;(cvs-header-face ((t (</span><span class="comment"><span class="reference">:foreground</span></span><span class="comment"> "Green"))))
+</span>     <span class="comment">;(cvs-msg-face ((t ( </span><span class="comment"><span class="reference">:foreground</span></span><span class="comment"> "Cyan"))))
+</span>     <span class="comment">;; XEtla
+</span>     <span class="comment">;(xetla-archive-name ((t (</span><span class="comment"><span class="reference">:foreground</span></span><span class="comment"> "yellow"))))
+</span>     <span class="comment">;(xetla-location-http ((t (</span><span class="comment"><span class="reference">:foreground</span></span><span class="comment"> "sandybrown"))))
+</span>     <span class="comment">;(xetla-location-local ((t (</span><span class="comment"><span class="reference">:foreground</span></span><span class="comment"> "indianred"))))
+</span>     <span class="comment">;(xetla-location-sftp ((t (</span><span class="comment"><span class="reference">:foreground</span></span><span class="comment"> "wheat"))))
+</span>     <span class="comment">;; dictionary
+</span>     (dictionary-word-entry-face ((t (<span class="reference">:italic</span> nil <span class="reference">:foreground</span> "<span class="string">Green</span>"))))
+     (dictionary-reference-face ((t (<span class="reference">:foreground</span> "<span class="string">Yellow</span>"))))
+     <span class="comment">;; diff-mode
+</span>     (diff-added-face ((t ( <span class="reference">:foreground</span> "<span class="string">LawnGreen</span>"))))
+     (diff-changed-face ((t ( <span class="reference">:foreground</span> "<span class="string">Cyan</span>"))))
+     (diff-file-header-face 
+      ((t ( <span class="reference">:foreground</span> "<span class="string">BlanchedAlmond</span>"))))
+     (diff-header-face ((t ( <span class="reference">:foreground</span> "<span class="string">BlanchedAlmond</span>"))))
+     (diff-hunk-header-face ((t ( <span class="reference">:foreground</span> "<span class="string">Yellow</span>"))))
+     (diff-index-face ((t ( <span class="reference">:foreground</span> "<span class="string">Orange</span>"))))
+     (diff-removed-face ((t ( <span class="reference">:foreground</span> "<span class="string">HotPink</span>"))))
+     <span class="comment">;; Dired.
+</span>     (dired-face-boring ((t (<span class="reference">:foreground</span> "<span class="string">Gray65</span>"))))
+     (dired-face-directory ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">yellow</span>"))))
+     (dired-face-executable ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">LimeGreen</span>"))))
+     (dired-face-flagged ((t (<span class="reference">:background</span> "<span class="string">LightSlateGray</span>" <span class="reference">:foreground</span> "<span class="string">black</span>"))))
+     (dired-face-header ((t (<span class="reference">:background</span> "<span class="string">Orange</span>" <span class="reference">:foreground</span> "<span class="string">black</span>" <span class="reference">:bold</span> t))))
+     (dired-face-marked ((t (<span class="reference">:background</span> "<span class="string">PaleVioletRed</span>" <span class="reference">:foreground</span> "<span class="string">black</span>" <span class="reference">:bold</span> t))))
+     (dired-face-permissions ((t (<span class="reference">:background</span> "<span class="string">Turquoise</span>" <span class="reference">:foreground</span> "<span class="string">black</span>"))))
+     (dired-face-setuid ((t (<span class="reference">:foreground</span> "<span class="string">Red</span>" <span class="reference">:bold</span> t))))
+     (dired-face-socket ((t (<span class="reference">:foreground</span> "<span class="string">magenta</span>"))))
+     (dired-face-symlink ((t (<span class="reference">:foreground</span> "<span class="string">cyan</span>"))))
+     <span class="comment">;; Balloon Help.
+</span>     (display-time-mail-balloon-enhance-face ((t (<span class="reference">:background</span> "<span class="string">red</span>"))))
+     (display-time-mail-balloon-gnus-group-face ((t (<span class="reference">:foreground</span> "<span class="string">blue</span>"))))
+     (display-time-time-balloon-face ((t (<span class="reference">:foreground</span> "<span class="string">magenta</span>"))))
+     <span class="comment">;; Ediff
+</span>     (ediff-current-diff-face-A 
+      ((t (<span class="reference">:background</span> "<span class="string">pale green</span>" <span class="reference">:foreground</span> "<span class="string">firebrick</span>"))))
+     (ediff-current-diff-face-Ancestor 
+      ((t (<span class="reference">:background</span> "<span class="string">VioletRed</span>" <span class="reference">:foreground</span> "<span class="string">Black</span>"))))
+     (ediff-current-diff-face-B 
+      ((t (<span class="reference">:background</span> "<span class="string">Yellow</span>" <span class="reference">:foreground</span> "<span class="string">DarkOrchid</span>"))))
+     (ediff-current-diff-face-C ((t (<span class="reference">:background</span> "<span class="string">Pink</span>" <span class="reference">:foreground</span> "<span class="string">Navy</span>"))))
+     (ediff-even-diff-face-A ((t (<span class="reference">:background</span> "<span class="string">light grey</span>" <span class="reference">:foreground</span> "<span class="string">Black</span>"))))
+     (ediff-even-diff-face-Ancestor ((t (<span class="reference">:background</span> "<span class="string">Grey</span>" <span class="reference">:foreground</span> "<span class="string">White</span>"))))
+     (ediff-even-diff-face-B ((t (<span class="reference">:background</span> "<span class="string">Grey</span>" <span class="reference">:foreground</span> "<span class="string">White</span>"))))
+     (ediff-even-diff-face-C ((t (<span class="reference">:background</span> "<span class="string">light grey</span>" <span class="reference">:foreground</span> "<span class="string">Black</span>"))))
+     (ediff-fine-diff-face-A ((t (<span class="reference">:background</span> "<span class="string">sky blue</span>" <span class="reference">:foreground</span> "<span class="string">Navy</span>"))))
+     (ediff-fine-diff-face-Ancestor 
+      ((t (<span class="reference">:background</span> "<span class="string">Green</span>" <span class="reference">:foreground</span> "<span class="string">Black</span>"))))
+     (ediff-fine-diff-face-B ((t (<span class="reference">:background</span> "<span class="string">cyan</span>" <span class="reference">:foreground</span> "<span class="string">Black</span>"))))
+     (ediff-fine-diff-face-C ((t (<span class="reference">:background</span> "<span class="string">Turquoise</span>" <span class="reference">:foreground</span> "<span class="string">Black</span>"))))
+     (ediff-odd-diff-face-A ((t (<span class="reference">:background</span> "<span class="string">Grey</span>" <span class="reference">:foreground</span> "<span class="string">White</span>"))))
+     (ediff-odd-diff-face-Ancestor 
+      ((t (<span class="reference">:background</span> "<span class="string">light grey</span>" <span class="reference">:foreground</span> "<span class="string">Black</span>"))))
+     (ediff-odd-diff-face-B ((t (<span class="reference">:background</span> "<span class="string">light grey</span>" <span class="reference">:foreground</span> "<span class="string">Black</span>"))))
+     (ediff-odd-diff-face-C ((t (<span class="reference">:background</span> "<span class="string">Grey</span>" <span class="reference">:foreground</span> "<span class="string">White</span>"))))
+     <span class="comment">;; LaTeX
+</span>     (font-latex-bold-face ((t (<span class="reference">:foreground</span> "<span class="string">brown</span>"))))
+     (font-latex-italic-face ((t (<span class="reference">:foreground</span> "<span class="string">lightcoral</span>"))))
+     (font-latex-math-face ((t (<span class="reference">:foreground</span> "<span class="string">dodgerblue</span>"))))
+     (font-latex-sedate-face ((t (<span class="reference">:foreground</span> "<span class="string">gray51</span>"))))
+     (font-latex-string-face ((t (<span class="reference">:foreground</span> "<span class="string">green3</span>"))))
+     (font-latex-warning-face ((t (<span class="reference">:foreground</span> "<span class="string">red</span>"))))
+     <span class="comment">;; Font Lock
+</span>     (font-lock-comment-face ((t (<span class="reference">:foreground</span> "<span class="string">SkyBlue</span>"))))
+     (font-lock-doc-string-face ((t (<span class="reference">:foreground</span> "<span class="string">LimeGreen</span>"))))
+     (font-lock-function-name-face ((t (<span class="reference">:foreground</span> "<span class="string">yellow</span>" <span class="reference">:bold</span> t))))
+     (font-lock-keyword-face ((t (<span class="reference">:foreground</span> "<span class="string">Salmon</span>"))))
+     (font-lock-preprocessor-face ((t (<span class="reference">:foreground</span> "<span class="string">magenta3</span>"))))
+     (font-lock-reference-face ((t (<span class="reference">:foreground</span> "<span class="string">Turquoise</span>"))))
+     (font-lock-string-face ((t (<span class="reference">:foreground</span> "<span class="string">green3</span>"))))
+     (font-lock-type-face ((t (<span class="reference">:foreground</span> "<span class="string">dodgerblue</span>"))))
+     (font-lock-variable-name-face ((t (<span class="reference">:foreground</span> "<span class="string">PeachPuff</span>"))))
+     (font-lock-warning-face ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">Red</span>"))))
+     <span class="comment">;; gdb highlight
+</span>     (gdb-highlight-face ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">BlanchedAlmond</span>"))))
+     (gdb-breakpoint-number-face ((t (<span class="reference">:foreground</span> "<span class="string">magenta3</span>"))))
+     (gdb-breakpoint-enabled-face ((t (<span class="reference">:foreground</span> "<span class="string">steelblue</span>"))))
+     (gdb-function-name-face ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">yellow</span>"))))
+     (gdb-function-location-face ((t (<span class="reference">:foreground</span> "<span class="string">Salmon</span>"))))
+     (gdb-variable-name-face ((t (<span class="reference">:foreground</span> "<span class="string">PeachPuff</span>"))))
+     (gdb-type-name-face ((t (<span class="reference">:foreground</span> "<span class="string">dodgerblue</span>"))))
+     <span class="comment">;; Gnus/Message
+</span>     (gnus-cite-attribution ((t (<span class="reference">:foreground</span> "<span class="string">hotpink</span>"))))
+     (gnus-cite-1 ((t (<span class="reference">:foreground</span> "<span class="string">LawnGreen</span>"))))
+     (gnus-cite-10 ((t (<span class="reference">:foreground</span> "<span class="string">magenta</span>"))))
+     (gnus-cite-11 ((t (<span class="reference">:foreground</span> "<span class="string">MediumBlue</span>"))))
+     (gnus-cite-2 ((t (<span class="reference">:foreground</span> "<span class="string">PeachPuff</span>"))))
+     (gnus-cite-3 ((t (<span class="reference">:foreground</span> "<span class="string">Cyan</span>"))))
+     (gnus-cite-4 ((t (<span class="reference">:foreground</span> "<span class="string">Salmon</span>"))))
+     (gnus-cite-5 ((t (<span class="reference">:foreground</span> "<span class="string">DarkSalmon</span>"))))
+     (gnus-cite-6 ((t (<span class="reference">:foreground</span> "<span class="string">LavenderBlush</span>"))))
+     (gnus-cite-7 ((t (<span class="reference">:foreground</span> "<span class="string">LawnGreen</span>"))))
+     (gnus-cite-8 ((t (<span class="reference">:foreground</span> "<span class="string">LightSkyBlue</span>"))))
+     (gnus-cite-9 ((t (<span class="reference">:foreground</span> "<span class="string">LightSeaGreen</span>"))))
+     (gnus-emphasis-bold ((t (<span class="reference">:bold</span> t))))
+     (gnus-emphasis-bold-italic ((t (<span class="reference">:italic</span> t <span class="reference">:bold</span> t))))
+     (gnus-emphasis-highlight-words ((t (<span class="reference">:foreground</span> "<span class="string">yellow</span>"))))
+     (gnus-emphasis-italic ((t (<span class="reference">:italic</span> t))))
+     (gnus-emphasis-underline ((t (<span class="reference">:underline</span> t))))
+     (gnus-emphasis-underline-bold ((t (<span class="reference">:underline</span> t <span class="reference">:bold</span> t))))
+     (gnus-emphasis-underline-bold-italic ((t (<span class="reference">:underline</span> t <span class="reference">:italic</span> t <span class="reference">:bold</span> t))))
+     (gnus-emphasis-underline-italic ((t (<span class="reference">:underline</span> t <span class="reference">:italic</span> t))))
+     (gnus-group-mail-1-empty ((t (<span class="reference">:foreground</span> "<span class="string">DeepPink3</span>"))))
+     (gnus-group-mail-1 ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">DeepPink3</span>"))))
+     (gnus-group-mail-2-empty ((t (<span class="reference">:foreground</span> "<span class="string">HotPink3</span>"))))
+     (gnus-group-mail-2 ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">HotPink3</span>"))))
+     (gnus-group-mail-3-empty ((t (<span class="reference">:foreground</span> "<span class="string">BlanchedAlmond</span>"))))
+     (gnus-group-mail-3 ((t (<span class="reference">:foreground</span> "<span class="string">Yellow</span>"))))
+     (gnus-group-mail-low-empty ((t (<span class="reference">:foreground</span> "<span class="string">DeepPink4</span>"))))
+     (gnus-group-mail-low ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">DeepPink4</span>"))))
+     (gnus-group-news-1-empty ((t (<span class="reference">:foreground</span> "<span class="string">BlanchedAlmond</span>"))))
+     (gnus-group-news-1 ((t (<span class="reference">:foreground</span> "<span class="string">LawnGreen</span>"))))
+     (gnus-group-news-2-empty ((t (<span class="reference">:foreground</span> "<span class="string">CadetBlue4</span>"))))
+     (gnus-group-news-2 ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">CadetBlue4</span>"))))
+     (gnus-group-news-3 ((t (<span class="reference">:foreground</span> "<span class="string">HotPink</span>"))))
+     (gnus-group-news-4 ((t (<span class="reference">:bold</span> t))))
+     (gnus-group-news-5 ((t (<span class="reference">:bold</span> t))))
+     (gnus-group-news-6 ((t (<span class="reference">:bold</span> t))))
+     (gnus-group-news-low-empty ((t (<span class="reference">:foreground</span> "<span class="string">DarkGreen</span>"))))
+     (gnus-group-news-low ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">DarkGreen</span>"))))
+     (gnus-header-content ((t (<span class="reference">:foreground</span> "<span class="string">LightGreen</span>"))))
+     (gnus-header-from ((t (<span class="reference">:foreground</span> "<span class="string">Cyan</span>"))))
+     (gnus-header-name ((t (<span class="reference">:foreground</span> "<span class="string">hotpink</span>"))))
+     (gnus-header-newsgroups ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">yellow</span>"))))
+     (gnus-header-subject ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">SkyBlue</span>"))))
+     (gnus-picon ((t (<span class="reference">:background</span> "<span class="string">white</span>" <span class="reference">:foreground</span> "<span class="string">white</span>"))))
+     (gnus-picon-xbm ((t (<span class="reference">:background</span> "<span class="string">white</span>" <span class="reference">:foreground</span> "<span class="string">white</span>"))))
+     (gnus-server-agent ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">HotPink</span>"))))
+     (gnus-server-opened ((t (<span class="reference">:foreground</span> "<span class="string">green</span>"))))
+     (gnus-server-closed ((t (<span class="reference">:foreground</span> "<span class="string">gray55</span>"))))
+     (gnus-server-denied ((t (<span class="reference">:foreground</span> "<span class="string">red</span>"))))
+     (gnus-server-offline ((t (<span class="reference">:foreground</span> "<span class="string">BlanchedAlmond</span>"))))
+     (gnus-signature ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">BlanchedAlmond</span>"))))
+     (gnus-summary-cancelled ((t (<span class="reference">:foreground</span> "<span class="string">yellow</span>"))))
+     (gnus-summary-high-ancient ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">RoyalBlue</span>"))))
+     (gnus-summary-high-read ((t (<span class="reference">:foreground</span> "<span class="string">SlateGrey</span>"))))
+     (gnus-summary-high-ticked ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">firebrick</span>"))))
+     (gnus-summary-high-unread ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">HotPink</span>"))))
+     (gnus-summary-low-ancient ((t (<span class="reference">:italic</span> t <span class="reference">:foreground</span> "<span class="string">RoyalBlue</span>"))))
+     (gnus-summary-low-read ((t (<span class="reference">:foreground</span> "<span class="string">Grey</span>"))))
+     (gnus-summary-low-ticked ((t (<span class="reference">:italic</span> t <span class="reference">:foreground</span> "<span class="string">firebrick</span>"))))
+     (gnus-summary-low-unread ((t ( <span class="reference">:foreground</span> "<span class="string">coral</span>"))))
+     (gnus-summary-normal-ancient ((t (<span class="reference">:foreground</span> "<span class="string">RoyalBlue</span>"))))
+     (gnus-summary-normal-read ((t (<span class="reference">:foreground</span> "<span class="string">SlateGrey</span>"))))
+     (gnus-summary-normal-ticked ((t (<span class="reference">:foreground</span> "<span class="string">firebrick</span>"))))
+     (gnus-summary-normal-unread ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">white</span>"))))
+     (gnus-summary-selected ((t (<span class="reference">:underline</span> t <span class="reference">:foreground</span> "<span class="string">Cyan</span>"))))
+     (gnus-x ((t (<span class="reference">:background</span> "<span class="string">white</span>" <span class="reference">:foreground</span> "<span class="string">black</span>"))))
+     (message-cited-text ((t (<span class="reference">:foreground</span> "<span class="string">Cyan</span>"))))
+     (message-header-cc ((t (<span class="reference">:foreground</span> "<span class="string">LawnGreen</span>"))))
+     (message-header-name ((t (<span class="reference">:foreground</span> "<span class="string">hotpink</span>"))))
+     (message-header-newsgroups ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">yellow</span>"))))
+     (message-header-other ((t (<span class="reference">:foreground</span> "<span class="string">Green</span>"))))
+     (message-header-subject ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">SkyBlue</span>"))))
+     (message-header-to ((t (<span class="reference">:foreground</span> "<span class="string">BlanchedAlmond</span>"))))
+     (message-header-xheader ((t (<span class="reference">:foreground</span> "<span class="string">blue</span>"))))
+     (message-mml ((t (<span class="reference">:foreground</span> "<span class="string">ForestGreen</span>"))))
+     (message-separator ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">yellow</span>"))))
+     (mm-uu-extract ((t (<span class="reference">:background</span> "<span class="string">black</span>"))))
+     <span class="comment">;; MMM-mode
+</span>     (mmm-default-submode-face ((t (<span class="reference">:background</span> "<span class="string">black</span>"))))
+     <span class="comment">;; Hyper-apropos.
+</span>     (hyper-apropos-documentation ((t (<span class="reference">:foreground</span> "<span class="string">white</span>"))))
+     (hyper-apropos-hyperlink ((t (<span class="reference">:foreground</span> "<span class="string">yellow</span>"))))
+     <span class="comment">;; ibuffer
+</span>     (ibuffer-deletion-face ((t (<span class="reference">:foreground</span> "<span class="string">BlanchedAlmond</span>"))))
+     (ibuffer-dired-buffer-face ((t (<span class="reference">:foreground</span> "<span class="string">cyan</span>"))))
+     (ibuffer-help-buffer-face ((t (<span class="reference">:foreground</span> "<span class="string">Yellow</span>"))))
+     (ibuffer-hidden-buffer-face ((t (<span class="reference">:foreground</span> "<span class="string">DarkMagenta</span>"))))
+     (ibuffer-marked-face ((t (<span class="reference">:foreground</span> "<span class="string">green</span>"))))
+     (ibuffer-occur-match-face ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">Red</span>"))))
+     (ibuffer-read-only-buffer-face ((t (<span class="reference">:foreground</span> "<span class="string">hotpink</span>"))))
+     (ibuffer-special-buffer-face ((t (<span class="reference">:foreground</span> "<span class="string">skyblue</span>"))))
+     <span class="comment">;; Info
+</span>     (info-node ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">yellow</span>"))))
+     (info-xref ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">BlanchedAlmond</span>"))))
+     <span class="comment">;; Isearch
+</span>     (isearch ((t (<span class="reference">:background</span> "<span class="string">yellow</span>" <span class="reference">:foreground</span> "<span class="string">red</span>"))))
+     (isearch-secondary ((t (<span class="reference">:foreground</span> "<span class="string">red3</span>"))))
+     <span class="comment">;; Riece
+</span>     (riece-ctcp-action-face ((t (<span class="reference">:foreground</span> "<span class="string">PaleGreen</span>" <span class="reference">:bold</span> t))))
+     (riece-dialogue-prefix-face ((t (<span class="reference">:foreground</span> "<span class="string">red</span>" <span class="reference">:bold</span> t))))
+     (riece-channel-list-default-face ((t (<span class="reference">:foreground</span> "<span class="string">yellow</span>" <span class="reference">:bold</span> t))))
+     (riece-keyword-face ((t (<span class="reference">:foreground</span> "<span class="string">hotpink</span>" <span class="reference">:bold</span> t))))
+     <span class="comment">;; Man
+</span>     (man-italic ((t (<span class="reference">:italic</span> t <span class="reference">:size</span> "<span class="string">14pt</span>" <span class="reference">:foreground</span> "<span class="string">BlanchedAlmond</span>"))))
+     (man-heading ((t (<span class="reference">:bold</span> t <span class="reference">:foreground</span> "<span class="string">yellow</span>"))))
+     (man-xref ((t (<span class="reference">:underline</span> t <span class="reference">:foreground</span> "<span class="string">hotpink</span>"))))
+     <span class="comment">;; Modeline
+</span>     (modeline ((t (<span class="reference">:background</span> "<span class="string">Gray80</span>" <span class="reference">:foreground</span> "<span class="string">Black</span>"))))
+     (modeline-buffer-id ((t (<span class="reference">:background</span> "<span class="string">Gray80</span>" <span class="reference">:foreground</span> "<span class="string">blue4</span>"))))
+     (modeline-mousable ((t (<span class="reference">:background</span> "<span class="string">Gray80</span>" <span class="reference">:foreground</span> "<span class="string">firebrick</span>"))))
+     (modeline-mousable-minor-mode 
+      ((t (<span class="reference">:background</span> "<span class="string">Gray80</span>" <span class="reference">:foreground</span> "<span class="string">green4</span>"))))
+     <span class="comment">;; Paren
+</span>     (paren-blink-off ((t (<span class="reference">:foreground</span> "<span class="string">black</span>"))))
+     (paren-face-match ((t (<span class="reference">:background</span> "<span class="string">turquoise</span>"))))
+     (paren-face-mismatch ((t (<span class="reference">:background</span> "<span class="string">purple</span>" <span class="reference">:foreground</span> "<span class="string">white</span>"))))
+     (paren-face-no-match ((t (<span class="reference">:background</span> "<span class="string">yellow</span>" <span class="reference">:foreground</span> "<span class="string">black</span>"))))
+     (paren-match ((t (<span class="reference">:background</span> "<span class="string">darkseagreen2</span>" <span class="reference">:foreground</span> "<span class="string">yellow3</span>"))))
+     (paren-mismatch ((t (<span class="reference">:background</span> "<span class="string">DeepPink</span>" <span class="reference">:foreground</span> "<span class="string">white</span>"))))
+     <span class="comment">;; Eshell
+</span>     (eshell-ls-directory-face ((t (<span class="reference">:foreground</span> "<span class="string">Yellow</span>" <span class="reference">:bold</span> t))))
+     <span class="comment">;; Shell
+</span>     (shell-option-face ((t (<span class="reference">:foreground</span> "<span class="string">Cyan</span>"))))
+     (shell-output-2-face ((t (<span class="reference">:foreground</span> "<span class="string">LawnGreen</span>"))))
+     (shell-output-3-face ((t (<span class="reference">:foreground</span> "<span class="string">HotPink</span>"))))
+     (shell-output-face ((t (<span class="reference">:foreground</span> "<span class="string">BlanchedAlmond</span>"))))
+     (shell-prompt-face ((t (<span class="reference">:foreground</span> "<span class="string">Yellow</span>"))))
+     <span class="comment">;; Speedbar
+</span>     (speedbar-button-face ((t (<span class="reference">:foreground</span> "<span class="string">green4</span>"))))
+     (speedbar-directory-face ((t (<span class="reference">:foreground</span> "<span class="string">BlanchedAlmond</span>"))))
+     (speedbar-file-face ((t (<span class="reference">:foreground</span> "<span class="string">cyan4</span>"))))
+     (speedbar-highlight-face ((t (<span class="reference">:background</span> "<span class="string">green</span>"))))
+     (speedbar-selected-face ((t (<span class="reference">:underline</span> t <span class="reference">:foreground</span> "<span class="string">red</span>"))))
+     (speedbar-tag-face ((t (<span class="reference">:foreground</span> "<span class="string">brown</span>"))))
+     <span class="comment">;; Widget
+</span>     (widget-button-face ((t (<span class="reference">:foreground</span> "<span class="string">magenta</span>"))))
+     (widget-button-pressed-face ((t (<span class="reference">:foreground</span> "<span class="string">red</span>"))))
+     (widget-documentation-face ((t (<span class="reference">:foreground</span> "<span class="string">BlanchedAlmond</span>"))))
+     (widget-field-face ((t (<span class="reference">:background</span> "<span class="string">Grey30</span>" <span class="reference">:foreground</span> "<span class="string">Yellow</span>"))))
+     (widget-inactive-face ((t (<span class="reference">:foreground</span> "<span class="string">dim gray</span>"))))
+     (zmacs-region ((t (<span class="reference">:background</span> "<span class="string">gray30</span>" <span class="reference">:foreground</span> "<span class="string">yellow</span>"))))
+     <span class="comment">;; xwem
+</span>     <span class="comment">;(xwem-framei-dockapp-face ((t (</span><span class="comment"><span class="reference">:foreground</span></span><span class="comment"> "cyan" </span><span class="comment"><span class="reference">:background</span></span><span class="comment"> "black" </span><span class="comment"><span class="reference">:bold</span></span><span class="comment"> t))))
+</span>     <span class="comment">;; EasyPG
+</span>     (epa-field-body-face ((t (<span class="reference">:foreground</span> "<span class="string">turquoise</span>" <span class="reference">:italic</span> t))))
+     (epa-field-name-face ((t (<span class="reference">:foreground</span> "<span class="string">BlanchedAlmond</span>"))))
+     (epa-mark-face ((t (<span class="reference">:foreground</span> "<span class="string">red</span>" <span class="reference">:bold</span> t))))
+     (epa-string-face ((t (<span class="reference">:foreground</span> "<span class="string">green</span>"))))
+     (epa-validity-disabled-face ((t (<span class="reference">:foreground</span> "<span class="string">grey50</span>"))))
+     (epa-validity-high-face ((t (<span class="reference">:foreground</span> "<span class="string">hotpink</span>" <span class="reference">:bold</span> t))))
+     (epa-validity-low-face ((t (<span class="reference">:foreground</span> "<span class="string">grey80</span>"))))
+     (epa-validity-medium-face ((t (<span class="reference">:foreground</span> "<span class="string">PaleTurquoise</span>"))))
+     <span class="comment">;; howm
+</span>     (action-lock-face ((t (<span class="reference">:underline</span> t))))
+     (howm-menu-key-face ((t (<span class="reference">:foreground</span> "<span class="string">HotPink</span>"))))
+     (howm-menu-list-face ((t (<span class="reference">:foreground</span> "<span class="string">black</span>" <span class="reference">:background</span> "<span class="string">yellow</span>"))))
+     (howm-mode-ref-face ((t (<span class="reference">:foreground</span> "<span class="string">yellow</span>"))))
+     (howm-mode-title-face ((t (<span class="reference">:foreground</span> "<span class="string">BlanchedAlmond</span>"))))
+     (howm-mode-wiki-face ((t (<span class="reference">:foreground</span> "<span class="string">SkyBlue</span>"))))
+     (howm-reminder-defer-face ((t (<span class="reference">:foreground</span> "<span class="string">white</span>"))))
+     (howm-reminder-done-face ((t (<span class="reference">:foreground</span> "<span class="string">grey65</span>"))))
+     (howm-reminder-schedule-face ((t (<span class="reference">:foreground</span> "<span class="string">cyan</span>"))))
+     (howm-reminder-todo-face ((t (<span class="reference">:foreground</span> "<span class="string">hotpink</span>" <span class="reference">:bold</span> t))))
+     (howm-reminder-normal-face ((t (<span class="reference">:foreground</span> "<span class="string">Salmon</span>"))))
+     <span class="comment">;; Sudoku
+</span>     (sudoku-value-face ((t (<span class="reference">:foreground</span> "<span class="string">yellow</span>" <span class="reference">:bold</span> t <span class="reference">:size</span> ,sudoku-font-size))))
+     )))
+
+(sy-colour-theme)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment"> </span><span class="comment"><span class="reference">:*</span></span><span class="comment"> 
+; Use a sexy background pixmap.
+;(set-face-background-pixmap 'default 
+;                           [xpm </span><span class="comment"><span class="reference">:file</span></span><span class="comment"> "~/documents/pictures/misc/marble.xpm"])
+;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Set background-mode to dark (why isn't this autodetected?)
+</span>(setq frame-background-mode 'dark)
+
+<span class="comment">;; Highlight '</span><span class="comment"><span class="warning">FIXME:</span></span><span class="comment">' and '--SY' in comments.  So far, just lisp mode.
+</span>(add-to-list 'lisp-font-lock-keywords-2
+             '("<span class="string">;+.*\\(</span><span class="string"><span class="warning">FIXME:</span></span><span class="string">\\|--SY\\.?$\\)</span>" 1 font-lock-warning-face prepend))
+<span class="comment">;</span><span class="comment"><span class="reference">:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::</span></span><span class="comment">
+</span>(message "<span class="doc-string">fonts initialised</span>")
+
+</pre>
+  <!--  SXEmacs Logo -->
+    <div class="img">
+      <a href="https://www.sxemacs.org/" target="_parent">
+       <img style="padding:0px 5px 0px 0px;border:0;width:88px;height:31px"
+         src="/Images/cbsx.png"
+         title="This page was created entirely in SXEmacs"
+         alt="Created with SXEmacs" />
+      </a>
+<!--  End SXEmacs Logo -->
+<!--  Valid XHTML 1.0 -->
+      <a href="http://validator.w3.org/check?uri=https%3a%2f%2fwww.sxemacs.org%2fSYinits%2f14-fonts.html" target="_blank">
+       <img style="padding:0px 5px 0px 10px;border:0;width:88px;height:31px"
+         src="/Images/valid-xhtml10.png"
+         title="Valid XHTML 1.0 Transitional!"
+         alt="Valid XHTML 1.0 Transitional!" />
+      </a>
+    </div>
+<!--  End Valid XHTML 1.0 -->
+
+    <h6>Copyright &#169; 2020 Steve Youngs<br />
+     Verbatim copying and distribution is permitted in any medium,
+    providing this notice is preserved.<br />
+<!-- hhmts start -->
+Last modified: Wed Apr 15 18:15:05 AEST 2020
+<!-- hhmts end -->
+   </h6>
+
+</body>
+</html>
diff --git a/SYinits/15-supercite.html b/SYinits/15-supercite.html
new file mode 100644 (file)
index 0000000..6c0ffb6
--- /dev/null
@@ -0,0 +1,233 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>15-supercite.el</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Steve Youngs" />
+    <meta name="owner" content="steve@sxemacs.org" />
+    <style type="text/css">
+    <!--
+      body {
+        color: #ffffff;
+        background-color: #000000;
+      }
+      .comment {
+        /* font-lock-comment-face */
+        color: #87ceeb;
+      }
+      .doc-string {
+        /* font-lock-doc-string-face */
+        color: #32cd32;
+      }
+      .function-name {
+        /* font-lock-function-name-face */
+        color: #ffff00;
+        font-weight: bold;
+      }
+      .keyword {
+        /* font-lock-keyword-face */
+        color: #fa8072;
+      }
+      .reference {
+        /* font-lock-reference-face */
+        color: #40e0d0;
+      }
+      .string {
+        /* font-lock-string-face */
+        color: #00cd00;
+      }
+
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+    -->
+    </style>
+  </head>
+  <body>
+    <pre>
+<span class="comment">;; 15-supercite.el --- Mail citing Settings
+</span>
+<span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
+</span>
+<span class="comment">;;     Author: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;; Maintainer: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;;    Created: &lt;2007-12-02&gt;
+;; Time-stamp: &lt;Thursday Apr  9, 2020 19:00:53 steve&gt;
+;;   Download: &lt;<a href="https://downloads.sxemacs.org/SYinits">https://downloads.sxemacs.org/SYinits</a>&gt;
+;;   HTMLised: &lt;<a href="https://www.sxemacs.org/SYinits/15-supercite.html">https://www.sxemacs.org/SYinits/15-supercite.html</a>&gt;
+;;   Git Repo: git clone https://git.sxemacs.org/syinit
+;;   Keywords: init, compile
+</span>
+<span class="comment">;; This file is part of SYinit
+</span>
+<span class="comment">;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;;    notice, this list of conditions and the following disclaimer.
+;;
+;; 2. Redistributions in binary form must reproduce the above copyright
+;;    notice, this list of conditions and the following disclaimer in the
+;;    documentation and/or other materials provided with the distribution.
+;;
+;; 3. Neither the name of the author nor the names of any contributors
+;;    may be used to endorse or promote products derived from this
+;;    software without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+<span class="comment">;;; Commentary:
+;;
+;;   Setting up citing in Gnus with Supercite.
+;;
+</span>
+<span class="comment">;;; Credits:
+;;
+;;   The HTML version of this file was created with Hrvoje Niksic's
+;;   htmlize.el which is part of the XEmacs "text-modes" package.
+;;
+</span>
+<span class="comment">;;; Todo:
+;;
+;;     
+</span>
+<span class="comment">;;; Code:
+</span>(<span class="keyword">require</span> '<span class="reference">supercite</span>)
+(<span class="keyword">require</span> '<span class="reference">time-date</span>)
+<span class="comment">;; Warning: This triggers a bug that has been fixed in an as yet to be
+;; released SXEmacs Gnus package.  Sorry.  I will get the packages out
+;; as soon as I can.  This was as of: [2020-04-09]
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-september-citation-line</span> ()
+  (<span class="keyword">let</span> ((sc-mumble "")
+        (whofrom (sc-whofrom)))
+    (<span class="keyword">when</span> whofrom
+      (insert
+       sc-reference-tag-string
+       (sc-hdr "<span class="string">On </span>"
+               (int-to-string
+                (- (time-to-days (mail-header-parse-date
+                                  (sc-mail-field "<span class="string">date</span>")))
+                   (time-to-days (encode-time 0 0 0 01 09 1993))))
+               "<span class="string"> September 1993, </span>")
+       (sc-mail-field "<span class="string">sc-author</span>")
+       "<span class="string"> wrote:\n</span>"))))
+
+(setq sc-rewrite-header-list 
+      '((sc-no-header) 
+        (sc-header-on-said) 
+        (sc-header-inarticle-writes) 
+        (sc-header-regarding-adds) 
+        (sc-header-attributed-writes) 
+        (sc-header-author-writes) 
+        (sc-header-verbose) 
+        (sc-no-blank-line-or-header)
+        (sc-header-author-email-writes)
+        (sy-september-citation-line)))
+
+(setq sc-preferred-attribution-list
+      '("<span class="string">sc-lastchoice</span>"
+        "<span class="string">x-attribution</span>"
+        "<span class="string">sc-consult</span>"
+        "<span class="string">initials</span>"
+        "<span class="string">firstname</span>"
+        "<span class="string">emailname</span>"
+        "<span class="string">lastname</span>"))
+
+(setq 
+ message-cite-function 'sc-cite-original
+ sc-confirm-always-p nil
+ sc-preferred-header-style 4
+ sc-auto-fill-region-p t
+ sc-fixup-whitespace-p t
+ sc-electric-references-p t
+ sc-cite-blank-lines-p nil
+ sc-nested-citation-p nil
+ sc-citation-separator "<span class="doc-string"> </span>"
+ sc-reference-tag-string "<span class="doc-string">|--> </span>"
+ sc-citation-delimiter "<span class="doc-string">&gt;</span>"
+ sc-extract-address-components 'gnus-extract-address-components)
+
+(<span class="keyword">defun</span> <span class="function-name">sy-sc-remove-signature</span> ()
+  "<span class="doc-string">Removes the signature from the original message.
+
+To use, hang it off the appropriate hook such as `</span><span class="doc-string"><span class="reference">sc-pre-hook</span></span><span class="doc-string">' so
+you're not citing useless stuff.</span>"
+  (<span class="keyword">save-excursion</span>
+    (<span class="keyword">let</span> ((start (point))
+          (end (mark t))
+          (sig-sep gnus-signature-separator)
+          mark)
+      (<span class="keyword">while</span> sig-sep
+        (goto-char end)
+        (<span class="keyword">when</span> (re-search-backward (car sig-sep) start t)
+          (forward-line -1)
+          (<span class="keyword">while</span> (looking-at "<span class="string">[ \t]*$</span>")
+            (forward-line -1))
+          (forward-line 1)
+          (setq mark (set-marker (make-marker) (point)))
+          (delete-region mark (mark t)))
+        (setq sig-sep (cdr sig-sep))))))
+
+(add-hook 'sc-load-hook 'sc-setup-filladapt)
+(add-hook 'sc-pre-hook 'sy-sc-remove-signature)
+(add-hook 'mail-citation-hook 'sc-cite-original)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::</span></span><span class="comment">
+</span>(message "<span class="doc-string">Supercite settings loaded successfully</span>")
+
+</pre>
+  <!--  SXEmacs Logo -->
+    <div class="img">
+      <a href="https://www.sxemacs.org/" target="_parent">
+       <img style="padding:0px 5px 0px 0px;border:0;width:88px;height:31px"
+         src="/Images/cbsx.png"
+         title="This page was created entirely in SXEmacs"
+         alt="Created with SXEmacs" />
+      </a>
+<!--  End SXEmacs Logo -->
+<!--  Valid XHTML 1.0 -->
+      <a href="http://validator.w3.org/check?uri=https%3a%2f%2fwww.sxemacs.org%2fSYinits%2f15-supercite.html" target="_blank">
+       <img style="padding:0px 5px 0px 10px;border:0;width:88px;height:31px"
+         src="/Images/valid-xhtml10.png"
+         title="Valid XHTML 1.0 Transitional!"
+         alt="Valid XHTML 1.0 Transitional!" />
+      </a>
+    </div>
+<!--  End Valid XHTML 1.0 -->
+
+    <h6>Copyright &#169; 2020 Steve Youngs<br />
+     Verbatim copying and distribution is permitted in any medium,
+    providing this notice is preserved.<br />
+<!-- hhmts start -->
+Last modified: Wed Apr 15 18:15:32 AEST 2020
+<!-- hhmts end -->
+   </h6>
+
+</body>
+</html>
diff --git a/SYinits/16-riece.html b/SYinits/16-riece.html
new file mode 100644 (file)
index 0000000..9c9a428
--- /dev/null
@@ -0,0 +1,931 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>16-riece.el</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Steve Youngs" />
+    <meta name="owner" content="steve@sxemacs.org" />
+    <style type="text/css">
+    <!--
+      body {
+        color: #ffffff;
+        background-color: #000000;
+      }
+      .comment {
+        /* font-lock-comment-face */
+        color: #87ceeb;
+      }
+      .doc-string {
+        /* font-lock-doc-string-face */
+        color: #32cd32;
+      }
+      .function-name {
+        /* font-lock-function-name-face */
+        color: #ffff00;
+        font-weight: bold;
+      }
+      .keyword {
+        /* font-lock-keyword-face */
+        color: #fa8072;
+      }
+      .reference {
+        /* font-lock-reference-face */
+        color: #40e0d0;
+      }
+      .string {
+        /* font-lock-string-face */
+        color: #00cd00;
+      }
+      .type {
+        /* font-lock-type-face */
+        color: #1e90ff;
+      }
+      .variable-name {
+        /* font-lock-variable-name-face */
+        color: #ffdab9;
+      }
+      .warning {
+        /* font-lock-warning-face */
+        color: #ff0000;
+        font-weight: bold;
+      }
+
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+    -->
+    </style>
+  </head>
+  <body>
+    <pre>
+<span class="comment">;; 16-riece.el --- Riece (IRC) Settings
+</span>
+<span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
+</span>
+<span class="comment">;;     Author: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;; Maintainer: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;;    Created: &lt;2007-12-02&gt;
+;; Time-stamp: &lt;Thursday Apr  9, 2020 19:11:39 steve&gt;
+;;   Download: &lt;<a href="https://downloads.sxemacs.org/SYinits">https://downloads.sxemacs.org/SYinits</a>&gt;
+;;   HTMLised: &lt;<a href="https://www.sxemacs.org/SYinits/16-riece.html">https://www.sxemacs.org/SYinits/16-riece.html</a>&gt;
+;;   Git Repo: git clone https://git.sxemacs.org/syinit
+;;   Keywords: init, compile
+</span>
+<span class="comment">;; This file is part of SYinit
+</span>
+<span class="comment">;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;;    notice, this list of conditions and the following disclaimer.
+;;
+;; 2. Redistributions in binary form must reproduce the above copyright
+;;    notice, this list of conditions and the following disclaimer in the
+;;    documentation and/or other materials provided with the distribution.
+;;
+;; 3. Neither the name of the author nor the names of any contributors
+;;    may be used to endorse or promote products derived from this
+;;    software without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+<span class="comment">;;; Commentary:
+;;
+;;   My Riece settings.
+;;
+;;   Riece is a very nice IRC client for emacs.  Unlike ERC which
+;;   tries to be like "traditional" IRC clients, Riece is much more
+;;   emacs like.
+;;
+</span>
+<span class="comment">;;; Credits:
+;;
+;;   The HTML version of this file was created with Hrvoje Niksic's
+;;   htmlize.el which is part of the XEmacs "text-modes" package.
+;;
+</span>
+<span class="comment">;;; Todo:
+;;
+;;     
+</span>
+<span class="comment">;;; Code:
+</span>(<span class="keyword">require</span> '<span class="reference">riece-options</span>)
+(<span class="keyword">require</span> '<span class="reference">riece-biff</span>)
+(<span class="keyword">require</span> '<span class="reference">riece-log</span>)
+(<span class="keyword">require</span> '<span class="reference">riece</span>)
+
+<span class="comment">;; For flyspell in the command buffer.  See `</span><span class="comment"><span class="reference">sy-riece-command-mode-hooks</span></span><span class="comment">'.
+</span>(or (<span class="keyword">featurep</span> '<span class="reference">overlay</span>)
+    (ignore-errors (<span class="keyword">require</span> '<span class="reference">overlay</span>)))
+(or (<span class="keyword">featurep</span> '<span class="reference">flyspell</span>)
+    (ignore-errors (<span class="keyword">require</span> '<span class="reference">flyspell</span>)))
+
+<span class="comment">;; Misc setq's
+</span>(setq riece-alias-percent-hack-mask "<span class="doc-string">*.net</span>"
+      riece-biff-check-channels '("<span class="string">#sxemacs</span>"
+                                  "<span class="string">#emchat</span>"
+                                  "<span class="string">#xemacs</span>")
+      riece-channel-buffer-mode t
+      riece-ctlseq-colors
+            '("<span class="string">white</span>" "<span class="string">black</span>" "<span class="string">blue</span>" "<span class="string">green</span>" "<span class="string">red</span>" "<span class="string">brown</span>"
+              "<span class="string">purple</span>" "<span class="string">orange</span>" "<span class="string">yellow</span>" "<span class="string">lightgreen</span>" "<span class="string">darkcyan</span>"
+              "<span class="string">cyan</span>" "<span class="string">lightblue</span>" "<span class="string">HotPink</span>" "<span class="string">grey35</span>" "<span class="string">grey</span>")
+      riece-default-channel-binding nil
+      riece-default-coding-system 'utf-8
+      riece-desktop-notify-always t
+      riece-gather-channel-modes t
+      riece-hide-list '(joins parts quits)
+      riece-ignore-discard-message nil
+      riece-keywords
+      '("<span class="string">Bastard</span>" "<span class="string">EMchat</span>" "<span class="string">eMoney</span>" "<span class="string">Gnus</span>" "<span class="string">LFS</span>" "<span class="string">LinuxFromScratch</span>"
+        "<span class="string">LineageOS</span>" "<span class="string">Lineage</span>" "<span class="string">Linux From Scratch</span>" "<span class="string">Riece</span>" "<span class="string">SteveYoungs</span>"
+        "<span class="string">SXEmacs</span>" "<span class="string">XEmacs</span>" "<span class="string">Youngs</span>" "<span class="string">Steve Youngs</span>" "<span class="string">SYWriting</span>"
+        "<span class="string">SY Writing</span>" "<span class="string">Gaiman</span>" "<span class="string">Neil Gaiman</span>" "<span class="string">xwem</span>")
+      riece-layout '"<span class="doc-string">bottom-right</span>"
+      riece-retry-with-new-nickname t
+      riece-server-alist
+      '(("<span class="string">roddenberry.freenode.net</span>" <span class="reference">:host</span> "<span class="string">roddenberry.freenode.net</span>")
+        ("<span class="string">irc.sxemacs.org</span>" <span class="reference">:host</span> "<span class="string">irc.sxemacs.org</span>")
+        ("<span class="string">irc.freenode.net</span>" <span class="reference">:host</span> "<span class="string">irc.freenode.net</span>")
+        ("<span class="string">irc.au.freenode.net</span>" <span class="reference">:host</span> "<span class="string">irc.au.freenode.net</span>")
+        ("<span class="string">irc.nac.net</span>" <span class="reference">:host</span> "<span class="string">irc.nac.net</span>")
+        ("<span class="string">irc.efnet.org</span>" <span class="reference">:host</span> "<span class="string">irc.efnet.org</span>")
+        ("<span class="string">irc.efnet.net</span>" <span class="reference">:host</span> "<span class="string">irc.efnet.net</span>"))
+      riece-user-agent 'emacs-riece-config
+      riece-user-list-buffer-mode t)
+
+<span class="comment">;; Addons
+</span>(riece-command-insinuate-addon 'riece-yank)
+(riece-command-insinuate-addon 'riece-hangman)
+(riece-command-insinuate-addon 'riece-keepalive)
+(riece-command-insinuate-addon 'riece-shrink-buffer)
+(riece-command-insinuate-addon 'riece-xfaceb)
+(riece-command-insinuate-addon 'riece-button)
+(riece-command-insinuate-addon 'riece-epg)
+
+(riece-command-enable-addon 'riece-hangman)
+
+<span class="comment">;; Leave this OFF it is too annoying.  Fun, but annoying.
+;; (riece-command-insinuate-addon 'riece-doctor)
+;; (riece-command-enable-addon 'riece-doctor)
+</span>
+<span class="comment">;; A few handy functions that extend Riece's features a bit.
+</span>(<span class="keyword">defvar</span> <span class="variable-name">riece-unread-channels</span>)
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-clear-unread-chans</span> ()
+  "<span class="doc-string">Get rid of the unread mark on all channels.</span>"
+  (interactive)
+  (<span class="keyword">let</span> ((current riece-current-channel))
+    (setq riece-unread-channels nil)
+    (riece-switch-to-channel current)))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-relist-chans-clear-blanks</span> ()
+  "<span class="doc-string">Relist the channel buffer removing any blanks in the sequence.
+
+When you part from a channel/user you are left with a gap in the
+sequence of channel numbers in the channels buffer.  This removes
+those gaps.</span>"
+  (interactive)
+  (<span class="keyword">let</span> ((current riece-current-channel))
+    (setq riece-current-channels
+          (remove-if #'null riece-current-channels))
+    (riece-switch-to-channel current)))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-command-memoserv</span> (command)
+  "<span class="doc-string">Send COMMAND, a string, to MEMOSERV.
+
+With prefix arg, also /join.</span>"
+  (interactive "<span class="string">sMemoserv: </span>")
+  (<span class="keyword">when</span> current-prefix-arg
+    (riece-command-join (list ["<span class="string">MemoServ</span>" ""])))
+  (riece-send-string (format "<span class="string">MEMOSERV %s\r\n</span>" command)))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-command-chanserv</span> (command)
+  "<span class="doc-string">Send COMMAND, a string, to CHANSERV.
+
+With prefix arg, also /join.</span>"
+  (interactive "<span class="string">sChanserv: </span>")
+  (<span class="keyword">when</span> current-prefix-arg
+    (riece-command-join (list ["<span class="string">ChanServ</span>" ""])))
+  (riece-send-string (format "<span class="string">CHANSERV %s\r\n</span>" command)))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-command-nickserv</span> (command)
+  "<span class="doc-string">Send COMMAND, a string, to NICKSERV.
+
+With prefix arg, also /join.</span>"
+  (interactive "<span class="string">sNickserv: </span>")
+  (<span class="keyword">when</span> current-prefix-arg
+    (riece-command-join (list ["<span class="string">NickServ</span>" ""])))
+  (riece-send-string (format "<span class="string">NICKSERV %s\r\n</span>" command)))
+
+<span class="comment">;; Seems to not exist anymore. </span><span class="comment"><span class="reference">:-</span></span><span class="comment">(
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-riece-command-seenserv</span> (command)
+  "<span class="doc-string">Send COMMAND, a string, to SEENSERV.
+
+SeenServ doesn't actually exist anymore, so this sends `info nick' to
+NickServ which gives us the same info.
+
+With prefix arg, also /join.</span>"
+  (interactive "<span class="string">sLast saw who (nick): </span>")
+  (<span class="keyword">when</span> current-prefix-arg
+    (riece-command-join (list ["<span class="string">NickServ</span>" ""])))
+  (riece-send-string (format "<span class="string">NICKSERV info %s\r\n</span>" command)))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-command-quick-op</span> ()
+  "<span class="doc-string">Request Ops from ChanServ in the current channel.</span>"
+  (interactive)
+  (<span class="keyword">let</span> ((chan (riece-identity-prefix riece-current-channel)))
+    (sy-riece-command-chanserv (format "<span class="string">OP %s</span>" chan))))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-command-mute-user</span> (<span class="type">&amp;optional</span> user unmute)
+  "<span class="doc-string">Set mode +q on USER, effectively muting them.
+
+Optional prefix arg, UNMUTE to let them speak again.</span>"
+  (interactive "<span class="string">i\nP</span>")
+  (<span class="keyword">let</span> ((user (or user
+                  (completing-read
+                   "<span class="string">(Un)Mute user: </span>"
+                   (riece-with-server-buffer
+                       (riece-identity-server riece-current-channel)
+                     (riece-channel-get-users (riece-identity-prefix
+                                               riece-current-channel)))))))
+    (riece-send-string 
+     (format "<span class="string">MODE %s %sq %s\r\n</span>"
+             (riece-identity-prefix riece-current-channel)
+             (<span class="keyword">if</span> (or unmute
+                     current-prefix-arg)
+                 "<span class="string">-</span>"
+               "<span class="string">+</span>")
+             user))))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-list-banned</span> (channel)
+  "<span class="doc-string">List the banned users on CHANNEL, current if omitted.</span>"
+  (interactive "<span class="string">P</span>")
+  (<span class="keyword">let</span> ((channel (<span class="keyword">if</span> current-prefix-arg
+                     (vector (read-string "<span class="string">Channel: </span>") "")
+                   riece-current-channel)))
+    (riece-send-string
+     (format "<span class="string">MODE %s b\r\n</span>" (riece-identity-prefix channel)))))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-command-ban-user</span> (<span class="type">&amp;optional</span> user unban)
+  "<span class="doc-string">Ban USER from current channel.
+
+Optional prefix arg, UNBAN removes the ban.</span>"
+  (interactive "<span class="string">i\nP</span>")
+  (<span class="keyword">let</span> ((user (or user
+                  (completing-read
+                   "<span class="string">(Un)Ban user: </span>"
+                   (riece-with-server-buffer
+                       (riece-identity-server riece-current-channel)
+                     (riece-channel-get-users (riece-identity-prefix
+                                               riece-current-channel))))))
+        reason)
+    (<span class="keyword">if</span> (or unban
+            current-prefix-arg)
+        (riece-send-string
+         (format "<span class="string">MODE %s -b %s\r\n</span>"
+                 (riece-identity-prefix riece-current-channel)
+                 user))
+      (setq reason (read-string "<span class="string">Reason: </span>" nil nil
+                                "<span class="string">Need a reason?  Look in a mirror!</span>"))
+      (riece-send-string
+       (format "<span class="string">MODE %s +b %s\r\n</span>"
+               (riece-identity-prefix riece-current-channel)
+               user))
+      (riece-command-kick user reason))))
+
+<span class="comment">;; Share the muzak!
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-riece-say-now-playing</span> (<span class="type">&amp;optional</span> notice)
+  "<span class="doc-string">Say into the current channel what mp3 is playing.
+
+With non-nil optional prefix arg, NOTICE, send it as a notice.</span>"
+  (interactive "<span class="string">P</span>")
+  (riece-command-send-message
+   (format "<span class="string">NP: %s</span>" (mpd-now-playing)) 
+   (and current-prefix-arg
+        'notice)))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-say-all-purpose</span> (<span class="type">&amp;optional</span> notice)
+  "<span class="doc-string">Send the all-purpose answer to everything.</span>"
+  (interactive "<span class="string">P</span>")
+  (riece-command-send-message "<span class="string">Adolf Hitler in fishnets</span>"
+                              (<span class="keyword">if</span> current-prefix-arg
+                                  'notice
+                                nil)))
+  
+
+<span class="comment">;; Tell the world what we're using.
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-riece-say-version</span> (<span class="type">&amp;optional</span> notice)
+  "<span class="doc-string">Say the version of Riece we are running.
+
+With non-nil prefix arg, NOTICE, send as a notice.</span>"
+  (interactive "<span class="string">P</span>")
+  (riece-command-send-message
+   (format "<span class="string">I'm using: %s</span>" (riece-extended-version))
+   (<span class="keyword">if</span> current-prefix-arg
+       'notice
+     nil)))
+
+<span class="comment">;; say (foo) =&gt; bar
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-riece-send-form</span> ()
+  "<span class="doc-string">Sends a form and it's eval</span>"
+  (interactive)
+  (<span class="keyword">let*</span> ((form (read-string "<span class="string">sexp: </span>"))
+         (value (eval (read form))))
+    (riece-command-send-message (format "<span class="string">%s =&gt; %s</span>" form value)
+                                (<span class="keyword">if</span> current-prefix-arg
+                                    'notice
+                                  nil))))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-make-rot13-translation-table</span> ()
+  "<span class="doc-string">Create a rot13 table.</span>"
+  (<span class="keyword">let</span> ((i -1)
+        (table (make-string 256 0))
+        (a (char-to-int ?a))
+        (A (char-to-int ?A)))
+    (<span class="keyword">while</span> (&lt; (incf i) 256)
+      (aset table i i))
+    (concat
+     (substring table 0 A)
+     (substring table (+ A 13) (+ A 13 (- 26 13)))
+     (substring table A (+ A 13))
+     (substring table (+ A 26) a)
+     (substring table (+ a 13) (+ a 13 (- 26 13)))
+     (substring table a (+ a 13))
+     (substring table (+ a 26) 255))))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-rot13-string</span> (string)
+  "<span class="doc-string">Convert TEXT to rot13-ese.</span>"
+  (<span class="keyword">let</span> ((table (sy-make-rot13-translation-table)))
+    (<span class="keyword">with-temp-buffer</span>
+      (insert string)
+      (translate-region (point-min) (point-max) table)
+      (buffer-string))))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-send-rot13</span> (text)
+  "<span class="doc-string">Talk in rot13-ese.</span>"
+  (interactive "<span class="string">srot13: </span>")
+  (riece-command-send-message
+   (sy-rot13-string text)
+   (<span class="keyword">if</span> current-prefix-arg
+       'notice
+     nil)))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-morse-string</span> (string)
+  "<span class="doc-string">Return STRING in morse code.</span>"
+  (<span class="keyword">with-temp-buffer</span>
+    (insert string)
+    (morse-region (point-min) (point-max))
+    (goto-char (point-min))
+    (<span class="keyword">while</span> (re-search-forward "<span class="string">/</span>" nil t)
+      (replace-match "<span class="string"> </span>"))
+    (buffer-string)))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-send-morse</span> (text)
+  "<span class="doc-string">Talk in morse code.</span>"
+  (interactive "<span class="string">sMorse: </span>")
+  (riece-command-send-message
+   (sy-morse-string text)
+   (<span class="keyword">if</span> current-prefix-arg
+       'notice
+     nil)))
+
+<span class="comment">;; Show off!
+</span>(<span class="keyword">autoload</span> 'riece-command-ctcp-action "<span class="doc-string">riece-ctcp</span>" nil t)
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-show-off</span> ()
+  "<span class="doc-string">Brag about how many channels/people we're talking to.</span>"
+  (interactive)
+  (sy-riece-relist-chans-clear-blanks)
+  (<span class="keyword">let*</span> ((channels riece-current-channels)
+         (numchans (length channels))
+         (numppl 0)
+         currchan)
+    (<span class="keyword">while</span> channels
+      (setq currchan (car channels))
+      (setq numppl (+ numppl
+                      (length (riece-with-server-buffer
+                                  (riece-identity-server currchan)
+                                (riece-channel-get-users 
+                                 (riece-identity-prefix currchan))))))
+      (setq channels (cdr channels)))
+    (riece-command-ctcp-action
+     riece-current-channel
+     (format
+      "<span class="string">is in %d channels, talking to %d people </span><span class="string"><span class="reference">:-P</span></span>"
+      numchans numppl))))
+
+<span class="comment">;; Brag about how long SXEmacs has been up
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-riece-sxe-uptime</span> ()
+  "<span class="doc-string">Display as action SXEmacs uptime.</span>"
+  (interactive)
+  (<span class="keyword">let*</span> ((ut (uptime))
+         (days (car ut))
+         (hours (cadr ut))
+         (minutes (caddr ut))
+         (seconds (cadddr ut)))
+    (riece-command-ctcp-action
+     riece-current-channel
+     (concat "<span class="string">-=[ SXEmacs Uptime: </span>"
+             (<span class="keyword">unless</span> (zerop days)
+               (<span class="keyword">if</span> (eq days 1)
+                   "<span class="string">1 day, </span>"
+                 (concat (number-to-string days) "<span class="string"> days, </span>")))
+             (<span class="keyword">unless</span> (zerop hours)
+               (<span class="keyword">if</span> (eq hours 1)
+                   "<span class="string">1 hour, </span>"
+                 (concat (number-to-string hours) "<span class="string"> hours, </span>")))
+             (<span class="keyword">unless</span> (zerop minutes)
+               (<span class="keyword">if</span> (eq minutes 1)
+                   "<span class="string">1 minute, </span>"
+                 (concat (number-to-string minutes) "<span class="string"> minutes, </span>")))
+             (<span class="keyword">if</span> (zerop seconds)
+                 "<span class="string">and 0 seconds</span>"
+               (<span class="keyword">if</span> (eq seconds 1)
+                   "<span class="string">and 1 second.</span>"
+                 (concat "<span class="string">and </span>"
+                         (number-to-string seconds)
+                         "<span class="string"> seconds</span>")))
+             "<span class="string"> ]=-</span>"))))
+      
+
+<span class="comment">;; segassem desrever eikeeg ylbirreT
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-riece-reverse</span> ()
+  "<span class="doc-string">.sdrawkcab kaepS</span>"
+  (interactive)
+  (<span class="keyword">let</span> ((str (read-string "<span class="string">Say backwards: </span>")))
+    (riece-command-send-message
+     (concat (nreverse (string-to-list str))) nil)))
+
+<span class="comment">;; .oO0{ what's he thinking? }
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-riece-think</span> ()
+  "<span class="doc-string">Send a .oO0{ think balloon action }.</span>"
+  (interactive)
+  (<span class="keyword">let</span> ((think (read-string "<span class="string">What are you thinking? </span>")))
+    (riece-command-ctcp-action
+     riece-current-channel
+     (format "<span class="string">.oO0{ %s }</span>" think))))
+
+<span class="comment">;; When pictures speak louder than words...
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-riece-fuck-you</span> (<span class="type">&amp;optional</span> upyours)
+  "<span class="doc-string">For those occasions where... you know what I mean.</span>"
+  (interactive "<span class="string">P</span>")
+  (<span class="keyword">let</span> ((fuckyou "<span class="string">
+     _                         _
+    |_|                       |_|
+    | |         /^^^\\         | |
+   _| |_      (| \"o\" |)      _| |_
+ _| | | | _    (_---_)    _ | | | |_
+| | | | |' |    _| |_    | `| | | | |
+|          |   /     \\   |          |
+ \\        /  / /(. .)\\ \\  \\        /
+   \\    /  / /  | . |  \\ \\  \\    /
+     \\  \\/ /    ||Y||    \\ \\/  /
+      \\__/      || ||      \\__/
+                () ()
+                || ||
+               ooO Ooo</span>")
+        (upyours "<span class="string">
+    .-.    
+    |U|    
+    | |    
+    | |    
+   _| |_   
+  | | | |-.
+ /|     ` |
+| |       |
+|         |
+\\         /
+ |       | 
+ |       |</span>")
+        (riece-yank-tick 0.1))
+    (<span class="keyword">with-temp-buffer</span>
+      (<span class="keyword">if</span> current-prefix-arg 
+          (insert upyours)
+        (insert fuckyou))
+      (kill-region (point-min) (point-max)))
+    (riece-command-yank nil nil)))
+
+<span class="comment">;; Nick completion.  Lets face it, compared to other IRC clients like
+;; BitchX or even ERC, Riece's nick completion is pretty sucky. </span><span class="comment"><span class="reference">:-</span></span><span class="comment">(
+;; This is my vain attempt to improve it.
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-riece-command-complete-user</span> ()
+  "<span class="doc-string">Like `</span><span class="doc-string"><span class="reference">riece-command-complete-user</span></span><span class="doc-string">' but restrict to current chan.
+
+This version of nick completion maintains the original case of the
+nick being completed.  The version in Riece downcases the completion
+\(could be a bug\).
+
+If the completion is being inserted at column zero, `: ' is appended,
+otherwise ` ' is added.
+
+The following is not yet implemented, but I'd also like to be able to
+complete from the middle of a nick...
+
+  Nickname     User Types      Expands To
+  --------     ----------      ----------
+  MyNick        nic&lt;TAB&gt;       MyNick:&lt;SPC&gt;</span>"
+  (interactive)
+  (<span class="keyword">let*</span> ((completion-ignore-case t)
+         (table (riece-with-server-buffer
+                    (riece-identity-server riece-current-channel)
+                  (riece-channel-get-users (riece-identity-prefix
+                                            riece-current-channel))))
+         (current (or (current-word) ""))
+         (completion (try-completion current table))
+         (all (all-completions current table)))
+    (<span class="keyword">if</span> (eq completion t)
+        nil
+      (<span class="keyword">if</span> (null completion)
+          (message "<span class="string">Can't find completion for \"%s\"</span>" current)
+        (<span class="keyword">if</span> (equal current completion)
+            (with-output-to-temp-buffer "<span class="string">*Help*</span>"
+              (display-completion-list all))
+          (re-search-forward "<span class="string">\\&gt;</span>" nil t)
+          (delete-region (point) (- (point) (length current)))
+          (<span class="keyword">if</span> (eq (point) (point-at-bol))
+              (insert completion "<span class="string">: </span>")
+            (insert completion "<span class="string"> </span>")))))))
+
+<span class="comment">;(defalias 'riece-command-complete-user 'sy-riece-command-complete-user)
+</span>
+<span class="comment">;; "schme" &lt;<a href="mailto:marcus&#64;sxemacs.org">marcus&#64;sxemacs.org</a>&gt; funky cycling completion
+;; Reworked to support cycling in both directions using dllists, plus
+;; other misc improvements by me. </span><span class="comment"><span class="warning">--SY.</span></span><span class="comment">
+</span>(<span class="keyword">defvar</span> <span class="variable-name">riece-me:completion-time</span> 3
+  "<span class="doc-string">Time in seconds before completion list is reset.</span>")
+(<span class="keyword">defvar</span> <span class="variable-name">riece-me:*completion-timer*</span> (make-itimer)
+  "<span class="doc-string">Completion timer.</span>")
+(<span class="keyword">defvar</span> <span class="variable-name">riece-me:*completion-list*</span> nil
+  "<span class="doc-string">Completion list.</span>")
+
+(<span class="keyword">defvar</span> <span class="variable-name">sy-riece-nick-syntax-table</span>
+  (<span class="keyword">let</span> ((table (copy-syntax-table text-mode-syntax-table)))
+    (modify-syntax-entry ?~  "<span class="string">w </span>" table)
+    (modify-syntax-entry ?`  "<span class="string">w </span>" table)
+    (modify-syntax-entry ?-  "<span class="string">w </span>" table)
+    (modify-syntax-entry ?_  "<span class="string">w </span>" table)
+    (modify-syntax-entry ?+  "<span class="string">w </span>" table)
+    (modify-syntax-entry ?{  "<span class="string">w </span>" table)
+    (modify-syntax-entry ?[  "<span class="string">w </span>" table)
+    (modify-syntax-entry ?}  "<span class="string">w </span>" table)
+    (modify-syntax-entry ?]  "<span class="string">w </span>" table)
+    (modify-syntax-entry ?\\ "<span class="string">w </span>" table)
+    (modify-syntax-entry ?|  "<span class="string">w </span>" table)
+    (modify-syntax-entry ?:  "<span class="string">w </span>" table)
+    (modify-syntax-entry ?\; "<span class="string">w </span>" table)
+    (modify-syntax-entry ?'  "<span class="string">w </span>" table)
+    (modify-syntax-entry ?&lt;  "<span class="string">w </span>" table)
+    (modify-syntax-entry ?,  "<span class="string">w </span>" table)
+    (modify-syntax-entry ?&gt;  "<span class="string">w </span>" table)
+    table)
+  "<span class="doc-string">Syntax table used in funky nick cycling completion.</span>")
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-init-completion-timer</span> ()
+  "<span class="doc-string">Initialise the completion timer.</span>"
+  (<span class="keyword">let</span> ((timer riece-me:*completion-timer*))
+    (set-itimer-function timer #'(<span class="keyword">lambda</span> ()
+                                   (setq riece-me:*completion-list* nil)))
+    (set-itimer-value timer riece-me:completion-time)))
+(add-hook 'riece-after-login-hook #'sy-riece-init-completion-timer)
+
+(<span class="keyword">defsubst</span> <span class="function-name">sy-riece-cycle-list</span> (list <span class="type">&amp;optional</span> reverse)
+  "<span class="doc-string">Return a list of head of LIST, and LIST rotated 1 place forward.
+
+If optional argument, REVERSE is non-nil, rotate the list in the other
+direction.</span>"
+  (<span class="keyword">let</span> ((list (apply #'dllist list))
+        name)
+    (<span class="keyword">if</span> reverse
+        (dllist-rrotate list)
+      (dllist-lrotate list))
+    (setq name (dllist-car list))
+    (list name (dllist-to-list list))))
+
+(<span class="keyword">defsubst</span> <span class="function-name">sy-riece-set-completion-timer</span> ()
+  "<span class="doc-string">(Re)set completion timer's value.</span>"
+  (<span class="keyword">let</span> ((timer riece-me:*completion-timer*))
+    (and (itimerp timer)
+         (set-itimer-value timer riece-me:completion-time))))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-complete-user-backwards</span> ()
+  "<span class="doc-string">Complete nick, cycling backwards.
+See `</span><span class="doc-string"><span class="reference">riece-me:command-complete-user</span></span><span class="doc-string">'.</span>"
+  (interactive)
+  (riece-me:command-complete-user 'reverse))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-command-mode-hooks</span> ()
+  "<span class="doc-string">Add some nice stuff in Riece's command buffer.</span>"
+  (<span class="keyword">when</span> (eq major-mode 'riece-command-mode)
+    <span class="comment">;; Define a few keys here so they don't have the `</span><span class="comment"><span class="reference">C-c</span></span><span class="comment">' prefix
+</span>    (local-set-key [iso-left-tab] #'sy-riece-complete-user-backwards)
+    (local-set-key [(super next)] #'riece-command-user-list-scroll-up)
+    (local-set-key [(super prior)] #'riece-command-user-list-scroll-down)
+    (local-set-key [(hyper next)] #'riece-command-scroll-up)
+    (local-set-key [(hyper prior)] #'riece-command-scroll-down)
+    <span class="comment">;; Turn on flyspell mode if available
+</span>    (and (<span class="keyword">featurep</span> (and 'overlay 'flyspell))
+         (flyspell-mode 1))))
+
+(add-hook 'riece-command-mode-hook #'sy-riece-command-mode-hooks)
+
+
+(<span class="keyword">defun</span> <span class="function-name">riece-me:command-complete-user</span> (<span class="type">&amp;optional</span> reverse)
+  "<span class="doc-string">Like `</span><span class="doc-string"><span class="reference">riece-command-complete-user</span></span><span class="doc-string">' but restrict to current chan.
+
+This completion does not pop up any completion buffers, instead it
+cycles through the user names \"in-place\" with each successive TAB.
+
+With non-nil optional argument, REVERSE, the cycling goes in the other
+direction.
+
+If the completion is being inserted at column zero, \": \" is appended,
+otherwise \" \" is added. </span>"
+  (interactive)
+  (<span class="keyword">unless</span> riece-me:*completion-list*
+    (<span class="keyword">unless</span> (itimer-live-p riece-me:*completion-timer*)
+      (sy-riece-set-completion-timer)
+      (activate-itimer riece-me:*completion-timer*))
+    (<span class="keyword">let*</span> ((completion-ignore-case t)
+           (table (riece-with-server-buffer
+                      (riece-identity-server riece-current-channel)
+                    (riece-channel-get-users (riece-identity-prefix
+                                              riece-current-channel))))
+           (current (current-word))
+           (completion (try-completion current table))
+           (all (all-completions current table)))
+      (<span class="keyword">if</span> (null completion)
+          (message "<span class="string">Can't find completion for \"%s\"</span>" current)
+        (setq riece-me:*completion-list* all))))
+  (<span class="keyword">when</span> riece-me:*completion-list*
+    (multiple-value-bind (completion newlist)
+        (sy-riece-cycle-list riece-me:*completion-list* reverse)
+      (setq riece-me:*completion-list* newlist)
+      (with-syntax-table sy-riece-nick-syntax-table
+        (<span class="keyword">unless</span> (string= "" (current-word))
+          (backward-delete-word))
+        (insert completion)
+        (<span class="keyword">let</span> ((nicksuffix "<span class="string"> </span>"))
+          (<span class="keyword">save-excursion</span>
+            (backward-word)
+            (and (bolp)
+                 (setq nicksuffix "<span class="string">: </span>")))
+          (insert nicksuffix)))
+      (sy-riece-set-completion-timer))))
+
+(<span class="keyword">defalias</span> '<span class="function-name">riece-command-complete-user</span> 'riece-me:command-complete-user)
+<span class="comment">;;;
+</span>
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-add-rem-biff-channel</span> (<span class="type">&amp;optional</span> remove)
+  "<span class="doc-string">Add the current channel to the list of channels for riece-biff.
+
+With optional prefix arg, REMOVE, remove the current channel from the
+biff list.</span>"
+  (interactive "<span class="string">P</span>")
+  (<span class="keyword">if</span> (or current-prefix-arg
+          remove)
+      <span class="comment">;; Remove chan.
+</span>      (<span class="keyword">progn</span>
+        (setq riece-biff-check-channels
+              (remove (riece-identity-prefix riece-current-channel)
+                      riece-biff-check-channels))
+        (message "<span class="string">Channel: %s removed from riece-biff channel list.</span>"
+                 (riece-identity-prefix riece-current-channel)))
+    <span class="comment">;; Add chan.
+</span>    (add-to-list 'riece-biff-check-channels
+                 (riece-identity-prefix riece-current-channel))
+    (message "<span class="string">Channel: %s added to riece-biff channel list.</span>"
+             (riece-identity-prefix riece-current-channel))))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-get-sxemacs-topic-version</span> ()
+  "<span class="doc-string">Return the \"version\" section of #sxemacs topic.</span>"
+  (<span class="keyword">let*</span> ((topic (riece-with-server-buffer
+                    (riece-identity-server riece-current-channel)
+                  (riece-channel-get-topic "<span class="string">#sxemacs</span>")))
+         (ver (third (split-string-by-char topic ?\ ))))
+    ver))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-sxemacs-topic-version-update</span> (<span class="type">&amp;optional</span> newver)
+  "<span class="doc-string">*Updates the \"version\" section of #sxemacs topic with NEWVER.
+With a prefix arg, prompt for the new version string.</span>"
+  (interactive "<span class="string">P</span>")
+  (<span class="keyword">let*</span> ((oldver (sy-riece-get-sxemacs-topic-version))
+         (gitver (substring (shell-command-to-string
+                             "<span class="string">( cd ${SXEWD}; git describe master )</span>")
+                            0 -1))
+         (newver (or (and current-prefix-arg
+                          (read-string "<span class="string">New Version: </span>"
+                                       sxemacs-git-version nil
+                                       sxemacs-git-version))
+                     gitver))
+        (chan (riece-identity-prefix riece-current-channel)))
+    (<span class="keyword">unless</span> (string= chan "<span class="string">#sxemacs</span>")
+      (error 'invalid-argument "<span class="string">Wrong channel</span>" chan))
+    (riece-command-send-message
+     (format "<span class="string">,topic change 1 s/%s/%s/</span>" oldver newver) nil)))
+
+<span class="comment">;; Define keys for those functions.
+</span>(<span class="keyword">define-key</span> <span class="variable-name">riece-command-map</span> (kbd "<span class="string">C-c C</span>") #'sy-riece-clear-unread-chans)
+(<span class="keyword">define-key</span> <span class="variable-name">riece-command-map</span> (kbd "<span class="string">C-c r</span>")
+  #'sy-riece-relist-chans-clear-blanks)
+(<span class="keyword">define-key</span> <span class="variable-name">riece-command-map</span> (kbd "<span class="string">C-c m</span>") #'sy-riece-command-mute-user)
+(<span class="keyword">define-key</span> <span class="variable-name">riece-command-map</span> (kbd "<span class="string">C-b</span>") #'sy-riece-command-ban-user)
+(<span class="keyword">define-key</span> <span class="variable-name">riece-command-map</span> (kbd "<span class="string">C-o</span>") #'sy-riece-command-quick-op)
+(<span class="keyword">define-key</span> <span class="variable-name">riece-command-map</span> (kbd "<span class="string">C-c n</span>") #'sy-riece-say-now-playing)
+(<span class="keyword">define-key</span> <span class="variable-name">riece-command-map</span> (kbd "<span class="string">C-c V</span>") #'sy-riece-say-version)
+(<span class="keyword">define-key</span> <span class="variable-name">riece-command-map</span> (kbd "<span class="string">C-c s</span>") #'sy-riece-show-off)
+(<span class="keyword">define-key</span> <span class="variable-name">riece-command-map</span> (kbd "<span class="string">C-c f</span>") #'sy-riece-fuck-you)
+(<span class="keyword">define-key</span> <span class="variable-name">riece-command-map</span> (kbd "<span class="string">C-c b</span>") #'sy-riece-add-rem-biff-channel)
+(<span class="keyword">define-key</span> <span class="variable-name">riece-command-map</span> (kbd "<span class="string">C-c ?</span>") #'sy-riece-think)
+(<span class="keyword">define-key</span> <span class="variable-name">riece-command-map</span> (kbd "<span class="string">C-c R</span>") #'sy-riece-reverse)
+(<span class="keyword">define-key</span> <span class="variable-name">riece-command-map</span> (kbd "<span class="string">C-c T</span>") #'sy-riece-sxemacs-topic-version-update)
+(<span class="keyword">define-key</span> <span class="variable-name">riece-command-map</span> (kbd "<span class="string">C-c U</span>") #'sy-riece-sxe-uptime)
+(<span class="keyword">define-key</span> <span class="variable-name">riece-command-map</span> [a] #'sy-riece-say-all-purpose)
+
+<span class="comment">;; So I can start Riece in a new frame
+</span>(<span class="keyword">defvar</span> <span class="variable-name">riece-frame</span> nil
+  "<span class="doc-string">Frame for Riece.</span>")
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece</span> (<span class="type">&amp;optional</span> ask)
+  "<span class="doc-string">Run Riece in a new frame.
+
+With non-nil optional prefix ASK Riece will prompt for a server to
+connect to.</span>"
+  (interactive "<span class="string">P</span>")
+  (<span class="keyword">let</span> ((riece-server (<span class="keyword">if</span> current-prefix-arg
+                          nil
+                        "<span class="string">irc.sxemacs.org</span>")))
+    (setq riece-frame (new-frame '((name . "<span class="string">RieceFrame</span>")
+                                   (width . 110))))
+    (select-frame riece-frame)
+    (call-interactively 'riece)
+    (focus-frame riece-frame)))
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-exit-hook</span> ()
+  (<span class="keyword">when</span> (frame-live-p riece-frame)
+    (delete-frame riece-frame))
+  (setq riece-frame nil))
+
+(add-hook 'riece-exit-hook #'sy-riece-exit-hook)
+
+<span class="comment">;; riece-startup-channel-list doesn't fit in with the way I do things
+;; and the way freenode functions.  It gets called too damned early.
+;; What follows is my attempt to make Riece behave better with logging
+;; into freenode, registering to nickserv, joining initial channels,
+;; and getting ops with chanserv.
+</span>(<span class="keyword">defvar</span> <span class="variable-name">sy-riece-startup-channel-list</span>
+  '("<span class="string">#sxemacs</span>"
+    "<span class="string">#emchat</span>"
+    "<span class="string">#xemacs</span>"
+    "<span class="string">#emacs</span>"
+    <span class="comment">;"#kde"
+</span>    <span class="comment">;"#kde-devel"
+</span>    "<span class="string">#LineageOS</span>"
+    <span class="comment">;"#LineageOS-dev"
+</span>    "<span class="string">#lxqt</span>"
+    <span class="comment">;"#postgresql"
+</span>    <span class="comment">;"#systemd"
+</span>    "<span class="string">#zsh</span>"
+    )
+  "<span class="doc-string">List of channels to join after logging in and identifying to nickserv.</span>")
+
+<span class="comment">;; Set up channel coding systems
+;;
+;; This is a PITA... turn on utf and can't read iso-8859-1 special
+;; chars, turn it off and can't read utf.  Have I mentioned how much I
+;; hate this crap? </span><span class="comment"><span class="warning">--SY.</span></span><span class="comment">
+</span>(mapcar
+ #'(<span class="keyword">lambda</span> (chan)
+     (<span class="keyword">if</span> (string-match #r"<span class="string">#\(sxemacs\|emchat\)</span>" chan)
+         (push (cons chan 'iso-8859-1) riece-channel-coding-system-alist)
+       (push (cons chan 'utf-8) riece-channel-coding-system-alist)))
+ sy-riece-startup-channel-list)
+
+(<span class="keyword">defun</span> <span class="function-name">sy-riece-login</span> ()
+  (<span class="keyword">progn</span>
+    (riece-send-string (format "<span class="string">PRIVMSG NickServ </span><span class="string"><span class="reference">:identify</span></span><span class="string"> %s\r\n</span>"
+                               (getenv "<span class="string">IRCPASSWD</span>")))
+    (sleep-for 15))
+  (<span class="keyword">let</span> ((channel-list sy-riece-startup-channel-list)
+        entry identity)
+    (<span class="keyword">while</span> channel-list
+      (<span class="keyword">unless</span> (listp (setq entry (car channel-list)))
+        (setq entry (list (car channel-list))))
+      (<span class="keyword">if</span> (equal (riece-identity-server
+                  (setq identity (riece-parse-identity (car entry))))
+                 riece-server-name)
+          (riece-command-join-channel identity (nth 1 entry)))
+      (setq channel-list (cdr channel-list))))
+  (riece-send-string "<span class="string">PRIVMSG ChanServ </span><span class="string"><span class="reference">:op</span></span><span class="string"> #sxemacs\r\n</span>")
+  (riece-send-string "<span class="string">PRIVMSG ChanServ </span><span class="string"><span class="reference">:op</span></span><span class="string"> #emchat\r\n</span>")
+  (riece-send-string "<span class="string">PRIVMSG ChanServ </span><span class="string"><span class="reference">:op</span></span><span class="string"> #xemacs\r\n</span>")
+  (riece-send-string
+   (format "<span class="string">PRIVMSG SXEbot </span><span class="string"><span class="reference">:identify</span></span><span class="string"> SteveYoungs %s\r\n</span>"
+           (getenv "<span class="string">BOTPASSWD</span>"))))
+
+(add-hook 'riece-after-login-hook #'sy-riece-login)
+
+<span class="comment">;; Until I can find a solution to my hook problem (login hook not
+;; running to completion) I use this to finish the job
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-riece-cleanup-login</span> ()
+  (interactive)
+  (<span class="keyword">let</span> ((metachans
+         #r"<span class="string">.*\.freenode\.net\|\(Chan\|Nick\|Memo\|Seen\)Serv\|SXEbot\|freenode-connect</span>"))
+    (mapcar
+     #'(<span class="keyword">lambda</span> (chan-vect)
+         (mapcar
+          #'(<span class="keyword">lambda</span> (chan)
+              (and (string-match metachans chan)
+                   (riece-part-channel chan-vect)))
+          chan-vect))
+     riece-current-channels)
+    (sy-riece-relist-chans-clear-blanks)
+    (riece-command-switch-to-channel-by-number 1)))
+
+<span class="comment">;; CANNOT get this to work from the hook.  I suspect it is a
+;; networking/async/timing thing.  I have it bound to a key
+;; seq... `C-c C-c l', a PITA though.
+;(add-hook 'riece-after-login-hook #'sy-riece-cleanup-login 'append)
+</span>(<span class="keyword">define-key</span> <span class="variable-name">riece-command-map</span> (kbd "<span class="string">C-c l</span>") 'sy-riece-cleanup-login)
+
+<span class="comment">;; Automatically clear Riece Biff indicator by switching to the right
+;; window/frame
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-riece-check-command-buffer</span> ()
+  (and (get-buffer-window (or riece-command-buffer "<span class="string">*Command*</span>"))
+       (riece-biff-clear)))
+
+(<span class="keyword">defadvice</span> <span class="function-name">switch-to-buffer</span> (after riece-update (<span class="type">&amp;rest</span> args) activate)
+  "<span class="doc-string">After switching buffers, check to see if riece-biff should be cleared.
+The riece-biff modeline indicator will only be cleared if
+`</span><span class="doc-string"><span class="reference">riece-command-buffer</span></span><span class="doc-string">' is visible in the selected frame.</span>"
+  (sy-riece-check-command-buffer))
+
+(add-hook 'select-frame-hook #'sy-riece-check-command-buffer)
+
+<span class="comment">;; Easier switch to Riece when running on TTY.
+</span>(<span class="keyword">defun</span> <span class="function-name">sy-switch-to-riece</span> ()
+  "<span class="doc-string">I use this to switch to Riece when I'm on a tty.</span>"
+  (interactive)
+  (<span class="keyword">when</span> (buffer-live-p riece-command-buffer)
+    (pop-to-buffer riece-command-buffer)
+    (riece-command-configure-windows)))
+
+(<span class="keyword">define-key</span> <span class="variable-name">global-tty-map</span> [(control ?c) ?r] #'sy-switch-to-riece)
+
+<span class="comment">;</span><span class="comment"><span class="reference">:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::</span></span><span class="comment">
+</span>(message "<span class="doc-string">Riece settings loaded successfully</span>")
+
+</pre>
+  <!--  SXEmacs Logo -->
+    <div class="img">
+      <a href="https://www.sxemacs.org/" target="_parent">
+       <img style="padding:0px 5px 0px 0px;border:0;width:88px;height:31px"
+         src="/Images/cbsx.png"
+         title="This page was created entirely in SXEmacs"
+         alt="Created with SXEmacs" />
+      </a>
+<!--  End SXEmacs Logo -->
+<!--  Valid XHTML 1.0 -->
+      <a href="http://validator.w3.org/check?uri=https%3a%2f%2fwww.sxemacs.org%2fSYinits%2f16-riece.html" target="_blank">
+       <img style="padding:0px 5px 0px 10px;border:0;width:88px;height:31px"
+         src="/Images/valid-xhtml10.png"
+         title="Valid XHTML 1.0 Transitional!"
+         alt="Valid XHTML 1.0 Transitional!" />
+      </a>
+    </div>
+<!--  End Valid XHTML 1.0 -->
+
+    <h6>Copyright &#169; 2020 Steve Youngs<br />
+     Verbatim copying and distribution is permitted in any medium,
+    providing this notice is preserved.<br />
+<!-- hhmts start -->
+Last modified: Wed Apr 15 18:15:57 AEST 2020
+<!-- hhmts end -->
+   </h6>
+
+</body>
+</html>
diff --git a/SYinits/17-emchat.html b/SYinits/17-emchat.html
new file mode 100644 (file)
index 0000000..042fd59
--- /dev/null
@@ -0,0 +1,409 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>17-emchat.el</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Steve Youngs" />
+    <meta name="owner" content="steve@sxemacs.org" />
+    <style type="text/css">
+    <!--
+      body {
+        color: #ffffff;
+        background-color: #000000;
+      }
+      .comment {
+        /* font-lock-comment-face */
+        color: #87ceeb;
+      }
+      .reference {
+        /* font-lock-reference-face */
+        color: #40e0d0;
+      }
+      .warning {
+        /* font-lock-warning-face */
+        color: #ff0000;
+        font-weight: bold;
+      }
+
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+    -->
+    </style>
+  </head>
+  <body>
+    <pre>
+<span class="comment">;; 17-emchat.el --- EMchat Settings
+</span>
+<span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
+</span>
+<span class="comment">;;     Author: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;; Maintainer: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
+;;    Created: &lt;2007-12-02&gt;
+;; Time-stamp: &lt;Thursday Apr  9, 2020 19:14:30 steve&gt;
+;;   Download: &lt;<a href="https://downloads.sxemacs.org/SYinits">https://downloads.sxemacs.org/SYinits</a>&gt;
+;;   HTMLised: &lt;<a href="https://www.sxemacs.org/SYinits/17-emchat.html">https://www.sxemacs.org/SYinits/17-emchat.html</a>&gt;
+;;   Git Repo: git clone https://git.sxemacs.org/syinit
+;;   Keywords: init, compile
+</span>
+<span class="comment">;; This file is part of SYinit
+</span>
+<span class="comment">;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;;    notice, this list of conditions and the following disclaimer.
+;;
+;; 2. Redistributions in binary form must reproduce the above copyright
+;;    notice, this list of conditions and the following disclaimer in the
+;;    documentation and/or other materials provided with the distribution.
+;;
+;; 3. Neither the name of the author nor the names of any contributors
+;;    may be used to endorse or promote products derived from this
+;;    software without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+<span class="comment">;;; Commentary:
+;;
+;;   My EMchat settings.
+;;
+;;   [2020-02-12] Sadly, everything here is deprecated and non-working.  A
+;;   while back the ICQ people stopped using the OSCAR protocol and disallow
+;;   ALL 3rd-party clients. On top of that, ICQ is 100% owned and operated
+;;   by the Russian govt.  You probably shouldn't even use the official
+;;   client as they routinely hand over your chat logs and details to
+;;   their Russian minders.  I wish I was joking. </span><span class="comment"><span class="warning">--SY.</span></span><span class="comment">
+</span>
+<span class="comment">;;; Credits:
+;;
+;;   The HTML version of this file was created with Hrvoje Niksic's
+;;   htmlize.el which is part of the XEmacs "text-modes" package.
+;;
+</span>
+<span class="comment">;;; Todo:
+;;
+;;     
+</span>
+<span class="comment">;;; Code:  Entire file commented, see above
+;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> emchat settings
+;; (setq emchat-directory
+;;       (file-name-as-directory
+;;        (expand-file-name "emchat" user-init-directory)))
+;; (load "emchat")
+</span>
+<span class="comment">;; ;;; Experimental stuff
+;; ;; EMchat works great in a tty, but some settings I use are best
+;; ;; suited for X, so this just turns them off.
+;; (defun tty-im-setup ()
+;;   "Set some things so I can use EMchat/Riece in tty."
+;;   (interactive)
+;;   (setq emchat-status-use-gutter nil
+;;      emchat-start-in-new-frame nil
+;;      emchat-wharf-frame-use-p nil))
+;; ;;; 
+</span>
+<span class="comment">;; (when (device-on-window-system-p)
+;;   (setq emchat-status-use-gutter t
+;;      emchat-start-in-new-frame t))
+</span>
+<span class="comment">;; (setq
+;;  emchat-doctor-enabled-flag t
+;;  emchat-emphasis-enabled-flag t
+;;  emchat-history-enabled-flag t
+;;  emchat-log-fill-column 72
+;;  emchat-port 5190
+;;  emchat-server "login.icq.com"
+;;  emchat-smiley t
+;;  emchat-track-enable t
+;;  emchat-track-indicator-type 'char
+;;  emchat-user-alias "JackaLX"
+;;  emchat-user-password (getenv "ICQPASSWD")
+;;  emchat-user-meta-nickname "JackaLX"
+;;  emchat-user-meta-firstname "Steve"
+;;  emchat-user-meta-lastname "Youngs"
+;;  emchat-user-meta-primary-email "steve@sxemacs.org"
+;;  emchat-user-meta-secondary-email "steve@steveyoungs.com"
+;;  emchat-user-meta-city "Brisbane"
+;;  emchat-user-meta-state "DOA"
+;;  emchat-user-meta-hide-ip t
+;;  emchat-user-meta-authorization t
+;;  emchat-user-meta-about 
+;;  "EMchat Maintainer.\n
+;;  If you'd like to help out with the EMchat project,
+;;  please send me a message.  Or go to:
+;;     &lt;<a href="http://www.emchat.org/">http://www.emchat.org/</a>&gt;\n
+;;  SXEmacs - It's not just an editor.
+;;           It's a way of life!
+;;     &lt;<a href="http://www.sxemacs.org/">http://www.sxemacs.org/</a>&gt;"
+;;  emchat-user-meta-homepage "http://www.sxemacs.org/"
+;;  emchat-user-meta-sex 'male
+;;  emchat-user-meta-language-1 12
+;;  emchat-user-meta-language-2 12
+;;  emchat-user-meta-language-3 12
+;;  emchat-user-meta-web-aware t
+;;  emchat-user-initial-status "online"
+;;  emchat-user-meta-age 38
+;;  emchat-user-meta-birth-day 19
+;;  emchat-user-meta-birth-month 6
+;;  emchat-user-meta-birth-year 66
+;;  emchat-user-meta-cell-phone "6666 6666"
+;;  emchat-user-meta-country 61
+;;  emchat-user-meta-fax "7777 7777"
+;;  emchat-user-meta-phone "8888 8888"
+;;  emchat-user-meta-street "1 Linux Lane"
+;;  emchat-user-meta-work-homepage "http://www.sxemacs.org/"
+;;  emchat-user-meta-work-address "What me, work?"
+;;  emchat-user-meta-work-city "Penguinville"
+;;  emchat-user-meta-work-company "SlackBiz"
+;;  emchat-user-meta-work-department "Slackers"
+;;  emchat-user-meta-work-fax "9999 9999"
+;;  emchat-user-meta-work-phone "5555 5555"
+;;  emchat-user-meta-work-position "Seated"
+;;  emchat-user-meta-work-state "DOA"
+;;  emchat-user-meta-zipcode "9999"
+;;  emchat-buddy-view 'emchat-all-aliases
+;;  emchat-use-sound-flag nil
+;;  emchat-save-log-on-exit-p nil
+;;  emchat-log-debug-flag t
+;;  emchat-user-meta-invisible nil
+;;  emchat-buddy-show-avatar t
+;;  emchat-buddy-xface-foreground "black"
+;;  emchat-buddy-xface-background "red")
+</span>
+<span class="comment">;; ;; PulseAudio only seems to work if X is running
+;; (when (getenv "DISPLAY")
+;;   (setq  emchat-use-sound-flag t))
+</span>
+<span class="comment">;; ;; Lets not auto-away.
+;; (customize-set-variable 'emchat-auto-away-timeout 0)
+</span>
+<span class="comment">;; (emchat-world-update)
+</span>
+<span class="comment">;; (when emchat-use-sound-flag
+;;   (setq emchat-audio-device
+;;      ;(make-audio-device 'alsa))
+;;      (make-audio-device 'pulse
+;;                         </span><span class="comment"><span class="reference">:client</span></span><span class="comment"> "SXEmacs::EMchat"
+;;                         </span><span class="comment"><span class="reference">:stream</span></span><span class="comment"> "EMchat::Stream"
+;;                         </span><span class="comment"><span class="reference">:role</span></span><span class="comment"> "phone"))
+;;   ;; SXEmacs doesn't like current ffmpeg, and SoX is dodgy ATM too
+;;   (setq emchat-media-driver 'sndfile)
+;;   (setq default-media-stream-volume 50)
+;;   (setq emchat-sound-alist
+;;      '((auth-sound . "Auth.wav")
+;;        (buddy-sound . "Online.wav")
+;;        (chat-sound . "Chat.wav")
+;;        (emailx-sound . "System.wav")
+;;        (message-sound . "Message.wav")
+;;        (pager-sound . "System.wav")
+;;        (system-sound . "System.wav")
+;;        (url-sound . "URL.wav"))))
+</span>
+
+<span class="comment">;; ;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;; ;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Addons/extensions
+</span>
+<span class="comment">;; (defun sy-emchat-now-playing ()
+;;   "Return title/artist of current song."
+;;   (interactive)
+;;   (format "NP: %s" (mpd-now-playing)))
+</span>
+<span class="comment">;; (defun sy-emchat-send-now-playing ()
+;;   "Send title/artist of current song."
+;;   (interactive)
+;;   (let ((song (sy-emchat-now-playing))
+;;      (alias (emchat-alias-around)))
+;;     (emchat-send-message song alias)))
+</span>
+<span class="comment">;; (defun sy-emchat-yow ()
+;;   "When you can't think of what to say..."
+;;   (interactive)
+;;   (let ((message (yow))
+;;      (alias (emchat-alias-around)))
+;;     (emchat-send-message message alias)))
+</span>
+
+<span class="comment">;; (require 'emchat-menu)
+;; (define-key emchat-log-mode-map (kbd "C-c p") #'sy-emchat-send-now-playing)
+;; (define-key emchat-log-mode-map (kbd "C-c y") #'sy-emchat-yow)
+</span>
+<span class="comment">;; ;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
+;; ;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Hooks
+;; (eval-when-compile
+;;   (defvar alias)
+;;   (defvar message))
+</span>
+<span class="comment">;; ;;(defun sy-emchat-temp (&amp;optional fahrenheit)
+;; ;;  "Returns a string to send to a ICQ user saying the current temp.
+</span>
+<span class="comment">;; ;;With optional arg, FAHRENHEIT, don't send the temp in celsius."
+;; ;;  (if fahrenheit
+;; ;;      (let ((xwem-weather-temperature-format 'fahrenheit))
+;; ;;   (format "The current temperature here is: %s&#176;F"
+;; ;;           (substring (xwem-weather-get-temp) 0 -2)))
+;; ;;    (let ((xwem-weather-temperature-format 'celsius))
+;; ;;      (format "The current temperature here is: %s&#176;C"
+;; ;;         (substring (xwem-weather-get-temp) 0 -2)))))
+</span>
+<span class="comment">;; (defconst sy-beer-love
+;;   ["when you realise, 24 beers in a case, 24 hours in a day.  Coincidence?"
+;;    "when you wake up with `</span><span class="comment"><span class="reference">CRS</span></span><span class="comment">'... Can't Remember Shit."
+;;    "when, to you, it's not a six-pack, it's a support group."
+;;    "when it is the reason you get up every afternoon."
+;;    "when you favour the 2 party system... party on Friday, party on Saturday."
+;;    "when getting f#@ked up is your hobby."]
+;;   "Proof you love beer.")
+</span>
+<span class="comment">;; (defun sy-emchat-beer-love ()
+;;   (let ((prefix "You know you love beer... ")
+;;      (love (aref sy-beer-love
+;;                  (% (+ (% (random t) 1000) 1000)
+;;                     (length sy-beer-love)))))
+;;     (concat prefix love)))
+</span>
+<span class="comment">;; (defun sy-emchat-incoming-msg-hook ()
+;;   (when (or (member alias emchat-visible-contacts)
+;;          (not (member alias emchat-invisible-contacts)))
+;;     (let ((repo "The main EMchat git repo is:
+;; git clone https://git.emchat.org/emchat")
+;;        (download "EMchat source tarballs and (S)XEmacs pkg tarballs
+;; can be downloaded from:  Offline ATM, sorry")
+;;        (latest (shell-command-to-string
+;;                 "cd ~/programming/EMchat/emchat &amp;&amp; git describe"))
+;;        (lastlog (shell-command-to-string
+;;                  "cd ~/programming/EMchat/emchat &amp;&amp; git log -1"))
+;;        (time (format-time-string "The local time here is: %c"))
+;;        (beer (sy-emchat-beer-love))
+;;        (song (sy-emchat-now-playing))
+;;        (help "Cmds are prefixed with `,,' (ie, ,,cmd).  Only the first
+;; valid cmd in a msg is accepted.  The cmd can appear anywhere in
+;; the msg.
+</span>
+<span class="comment">;; Accepted cmds: version, latest, lastlog, emchat-repo, download, yow,
+;; time, beer, song, help."))
+;;       (cond ((string-match ",,version" message)
+;;           (emchat-send-message-helper
+;;            (format "I am using %s" (emchat-version)) (list alias)
+;;            'automatic "Version sent"))
+;;          ((string-match ",,latest" message)
+;;           (emchat-send-message-helper latest (list alias) 'automatic "Latest sent"))
+;;          ((string-match ",,lastlog" message)
+;;           (emchat-send-message-helper lastlog (list alias) 'automatic "Lastlog sent"))
+;;          ((string-match ",,emchat-repo" message)
+;;           (emchat-send-message-helper repo (list alias) 'automatic "Repo sent"))
+;;          ((string-match ",,download" message)
+;;           (emchat-send-message-helper download (list alias) 'automatic "Download sent"))
+;;          ((string-match ",,yow" message)
+;;           (emchat-send-message-helper (format "%s" (yow)) (list alias)
+;;                                     'automatic "Yow sent"))
+;;          ((string-match ",,time" message)
+;;           (emchat-send-message-helper time (list alias) 'automatic "Time sent"))
+;;                                      ;((string-match ",,temp-f" message)
+;;                                      ; (emchat-send-message (sy-emchat-temp 'fahrenheit) alias))
+;;                                      ;((string-match ",,temp" message)
+;;                                      ; (emchat-send-message (sy-emchat-temp) alias))
+;;          ((string-match ",,beer" message)
+;;           (emchat-send-message-helper beer (list alias) 'automatic "Beer sent"))
+;;          ((string-match ",,song" message)
+;;           (emchat-send-message-helper song (list alias) 'automatic "Song sent"))
+;;          ((string-match ",,help" message)
+;;           (emchat-send-message-helper help (list alias) 'automatic "Help sent"))))))
+</span>
+<span class="comment">;; (add-hook 'emchat-new-message-hook #'sy-emchat-incoming-msg-hook)
+</span>
+<span class="comment">;; (defun sy-emchat-zero-wharf ()
+;;   "Helper func to zero wharf counters."
+;;   (interactive)
+;;   (emchat-wharf-change-messages "New" -9999)
+;;   (emchat-wharf-change-messages "Sys" -9999))
+</span>
+<span class="comment">;; ;; Use the Wharf if not using XWEM
+;; (unless (or (string= "notyet" (getenv "XWEM_RUNNING"))
+;;          (string= "yes" (getenv "XWEM_RUNNING"))
+;;          (not (device-on-window-system-p)))
+;;   (require 'emchat-wharf)
+;;   (setq emchat-wharf-frame-use-p t)
+;;   (setq emchat-wharf-notice-riece-flag t)
+;;   (push (cons 'left 1690) emchat-wharf-frame-props)
+;;   (push (cons 'top 5) emchat-wharf-frame-props)
+;;   (push (cons 'internal-border-width 4) emchat-wharf-frame-props)
+;;   ;; `</span><span class="comment"><span class="reference">override-redirect</span></span><span class="comment">' means no WM decorations, and you also get
+;;   ;; sticky and always on top and skip pagers and task lists etc.
+;;   ;; The downside is that often new windows will appear underneath
+;;   ;; because the WM/DE has no knowledge of its existence.  I don't
+;;   ;; use this in KDE because you can easily get the same effect
+;;   ;; without the downside with KDE's "Window Rules".  I also don't
+;;   ;; use this in Sawfish for similar reasons.
+;;   (unless (or (string= (getenv "KDE_FULL_SESSION") "true")
+;;            (string= (getenv "SAWFISH_IS_RUNNING") "true"))
+;;     (push (cons 'override-redirect t) emchat-wharf-frame-props))
+;;   (push (cons 'border-width 1) emchat-wharf-frame-props)
+;;   (push (cons 'border-color "red") emchat-wharf-frame-props)
+;;   (add-hook 'emchat-new-message-hook #'emchat-wharf-inc-messages)
+;;   (add-hook 'emchat-system-message-hook #'emchat-wharf-inc-system)
+;;   (add-hook 'emchat-read-message-hook #'emchat-wharf-dec-messages)
+;;   (add-hook 'riece-biff-activity-hook #'emchat-wharf-riece-active)
+;;   (add-hook 'riece-biff-clear-hook #'emchat-wharf-riece-inactive)
+;;   (add-hook 'emchat-track-clear-hook #'sy-emchat-zero-wharf)
+;;   (define-key emchat-log-mode-map [?C] #'sy-emchat-zero-wharf))
+</span>
+<span class="comment">;; ;</span><span class="comment"><span class="reference">:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*</span></span><span class="comment">
+;; (message "EMchat settings loaded")
+</span></pre>
+  <!--  SXEmacs Logo -->
+    <div class="img">
+      <a href="https://www.sxemacs.org/" target="_parent">
+       <img style="padding:0px 5px 0px 0px;border:0;width:88px;height:31px"
+         src="/Images/cbsx.png"
+         title="This page was created entirely in SXEmacs"
+         alt="Created with SXEmacs" />
+      </a>
+<!--  End SXEmacs Logo -->
+<!--  Valid XHTML 1.0 -->
+      <a href="http://validator.w3.org/check?uri=https%3a%2f%2fwww.sxemacs.org%2fSYinits%2f17-emchat.html" target="_blank">
+       <img style="padding:0px 5px 0px 10px;border:0;width:88px;height:31px"
+         src="/Images/valid-xhtml10.png"
+         title="Valid XHTML 1.0 Transitional!"
+         alt="Valid XHTML 1.0 Transitional!" />
+      </a>
+    </div>
+<!--  End Valid XHTML 1.0 -->
+
+    <h6>Copyright &#169; 2020 Steve Youngs<br />
+     Verbatim copying and distribution is permitted in any medium,
+    providing this notice is preserved.<br />
+<!-- hhmts start -->
+Last modified: Wed Apr 15 18:16:13 AEST 2020
+<!-- hhmts end -->
+   </h6>
+
+</body>
+</html>
diff --git a/SYinits/index.html b/SYinits/index.html
new file mode 100755 (executable)
index 0000000..b29cef7
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>    <!-- -*- html -*- -->
+<!--#set var="css" value="../sxemacs.css" -->
+<!--#set var="title" value="Steve's SXEmacs Config" -->
+<!--#set var="banner" value="Never Let Them Tell You It Can't Be Done" -->
+<!--#set var="copyright" value="2006 - 2016 Steve Youngs" -->
+
+<!--#include virtual="/templates/header.template" -->
+<!--#include virtual="/templates/menu.template" -->
+<!--#include virtual="/templates/support.template" -->
+  <iframe src="/SYinits/init-el.html"
+    width="100%" height="500">
+ </iframe>
+<!--#include virtual="/templates/copyright.template" -->
+<!--#include virtual="/templates/stats.template" -->
+<!--#include virtual="/templates/footer.template" -->
diff --git a/SYinits/init-el.html b/SYinits/init-el.html
new file mode 100644 (file)
index 0000000..19b9652
--- /dev/null
@@ -0,0 +1,172 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>init-el</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Steve Youngs" />
+    <meta name="owner" content="steve@sxemacs.org" />
+    <style type="text/css">
+    <!--
+      body {
+        color: #ffffff;
+        background-color: #000000;
+      }
+      .comment {
+        /* font-lock-comment-face */
+        color: #87ceeb;
+      }
+      .keyword {
+        /* font-lock-keyword-face */
+        color: #fa8072;
+      }
+      .reference {
+        /* font-lock-reference-face */
+        color: #40e0d0;
+      }
+      .string {
+        /* font-lock-string-face */
+        color: #00cd00;
+      }
+
+      a {
+        color: #FF0000;
+        background-color: inherit;
+        font: inherit;
+        font-weight: bold;
+        text-decoration: underline;
+      }
+      a:hover {
+        color: #FFFFFF;
+        background-color: #FD00FD;
+        text-decoration: underline;
+      }
+      .img a:hover {
+        background-color: #000000;
+        text-decoration: none;
+      }
+    -->
+    </style>
+  </head>
+  <body>
+    <pre>
+<span class="comment">;; init.el --- My TopLevel SXEmacs init file.   -*- mode: emacs-lisp -*-
+;;
+;;; Personal SXEmacs configuration of