SiteMap Search ElispArea HowTo Glossary RecentChanges News Problems Suggestions

mon-default-start-loads.el

Last major edit (later minor edits)

Summary: :CHANGESET 2393

No diff available.

Download

;;; mon-default-start-loads.el --- fncns for initializing MON Emacs environment
;;; ==============================
;; -*- mode: EMACS-LISP; no-byte-compile: t; -*-

;;; ================================================================
;; Copyright © 2009, 2010 MON KEY. All rights reserved.
;;; ================================================================

;; FILENAME: mon-default-start-loads.el
;; AUTHOR: MON KEY
;; MAINTAINER: MON KEY
;; CREATED: 2009-01-15T14:01:42-04:00Z
;; VERSION: 1.0.0
;; COMPATIBILITY: Emacs23.*
;; KEYWORDS: local, environment, installation, emacs

;; ================================================================

;;; COMMENTARY: 

;; =================================================================
;; DESCRIPTION:
;; Provides functions required when initializing the Emacs startup 
;; Environment. Makes numerous condtional tests on current user 
;; `IS-BUG-P', `IS-MON-P-GNU', `IS-MON-P-W32'. Accordingly, makes the initial
;; `require' calls for (among others) the following packages: 
;; mon-utils.el, mon-w32-load.el, mon-GNU-load.el, color-theme.el, naf-mode.el,
;; dired-details.el, mon-doremi.el, google-define.el, uniq.el, regexpl.el,
;; register-list.el, color-occur.el, boxquote.el, dvc-autoloads.el,
;; traverselisp.el, show-point-mode.el, apache-mode.el, mon-keybindings.el,
;;
;; FUNCTIONS:►►►
;; `mon-build-path-for-load-path', `mon-keybind-put-hooks-init',
;; `mon-keybind-w32-init', `mon-rst-mode-facification',
;; `mon-set-C-source-directory-init', `mon-set-apache-mode-init',
;; `mon-set-auctex-init', `mon-set-bookmark-file-init', `mon-set-browser-init',
;; `mon-set-buffer-local-comment-start',
;; `mon-set-buffer-local-comment-start-init', `mon-set-color-themes-init',
;; `mon-set-common-lisp-hspec-init', `mon-set-css-path-init',
;; `mon-set-custom-file-init', `mon-set-customizations-before-custom-file-init',
;; `mon-set-doc-view-programs-init', `mon-set-dvc-init',
;; `mon-set-emacs-temp-file/dir-init', `mon-set-help-mode-init',
;; `mon-set-ibuffer-init', `mon-set-ido-init', `mon-set-infopath-init',
;; `mon-set-ispell-init', `mon-set-lisp-init', `mon-set-load-path-init',
;; `mon-set-longlines-init', `mon-set-proced-init',
;; `mon-set-rst-mode-faces-init', `mon-set-system-specific-and-load-init',
;; `mon-set-thumbs-conversion-program-init', `mon-set-traverselisp-init',
;; `mon-set-unicodedata-init', `mon-set-w3m-init', `mon-set-woman-manpath-init',
;; `mon-set-url-pkg-init', `mon-set-google-maps-init',
;; `mon-set-erc-configs-init', `mon-set-custom-file-init-w32-configs',
;; `mon-set-boxcutter-init', `mon-set-mon-feature-customs-init',
;; `mon-set-image-dired-init', `mon-set-org-init',
;; `mon-set-custom-customizations-init',
;; FUNCTIONS:◄◄◄
;; 
;; MACROS:
;; `mon-default-start-error/sane', 
;;
;; CONSTANTS:
;;
;; VARIABLES:
;; `*mon-default-start-loads-xrefs*'
;; `*mon-default-start-load-sanity*'
;; `*mon-default-start-load-sanity-WARN-ONLY*'
;;
;; GROUPS:
;; `mon-default-start-loads'
;;
;; ADVISED:
;; `find-function-search-for-symbol' , `find-variable-noselect' 
;;
;; ALIASED/ADIVISED/SUBST'D:
;;
;; <UNQUALIFIED-ALIAS>                   <CORE-SYMBOL>
;; `debug-on-error-toggle'           -> `toggle-debug-on-error'
;;
;; DEPRECATED:
;;
;; RENAMED:
;; `mon-actvt-show-point-mode'      -> `mon-toggle-show-point-mode'
;; `bld-path-for-load-path'         -> `mon-build-path-for-load-path'
;; `mon-switch-bookmark-file'       -> `mon-set-bookmark-file-init'
;; `mon-buffer-local-comment-start' -> `mon-set-buffer-local-comment-start'
;;
;; MOVED:
;; `mon-cmd'                   -> mon-utils.el
;; `mon-conkeror'              -> mon-utils.el
;; `mon-terminal'              -> mon-utils.el
;; `mon-firefox'               -> mon-utils.el
;; `*mon-tags-table-list*'     -> mon-doc-help-utils.el
;; `mon-update-tags-tables'    -> mon-doc-help-utils.el
;;
;; REQUIRES:
;; :FILE mon-color-occur.el 
;; :NOTE mon-color-occur.el is a patched version of Matsushita Akihisa color-cccur.el
;; :SEE (URL `http://www.bookshelf.jp/elc/color-occur.el')
;;
;; TODO:
;;
;; NOTES:
;; == defavice for *Help* ==
;; :SEE (URL `http://www.emacswiki.org/emacs-en/OpenQuestions#toc24')
;; From *Help* buffer how to automatically examine *.el source in view-mode?
;; C-h f view-mode
;; With point over 'view.el' of Help buffer @ line 1
;; M-x describe-text-properties
;; :RETURNS
;; "Here is a 'help-function-def' button labeled `view.el'. There are text
;; properties here: button (t) category help-function-def-button help-args
;; (view-mode "../emacs/lisp/view.el")"
;;
;; Most of the time, when I go to examine the source from Help I want to do so
;; without having to worry about mucking it up accidentally esp. when the source is
;; beneath "../emacs/lisp/*.el". In these situations I almost alwasy want to read
;; the source not edit it. View-mode is my prefered way of examining source when I
;; want only to read it as it allows me to page in a manner congruent with most
;; GNU/nix environments/vi/less/more etc. Is it possible to hook into the help button
;; actions to toggle view-mode when opening for an *.el file from Help? AFAICT Help
;; is already leveraging view-mode in a non extensible manner. How does one get
;; Emacs to jump over its own head?
;;
;; We used to add `.dbc'  extensions to `auto-mode-alist' with `longlines-mode'.
;; However, as '.dbc' extension are used for any and _all_ notes/data re: DBC
;; related material this was too broad a setting, and screwed up programmatic 
;; creation of files with '.dbc' extension. 
;;
;; SNIPPETS:
;;
;; THIRD PARTY CODE:
;;
;; URL: http://www.emacswiki.org/emacs/mon-default-start-loads.el
;; FIRST-PUBLISHED: <Timestamp: #{2009-09-23T12:18:55-04:00Z}#{09393} - by MON>
;;
;; EMACSWIKI:
;;
;; HEADER-ADDED: <Timestamp: #{2009-08-17T13:08:30-04:00Z}#{09341} - by MON>
;;
;; FILE-CREATED:
;; <Timestamp: #{2009-01-15T14:01:42-04:00Z} - by MON>
;;
;; =================================================================

;;; LICENSE:

;; =================================================================
;; This file is not part of GNU Emacs.

;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;; published by the Free Software Foundation; either version 3, or
;; (at your option) any later version.

;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
;; General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with this program; see the file COPYING.  If not, write to
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth
;; Floor, Boston, MA 02110-1301, USA.
;; =================================================================
;; Permission is granted to copy, distribute and/or modify this
;; document under the terms of the GNU Free Documentation License,
;; Version 1.3 or any later version published by the Free Software
;; Foundation; with no Invariant Sections, no Front-Cover Texts,
;; and no Back-Cover Texts. A copy of the license is included in
;; the section entitled ``GNU Free Documentation License''.
;; 
;; A copy of the license is also available from the Free Software
;; Foundation Web site at:
;; (URL `http://www.gnu.org/licenses/fdl-1.3.txt').
;;; ==============================
;; Copyright © 2009-2011 MON KEY 
;;; ==============================

;;; CODE:

 
(eval-when-compile (require 'cl))

(unless (and (intern-soft "*IS-MON-OBARRAY*")
             (bound-and-true-p *IS-MON-OBARRAY*))
  (setq *IS-MON-OBARRAY* (make-vector 17 nil)))


;;; ==============================
;;; :CHANGESET 2387
;;; :CREATED <Timestamp: #{2011-01-11T15:54:56-05:00Z}#{11022} - by MON KEY>
(defgroup mon-default-start-loads nil
  "Customization group for variables and functions of :FILE mon-default-start-loads.el\n
:SEE-ALSO .\n►►►"
  :prefix "mon-set-"
  :link '(url-link 
          :tag ":EMACSWIKI-FILE" "http://www.emacswiki.org/emacs/mon-default-start-loads.el")
  :link '(emacs-library-link "mon-default-start-loads.el")
  :group 'mon-base)

;;; ==============================
;;; :TODO Figure out why Emacs 23.2 clobbers the minibuffer when Emacs is
;;; invoked by fluxbox at startup. Has something to do with X frame params and
;;; menu-bar-mode being disabled.
;;; start looking around `resize-mini-windows' and `command-line-x-option-alist'
;;; First things first. Make sure we aren't tortured by blinking cursors etc.
(when (and (intern-soft "IS-MON-SYSTEM-P" obarray) ;; *IS-MON-OBARRAY*
           (bound-and-true-p IS-MON-SYSTEM-P))
  ;; <UNQUALIFIED-ALIAS>      <CORE-SYMBOL>
  (unless (and (intern-soft "debug-on-error-toggle" obarray)
               (fboundp (intern-soft "debug-on-error-toggle" obarray)))
(defalias 'debug-on-error-toggle 'toggle-debug-on-error))
  ;;
  (unless show-paren-mode (show-paren-mode 1))
  (unless (null scroll-bar-mode) (scroll-bar-mode -1))
  (unless (null tool-bar-mode) (tool-bar-mode -1))
  (unless (null blink-cursor-mode) (blink-cursor-mode -1))
  (setq-default cursor-type '(bar . 3))
  (when (and (intern-soft "IS-MON-P" obarray)  ;; *IS-MON-OBARRAY*
             (bound-and-true-p IS-MON-P))
    (unless (null menu-bar-mode) (menu-bar-mode -1)))
  (when (and (intern-soft "IS-W32-P" obarray) ;; *IS-MON-OBARRAY*
             (bound-and-true-p IS-W32-P))
    (setq-default x-select-enable-clipboard 1))
  (put 'narrow-to-region  'disabled nil)
  (put 'downcase-region   'disabled nil)
  (put 'upcase-region     'disabled nil)
  (put 'capitalize-region 'disabled nil)
  (put 'eval-expression   'disabled nil))

;;; ==============================
;;; Tell BC whats who for `mon-keybind-put-hooks-init' & `mon-set-system-specific-and-load-init'
(dolist (kybnd-fncn '(mon-keybind-w3m
                      mon-keybind-dired-mode
                      mon-keybind-completions
                      mon-keybind-emacs-lisp-mode
                      mon-keybind-lisp-interaction-mode
                      mon-keybind-slime))
  (declare-function kybnd-fncn "mon-keybindings" t t))

;;; ==============================
;;; :CREATED <Timestamp: #{2010-04-02T18:02:25-04:00Z}#{10135} - by MON KEY>
(defcustom *mon-default-start-loads-xrefs* nil
  "*Xrefing list `mon-set-*' functions and related mon initialization symbols.\n
The symbols contained of this list are defined in :FILE mon-default-start-loads.el\n
:SEE-ALSO `*mon-default-loads-xrefs*', `*mon-default-start-loads-xrefs*',
`*mon-dir-locals-alist-xrefs*', `*mon-testme-utils-xrefs*',
`*mon-button-utils-xrefs*', `*naf-mode-xref-of-xrefs*'.\n►►►"
  :type '(repeat symbol)
  :group 'mon-default-start-loads
  :group 'mon-xrefs)
;;
(unless (and (intern-soft "*mon-default-start-loads-xrefs*" obarray)
             (bound-and-true-p *mon-default-start-loads-xrefs*))
  (setq *mon-default-start-loads-xrefs* 
        '(mon-default-start-error/sane mon-build-path-for-load-path
          mon-keybind-put-hooks-init mon-keybind-w32-init
          mon-rst-mode-facification mon-set-C-source-directory-init
          mon-set-apache-mode-init mon-set-auctex-init
          mon-set-bookmark-file-init mon-set-browser-init
          mon-set-buffer-local-comment-start
          mon-set-buffer-local-comment-start-init mon-set-color-themes-init
          mon-set-common-lisp-hspec-init mon-set-css-path-init
          mon-set-custom-file-init
          mon-set-customizations-before-custom-file-init
          mon-set-doc-view-programs-init mon-set-dvc-init
          mon-set-emacs-temp-file/dir-init mon-set-help-mode-init
          mon-set-ibuffer-init mon-set-ido-init mon-set-infopath-init
          mon-set-ispell-init mon-set-lisp-init mon-set-load-path-init
          mon-set-longlines-init mon-set-proced-init mon-set-rst-mode-faces-init
          mon-set-system-specific-and-load-init
          mon-set-thumbs-conversion-program-init mon-set-boxcutter-init
          mon-set-traverselisp-init mon-set-unicodedata-init mon-set-w3m-init
          mon-set-woman-manpath-init mon-toggle-show-point-mode
          mon-set-url-pkg-init mon-set-google-maps-init
          mon-set-init-fncn-xrefs-init mon-set-erc-configs-init
          mon-set-custom-file-init-w32-configs mon-set-mon-feature-customs-init
          mon-set-custom-customizations-init mon-set-image-dired-init 
          ;; :VARIABLES 
          *mon-default-start-load-sanity*
          *mon-default-start-load-sanity-WARN-ONLY*
          *mon-default-start-loads-xrefs*))
  (custom-note-var-changed '*mon-default-start-loads-xrefs*))


 
;;; ==============================
;;; :CREATED <Timestamp: #{2010-04-02T18:29:52-04:00Z}#{10135} - by MON KEY>
(defvar *mon-default-start-load-sanity* nil 
  "*A list of functions evalauted when initalizing MON init.\n 
List elements are those functions which loaded without errors and therefor
should not be evaluated again in the current Emacs session.\n
:SEE-ALSO `*mon-default-start-load-sanity-WARN-ONLY*',
`mon-default-start-error/sane' `*mon-default-start-loads-xrefs*'.\n►►►")
;;
;;;(progn (makunbound '*mon-default-start-load-sanity*)
;;;       (unintern   "*mon-default-start-load-sanity*" obarray) )

;;; ==============================
;;; :CREATED <Timestamp: #{2010-04-06T14:02:50-04:00Z}#{10142} - by MON KEY>
(defvar *mon-default-start-load-sanity-WARN-ONLY* nil
  "When non-nil override all error singaling of `mon-default-start-error/sane'.\n
Setting this variable non-nil may be useful when:\n
 o Debugging inits;\n
 o Examining/valuating a function member of `*mon-default-start-load-sanity*';\n
 o When `IS-NOT-A-MON-SYSTEM' to avoid the `IS-MON-SYSTEM-P' runtime checks.\n
:NOTE Can be let bound to disable signaling errors when reloading MON system/
 \(let \(\(*mon-default-start-load-sanity-WARN-ONLY* t\)\)
  \(load \"~/.emacs\"\)\)
:SEE-ALSO `*mon-default-start-load-sanity*'.\n►►►")

;;; ==============================
;;; :RENAMED `bld-path-for-load-path' -> `mon-build-path-for-load-path'
(defun mon-build-path-for-load-path (expand-path suffix-path) 
  "Return a path for `load-path' by concat'ing EXPAND-PATH and SUFFIX-PATH.\n
:SEE-ALSO `mon-set-custom-file-init', `mon-set-buffer-local-comment-start',
`mon-set-bookmark-file-init', `mon-set-infopath-init', `mon-build-path'.\n►►►"
  (concat (file-name-as-directory expand-path) suffix-path))

;;; ==============================
;;; :CREATED <Timestamp: #{2010-04-02T18:13:07-04:00Z}#{10135} - by MON KEY>
(defmacro mon-default-start-error/sane (fncn &optional just-warn &rest do-sane)
  "Evaluate body DO-SANE when `IS-MON-SYSTEM-P' returns non-nil.\n
Signal an error if `IS-NOT-A-MON-SYSTEM' or FNCN was evaluated at init and
optional arg just-warn was ommitted or null.\n
If FNCN has not yet been evaluated and `IS-MON-SYSTEM-P' push function onto
variable `*mon-default-start-load-sanity*'.\n
The intent is to prevent those procedures evalauated at init time from: :FILE
mon-default-start-loads.el from being inadverdently re-evaluated later in the
current Emacs session.\n
When optional arg JUST-WARN or `*mon-default-start-load-sanity-WARN-ONLY*'
is non-nil signal a warning instead of signaling an error.\n
Other users of `mon-*.el' packages may choose to change or rebind the
`bound-and-true-p' check for `IS-MON-SYSTEM-P' to ensure MON packages integrate
sanely on their systems. Binding `*mon-default-start-load-sanity-WARN-ONLY*'
non-nil to will also override all error signaling.\n
:SEE-ALSO .\n►►►"
  `(progn
     (cond ((or (and (intern-soft "IS-NOT-A-MON-SYSTEM" obarray)  ;; *IS-MON-OBARRAY*
                     (bound-and-true-p IS-NOT-A-MON-SYSTEM))
                (not (intern-soft "IS-MON-SYSTEM-P" obarray))    ;; *IS-MON-OBARRAY*
                (not (bound-and-true-p IS-MON-SYSTEM-P)))
            (if (or *mon-default-start-load-sanity-WARN-ONLY* ,just-warn)
                (warn                      ;(format 
                 (concat ":FUNCTION `%s' " ;-- variable "
                         "-- variable `IS-MON-SYSTEM-P' unbound or non-existent") ,fncn) ;)
              (error                    ;(format 
               (concat ":FUNCTION `%s' "
                       "-- variable `IS-MON-SYSTEM-P' unbound or non-existent") ,fncn) ;)
              ))
           ((memq ,fncn *mon-default-start-load-sanity*)
            (if (or *mon-default-start-load-sanity-WARN-ONLY* ,just-warn)
                (warn                   ;(format 
                 (concat
                  ":FUNCTION `%s' " 
                  "-- eval'd at init is member of `*mon-default-start-load-sanity*'")
                 ,fncn)                 ;)
              (error ;(format 
               (concat ":FUNCTION `%s'"
                       "-- eval'd at init is member of `*mon-default-start-load-sanity*'")
               ,fncn) ;)
              )))
     ,@do-sane
     (unless (or *mon-default-start-load-sanity-WARN-ONLY* ,just-warn)
       (push ,fncn *mon-default-start-load-sanity*))))

;; (put 'mon-default-start-error/sane 'lisp-indent-function <INT>) 
;;
;;,---- :UNCOMMENT-TO-TEST
;;| (let ((IS-MON-SYSTEM-P nil))
;;|   (mon-default-start-error/sane 'SOME-TEST-FNCN-NAME  nil "bubba")
;;`----
;;,---- :UNCOMMENT-TO-TEST
;;| (let ((IS-MON-SYSTEM-P t))
;;|   (mon-default-start-error/sane 'SOME-TEST-FNCN-NAME "bubba")
;;|   (mon-default-start-error/sane 'SOME-TEST-FNCN-NAME "bubba"))
;;`----

;;; ==============================
;; :LOAD-PATH-SETUP

;;; ==============================
;;; :CREATED <Timestamp: #{2010-04-02T18:05:42-04:00Z}#{10135} - by MON KEY>
(defun mon-set-load-path-init (&optional warn-only)
  "Set the initial `load-path' and `user-emacs-directory' on MON systems.\n
Adds values of following variables to `load-path':\n
 `*mon-emacs-root*', `*mon-site-lisp-root*',
 `*mon-user-emacsd*', `*mon-naf-mode-root*',
 `*mon-ebay-tmplt-mode-root*'\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO .\n►►►"
  (mon-default-start-error/sane 
   'mon-set-load-path-init warn-only
   (let ((mon-silp `(,*mon-emacs-root*
		     ,*mon-site-lisp-root*
		     ,*mon-user-emacsd*
		     ,*mon-naf-mode-root*
		     ,*mon-ebay-tmplt-mode-root*)))
     (dolist (m-silp mon-silp)
       (add-to-list 'load-path m-silp))
     ;; :NOTE This may cause problems when (not IS-BUG-P-REMOTE).
     (setq user-emacs-directory (file-name-as-directory *mon-user-emacsd*)))))
;; 
;; (mon-set-load-path-init t)
(mon-set-load-path-init)

;;; ==============================
;; :FONT-LOCK/COLOR-THEME

;;; ==============================
;;; :NOTE :AFTER `mon-set-emacs-temp-file/dir-init'
;;; :CREATED <Timestamp: #{2010-04-02T19:09:16-04:00Z}#{10135} - by MON KEY>
(defun mon-set-color-themes-init (&optional warn-only)
  "Initialize font-locking and default `color-themes' on MON systems.\n
Set following variables non-nil:
 `global-font-lock-mode', `font-lock-maximum-decoration',
 `color-theme-is-global'\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO .\n►►►"
  (mon-default-start-error/sane 
   'mon-set-color-themes-init warn-only
   ;; :NOTE This should be set before any code requiring color themes. 
   ;; Loaded here instead of from custom to make sure that it happens now!
   (progn
     (custom-set-variables 
      '(global-font-lock-mode t)
      '(font-lock-maximum-decoration t))
     ;; :NOTE The color-theme library needs to be loaded early _BEFORE_ `naf-mode'!.
     ;;       Eventually we need to move away from the color-theme package it is
     ;;       rapidly becoming obsolete with newer emacs 23.* and breaking changes
     ;;       are in effect.
     (require 'color-theme)
     (color-theme-initialize)
     (custom-set-variables
      '(color-theme-is-global t)
      '(color-theme-legal-frame-parameters "\\(color\\|mode\\|font\\|height\\|width\\)$"))
     (cond  ((and (intern-soft "IS-BUG-P" obarray)  ;; *IS-MON-OBARRAY*
                  (bound-and-true-p IS-BUG-P))
             (color-theme-ld-dark)) ;; (color-theme-euphoria))       
            ((and (intern-soft "IS-MON-P" obarray) ;; *IS-MON-OBARRAY*
                  (bound-and-true-p IS-MON-P))
             (color-theme-ld-dark))))
   ))
;;
;; (mon-set-color-themes-init t)
(mon-set-color-themes-init)

;;; ==============================
;; :SHOW-POINT-MODE
;; :NOTE To ensure we've setup a show-point environment do it now.
;;; :NOTE :AFTER `mon-set-emacs-temp-file/dir-init'
(when (and (intern-soft "IS-MON-SYSTEM-P" obarray) ;; *IS-MON-OBARRAY*
           (bound-and-true-p IS-MON-SYSTEM-P))
  (require 'show-point-mode))

;;; ==============================
;;; :NOTE Keep this here b/c it is needed when debugging and we want it loaded early.
;;; (add-hook 'emacs-lisp-mode-hook (function (lambda () (mon-toggle-show-point-mode)))
;;; :RENAMED `mon-actvt-show-point-mode' -> `mon-toggle-show-point-mode' 
(defun mon-toggle-show-point-mode ()
  "Toggle `show-point-mode' for current-buffer.\n
Used for hooks othwerwise is equivalent to calling `show-point-mode'.\n
:SEE-ALSO `mon-toggle-dired-dwim-target', `mon-toggle-eval-length',
`mon-toggle-menu-bar', `mon-toggle-truncate-line',
`mon-naf-mode-toggle-restore-llm', `mon-toggle-read-only-point-motion'
`mon-inhibit-modification-hooks', `mon-inhibit-point-motion-hooks',
`mon-inhibit-read-only'.\n►►►"
  (interactive)
  (let ((is-show-point-mode 
         (buffer-local-value show-point-mode (current-buffer))))
    (cond (is-show-point-mode (show-point-mode 0))
          ((not is-show-point-mode) (show-point-mode 1)))))
;;
;;; :TEST-ME (mon-toggle-show-point-mode)

;;; ==============================
;;; :TODO `small-temporary-file-directory'
;;; :NOTE `auto-save-file-name-transforms' 
;;; (set (make-local-variable 'delete-auto-save-files) t)
;;; :CREATED <Timestamp: #{2010-04-02T22:10:18-04:00Z}#{10136} - by MON KEY>
(defun mon-set-emacs-temp-file/dir-init (&optional warn-only)
  "Initialize local Emacs temporary directories on MON systems.\n 
Set these Emacs \"temporary\" directories relative to `*mon-local-emacs-temp-dir*':\n
 `temporary-file-directory', `thumbs-thumbsdir', `thumbs-temp-dir',
 `doc-view-cache-directory', `url-temporary-directory'
 `browse-url-temp-dir', 
When these directories do not exist created them.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO `*mon-local-emacs-temp-dir*'.\n►►►"
  (mon-default-start-error/sane 
   'mon-set-emacs-temp-file/dir-init warn-only
   ;; Make sure the following directories exist first:
   (let* ((temporary-file-directory
           (concat *mon-local-emacs-temp-dir* "/misc-emacs-temp"))
          (thumbs-thumbsdir
           (expand-file-name (format "thumbs-%d" (user-uid))
                             (concat *mon-local-emacs-temp-dir* "/emacs-thumbs")))
          (thumbs-temp-dir 
           (expand-file-name (format "thumbs-%d-temp" (user-uid)) thumbs-thumbsdir))
          (doc-view-cache-directory
           (expand-file-name (format "docview%d" (user-uid)) 
                             (concat *mon-local-emacs-temp-dir* "/docview-cache")))
          (browse-url-temp-dir 
           (expand-file-name  (format "url-%d-temp" (user-uid)) 
                              *mon-local-emacs-temp-dir*))
          (mon-tramp-temp-dir (expand-file-name "tramp" *mon-local-emacs-temp-dir*)))
     (dolist (ensure-dir '(thumbs-thumbsdir thumbs-temp-dir doc-view-cache-directory
                                                 temporary-file-directory browse-url-temp-dir
                                                 mon-tramp-temp-dir))
            (when (null (car (file-attributes (symbol-value ensure-dir))))
              (mkdir (symbol-value ensure-dir) t))))
   (require 'doc-view)
   (custom-set-variables
    ;; :NOTE BZR revno: 102144 2010-10-28 removed `temporary-file-directory' from lisp/files.el
    ;; and added its customomization to lisp/cus-start.el
    ;; If something breaks around here in emacs-24 start there.
    '(temporary-file-directory 
      (concat *mon-local-emacs-temp-dir* "/misc-emacs-temp") t)
    '(thumbs-thumbsdir 
      (expand-file-name (format "thumbs-%d" (user-uid))
                        (concat *mon-local-emacs-temp-dir* "/emacs-thumbs")))
    '(thumbs-temp-dir
      (expand-file-name (format "thumbs-%d-temp" (user-uid)) thumbs-thumbsdir))
    '(doc-view-cache-directory
      (expand-file-name (format "docview%d" (user-uid)) 
                        (concat *mon-local-emacs-temp-dir* "/docview-cache")) t)
    '(browse-url-temp-dir 
      (expand-file-name  (format "url-%d-temp" (user-uid)) 
                         *mon-local-emacs-temp-dir*) t)
    '(url-temporary-directory browse-url-temp-dir))
   ;; :SEE `mon-purge-tramp-persistency-file', `tramp-compat-temporary-file-directory', 
   (when (and (intern-soft "IS-MON-P" obarray) ;;*IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-P))
     (custom-set-variables '(tramp-persistency-file-name 
                             (expand-file-name (format "tramp-persist-%d" (user-uid))
                                               (concat *mon-local-emacs-temp-dir* "/tramp")))))
   ;;'( `slime-temp-directory'  {...} ) this is hardwired to value of `temporary-file-directory'
    ))
;;
;; (mon-set-emacs-temp-file/dir-init t)
(mon-set-emacs-temp-file/dir-init)

;;; ==============================
;; :INFOPATH-SETUP

;;; ==============================
;;; :CREATED <Timestamp: #{2010-03-22T17:31:14-04:00Z}#{10121} - by MON KEY>
(defun mon-set-infopath-init (&optional warn-only)
  "Put current running Emacs' info directory on `Info-directory-list'.\n
This is mostly a W32 related fncn. Currenlty does nothing on GNU systems.\n
Evauluated by `mon-run-post-load-hooks'.\n
:NOTE to reset info :SEE info node `(emacs)General Variables'.\n
:NOTE The hook: \(add-hook 'before-init-hook 'w32-init-info\)
in :FILE lisp/w32-fns.el must be commented out for this to work properly.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO `w32-init-info', `mon-get-env-vars-emacs',
`Info-default-directory-list', `Info-directory-list',
`Info-additional-directory-list', `Info-dir-contents',
`Info-default-dirs'.\n►►►"
  (mon-default-start-error/sane 
   'mon-set-info-path-init warn-only
   (when (and (intern-soft "IS-MON-P-W32" obarray)  ;; *IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-P-W32))
     (when (and (intern-soft  "Info-dir-contents" obarray)
                (bound-and-true-p Info-dir-contents))
       (setq Info-dir-contents nil))
     (when (and (intern-soft  "Info-dir-contents-directory" obarray) ;; *IS-MON-OBARRAY*
                (bound-and-true-p Info-dir-contents-directory))
       (setq Info-dir-contents-directory nil))
     (let ((emc-pth (getenv "EMC_PTH"))
           (info-pth (file-truename  (getenv "INFOPATH")))
           gthr-info-pth)
       ;; :NOTE Assume there is only one path specified by INFOPATH env-var.
       ;; When there are more than one, this should be a `split-string' instead.
       (when info-pth 
         (push (concat (replace-regexp-in-string "[:;]$" ""  info-pth) "/") gthr-info-pth))
       (when (and emc-pth (file-directory-p emc-pth))
         (setq emc-pth (file-truename (concat (directory-file-name emc-pth) "/info/")))
         (push emc-pth gthr-info-pth))
       (dolist (gip gthr-info-pth)
         (pushnew gip Info-default-directory-list :test 'equal))
       (when (member "c:/emacs/info/" Info-default-directory-list)
         (setq Info-default-directory-list 
               (delete "c:/emacs/info/" Info-default-directory-list))))
     (setq Info-default-directory-list 
           (delete-dups Info-default-directory-list)))
   ))
;;
;;; :TEST-ME Info-directory-list
;;
;; (mon-set-infopath-init t)
(mon-set-infopath-init)

;;; ==============================
;;; :RENAMED `mon-switch-bookmark-file' -> `mon-set-bookmark-file-init'
;;; :COURTESY stefan@xsteve.at :VERSION 23.01.2001 :HIS xsteve-functions.el
;;; :MODIFICATIONS <Timestamp: 2009-08-09-W32-7T03:31:36-0400Z - by MON KEY>
;;; :MODIFICATIONS <Timestamp: #{2010-04-02T17:26:44-04:00Z}#{10135} - by MON KEY>
(defun mon-set-bookmark-file-init (&optional new-bk-mrk-file warn-only)
  "Relocate where Emacs stores the `bookmark-default-file' at init time.\n
When evaluated this procedure sets variables as `custom-set-variables'.
The following variables are affected:\n
 `bookmark-default-file' `bookmark-save-flag'\n
When optional arg NEW-BK-MRK-FILE is non-nil it is bookmark filename for the
value of `bookmark-default-file'. Default is \".emacs.bmk\" in the directory
`*mon-user-emacsd*'.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When second optional arg WARN-ONLY is non-nil message a warning instead of an
error if function is already a member of variable
`*mon-default-start-load-sanity*' as per `mon-default-start-error/sane'.\n
A bookmark file typically has a .bmk extension, for additional discussion:
:SEE info node `(emacs)Bookmarks'\n
:SEE-ALSO `bookmark-load', `bookmark-all-names', `bookmark-save-flag',
`bookmark-relocate'.\n►►►"
  (mon-default-start-error/sane 
   'mon-set-bookmark-file-init warn-only
   ;; (setq bookmark-default-file new-bm) (setq bookmark-save-flag 1)
   (let ((new-bm (or new-bk-mrk-file 
                     (concat (file-name-as-directory *mon-user-emacsd*) 
                             (if (and (intern-soft "IS-MON-P-GNU" obarray) ;; *IS-MON-OBARRAY*
                                      (bound-and-true-p IS-MON-P-GNU))
                                 (format ".emacs-%s.bmk" (cdr (mon-gnu-system-conditionals)))
                               ".emacs.bmk")))))
     ;; :NOTE Also settting vanilla variable `bookmark-file' should force
     ;; `defcustom'd `bookmark-default-file' to take its value.
     (and new-bm
          (setq bookmark-file new-bm)
          (set-variable 'bookmark-default-file bookmark-file)
          (custom-note-var-changed 'bookmark-default-file))
     ;;
     ;; (setq bookmark-default-file new-bm)
     ;; (set-variable 'bookmark-default-file 'bookmark-default-file)
     ;; (set-variable 'bookmark-default-file new-bm)
     ;; (put 'bookmark-default-file 'customized-value 
     ;;      (list (custom-quote (eval bookmark-default-file))))
     ;; (custom-note-var-changed 'bookmark-default-file)
     ;; :DEBUGGING (get 'bookmark-default-file 'customized-value)
     (custom-set-variables 
      '(bookmark-save-flag 1)
      ;; :NOTE When bookmark names are getting truncated set the variable nil.
      ;; `bookmark-bmenu-toggle-filenames' is also a <FUNCTION>.
      ;; '(bookmark-bmenu-toggle-filenames nil) 
      ))
   ))
;;
;; (mon-set-bookmark-file-init t)
(mon-set-bookmark-file-init)

;;; ==============================
;; :WOMAN-PATH

;;; ==============================
;;; :TODO Consider adding `convert-standard-filename' here for W32 path frobbing.
;;; :NOTE New cygwin/mingw/emacs installs and twiddling keep manpath wacky on w32.
;;; :MODIFICATIONS <Timestamp: #{2009-10-26T19:12:52-04:00Z}#{09441} - by MON>
;;; :MODIFICATIONS <Timestamp: #{2009-08-14T12:35:21-04:00Z}#{09335} - by MON>
;;; :MODIFICATIONS <Timestamp: #{2010-04-02T19:57:19-04:00Z}#{10135} - by MON KEY>
(defun mon-set-woman-manpath-init (&optional warn-only)
  "Set the `woman-manpath' on MON systems at init time.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:NOTE This is W32 Kludge. The integration of various Emacs/Cygwin/MinGW/MSYS
installs and twiddling keep manpath terminally wacky on w32. The intent here is
to help make it a little less so.\n
:SEE-ALSO .\n►►►"
  (mon-default-start-error/sane 
   'mon-set-woman-manpath-init warn-only
   (require 'woman)
   ;; (setq woman-use-own-frame nil)
   (custom-set-variables '(woman-use-own-frame nil))
   (when (and (intern-soft "IS-MON-P-W32" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-P-W32))
     (let ((wmn-p 
            (mapcar #'(lambda (this-csf) 
                        (let ((this-csf-file ;;(convert-standard-filename 
                               (file-truename this-csf)))
                          (unless (null this-csf-file)
                            (when (file-exists-p this-csf-file) this-csf-file))))
                    `( ;; :CROSS-SITE-MAN
                      ,(concat (nth 5 (assoc 1 *mon-emacsd*)) "/cross-site-man")
                       ;; :GNUWIN32
                      ,(when (getenv "SP_GNUW32")
                             (concat (file-name-directory (getenv "SP_GNUW32")) "man"))
                       ;; :MINGW
                      ,(when (getenv "MINGW") 
                             (concat (file-name-directory (getenv "MINGW")) "share/man"))
                       ;; :MSYS
                      ,(when (getenv "MSYS") 
                             (concat (file-name-directory (getenv "MSYS")) "share/man"))
                       ;; :CYGWIN
                       ,@(when (and (getenv "SP_CYGWN") (file-exists-p (getenv "SP_CYGWN")))
                               (let ((cygman-root (file-name-directory  (getenv"SP_CYGWN")))
                                     (cygmans
                                      '("usr/share/man" "usr/local/share/man" 
                                        "usr/X11R6/share/man"
                                       "usr/ssl/man" "usr/local/man"))
                                     cygman-csf)
                                (dolist (csf cygmans (setq cygman-csf (nreverse cygman-csf)))
                                  (push (concat cygman-root csf) cygman-csf))))))))
       (mapc #'(lambda (addp) 
                 (unless (null addp) (add-to-list 'woman-manpath addp))) wmn-p)))
   ))
;;
;; (mon-set-woman-manpath-init t)
(mon-set-woman-manpath-init)

;;; ==============================
;; :EMACS-C-SOURCE-DIRECTORY

;;; ==============================
;;; :CREATED <Timestamp: #{2010-04-03T17:03:10-04:00Z}#{10136} - by MON KEY>
(defun mon-set-C-source-directory-init (&optional warn-only)
  "Set source paths at on MON local systems at loadtime.\n
Sets the following variables:\n
 `source-directory', `find-function-C-source-directory'
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO `find-function-C-source-directory', `source-directory',
`find-function-source-path', `internal-doc-file-name', `mon-help-emacs-introspect'.\n►►►"
  (mon-default-start-error/sane 
   'mon-set-C-source-directory-init warn-only
   (cond  ((and (intern-soft "IS-MON-P-W32" obarray)  ;; *IS-MON-OBARRAY*
                (bound-and-true-p IS-MON-P-W32))
           (let ((c-srcs 
                  (file-expand-wildcards (concat (getenv "SP_BIN") "/*/emacs-cur-src/*/src") t)))
             (when (car c-srcs)
               (setq-default source-directory (car c-srcs))
               ;; (require 'find-func)
               (setq find-function-C-source-directory (car c-srcs)))))
          ;; Newly installed/built Emacs may need to have these adjusted accrodingly:
          ;; (setq-default source-directory "/usr/local/*/emacs/src")
          ;; (setq-default find-function-C-source-directory "/usr/local/*/emacs/src")
          ;; :TODO this still needs some tweaking when:
          ;;  a) locating src paths
          ;;  b) binding `find-function-C-source-directory' and `source-directory'
          ;; Right now the some of logic is ordered around the ewiki's example
          ;; shared repo bzr setup, e.g. wildcard expansion of the environment
          ;; variable "DEVHOME".
          ;; 
          ((and (intern-soft "IS-MON-P-GNU" obarray) ;; *IS-MON-OBARRAY*
                (bound-and-true-p IS-MON-P-GNU))
           (let ((c-srcs
                  (or (car (file-expand-wildcards (concat (getenv "DEVHOME") "/ema*/tr*/src") t))
                      ;;(car (file-expand-wildcards (concat *mon-HG-root-path* "/ema*/tr*/src") t))
                      (car (file-expand-wildcards 
                            (concat (file-name-directory *mon-emacs-root*) "/ema*/tr*/src") t)))))
             (when (and c-srcs (file-directory-p c-srcs) (file-readable-p c-srcs))
               (setq find-function-C-source-directory (file-name-as-directory c-srcs))
               (setq source-directory 
                     (file-name-directory (directory-file-name find-function-C-source-directory))))))
          ;; :NOTE Most likely this is already in environ as the
          ;; button-type `help-function-def' has the plist prop
          ;; `help-function` with a lambda form requiring it.  
          ;; (require 'find-func)
          ;;
          ;; (custom-set-variables '(find-function-source-path
          )
   ))
;;
;; (mon-set-C-source-directory-init t)
(mon-set-C-source-directory-init)

;;; ==============================
;;; :CREATED <Timestamp: #{2010-04-03T17:28:12-04:00Z}#{10136} - by MON KEY>
(defun mon-set-unicodedata-init (&optional warn-only)
  "Set unicode related variables at loadtime.\n
Sets the following variables:
 `describe-char-unicodedata-file'
 `describe-char-unidata-list'\n
:SEE (URL `http://www.unicode.org/Public/UNIDATA/UnicodeData.txt').
:SEE (URL `ftp://www.unicode.org/Public/zipped/5.2.0/UCD.zip').
:SEE-ALSO `*mon-unidata-file-list*', `mon-wget-unicodedata-files',
`mon-help-diacritics', `mon-help-char-representation'.\n►►►"
  (mon-default-start-error/sane 
   'mon-set-unicodedata-init warn-only ;; nil
   (when (and (intern-soft "IS-MON-P" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-P))
     (require 'descr-text)
     (let ((chk-UCF (expand-file-name "UNICODE-DATA/UnicodeData.txt" *mon-site-lisp-root*)))
       (when (file-exists-p chk-UCF)
         ;; :WAS (setq describe-char-unicodedata-file chk-UCF))
         ;;
         ;; (custom-set-variables '(describe-char-unicodedata-file chk-UCF))
         ;;
         ;; (put 'describe-char-unicodedata-file 'customized-value 
         ;;     (list (custom-quote (eval describe-char-unicodedata-file))))
         (set-variable 'describe-char-unicodedata-file chk-UCF)
         (custom-note-var-changed 'describe-char-unicodedata-file))
       ;; (custom-set-variables '(describe-char-unidata-list chk-UCF))
       ;; describe-char-unidata-list 
       (custom-set-variables 
        '(describe-char-unidata-list '(name general-category decomposition 
                                       digit-value numeric-value old-name 
                                       iso-10646-comment)))))
   ))
;;
;; (mon-set-unicodedata-init)
;; (mon-set-unicodedata-init)

;;; ==============================
;; :EXECUTABLES
;;; :NOTE Following are inits that rely on external executables in path.

;;; ==============================
;;; :CREATED <Timestamp: #{2010-04-02T23:08:06-04:00Z}#{10136} - by MON KEY>
(defun mon-set-doc-view-programs-init (&optional warn-only)
  "Initialize doc-view related programs on MON systems when `IS-MON-P-W32'.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
Set the following variables:\n
 `doc-view-dvipdf-program', `doc-view-dvipdfm-program',
 `doc-view-pdftotext-program', `doc-view-ghostscript-program',
 `doc-view-ps2pdf-program'\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO `mon-get-pdfinfo', `mon-get-pdftotext', `mon-get-ps2ascii',
`*mon-pdftotext-exec-path*', `*mon-pdfinfo-exec-path*'.\n►►►"
  (mon-default-start-error/sane 
   'mon-set-doc-view-programs-init warn-only ;; nil
   (when (and (intern-soft "IS-MON-P-W32" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-P-W32))
     (custom-set-variables
      '(doc-view-dvipdf-program nil)
      '(doc-view-dvipdfm-program 
        (or 
         (and 
          (file-exists-p (file-truename (concat (getenv "SP_TEXLIV") "\\dvipdfm.exe")))
          (file-truename (concat (getenv "SP_TEXLIV") "\\dvipdfm.exe")))
         (executable-find "dvipdfm")))
      '(doc-view-ghostscript-program 
        (or 
         (and 
          (file-exists-p (file-truename (concat (getenv "SP_GS") "\\gs8.64\\bin\\gswin32c.exe")))
          (file-truename (concat (getenv "SP_GS") "\\gs8.64\\bin\\gswin32c.exe")))
         (executable-find "gswin32c")))
      '(doc-view-pdftotext-program
        (or 
         (and 
          (file-exists-p (file-truename (concat (getenv "SP_TEXLIV")"\\pdftotext.exe")))
          (file-truename (concat (getenv "SP_TEXLIV")"\\pdftotext.exe")))
         (and 
          (file-exists-p (file-truename (concat (getenv "SP_XPDF") "\\pdftotext.exe")))
          (file-truename (concat (getenv "SP_XPDF") "\\pdftotext.exe")))
         (executable-find "pdftotext")))
      '(doc-view-ps2pdf-program
        (or 
         (and 
          (file-exists-p (file-truename (concat (getenv "SP_TEXLIV") "\\ps2pdf.exe")))
          (file-truename (concat (getenv "SP_TEXLIV") "\\ps2pdf.exe")))
         (executable-find "ps2pdf")))
      ))
   ))
;;
;; (mon-set-doc-view-programs-init t)
(mon-set-doc-view-programs-init)


;;; ==============================
;;; :MODIFICATIONS <Timestamp: #{2010-04-02T20:00:29-04:00Z}#{10136} - by MON KEY>
;;; :CREATED <Timestamp: #{2009-10-21T20:01:43-04:00Z}#{09434} - by MON>
(defun mon-set-thumbs-conversion-program-init (&optional warn-only)
  "Set the `thumbs-conversion-program' on MON systems at init time.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:NOTE When `IS-W32-P' is non-nil may employ w32 related kludges around binding
of the ImageMagick executables convert.exe and imconvert.exe\n
:SEE :FILE mon-rename-image-utils.el for additional discussion.\n
:SEE :FILE lisp/image-file.el lisp/thumbs.el mon-boxcutter.el\n
:SEE \(woman \"xwud\"\) \(woman \"xwd\"\)\n
:SEE-ALSO `thumbs-conversion-program', `*boxcutter-path*', `*boxcutter-captures*'
`boxcutter-capture', `mon-set-boxcutter-init', `mon-set-image-dired-init'.\n►►►"
  (mon-default-start-error/sane 
   'mon-set-thumbs-conversion-program-init warn-only ;; nil ;; just-warn
   ;; :IMAGE-FILE lisp/image-file.el
   (when (and (intern-soft "IS-MON-SYSTEM-P" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-SYSTEM-P))
     (or (and (intern-soft "IS-W32-P" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p IS-W32-P)
         ;; :NOTE Imagemagick is supplied with Emacs Emacs 24. at which point we
         ;; can prob. re-enable svg for w32 (assuming libsvg or equiv) is no
         ;; longer a required dependency.
              (custom-set-variables       
               '(image-file-name-extensions 
                 '("jpeg" "jpg" "gif" "tiff" "tif" 
                   "xbm" "xpm" "pbm" "pgm" "ppm" "pnm"
                   "nef" "bmp" "png")))
               ;; :THUMBS lisp/thumbs.el
               ;; :TODO If env "SP_IMGCK" isn't set but we _did_ find imconvert 
               ;; (setenv "SP_IMGCK") -> `thumbs-conversion-program'       
              (let ((tcp (if (getenv "SP_IMGCK")    
                              (let ((xp-convert (car (directory-files (getenv "SP_IMGCK") t "imconvert"))))
                                (if xp-convert xp-convert (executable-find "imconvert")))
                            (executable-find "imconvert"))))
                 (or ;; don't leave the parent or branch
                  (when tcp 
                    (set-variable 'thumbs-conversion-program tcp)
                    (custom-note-var-changed 'thumbs-conversion-program))
                  t)))
         (and (intern-soft "IS-MON-P-GNU")
              (bound-and-true-p IS-MON-P-GNU)
              ;; progn is to prevent exiting the and too early
              (progn (set-variable 'thumbs-conversion-program (executable-find "convert"))
                     (custom-note-var-changed 'thumbs-conversion-program)
                     t)
              (custom-set-variables
               '(image-file-name-extensions
                 '("png" "jpeg" "jpg" "gif" "tiff" "tif" 
                   "xbm" "xpm" "pbm" "pgm" "ppm"
                   "pnm" "nef" "bmp" "png" "svg"))))))
   ))
;;
;; (mon-set-thumbs-conversion-program-init t)
(mon-set-thumbs-conversion-program-init)

;;; ==============================
;;; :CHANGESET 2292
;;; :CREATED <Timestamp: #{2010-11-09T20:36:53-05:00Z}#{10452} - by MON KEY>
(defun mon-set-boxcutter-init (&optional warn-only)
  "Set the `*boxcutter-captures*' paths on MON systems at init time.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE :FILE mon-boxcutter.el
:SEE-ALSO `boxcutter-mkdir-loadtime', `mon-set-image-dired-init',
`mon-set-thumbs-conversion-program-init'.\n►►►"
  (mon-default-start-error/sane 
   'mon-set-boxcutter-init warn-only
   (custom-set-variables
    '(*boxcutter-path*
      (or (getenv "SP_BXC")
          (when (or (executable-find "boxcutter.exe") 
                    (executable-find "boxcutter-fs.exe"))
            (directory-file-name
             (file-name-directory ;; (file-name-sans-extension  
              (or (executable-find "boxcutter.exe") 
                  (executable-find "boxcutter-fs.exe")))))
          ;; :NOTE In case we want to create the API for imagemagick's import.
          ;; 9/10 times on a GNU this will return /usr/bin but we do it here
          ;; for the sake of consistency...
          (when (and (intern-soft "IS-MON-P-GNU" obarray) ;; *IS-MON-OBARRAY*
                     (bound-and-true-p IS-MON-P-GNU))
            (when (executable-find "import")
              (directory-file-name 
               (file-name-directory (executable-find "import")))))))
    '(*boxcutter-captures*
      (or 
       (let ((is-func (cadr (assoc 'the-boxcutter-pth *mon-misc-path-alist*))))
         (when (functionp is-func)
           (funcall is-func)))
       (expand-file-name  "Screenshots" user-emacs-directory))))))


;;; ==============================
;;; :TODO Finish! Adjust imconvert/convert conditionals appropriately and build
;;; command according to system-type
;;; :CHANGESET 2331
;;; :CREATED <Timestamp: #{2010-11-29T16:22:54-05:00Z}#{10481} - by MON KEY>
(defun mon-set-image-dired-init (&optional warn-only)
  "Set the image-dired related customizations on MON systems at init time.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE :FILE lisp/image-dired.el\n
:SEE-ALSO `mon-set-boxcutter-init', `mon-set-thumbs-conversion-program-init'.\n►►►"  
  (mon-default-start-error/sane 
   'mon-set-image-dired-init warn-only
   (require 'image-dired)
   ;; (convert-standard-filename (concat (getenv "SP_GNUW32") "/pngcrush.exe"))
   (getenv "SP_EXIF")
   ;; (progn 
   ;;   (set-variable 'image-dired-cmd-create-standard-thumbnail-command  {....} )
   ;;   (custom-note-var-changed 'image-dired-cmd-create-standard-thumbnail-command))
   (setq image-dired-cmd-create-standard-thumbnail-command 
         (concat "imconvert -size %wx%h \"%f\" -thumbnail \"%wx%h>\" png:\"%t\" ;"
                 (convert-standard-filename (concat (getenv "SP_GNUW32") "/pngcrush.exe"))
                 " -q -text b "
                 "\"Description\" \"Thumbnail of file://%f\" -text b "
                 "\"Software\" \"GNU Emacs\" -text b \"Thumb::MTime\" \"%m\" -text b "
                 "\"Thumb::URI\" \"file://%f\" %q %t ; rm %q"))
   (custom-set-variables 
    ;; :IMAGE-DIRED-LOCAL-PATHS
    ;; :DEFAULT (locate-user-emacs-file "image-dired/")    
    ;; '(image-dired-dir "") 
    ;;
    ;; :DEFAULT (locate-user-emacs-file "image-dired/.image-dired_db")
    ;; '(image-dired-db-file "") 
    ;;
    ;; :DEFAULT (locate-user-emacs-file "image-dired/.image-dired_temp")
    ;; '(image-dired-temp-image-file "")
    ;;
    ;; :DEFAULT (locate-user-emacs-file "image-dired/.image-dired_rotate_temp")
    ;; '(image-dired-temp-rotate-image-file  )       
    ;;
    ;; :DEFAULT (locate-user-emacs-file "image-dired/.image-dired_gallery")
    ;; '(image-dired-gallery-dir ) 
    ;;
    ;; :IMAGE-DIRED-URL-PATHS
    ;;
    ;; :DEFAULT "http://your.own.server/image-diredpics"
    ;; '(image-dired-gallery-image-root-url )
    ;;
    ;; :DEFAULT "http://your.own.server/image-diredthumbs"
    ;; '(image-dired-gallery-thumb-image-root-url )
    ;;
    ;; :DEFAULT "~/pics/"
    ;; (image-dired-main-image-directory )
    ;;    
    ;; :IMAGE-DIRED-OPTIONS
    ;;
    ;; :DEFAULT 'use-image-dired-dir ;; standard | use-image-dired-dir | per-directory   
    '(image-dired-thumbnail-storage 'per-directory) 
    ;;
    ;; :DEFAULT (list "private" "hidden" "pending")
    ;; (image-dired-gallery-hidden-tags )
    ;;
    ;; :DEFAULT (if (eq 'standard image-dired-thumbnail-storage) 128 100)
    ;; '(image-dired-thumb-size )
    ;;
    ;; :DEFAULT image-dired-thumb-size
    ;; '(image-dired-thumb-width )
    ;;
    ;; :DEFAULT  image-dired-thumb-size
    ;; '(image-dired-thumb-height
    ;;
    ;; :DEFAULT 2
    ;; (image-dired-thumb-relief )
    ;;
    ;; :DEFAULT 2
    ;; (image-dired-thumb-margin )
    ;;
    ;; :DEFAULT 'dynamic {dynamic|fixed|interacitve|none)
    ;; (image-dired-line-up-method )
    ;;
    ;; :DEFAULT  3
    ;; '(image-dired-thumbs-per-row )
    ;;
    ;; :DEFAULT 1
    ;; (image-dired-display-window-width-correction )
    ;;
    ;; :DEFAULT 0
    ;; (image-dired-display-window-height-correction )
    ;;
    ;; :DEFAULT t
    ;; image-dired-track-movement )
    ;;
    ;; :DEFAULT nil
    ;; (image-dired-append-when-browsing )
    ;;
    ;; :DEFAULT t
    ;; (image-dired-dired-disp-props )
    ;;
    ;; :DEFAULT  50
    ;; (image-dired-show-all-from-dir-max-files )
    ;;
    ;;
    ;; :IMAGE-DIRED-COMMAND-STRINGS
    ;;
    ;; :DEFAULT "%p -size %wx%h \"%f\" -resize \"%wx%h>\" -strip jpeg:\"%t\""
    ;; '(image-dired-cmd-create-thumbnail-options )
    ;;
    ;; :DEFAULT "%p -rotate %d \"%t\""
    ;; '(image-dired-cmd-rotate-thumbnail-options )  
    ;;
    ;; :DEFAULT "%p -rotate %d -copy all -outfile %t \"%o\""
    ;; '(image-dired-cmd-rotate-original-options )   
    ;;
    ;; :DEFAULT  "%p -size %wx%h \"%f\" -resize \"%wx%h>\" -strip jpeg:\"%t\""
    ;; '(image-dired-cmd-create-temp-image-options )
    ;;
    ;; :DEFAULT   "%p -%t=\"%v\" \"%f\""
    ;; '(image-dired-cmd-write-exif-data-options )
    ;;
    ;; :DEFAULT   "%p -s -s -s -%t \"%f\""
    ;; '(image-dired-cmd-read-exif-data-options )
    ;;
    ;; :DEFAULT  "%b: %f (%t): %c"
    ;; (image-dired-display-properties-format )
    ;;
    ;; :IMAGE-DIRED-PROGRAMS
    ;;
    ;; :DEFAULT "display"  {"display "xli" "qiv -t"}
    ;; (image-dired-external-viewer )
    ;;
    ;; :DEFAULT (executable-find "pngcrush")
    ;; :SEE (URL `http://gnuwin32.sourceforge.net/packages/pngutils.htm')
    ;; '(image-dired-cmd-pngcrush-program "")
    ;;
    ;; :DEFAULT "jpegtran" (executable-find "jpegtran")
    ;; '(image-dired-cmd-rotate-original-program  )  
    ;;
    ;; :DEFAULT (executable-find "pngnq")
    ;; '(image-dired-cmd-pngnq-program "")
    ;;
    ;; :DEFAULT "exiftool" (executable-find "exiftool")
    ;; '(image-dired-cmd-write-exif-data-program )
    ;;
    ;; :DEFAULT "mogrify"
    ;; '(image-dired-cmd-rotate-thumbnail-program )
    ;;
    ;;  :DEFAULT "convert"
    ;; '(image-dired-cmd-create-thumbnail-program )
    '(image-dired-cmd-create-thumbnail-program "imconvert")
    ;;
    ;; :DEFAULT "convert"
    '(image-dired-cmd-create-temp-image-program "imconvert")
    ;;
    
    )))

 
;;; ==============================
;;; :ISPELL

;;; ==============================
;;; :CREATED <Timestamp: #{2010-04-03T17:10:18-04:00Z}#{10136} - by MON KEY>
(defun mon-set-ispell-init (&optional warn-only)
  "Set the ispell related prefs on MON local systems.\n
Set the following variables:
 `ispell-program-name'\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO .\n►►►"
  (mon-default-start-error/sane 
   'mon-set-ispell-init warn-only
   (custom-set-variables
    '(ispell-program-name 
      (cond ((and (intern-soft "IS-MON-P-GNU" obarray) ;; *IS-MON-OBARRAY*
                  (bound-and-true-p IS-MON-P-GNU))
             (executable-find "aspell"))
            ((and (intern-soft "IS-W32-P" obarray) ;; *IS-MON-OBARRAY*
                  (bound-and-true-p IS-W32-P))
             (or (convert-standard-filename (executable-find "aspell"))
                 (convert-standard-filename (concat (getenv "SP_ASPLL") "\\aspell.exe")))))))
   ))
;;
;; (mon-set-ispell-init t)
(mon-set-ispell-init)

;;; ==============================
;; :PRE-CUSTOM-CUSTOMIZATIONS
;;; :NOTE Start setting customizations that we want before loading custom file.

;;; ==============================
;; :HELP-MODE-MODS

;;; ==============================
;;; :NOTE defadvice `find-function-search-for-symbol', `find-variable-noselect'
;;; :COURTESY Tom Rauchenwald 
;;; :CREATED <Timestamp: Thursday July 30, 2009 @ 06:17.42 PM - by MON>
;;; :SEE `NOTES:' section of this file's header for discussion.
;;; ==============================
;;; :CREATED <Timestamp: #{2010-04-02T20:19:37-04:00Z}#{10136} - by MON KEY>
(defun mon-set-help-mode-init (&optional warn-only)
  "Initialize `help-mode' related preferences on MON systems at init time.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
Ads advice for `find-variable-noselect' and `find-function-search-for-symbol'.\n
Set `help-downcase-arguments' non-nil.\n
Set `print-length' null on the `help-mode-hook'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO .\n►►►"
  (mon-default-start-error/sane
   'mon-set-help-mode-init warn-only 
   ;; :NOTE I don't like the new 23.0 style UPCASE args in help.  Where clarity
   ;;        is the concern would be nicer to map them to a face.
   ;; (setq help-downcase-arguments t)
   (custom-set-variables 
    '(help-downcase-arguments t t)
    ;; :NOTE May slow apropos down by ~10-20%
    '(apropos-do-all t))
   ;;
   ;; :NOTE Ensure evaluating examples in help mode returns a nice long list.
   (add-hook 'help-mode-hook 
             (function (lambda () 
                         (set (make-local-variable 'print-length) nil))))
   ;;
   (defadvice find-function-search-for-symbol 
       ;; CLASS NAME   [POSITION] [ARGLIST]             FLAG
       (after mon-adv1 last     (symbol type library) activate)
     "When in a `help-mode' buffer, regions with the property category and prop-val
`help-function-def-button' are advised such that selecting it visits the file
returned from `find-function-search-for-symbol' is in `view-mode'.\n 
:SEE-ALSO `describe-function', `find-lisp-object-file-name', `help-C-file-name',
`find-variable-noselect'.\n►►►"
     (with-current-buffer (car ad-return-value)
       (unless view-mode (view-mode 1))))
   ;;
   (defadvice find-variable-noselect 
       ;; CLASS NAME   [POSITION] [ARGLIST]             FLAG
       (after mon-adv2 last (variable &optional file) activate)
     "When in a `help-mode' buffer, regions with the property category and prop-val
`help-variable-def-button' are advised such that selecting it visits the file
returned from `find-variable-noselect' is in `view-mode'.\n
:SEE-ALSO `variable-at-point', `find-function-search-for-symbol'.\n►►►"
     (with-current-buffer (car ad-return-value)
       (unless view-mode (view-mode 1))))
   ))
;;
;; (mon-set-help-mode-init t)
(mon-set-help-mode-init)

;;; ==============================
;;; :NOTE (global-set-key [(f12)] 'ibuffer)
;;; :CREATED <Timestamp: #{2010-04-02T19:12:47-04:00Z}#{10135} - by MON KEY>
(defun mon-set-ibuffer-init (&optional warn-only)
    "Set ibuffer preferences on MON systems at init time.\n
Sets or changes the following ibuffer variables:
 `ibuffer-shrink-to-minimum-size', `ibuffer-shrink-to-minimum-size',
 `ibuffer-always-show-last-buffer', `ibuffer-sorting-mode',
 `ibuffer-use-header-line'\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO .\n►►►"
  (mon-default-start-error/sane 
   'mon-set-ibuffer-init warn-only
   (custom-set-variables
    '(ibuffer-default-shrink-to-minimum-size t)
    '(ibuffer-always-show-last-buffer nil)
    '(ibuffer-use-header-line t))))
;;
;; (mon-set-ibuffer-init t)
(mon-set-ibuffer-init)

;;; ==============================
;;; :CHANGESET 1747 <Timestamp: #{2010-05-19T17:55:18-04:00Z}#{10203} - by MON KEY>
;;; :CREATED <Timestamp: #{2010-04-03T17:33:11-04:00Z}#{10136} - by MON KEY>
(defun mon-set-ido-init (&optional warn-only)
  "Set `ido-mode' preferences on MON systems at init time.\n
Set the following variables:\n
Set variable `ido-enable-prefix' non-nil\n 
Set variable `ido-enable-flex-matching' non-nil\n
Set `ido-everywhere' non-nil\n
Set variable `ido-mode' to 'both\n
Set variable `ido-save-directory-list-file' back to its default path:\n
  \"~/.emacs.d/ido/.ido.last\"\n
:NOTE This is required on MON systems because we normally load user settings
from a non-default location, however since this is a \"caching\" related
variable it needs to be fast and shouldn't do any blocking or network seeks.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO `'.\n►►►"
  (mon-default-start-error/sane
   'mon-set-ido-init warn-only
   ;; :NOTE .ido.last used to be "ido_last"
   (when (and (intern-soft "IS-MON-SYSTEM-P" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-SYSTEM-P))
     (add-to-list 'completion-ignored-extensions "lost+found/" t)
     (require 'ido)
     (let ((mk-ido-d (concat (file-truename (getenv "HOME")) "/.emacs.d/ido")))
       (unless (file-directory-p mk-ido-d) (mkdir mk-ido-d))
       (unless (file-exists-p (concat mk-ido-d "/.ido.last"))
         (with-temp-file (concat mk-ido-d "/.ido.last") (newline)))
       (setq mk-ido-d (concat mk-ido-d "/.ido.last"))
       (set-variable 'ido-save-directory-list-file mk-ido-d)
        ;; (put 'ido-save-directory-list-file 'customized-value 
        ;;     (list (custom-quote (eval ido-save-directory-list-file))))
       (custom-note-var-changed 'ido-save-directory-list-file)
       ;; :DEBUGGING (get 'ido-save-directory-list-file 'customized-value)
       (custom-set-variables 
        ;; `(ido-save-directory-list-file ,mk-ido-d t)
         '(ido-everywhere nil t)
         '(ido-enable-prefix 1 t)
         '(ido-enable-flex-matching 1 t)
         '(ido-mode 'both t)
         ;; :NOTE Sometimes ido should ignore the *Completions* buffer.
         ;; (add-to-list 'ido-ignore-buffers "\\*Completions\\*")
         ;;
         ;; ido-ignore-buffers          ;; :DEFAULT ("\\` ") <REGEXP>|<FUNCTION> 

         ;; (defun mon-ido-ignore-*Completions* ()
         ;; (minibufferp (current-buffer))
         ;;
         ;; :NOTE Following are options for `ido-default-file-method' and `ido-default-buffer-method'
         ;; selected-window other-window display other-frame maybe-frame raise-frame
         ;; :SEE  `ido-default-file-method', `ido-find-file' `ido-switch-buffer'         
         ;; ido-default-file-method     ;; :DEFAULT 'raise-frame 
         ;; ido-default-buffer-method   ;; :DEFAULT 'raise-frame 
         ;;
         ;; ido-max-window-height       ;; :DEFAULT nil 
         ;; ido-max-prospects           ;; :DEFAULT 12
         ;; ido-max-work-file-list      ;; :DEFAULT 10
         ;; ido-max-dir-file-cache      ;; :DEFAULT 100     
         ;; ido-max-work-directory-list ;; :DEFAULT 50
         ;; ido-auto-merge-work-directories-length ;; :DEFAULT 0 -- merge when 0 chars don't match 
         ))
     (cond ((and (intern-soft "IS-MON-P-W32" obarray) ;; *IS-MON-OBARRAY*
                 (bound-and-true-p IS-MON-P-W32))
            (custom-set-variables 
             '(ido-work-directory-list-ignore-regexps 
               '("c:/WINDOWS/.NtUninstall.*") t)))
           ((and (intern-soft "IS-MON-P-GNU" obarray) ;; *IS-MON-OBARRAY*
                 (bound-and-true-p IS-MON-P-GNU))
            (custom-set-variables 
             '(ido-work-directory-list-ignore-regexps  
               (list ".*lost+found.*" 
                     (concat ".*" (regexp-opt '(".git" ".bzr" ".hg" ".svn" "_darcs" "RCS" "CVS" "rcs" "cvs"))))
               t)))))
   ))
;;
;; (mon-set-ido-init t)
(mon-set-ido-init)


;;; ==============================
;;; :CHANGESET 2363
;;; :CREATED <Timestamp: #{2010-12-20T21:28:31-05:00Z}#{10511} - by MON KEY>
(defun mon-set-org-init (&optional warn-only)
  (mon-default-start-error/sane
   'mon-set-org-init warn-only
   ;; org-cycle-emulate-tab
   ;; show-subtree
   ;; show-all
   ;; org-cycle-include-plain-lists
   (custom-set-variables '(org-startup-folded 'showall)
                         ;; 'showeverything
                         ;; 'content
                         ;; `org-startup-options'
                         )
   ;; Org attach steals this binding form me:
   (add-hook 'org-mode-hook 
             (function (lambda ()
                         (local-unset-key "\C-c\C-a")
                         (local-set-key "\C-c\C-a" 'show-all))))
   ))

(mon-set-org-init)

;;; ==============================
;; :CUSTOM-FILE

;;; ==============================
;;; :CHANGESET 2389
;;; :CREATED <Timestamp: #{2011-01-12T14:25:03-05:00Z}#{11023} - by MON KEY>
(defun mon-set-custom-customizations-init (&optional warn-only)
  "Set custom customizations on MON systems.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO `mon-set-customizations-before-custom-file-init'.\n►►►"
  (mon-default-start-error/sane
   'mon-set-custom-customizations warn-only
   '(custom-set-variables
     '(custom-buffer-done-kill t) ;; This one is a modern Emacs miracle!
     '(custom-unlispify-tag-names nil) ;; :DEFAULT t
     '(custom-unlispify-menu-entries nil) ;; :DEFAULT t
     ;; '(custom-guess-doc-alist ;; :DEFAULT (("\\`\\*?Non-nil " boolean))
     ;; '(custom-buffer-style 'links)     ;; :DEFAULT 'links {brackets}
     ;; '(custom-unlispify-remove-prefixes nil) :DEFAULT nil
     ;; '(custom-buffer-verbose-help t)   ;; :DEFAULT t
     ;; '(custom-buffer-indent  3)        ;; :DEFAULT 3
     ;; '(custom-menu-order-groups 'first) ;; :DEFAULT 'first
     ;; '(custom-magic-show-hidden  '(option face)) :DEFAULT '(option face) {group}
     ;; '(custom-face-default-form 'selected) ;; :DEFAULT 'selected {all lisp}
     )
   (dolist (cgna-D '(;; ("<MATCH-STRING>\\'" [ <SYMBOL> | <LIST> ] )
                     ("\\`\\*.*\\*\\'" variable)  ;; `*earmuffed-var*'
                     ("\\`[%$]"        function)  ;; `%private-fun', `$internal-fun'
                     ("!\\'"           function)  ;; `set-foo!', `mutate-bar!'
                     ("\\`\\+.*\\+\\'" variable)  ;; `+superior-lisp+', `+constant-name+'
                     ("\\`-"           variable)) ;; `--some-var--', `-her-buddy-', `--his-pal'
                   (custom-note-var-changed 'custom-guess-name-alist))
     (add-to-list 'custom-guess-name-alist cgna-D t))
   ))

;;; ==============================
;;; :CREATED <Timestamp: #{2010-04-03T15:56:38-04:00Z}#{10136} - by MON KEY>
(defun mon-set-customizations-before-custom-file-init (&optional warn-only)
  "Set custom customizations before loading the custom file on MON systems.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO `mon-set-custom-customizations-init'.\n►►►"
  (mon-default-start-error/sane
   'mon-set-customizations-before-custom-file-init warn-only
   (fset 'yes-or-no-p 'y-or-n-p)
   (custom-set-variables 
    ;; :PATHS-FILES
    ;; '(delete-by-moving-to-trash t)
    ;; :EPG 
    ;; :SEE-FILE lisp/epg-config.el
    ;; :NOTE Prefer gpg v 1.4.3 see `epg-gpg-minimum-version'
    ;; :SEE-ALSO `epg-gpg-program', `epg-gpgsm-program',
    ;; `epg-gpg-minimum-version', `epg-debug', `epg-gpg-home-directory',
    ;; `epg-passphrase-coding-system',
    ;; (epg-configuration) (epg-check-configuration (epg-configuration)) 
    '(kill-read-only-ok 1 t)
    '(auto-save-default t)  ;; :DEFAULT t ;; :SEE `auto-save-file-name-transforms'
    '(dired-recursive-deletes t)
    '(dired-recursive-copies 'top)
    '(confirm-kill-emacs 'y-or-n-p)
    '(history-delete-duplicates t) ;; Keep an eye on this to make sure it doesn't slow things down 
    ;; '(history-add-new-input t) ;; :DEFAULT t
    ;; '(history-length 30)       ;; :DEFAULT 30 :NOTE This appears as a property on any of the standard minibuffer history vars
    '(enable-recursive-minibuffers 1)
    '(require-final-newline t)      ;; t|visit-save|visit :SEE `mode-require-final-newline', `require-final-newline'
    '(shell-input-autoexpand t)     ;; comint-input-autoexpand
    '(auto-image-file-mode 1)
    ;; :YANK/CLIP    
    '(yank-excluded-properties t)
    '(x-select-enable-clipboard 1) ;; :SEE :FILE lisp/w32-vars.el
    '(delete-selection-mode nil)
    '(transient-mark-mode 1)
    ;; :COLUMNS
    '(fill-column 80)
    '(column-number-mode t)
    ;; :TIME
    '(display-time-mode 1)
    '(display-time-day-and-date 1)
    '(display-time-24hr-format 1)
    ;; :EOL-MNEMONICS
    '(eol-mnemonic-dos "(w-crlf)")
    '(eol-mnemonic-mac "(mac-cr)")
    '(eol-mnemonic-undecided "(?eol?)")
    '(eol-mnemonic-unix "(unx-lf)")
    ;; :DISPLAY-ANNOYANCES
    '(size-indication-mode 1)
    '(initial-buffer-choice t) ;; :NOTE `t' finds *scratch*
    '(inhibit-startup-message 1) 
    '(ring-bell-function 'ignore)
    '(cursor-type '(bar . 3))
    '(cursor-in-non-selected-windows nil)
    '(visual-line-fringe-indicators '(nil right-curly-arrow))
    '(nxml-slash-auto-complete-flag t)
    ) ;; :CLOSE `custom-set-variables' for `IS-MON-SYSTEM-P'
   (when (and (intern-soft "IS-MON-P" obarray) ;; *IS-MON-OBARRAY*
              IS-MON-P)
     (custom-set-variables 
      '(ffap-rfc-directories
        (concat (nth 5 (mon-get-mon-emacsd-paths)) "/RFCs-HG"))
      '(nxhtml-load nil)
      '(initial-major-mode 'emacs-lisp-mode)
      '(mouse-avoidance-mode 'exile)
      '(backward-delete-char-untabify-method 'hungry)) ;; 'all
     ;; Make sure shell-mode understands `ls dircolors e.g. ~/.bashrc's alias:
     ;; ls="ls --color=auto"
     ;; :NOTE autoloaded in :FILE lisp/ansi-color.el
     (ansi-color-for-comint-mode-on)
     ;; :SEE `edebug-form-spec' 
     ;; :SEE (info "(elisp Instrumenting Macro Calls")
     ;; (edebug-eval-macro-args t) 
     )
   ))
;;
;; (mon-set-customizations-before-custom-file-init t)
(mon-set-customizations-before-custom-file-init)

;;; ==============================
;;; :CHANGESET 2120
;;; :CREATED <Timestamp: #{2010-09-13T13:36:44-04:00Z}#{10371} - by MON KEY>
(defun mon-set-custom-file-init-w32-configs (&optional warn-only)
  "Set w32 specific configs at init time.\n
:SEE-ALSO `mon-keybind-w32-init', `mon-keybind-put-hooks-init'.\n►►►"
  (when (and (intern-soft "IS-W32-P" obarray)  ;; *IS-MON-OBARRAY*
             (intern-soft "IS-MON-SYSTEM-P" obarray) ;; *IS-MON-OBARRAY*
             (bound-and-true-p IS-MON-SYSTEM-P)
             ;;(featurep 'emacsw32)
             )
    (when (not (and (intern-soft "IS-MON-P" obarray) ;; *IS-MON-OBARRAY*
                    (bound-and-true-p IS-MON-P)))
      (custom-set-variables
       '(initial-major-mode 'fundamental-mode)
       '(delete-by-moving-to-trash t)
       ;; Supposedly this is deprecated post 23.2
       ;; '(default-buffer-file-coding-system 'utf-8-unix t) 
       ;;
       ;; <Timestamp: #{2010-11-09T16:02:26-05:00Z}#{10452} - by MON KEY>
       '(current-language-environment "UTF-8")
       '(buffer-file-coding-system 'utf-8-unix t)
       '(default-buffer-file-coding-system 'utf-8-unix)
       ) 
      (setq-default buffer-file-coding-system 'utf-8-unix)
      (setq-default default-buffer-file-coding-system 'utf-8-unix))
    (custom-set-variables
     '(dired-guess-shell-gnutar nil)
     '(w32shell-cygwin-bin "C:\\bin")
     '(w32shell-shell 'cmd)
     ;; :NOTE Should prop. do a feauture check on these first:
     '(emacsw32-eol-check-before-save t)
     '(emacsw32-eol-check-new-files t)
     '(emacsw32-eol-file-name-lf-list 
       '(".x?html?$" ".css$" ".js$" ".pl$" ".pm$" ".el" ".text$" ".txt$" ".naf$" ".dbc$"))
     '(emacsw32-max-frames t)
     ;; '(emacsw32-style-frame-title t)
     '(emacsw32-style-frame-title nil)
     ;; '(tramp-default-method "plinkx")
     ;; '(tramp-default-method-alist (quote (("\\`localhost\\'" "\\`root\\'" "su"))))
     )))
;;
(mon-set-custom-file-init-w32-configs)

;;; ==============================
;;; :CREATED <Timestamp: #{2010-04-02T17:36:42-04:00Z}#{10135} - by MON KEY>
(defun mon-set-custom-file-init (&optional warn-only)
  "Set the default `custom-file' to an alternate location at init time.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
:NOTE This helps to maintain portability, the location of custom is apparently
arbitrary across systems e.g. Debian, w32, etc. esp. where upgrades/multiple
installations are concerned. Likewise, as the custom facility generally sucks
and apt to overwrite my configs at _its_ perogative I find it cleaner and often
helpful to keep a version controlled copy in a location of _my_ choosing.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:EXAMPLE\n\n\(custom-file\)\n
:SEE-ALSO `customize-rogue'.\n►►►"
  (mon-default-start-error/sane
   'mon-set-custom-file-init warn-only
   (let* ((*mon-user-emacsd* (file-name-as-directory *mon-user-emacsd*))
          (mscf (cond ((and (intern-soft "IS-MON-P-W32" obarray) ;; *IS-MON-OBARRAY*
                            (bound-and-true-p IS-MON-P-W32))
                       (concat *mon-user-emacsd* (nth 2 (assoc 1 *mon-emacsd*))))
                      ((and (intern-soft "IS-BUG-P" obarray)  ;; *IS-MON-OBARRAY*
                            (bound-and-true-p IS-BUG-P))
                       (concat *mon-user-emacsd* (nth 2 (assoc 3 *mon-emacsd*))))
                      ((and (intern-soft "IS-MON-P-GNU" obarray) ;; *IS-MON-OBARRAY*
                            (bound-and-true-p IS-MON-P-GNU))
                       (concat *mon-user-emacsd* (nth 2 (assoc 2 *mon-emacsd*)))))))
     (setq custom-file mscf))
   ;; :NOTE Eval'ing: (load custom-file t) the `t' flips the `no-error'.
   (load custom-file)
   ))
;;
;; (mon-set-custom-file-init t)
(mon-set-custom-file-init)

;;; ==============================
;;; :NOTE Make sure that calling functions tack on the ``file://'' prefix.
;;; Also, make sure to check that the path is constrcted correctly for browsers.
;;;       (concat "file://" common-lisp-hyperspec-root)
;;;       (substring (concat "file://" common-lisp-hyperspec-root) 7)
;;;       (concat "file://" common-lisp-hyperspec-root "Body/03_da.htm")
;;; "http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/"
;;; "http://www.lispworks.com/documentation/HyperSpec/"
;;; "http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/html/hyperspec/HyperSpec/"
;;; "http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/"
;;;
;;; :NOTE This _should_ be set elsewhere already but just in case.
;;; :MODIFICATIONS <Timestamp: #{2010-04-02T20:03:26-04:00Z}#{10136} - by MON KEY>r
(defun mon-set-common-lisp-hspec-init (&optional warn-only)
  "Set the Common Lisp hspec on MON systems at init time.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:NOTE Evaluate before other slime initializations to ensure the path values
aren't clobbered for the variables:\n
 `common-lisp-hyperspec-root', `common-lisp-hyperspec-issuex-table',
 `common-lisp-hyperspec-symbol-table'\n
:NOTE Initizliztion of the above variables affect:
the function `mon-help-CL-symbols' and variable `*mon-help-CL-symbols*' in:
:FILE mon-doc-help-CL.el\n
:SEE-ALSO `mon-purge-cl-symbol-buffers-on-load'.\n►►►"
  (mon-default-start-error/sane
   'mon-set-common-lisp-hspec-init warn-only
   (when (or (and (intern-soft "IS-MON-P-GNU" obarray) ;; *IS-MON-OBARRAY*
                  (bound-and-true-p IS-MON-P-GNU))
             (and (intern-soft "IS-MON-P-W32" obarray) ;; *IS-MON-OBARRAY*
                  (bound-and-true-p IS-MON-P-32)
                  (not (and (intern-soft "IS-BUG-P" obarray) ;; *IS-MON-OBARRAY*
                            (bound-and-true-p IS-BUG-P)))))
     (unless (and (bound-and-true-p common-lisp-hyperspec-root)
                  (bound-and-true-p common-lisp-hyperspec-issuex-table)
                  (bound-and-true-p common-lisp-hyperspec-symbol-table))
       (setq common-lisp-hyperspec-root (nth 8 (mon-get-mon-emacsd-paths)))
       (setq common-lisp-hyperspec-issuex-table 
             (cond ((string-match-p "v3" common-lisp-hyperspec-root)
                    (concat common-lisp-hyperspec-root "Data/Issue-Cross-Refs.text"))
                   (t (concat common-lisp-hyperspec-root "Data/Map_IssX.txt"))))
       (setq common-lisp-hyperspec-symbol-table 
             (cond ((string-match-p "v3" common-lisp-hyperspec-root)
                    (concat common-lisp-hyperspec-root "Data/Symbol-Table.text"))
                   (t (concat common-lisp-hyperspec-root "Data/Map_Sym.txt"))))))))
;;
;; (mon-set-common-lisp-hspec-init t)

;;; ==============================
;;; :PREFIX "msli-"
;;; :CREATED <Timestamp: #{2010-04-02T20:29:38-04:00Z}#{10136} - by MON KEY>
(defun mon-set-lisp-init (&optional warn-only)
  "Load MON slime preferences and add `emacs-lisp-mode-hook's at init time.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO `*mon-lisp-safe-local-variable-values*'.\n►►►"
  (mon-default-start-error/sane
   'mon-set-slime-init warn-only
   (when (and (intern-soft "IS-MON-P-W32" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-P-W32))
     (load-file "slime-loads.el"))
   ;; (when IS-MON-P-GNU (require 'slime-loads-GNU-clbuild)
   ;;        (mon-slime-setup-init))
   (when (and (intern-soft "IS-MON-P" obarray)  ;; *IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-P))
     (dolist (msli-D-1 *mon-lisp-safe-local-variable-values* 
                   (custom-set-variables 
                    `(safe-local-variable-values ,safe-local-variable-values)))
       (add-to-list 'safe-local-variable-values msli-D-1))
     ;;
     (add-hook 'emacs-lisp-mode-hook
               (function (lambda () 
                 (set (make-local-variable 'mouse-avoidance-mode) 'banish))))
     (add-hook 'emacs-lisp-mode-hook 
               (function (lambda () 
                 (set (make-local-variable 'indent-tabs-mode) nil))))
     (add-hook 'emacs-lisp-mode-hook 
               (function (lambda ()  ;; `minibuffer-completing-symbol'
                           (set (make-local-variable 'eval-expression-print-level) 8))))
     (add-hook 'emacs-lisp-mode-hook 
               (function (lambda () 
                           (set (make-local-variable 'eval-expression-print-length) nil))))
     ;; ==============================
     ;; :NOTE Following should be added/removed according to need:
     ;; -*-truncate-lines: t; -*-
     ;; (add-hook 'emacs-lisp-mode-hook #'(lambda () (setq truncate-lines t)))
     ;; (remove-hook 'emacs-lisp-mode-hook #'(lambda () (setq truncate-lines t)))
     ;; ==============================
     ;; (setq lisp-indent-function 'lisp-indent-function)
     ;; (setq-default lisp-indent-function 'common-lisp-indent-function)
     ;; ==============================
     ;; :SLIME-RELATED-HOOKS
     ;; (add-hook 'lisp-mode-hook (function (lambda () (slime-mode t))))
     ;; (add-hook 'inferior-lisp-mode-hook (lambda () (inferior-slime-mode t)))
     )))
;;
;; (mon-set-lisp-init t)

;;; ==============================
;;; :PROCED
;;; :NOTE Load `proced' package at startup and have it update automatically.
;;; :SEE-ALSO  `proced-auto-update-flag', `proced-auto-update-interval'
;;; :TODO Should be loaded in a dedicated frame and marked not to kill.
;;; :CREATED <Timestamp: #{2009-12-18T00:53:55-05:00Z}#{09515} - by MON>
(defun mon-set-proced-init (&optional warn-only)
  "Initialize `proced' related preferences on MON systems at init time.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO .\n►►►"
  (mon-default-start-error/sane
   'mon-set-proced-init warn-only
   (require 'proced)    
   (when proced-available
     ;; :NOTE `proced-toggle-auto-update' related fncns can clobber the `match-data'!!
     ;; (proced-toggle-auto-update 1)))
     (proced))
   ;; Lets see the tty's when on a GNU/Linux box.
   (when (and (intern-soft "IS-MON-P-GNU" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-P-GNU))
     (setq proced-format 'medium))))
;;
;; (mon-set-proced-init t)

;;; ==============================
;;; :CREATED <Timestamp: #{2010-04-02T20:49:15-04:00Z}#{10136} - by MON KEY>
(defun mon-set-auctex-init (&optional warn-only)
  "Initialize auctex on MON systems at init time.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO .\n►►►"
  (mon-default-start-error/sane
   'mon-set-auctex-init warn-only
   (when (and (intern-soft "IS-MON-P-GNU" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-P-GNU))
     (load "auctex" t)
     (load "preview-latex" t))
   ))
;;
;; (mon-set-auctex-init t)

;;; ==============================
;;; :NOTE (dvc-current-active-dvc)
;;; :NOTE :VARIABLE `bzr-executable' in :FILE bzr-core.el 
;;; :MODIFICATIONS <Timestamp: #{2010-04-02T20:39:41-04:00Z}#{10136} - by MON KEY>
;;; :MODIFICATIONS <Timestamp: #{2010-01-01T11:58:49-05:00Z}#{10535} - by MON KEY>
;;; :CREATED <Timestamp: #{2010-03-20T17:24:42-04:00Z}#{10116} - by MON KEY>
(defun mon-set-dvc-init (&optional warn-only)
  "Initialize dvc sytem on MON systems at init time.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO .\n►►►"
  (mon-default-start-error/sane
   'mon-set-dvc-init warn-only
   (add-to-list 'load-path 
                (mon-build-path-for-load-path *mon-site-lisp-root* "dvc/lisp"))
   (if (featurep 'dvc-core)
       (dvc-reload)
       (require 'dvc-autoloads))
   (when (or (and (intern-soft "IS-MON-P-W32" obarray)  ;; *IS-MON-OBARRAY*
                  (bound-and-true-p IS-MON-P-W32))
             (and (intern-soft "IS-BUG-P" obarray) ;; *IS-MON-OBARRAY*
                  (bound-and-true-p IS-BUG-P)))
     (setq dvc-sh-executable  
           (cond ((and (intern-soft "IS-BUG-P" obarray) ;; *IS-MON-OBARRAY*
                       (bound-and-true-p IS-BUG-P))
                  ;; (plist-get (cadr (assoc 'the-sh-pth *mon-misc-path-alist*)) :cygwin))
                  (cadr (assoc 'cygwin (cadr (assoc 'the-sh-pth *mon-misc-path-alist*)))))
                 ((and (intern-soft "IS-MON-P-W32" obarray)  ;; *IS-MON-OBARRAY*
                       (bound-and-true-p IS-MON-P-W32))
                  ;;(plist-get (cadr (assoc 'the-sh-pth *mon-misc-path-alist*)) :msys)))))
                  (cadr (assoc 'msys (cadr (assoc 'the-sh-pth *mon-misc-path-alist*))))))))
   (if (and (intern-soft "IS-W32-P" obarray) ;; *IS-MON-OBARRAY*
            (bound-and-true-p IS-W32-P)) ;; (eq system-type 'windows-nt)
       (if (executable-find "bzr")
           (setq bzr-executable (executable-find "bzr"))
         (setq bzr-executable "bzr")) ;; `vc-bzr-program'
     (if (executable-find "hg")
         (setq xhg-executable (executable-find "hg"))
       (when (file-executable-p (concat (getenv "SP_HG") "hg.exe"))
         (setq xhg-executable   (concat (getenv "SP_HG") "\\hg.exe")))))
   ;; Turn off the ever so pervasive dvc-tips buffer.
   (custom-set-variables
    '(dvc-select-priority '(bzr xhg xgit xdarcs xmtn tla baz) t)
    '(dvc-tips-enabled nil t)
    '(dvc-log-edit-other-frame t t)) ;; `bzr-add-log-entry', `dvc-add-log-entry'
   ))
;; (mon-set-dvc-init t)

;;; ==============================
;;; :CHANGESET 2120
;;; :CREATED <Timestamp: #{2010-09-13T13:14:38-04:00Z}#{10371} - by MON KEY>
(defun mon-set-erc-configs-init (&optional warn-only)
  "Set erc related preferences on MON systems at init time.\n
Set customizable variables:\n
`erc-nick' `erc-pals' `erc-prompt' `erc-system-name' `erc-add-query'\n
The values of these variables are on the alist key 'the-erc-configs 
in variable `*mon-misc-path-alist*'.\n
:SEE :FILE lisp/erc/*
:SEE-ALSO .\n►►►"
  (mon-default-start-error/sane
   'mon-set-erc-configs-init warn-only
   ;; (require 'erc)
   (when (and (intern-soft "IS-MON-SYSTEM-P" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-SYSTEM-P)
              (intern-soft "*mon-misc-path-alist*" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p *mon-misc-path-alist*)
              t)
     (apply 'custom-set-variables 
            (cadr (assq 'the-erc-configs *mon-misc-path-alist*))
            )
     (custom-set-variables 
      ;; /ignore joins+parts. The key to IRC.
      '(erc-hide-list '("JOIN" "PART" "QUIT"))
      (custom-set-variables '(erc-autoaway-mode t))
      ;; erc-modules 
      ;;
      ;; erc-autoaway-mode
      ;; erc-auto-set-away
      ;; erc-away
      ;;
      ;; erc-log-channels-directory ;; :DEFAULT "~/log"
      ;; erc-log-insert-log-on-open
      ;; erc-log-filter-function
      ;;;;;;;;;;;;;;;;;;;;;;;;;;;
      ;; `erc-modes'
      ;; `erc-log-setup-logging'   BUFFER
      ;; `erc-save-buffer-in-logs' &optional BUFFER
      ;; `erc-log-disable-logging' BUFFER
      ;; :NOTE (erc-logging-enabled (current-buffer))
      ;;       (erc-current-logfile (current-buffer))
      ;; Disable logging in some buffer:
      ;; (set (make-local-variable 'erc-enable-logging) nil)
      ;;;;;;;;;;;;;;;;;;;;;;;;;;;
      ))
   ))

;;; ==============================
;;; :CHANGESET 1990
;;; :CREATED <Timestamp: #{2010-07-26T14:54:55-04:00Z}#{10301} - by MON KEY>
(defun mon-set-url-pkg-init (&optional warn-only)
  "Load url/url-*.el packages and set related preferences on MON systems at init time.\n
Evaluate `url-setup', set `url-debug' t, and require :FILE url/url-http.el
:SEE-ALSO `url-setup-done', `mon-set-browser-init', `mon-set-w3m-init'.\n►►►"
  (mon-default-start-error/sane
   'mon-set-url-pkg-init warn-only
   (require 'url)
   (require 'url-http)
   (url-do-setup)
   (let ((uconfdir (file-truename 
                    (expand-file-name ".emacs.d/url/" 
                                      (file-truename (getenv "HOME"))))))
     (unless  (file-directory-p uconfdir)
       (make-directory uconfdir))
     (set-variable 'url-configuration-directory uconfdir)
     (put 'url-configuration-directory 'customized-value 
          (list (custom-quote (eval url-configuration-directory)))))
   (custom-set-variables 
    '(url-debug t)
    ;;(url-configuration-directory  t)
    '(url-cookie-file (expand-file-name "cookies" url-configuration-directory) t)
    '(url-cookie-save-interval (* 3600 15) t) ;; default ran a timer every 60 seconds
    ;; url-cache-directory
    ;; url-cookie-confirmation
    ;; url-cookie-multiple-line
    ;; url-cookie-trusted-urls
    ;; url-cookie-untrusted-urls
    '(url-history-file (expand-file-name "history" url-configuration-directory) t)
    '(url-history-save-interval (* 3600 15) t)  ;; default ran a timer every 60 seconds
    '(url-history-track nil t)
    ;; url-proxy-services
    ;; url-gateway-method          { telnet|rlogin|socks|tls|ssl|native }
    ;; url-honor-refresh-requests
    ;; url-directory-index-file
    ;; url-uncompressor-alist
    ;; url-bad-port-list
    ;; url-max-password-attempts
    ;; url-max-redirections
    '(url-temporary-directory temporary-file-directory t)
    '(url-privacy-level 'paranoid t) ;'(email os lastloc agent cookie)
    '(url-automatic-caching nil t))
   (url-cookie-setup-save-timer)
   (url-history-setup-save-timer)
   (url-setup-privacy-info)
   ))
;;
;; (mon-set-url-pkg-init tt)


;;; ==============================
;;; :CHANGESET 2073
;;; :CREATED <Timestamp: #{2010-08-19T16:31:50-04:00Z}#{10334} - by MON KEY>
(defun mon-set-google-maps-init (&optional warn-only)
  "Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO `google-define'.\n►►►"
  (mon-default-start-error/sane
   'mon-set-goolge-maps-init warn-only
   (add-to-list 'load-path (expand-file-name "google-maps" *mon-site-lisp-root*))
   (require 'google-maps)
   ;; ==============================
   ;; :CREATED <Timestamp: #{2010-08-19T17:28:36-04:00Z}#{10334} - by MON>
   ;;
   (defcustom google-maps-static-default-maptype 'hybrid
     "Default maptype for displaying interactive maps with `google-maps'."
     :type '(choice (symbol :tag "hybrid"    :value hybrid)
                    (symbol :tag "roadmap"   :value roadmap)
                    (symbol :tag "satellite" :value satellite)
                    (symbol :tag "terrain"   :value terrain))
     :group 'google-maps-static)
   ;;
   (custom-set-variables 
    '(google-maps-static-default-zoom 15 t)
    '(google-maps-static-buffer-name "*GOOGLE-MAPS*" t))
   ))

;;; ==============================
;;; :CHANGESET 1786
;;; :CREATED <Timestamp: #{2010-05-29T12:03:37-04:00Z}#{10216} - by MON KEY>
(defun mon-set-w3m-init (&optional warn-only)
  "Set and load w3m and related preferences on MON systems at init time.\n
Add `mon-keybind-w3m' to the w3m-mode-hook to adjust `w3m-mode-map' keybindings.
Only relevant when `IS-MON-P-GNU'.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO `mon-set-browser-init', `mon-set-url-pkg-init'.\n►►►"
  (mon-default-start-error/sane
   'mon-set-w3m-init warn-only
   (when (and (intern-soft "IS-MON-P-GNU" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-P-GNU))
     (add-to-list 'load-path 
                  (mon-build-path-for-load-path *mon-site-lisp-root* "emacs-w3m"))
     (require 'w3m-load)
     (require 'w3m)
     (custom-set-variables
      '(w3m-use-cookies t t)
      '(browse-url-browser-function 'w3m-browse-url t)
      '(w3m-home-page "http://www.google.com" t)
      '(w3m-fill-column 80 t)
      '(w3m-add-user-agent nil t)
      ;; '(w3m-language (symbol-value 'current-language-environment)))
      ;; '(w3m-accept-languages )
      ;; '(w3m-init-file ) ;; :DEFAULT "~/.emacs-w3m"
      ;; '(w3m-default-save-directory ) ;; :DEFAULT ~/.w3m
      ;; '(w3m-profile-directory      ) ;; 
      ;; '(w3m-home-page )  
      ;; '(w3m-image-viewer ;; display | xfi | xv | xloadimage
      ))
   ))
;; (mon-set-w3m-init t)

;;; ==============================
;;; :TODO Entire conditional can be replaced with one call to `mon-get-mon-emacsd-paths'.
;;; :CHANGESET 1786 <Timestamp: #{2010-05-29T12:42:37-04:00Z}#{10216} - by MON KEY>
;;; :MODIFICATIONS <Timestamp: #{2010-04-02T21:29:00-04:00Z}#{10136} - by MON KEY>
;;; :CREATED <Timestamp: #{2010-01-29T16:00:47-05:00Z}#{10045} - by MON KEY>
(defun mon-set-browser-init (&optional warn-only)
  "Set generic web browser related preferences on MON systems at init time.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO `mon-set-w3m-init', `mon-set-url-pkg-init'.\n►►►"
  (mon-default-start-error/sane
   'mon-set-browser-init warn-only
   (apply 'custom-theme-set-variables 'user
          `((browse-url-firefox-program  (nth 10 (mon-get-mon-emacsd-paths)) t)
            (browse-url-firefox-new-window-is-tab t t)
            (browse-url-mozilla-new-window-is-tab 1 t)
            ,(cond ;; :NOTE These below were `custom-set-default'
              ((and (intern-soft "IS-BUG-P" obarray) ;; *IS-MON-OBARRAY*
                    (bound-and-true-p IS-BUG-P))
               '(browse-url-browser-function 'browse-url-generic)
               '(browse-url-generic-program (nth 10 (mon-get-mon-emacsd-paths))))
              ((and (intern-soft "IS-BUG-P-REMOTE" obarray) ;; *IS-MON-OBARRAY*
                    (bound-and-true-p IS-BUG-P-REMOTE))
               '(browse-url-browser-function 'browse-url-generic)
               '(browse-url-generic-program (nth 10 (mon-get-mon-emacsd-paths))))
              ((and (intern-soft "IS-MON-P-W32" obarray) ;; *IS-MON-OBARRAY*
                    (bound-and-true-p IS-MON-P-W32))
               '(browse-url-browser-function 'browse-url-generic)
               '(browse-url-generic-program (nth 9 (mon-get-mon-emacsd-paths))))
              ((and (intern-soft "IS-MON-P-GNU" obarray) ;; *IS-MON-OBARRAY*
                    (bound-and-true-p IS-MON-P-GNU))
               '(browse-url-browser-function 'browse-url-generic t)
               '(browse-url-generic-program (nth 9 (mon-get-mon-emacsd-paths)) t)))))
   ))
;;
;; (mon-set-browser-init t)

;;; ==============================
;;; :CREATED <Timestamp: #{2009-09-26T19:08:09-04:00Z}#{09396} - by MON>
(defun mon-set-buffer-local-comment-start  ()
  "Make \";;\" a `buffer-local-value' for `comment-start'.\n
Bind locally in buffers without a buffer-local-value for comment-start and
`fundamental-mode'.\n
When `IS-MON-SYSTEM-P' evaluated on the `after-change-major-mode-hook'.\n 
:SEE-ALSO `*mon-default-comment-start*', `mon-comment-divider->col',
`mon-comment-divider-to-col', `mon-comment-divider-to-col-four',
`mon-comment-divider-w-len', `mon-comment-lisp-to-col', `comment-start',
`comment-padding', `comment-add', `comment-column', `comment-use-syntax'
`comment-style', `comment-styles'.\n►►►"
  (when (or (null (buffer-local-value 'comment-start (current-buffer)))
            (and (eq (buffer-local-value 'major-mode (current-buffer)) 'fundamental-mode)
                 (null (buffer-local-value 'comment-start (current-buffer)))))
    ;; (set (make-local-variable 'comment-styles)
    ;;      (add-to-list 'comment-styles '(mon-multi . (t nil nil multi-char))))
    ;; (set (make-local-variable 'comment-style) 'mon-multi)
    (set (make-local-variable 'comment-style)  'indent)
    (set (make-local-variable 'comment-start) ";;")))
;;
;; (mon-set-buffer-local-comment-start)

;;; ==============================
;;; :CHANGESET 1786
;;; :CREATED <Timestamp: #{2010-05-29T17:53:59-04:00Z}#{10216} - by MON KEY>
(defun mon-set-buffer-local-comment-start-init (&optional warn-only)
  "Set default value of `comment-start' on MON systems at init time.\n
Puts `mon-set-buffer-local-comment-start' on the `after-change-major-mode-hook'.\n
Put comment-start \"#\" on the `shell-mode-hook'.\n
Put comment-start \"/*\" on the `css-mode-hook'.\n
Put comment-start \";;;\" on the `find-file-hook' for extension \".dbc\".\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO .\n►►►"
  (mon-default-start-error/sane
   'mon-set-buffer-local-comment-start-init warn-only  
   (add-hook 'after-change-major-mode-hook 
             'mon-set-buffer-local-comment-start t)
   ;; :CSS-MODE-COMMENT
   (add-hook 'css-mode-hook 
             (function (lambda () ;; :NOTE CSS-MODE should do this already but
                         ;; sometimes gets unbound by other hooks.
                         (set (make-local-variable 'comment-start) "/*")
                         (set (make-local-variable 'comment-end) "*/"))))
   ;; :SHELL-MODE-COMMENT
   ;; :NOTE Maybe should be less aggressive with this one.
   ;; :SEE `sh-make-vars-local' which can set the hook in a more context
   ;; sensitive manner.
   (add-hook 'shell-mode-hook
             (function (lambda () 
                         (set (make-local-variable 'comment-start) "#"))))
   ;; :DBC-EXT-COMMENT
   ;; Default comment-start  for file with ".dbc" to extension to ";;;".
   (add-hook 'find-file-hook 
             (function (lambda ()
                         (when (string-equal (file-name-extension (buffer-file-name)) "dbc")
                           (set (make-local-variable 'comment-start) ";;;")))))
   ))
;; 
;; (remove-hook 'after-change-major-mode-hook 'mon-set-buffer-local-comment-start)
;;
;; (mon-set-buffer-local-comment-start-init t)

;;; ==============================
;;; :CHANGESET 1711
;;; :CREATED <Timestamp: #{2010-05-01T17:30:09-04:00Z}#{10176} - by MON KEY>
(defun mon-set-css-path-init (&optional warn-only)
  "Set and load CSS related preferences/paths on MON systems at init time.\n
Add require statement for :FILE mon-css-check.el and :FILE mon-css-complete.el\n
Add autoload `css-color-mode' from :FILE \"mon-css-color.el\".\n
Put `css-color-turn-on-in-buffer' on the `css-mode-hook'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE :FILE site-lisp/mon-css-check.el | css-check.el
:SEE-ALSO .\n►►►"
  (mon-default-start-error/sane
   'mon-set-css-path-init warn-only
   ;; :NOTE These are Niels Giesen's css-check and css-complete.el with minor mods.
   (require 'mon-css-complete) 
   (require 'mon-css-check nil t)
   (when (featurep 'mon-css-check)
     (unless (bound-and-true-p *css-check-csstidy-path*)
       (let ((csstidy-path
              (or (executable-find "csstidy")
                  (when (and (intern-soft "IS-W32-P" obarray) ;; *IS-MON-OBARRAY*
                             (bound-and-true-p IS-W32-P))
                    (or (executable-find "csstidy.exe")
                        (car (file-expand-wildcards
                              (concat (getenv "SP_BIN") "/csstidy/*.exe"))))))))
         (when csstidy-path (setq *css-check-csstidy-path* csstidy-path)))))
   ;; ;; :CSS-COLOR
   (autoload 'css-color-mode "mon-css-color" "" t)
   (add-hook 'css-mode-hook 
             (function (lambda () (css-color-turn-on-in-buffer))))))
;;
;; (mon-set-css-path-init t)

;;; ==============================
;; :LONG-LINES-MODE->AUTO-MODE-ALIST
;;; :NOTE See `NOTES:' section "DON'T AUTO-MODE-ALIST" of the file's header for
;;; additional discussion.
;;: (add-to-list 'auto-mode-alist '("\\.dbc\\'" . longlines-mode))

;;; ==============================
;;; :CREATED <Timestamp: #{2010-04-02T20:15:55-04:00Z}#{10136} - by MON KEY>
(defun mon-set-longlines-init (&optional warn-only)
  "Ensure that `longlines-mode' gets invoked least once at Emacs init.\n
This is _necessary_ because a lot of `naf-mode' procedures fail if 
`longlines-mode' isn't in the environment.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
:SEE-ALSO `mon-toggle-restore-llm'.\n►►►"
  (mon-default-start-error/sane
   'mon-set-longlines-init warn-only
   (save-excursion
     (let (llm-test)
       (setq llm-test
             (with-temp-buffer
               (and (not (bound-and-true-p longlines-mode))
                    (longlines-mode))))
       (and llm-test 
            (message (concat ":FUNCTION `mon-set-longlines-init' " 
                             "-- initialized `longlines-mode' at startup")))))))
;;
;; (mon-set-longlines-init t)

;;; ==============================
;;; :CHANGESET 1740
;;; :CREATED <Timestamp: #{2010-05-17T09:49:59-04:00Z}#{10201} - by MON KEY>
(defun mon-rst-mode-facification ()
  "Run on the `rst-mode-hook' to set rst-mode faces.\n
Hook added add loadtime with \`mon-default-start-error/sane'.\n
:SEE-ALSO `mon-set-rst-mode-faces-init'.\n►►►"
  (set-face-background 'rst-level-1-face  "SteelBlue")
  (set-face-foreground 'rst-level-2-face  "dark slate gray")
  (set-face-background 'rst-level-2-face  "slate blue")
  (set-face-foreground 'rst-level-2-face  "dark slate gray")
  (set-face-background 'rst-level-3-face  "medium slate blue")
  (set-face-foreground 'rst-level-3-face  "dark slate gray")
  (set-face-background 'rst-level-4-face  "light late blue")
  (set-face-foreground 'rst-level-4-face  "dark slate gray"))

;;; ==============================
;;; :MODIFICATIONS <Timestamp: #{2010-04-02T17:09:29-04:00Z}#{10135} - by MON KEY>
;;; :CREATED <Timestamp: #{2010-01-29T14:12:23-05:00Z}#{10045} - by MON KEY>
(defun mon-set-rst-mode-faces-init (&optional warn-only)
  "Set `rst-mode' faces to MON preferred style.\n
When IS-MON-SYSTEM-P evaluated on the `rst-mode-hook'.
Signal an error when `IS-NOT-MON-SYSTEM'.\n
:EXAMPLE\n\n\(pp-display-expression 
 \(symbol-function 'mon-rst-mode-facification\) \"*MON-RST-MOD-FACIFICATION-FACES*\"\)\n
:SEE-ALSO `mon-rst-mode-facification'.\n►►►"
  (mon-default-start-error/sane
   'mon-set-rst-mode-faces-init warn-only ;; nil
   (eval-when (compile load eval) (require 'rst nil t))
   (add-hook 'rst-mode-hook 'mon-rst-mode-facification)
   ))
;;
;; (remove-hook 'rst-mode-hook 'mon-set-rst-mode-faces)
;; (mon-set-rst-mode-faces-init)

;;; ==============================
;;; :CHANGESET 1786
;;; :CREATED <Timestamp: #{2010-05-29T21:52:05-04:00Z}#{10216} - by MON KEY>
(defun mon-set-apache-mode-init (&optional warn-only)
  "Set `apache-mode' preferences on MON systems at init time.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO .\n►►►"
  (mon-default-start-error/sane
   'mon-set-apache-mode-init warn-only
   (when (and (intern-soft "IS-MON-P" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-P))
     (require 'apache-mode)
     (autoload 'apache-mode "apache-mode" nil t)
     (add-to-list 'auto-mode-alist '("\\.htaccess\\'"   . apache-mode))
     (add-to-list 'auto-mode-alist '("httpd\\.conf\\'"  . apache-mode))
     (add-to-list 'auto-mode-alist '("srm\\.conf\\'"    . apache-mode))
     (add-to-list 'auto-mode-alist '("access\\.conf\\'" . apache-mode))
     (add-to-list 'auto-mode-alist '("sites-\\(available\\|enabled\\)/" . apache-mode)))
   ))
;; (mon-set-apache-mode-init t)

;;; ==============================
;;; :NOTE Thiery's traverselisp is still a moving target.  Should
;;;        periodically check that we've pulled a current version.
;;; :CHANGESET 1786
;;; :CREATED <Timestamp: #{2010-05-29T21:55:16-04:00Z}#{10216} - by MON KEY>
(defun mon-set-traverselisp-init (&optional warn-only)
  "Set `traverselisp' preferences on MON systems at init time.\n
Add  *mon-site-lisp-root*/traverselisp to load-path.
Add file extension \".naf~\" to `traverse-ignore-files'.\n
Signal an error when `IS-NOT-MON-SYSTEM'.\n
When optional arg WARN-ONLY is non-nil message a warning instead of an error if
function is already a member of variable `*mon-default-start-load-sanity*' as per 
`mon-default-start-error/sane'.\n
:SEE-ALSO .\n►►►"
  (mon-default-start-error/sane
   'mon-set-traverselisp-init warn-only
   (when (and (intern-soft "IS-MON-P" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-P))
     (add-to-list 'load-path 
                  (mon-build-path-for-load-path 
                   *mon-site-lisp-root* "traverselisp"))
     (require 'traverselisp)
   (add-to-list 'traverse-ignore-files ".naf~"))
   ))
;; (mon-set-traverselisp-init t)

;;; ==============================
;;; :CREATED <Timestamp: #{2009-10-06T16:04:09-04:00Z}#{09412} - by MON KEY>
;; (when (or (featurep 'mon-default-start-loads) 
;;           (and (intern-soft "IS-MON-SYSTEM-P" obarray)
;;                (bound-and-true-p IS-MON-SYSTEM-P)))
(defun mon-load-cedet ()
  "Load CEDET if it isn't already.\n
This function will be :DEPRECATED once EMACS <-> CEDET merge is complete.\n►►►"
  (interactive)
  (if (and (intern-soft "IS-MON-P" obarray) ;; *IS-MON-OBARRAY*
           (bound-and-true-p IS-MON-P)
           (not (featurep 'cedet)))
      ;; (load-file  (concat *mon-site-lisp-root* "/cedet-cvs/common/cedet.el"))
      (progn (require 'cedet)
             (message (concat ":FUNCTION `mon-load-cedet' "
                              "-- feature cedet loaded")))
    (message (concat ":FUNCTION `mon-load-cedet' "
                     "-- CEDET already loaded or your of a MONish way"))))
;; ) ;; :CLOSE when

;;; ==============================
;;; :NOTE :BEFORE :FILE mon-keybindings.el
;;; :CREATED <Timestamp: #{2010-04-03T17:40:37-04:00Z}#{10136} - by MON KEY>
(defun mon-keybind-w32-init ()
  "Initialize w32 related keys on MON systems.\n
Binds the following variables:\n
 `w32-pass-rwindow-to-system', `w32-pass-lwindow-to-system'
 `w32-rwindow-modifier',  `w32-pass-multimedia-buttons-to-system'
:NOTE Loaded via `mon-keybind-put-hooks-init' at init time by
`mon-set-system-specific-and-load-init'.\n
:SEE :FILE src/w32fns.c
:SEE-ALSO `mon-set-custom-file-init-w32-configs', `w32-alt-is-meta',
`w32-pass-alt-to-system', `w32-quit-key', `w32-phantom-key-code',
`w32-enable-num-loc', `w32-enable-caps-lock', `w32-scroll-lock-modifier',
`w32-apps-modifier', `w32-mouse-button-tolerance', `w32-mouse-move-interval',
`w32-pass-extra-mouse-buttons-to-system',
`w32-pass-multimedia-buttons-to-system', `w32-register-hot-key',
`w32-unregister-hot-key', `w32-registered-hot-keys', `w32-reconstruct-hot-key',
`w32-toggle-lock-key', `mon-keybind-w3m', `mon-keybind-dired-mode',
`mon-keybind-w32-init', `mon-keybind-lisp-interaction-mode',
`mon-keybind-emacs-lisp-mode', `mon-help-key-functions', `mon-help-keys'.\n►►►"
  (mon-default-start-error/sane
   'mon-keybind-w32-init nil ;; just-warn
   (when (and (intern-soft "IS-MON-SYSTEM-P" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-SYSTEM-P)
              (and (intern-soft "IS-W32-P" obarray) ;; *IS-MON-OBARRAY*
                   (bound-and-true-p IS-W32-P)))
     (custom-set-variables
      '(w32-pass-lwindow-to-system nil)
      '(w32-pass-rwindow-to-system nil)
      '(w32-pass-multimedia-buttons-to-system nil)
      '(w32-lwindow-modifier 'super)
      '(w32-rwindow-modifier 'hyper)))
   ))
;;
;; (mon-keybind-w32-init)

;;; ==============================
;;; :CHANGESET 1896 
;;; :CREATED <Timestamp: #{2010-06-17T14:41:40-04:00Z}#{10244} - by MON KEY>
(defun mon-keybind-put-hooks-init (&optional warn-only)
  "Add keybindings to various mode-hooks at init.\n
Evaluated at init time by `mon-set-system-specific-and-load-init'.\n
:SEE-ALSO `mon-keybind-w3m', `mon-keybind-dired-mode', `mon-keybind-w32-init',
`mon-keybind-lisp-interaction-mode', `mon-keybind-emacs-lisp-mode',
`mon-help-key-functions', `mon-help-keys'.\n►►►"
  (mon-default-start-error/sane
   'mon-set-system-specific-and-load-init warn-only
   (mon-keybind-w32-init)
   ;; (remove-hook 'dired-mode-hook 'mon-keybind-dired-mode)
   (add-hook 'dired-mode-hook 'mon-keybind-dired-mode)
   ;; (remove-hook 'completion-list-mode-hook 'mon-keybind-completions)
   (add-hook 'completion-list-mode-hook 'mon-keybind-completions)
   ;; (remove-hook 'emacs-lisp-mode-hook 'mon-keybind-emacs-lisp-mode)
   (add-hook 'emacs-lisp-mode-hook  'mon-keybind-emacs-lisp-mode)
   ;; (remove-hook 'lisp-interaction-mode-hook 'mon-keybind-lisp-interaction-mode)
   (add-hook 'lisp-interaction-mode-hook 'mon-keybind-lisp-interaction-mode)
   ;; (remove-hook 'slime-mode-hook 'mon-keybind-slime)
   (add-hook 'slime-mode-hook 'mon-keybind-slime)
   (when (featurep 'w3m)
     ;; (remove-hook 'w3m-mode-hook 'mon-keybind-w3m)
     (add-hook 'w3m-mode-hook 'mon-keybind-w3m))
   (add-hook 'change-log-mode-hook 'mon-multi-isearch-rmv-hook)
   (when (and (intern-soft "IS-MON-SYSTEM-P" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-SYSTEM-P))
     (eval-after-load "mon-keybindings" '(mon-keybind-globally)))
   ))


;;; ==============================
;;; :CHANGESET 2289
;;; :CREATED <Timestamp: #{2010-11-08T20:17:53-05:00Z}#{10451} - by MON KEY>
(defun mon-set-mon-feature-customs-init (&optional warn-only)
  "Set mon-library specific customizations.\n
Initiliaze values for following variables:\n
 `*mon-timestamp-cond*' `*google-define-buffer-suffix*'  
 `*mon-default-comment-divider*' `*mon-default-comment-start*' 
 `*naf-comment-prefix*' `*ulan-sample-data*'
 `*mon-purge-htmlfontify-dir-on-quit*' `*mon-purge-on-its-all-text-on-quit*'\n
Evaluates `mon-set-boxcutter-init'\n 
:SEE-ALSO .\n►►►"
  (mon-default-start-error/sane 
   'mon-set-mon-feature-customs-init warn-only  
   (when (and (intern-soft "IS-MON-P" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-P)
              (intern-soft "*MON-NAME*" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p *MON-NAME*))
     (custom-set-variables
      '(*mon-timestamp-cond*
        `((,(file-name-nondirectory 
             (directory-file-name *mon-emacs-root*)) 
           ,(cadr (assoc 6 *MON-NAME*)))
          (,(file-name-nondirectory 
             (directory-file-name *mon-naf-mode-root*))
           ,(cadr (assoc 6 *MON-NAME*)))
          (,(file-name-nondirectory 
             (file-name-sans-extension 
              (locate-library "mon-time-utils")))
           ,(cadr (assoc 6 *MON-NAME*)))))))
   (custom-set-variables 
    `(*mon-default-comment-start*   ,(concat (make-string 3 59) " "))
    `(*mon-default-comment-divider* ,(concat ";;; " (make-string 30 61)))
    '(*mon-bind-dir-locals-alist* t)
    ;; :FILE google-define-redux.el
    '(*google-define-buffer-suffix*  '("*" . ":gg-definition*"))
    `(*naf-comment-prefix* ,(make-string 3 59)))
   (when (and (intern-soft "*mon-naf-mode-notes*" obarray) ;; *IS-MON-OBARRAY*
              (bound-and-true-p *mon-naf-mode-notes*)
              (intern-soft "IS-MON-P" obarray) ;;*IS-MON-OBARRAY*
              (bound-and-true-p IS-MON-P)) 
     (custom-set-variables
      '(*ulan-sample-data*
        (file-truename (concat *mon-naf-mode-notes* "/ULAN/ulan_rel_utf8_sample09/")))))
   (custom-set-variables 
    '(*mon-purge-htmlfontify-dir-on-quit* t))
   (when (and (and (intern-soft "IS-W32-P" obarray) ;; *IS-MON-OBARRAY*
                   (bound-and-true-p IS-W32-P))
              (and (intern-soft "*mon-misc-path-alist*" obarray) ;; *IS-MON-OBARRAY*
                   (bound-and-true-p *mon-misc-path-alist*)))
     (custom-set-variables 
      '(*mon-purge-on-its-all-text-on-quit* t)))
   (mon-set-boxcutter-init)
   ))
  
;;; ==============================
;;; :CHANGESET 1786
;;; :CREATED <Timestamp: #{2010-05-29T11:33:29-04:00Z}#{10216} - by MON KEY>
(defun mon-set-system-specific-and-load-init (&optional warn-only)
  "Require and load additional system-type specific configs and procedures.\n
When `IS-MON-P-W32' require mon-w32-load.el\n
When `IS-MON-P-GNU' require mon-GNU-load.el\n
:SEE-ALSO .\n►►►"
  (mon-default-start-error/sane
   'mon-set-system-specific-and-load-init warn-only
   (mon-set-mon-feature-customs-init)
   (cond ((or (and (intern-soft "IS-MON-P-W32" obarray) ;; *IS-MON-OBARRAY*
                   (bound-and-true-p IS-MON-P-W32))
              (and (intern-soft "IS-BUG-P" obarray) ;; *IS-MON-OBARRAY*
                   (bound-and-true-p IS-BUG-P)))
          (require 'mon-w32-load))
         ((and (intern-soft "IS-MON-P" obarray) ;; *IS-MON-OBARRAY*
               (bound-and-true-p IS-MON-P))
          (require 'grep)
          (when (and (intern-soft "IS-MON-P-GNU" obarray) ;; *IS-MON-OBARRAY*
                     (bound-and-true-p IS-MON-P-GNU))
            (require 'mon-GNU-load)
            ;; (require 'mon-GNU-load-no-HG)          
            ;; (load "slime-loads-GNU-clbuild.el")
            (require 'slime-loads-GNU-clbuild)
            (mon-slime-setup-init)
            ;; :BEFORE mon-utils.el
            (mon-set-common-lisp-hspec-init))))
   ;;
   ;; :NOTE :FILE mon-utils.el contains require statements for mon-*.el packages.   
   (require 'mon-utils)
   ;; :NAF-MODE
   ;; (require 'naf-mode)
   ;; :NOTE Automode files with '.naf' file extensions. '.naf' -> NAME AUTHORITY
   ;;       FILE `.naf' is a prefered default extension for anything `naf-mode'
   ;;       related. <Timestamp: #{2008-12-10} - by MON KEY> 
   (add-to-list 'auto-mode-alist '("\\.naf\\'" . naf-mode))
   ;; Evaluate remaining fncns defined below now:
   (mon-set-longlines-init)
   (mon-set-buffer-local-comment-start-init)   
   (mon-set-unicodedata-init)   
   (mon-set-url-pkg-init)
   (mon-set-google-maps-init)
   (mon-set-w3m-init)
   (mon-set-browser-init)
   (mon-set-lisp-init)
   (mon-set-dvc-init)   
   (mon-set-css-path-init)
   ;; (mon-set-auctex-init)
   (mon-set-proced-init)
   (mon-set-rst-mode-faces-init)
   (mon-set-traverselisp-init)
   (mon-set-apache-mode-init)
   (mon-set-erc-configs-init)
   ;; ==============================
   ;;
   ;; :REQUIRE-PACKAGES
   ;;
   ;; ==============================
   ;; :DIRED
   (require 'dired-details)
   (dired-details-install)
   (require 'dired-efap)
   ;; ==============================
   ;; :DOREMI
   ;; :NOTE This is Drew Adams' Do Re Mi commands consolidated to one file.
   ;;       Doesn't include the frame-fns.
   (require 'mon-doremi nil t)
   ;; ==============================
   ;; :NOTE External/Third-Party packages we want available but don't want loaded
   ;;       from mon-*.el packages or which need to be in the environment before
   ;;       loading them.  Also, useful when we are testing a new feature and not
   ;;       sure if we want to use it for the long haul.
   (require 'uniq nil t)
   (require 'regexpl nil t)
   (require 'register-list nil t)
   (require 'boxquote nil t)
   (require 'align-let nil t)
   ;; ==============================
   ;; :JS2-MODE
   ;; (autoload 'js2-mode "js2" nil t)
   ;; (add-to-list 'auto-mode-alist '("\\.js$" . js2-mode))
   ;; ==============================
   ;; :NOTE This is a patched version of Matsushita Akihisa's color-cccur.el
   ;; :SEE (URL `http://www.bookshelf.jp/elc/color-occur.el')
   (require 'mon-color-occur)
   ;;; ==============================
   (require 'etags)
   (custom-set-variables 
    `(tags-table-list ,(car *mon-tags-table-list*)))
   ;; Now put some keybindings on the mode-hooks:
   (mon-keybind-put-hooks-init)
   ))
;;
;; (mon-set-system-specific-and-load-init t)
(mon-set-system-specific-and-load-init)

;;; ==============================
;;; :NOTE Load keybindings last to ensure everything is loaded in first.
(require 'mon-keybindings)

;;; ==============================
(provide 'mon-default-start-loads)
;;; ==============================

(when (and (intern-soft "IS-MON-SYSTEM-P" obarray) ;; *IS-MON-OBARRAY*
           (bound-and-true-p IS-MON-SYSTEM-P))
  (eval-after-load "mon-default-start-loads" '(require 'mon-post-load-hooks)))

 
;; Local Variables:
;; mode: EMACS-LISP
;; coding: utf-8
;; no-byte-compile: t
;; End:

;;; ==============================
;;; mon-default-start-loads.el ends here
;;; EOF