changes
authorJoerg Jaspert <joerg@debian.org>
Thu, 2 May 2013 20:40:30 +0000 (22:40 +0200)
committerJoerg Jaspert <joerg@debian.org>
Thu, 2 May 2013 20:40:30 +0000 (22:40 +0200)
.emacs.d/config/emacs.org
.emacs.d/elisp/local/ganneff-org.el [new file with mode: 0644]
.emacs.d/elisp/local/ganneff.el
.emacs.d/elisp/local/loaddefs.el

index 94c9c96..efa8fe3 100644 (file)
@@ -238,20 +238,21 @@ that is already done in =init.el=.
 I also disliked the repeated /add-to-list/ lines, so I now just have
 one variable and go over that in a loop.
 #+BEGIN_SRC emacs-lisp
-(defvar jj-elisp-subdirs '(local gnus icicle org/contrib tiny mo-git-blame cedet
-                           cedet/eieio ecb jdee/lisp sunrise multiple-cursors
-                           auto-complete yasnippet magit)
-  "List of subdirectories in jj-elisp-dir to add to load-path")
-
-(let (dirval)
-  (dolist (dirval jj-elisp-subdirs)
-    (let ((name (expand-file-name (symbol-name dirval) jj-elisp-dir)))
-      (when (file-exists-p name)
-          (add-to-list 'load-path name)))))
-;; For older emacsen we need an extra directory, which should be at
-;; THE END of the load path
-(when (< emacs-major-version 24)
-  (add-to-list 'load-path (expand-file-name "emacs23" jj-elisp-dir) t))
+  (defvar jj-elisp-subdirs '(local gnus icicle org/contrib tiny mo-git-blame cedet
+                             cedet/eieio ecb jdee/lisp sunrise multiple-cursors
+                             auto-complete yasnippet magit)
+    "List of subdirectories in jj-elisp-dir to add to load-path")
+
+  (let (dirval)
+    (dolist (dirval jj-elisp-subdirs)
+      (let ((name (expand-file-name (symbol-name dirval) jj-elisp-dir)))
+        (when (file-exists-p name)
+            (add-to-list 'load-path name)))))
+  ;; For older emacsen we need an extra directory, which should be at
+  ;; THE END of the load path
+  (when (< emacs-major-version 24)
+    (add-to-list 'load-path (expand-file-name "emacs23" jj-elisp-dir) t))
+
 #+END_SRC
 
 *** Info path
@@ -353,8 +354,13 @@ shell. Consistent look is great.
   (if (boundp 'custom-theme-load-path)
       (progn
         (defun jj-init-theme ()
+
           (interactive)
-          (load-theme 'solarized-dark t))
+          (if (eq jj-color-style 'dark )(load-theme 'solarized-dark t)
+            (load-theme 'solarized-light t))
+          (jj-fix-theme)
+          (makunbound 'jj-fix-theme)
+          )
         (add-to-list 'custom-theme-load-path jj-theme-dir)
         (add-hook 'after-init-hook 'jj-init-theme)
         )
@@ -363,6 +369,38 @@ shell. Consistent look is great.
     (require 'naquadah-theme))
 #+END_SRC
 
+Emacs somehow is too stupid, so we need to help it. When I split the window,
+it entirely forgets there is a theme for the modeline - and reverts to
+the default color for it. Stupid, so hardcode it here once more, and
+then it seems to work.
+#+BEGIN_SRC emacs-lisp
+  (defun jj-fix-theme ()
+    (let* ((base00    "#657b83")
+          (base0     "#839496")
+          (base2     "#eee8d5")
+          ;; background light
+          (base3     "#fdf6e3")
+          (base03    "#002b36")
+          (base02    "#073642")
+          ;; comments
+          (base1     "#93a1a1")
+          ;; emphasized content
+          (base01    "#586e75")
+          ;; Light/Dark adaptive solarized colors
+          (solarized-fg (if (eq jj-color-style 'light) base00 base0))
+          (solarized-bg (if (eq jj-color-style 'light) base3 base03))
+          (solarized-hl (if (eq jj-color-style 'light) base2 base02))
+          (solarized-emph (if (eq jj-color-style 'light) base01 base1))
+          (solarized-comments (if (eq jj-color-style 'light) base1 base01)))
+     (set-face-foreground 'mode-line base0)
+     (set-face-background 'mode-line base02)
+     (set-face-background 'mode-line-inactive base03)
+     (set-face-foreground 'mode-line-inactive base0)
+     )
+   )
+
+#+END_SRC
+
 Make the fringe (gutter) smaller, the argument is a width in pixels (the default is 8)
 #+BEGIN_SRC emacs-lisp
 (if (fboundp 'fringe-mode)
@@ -465,23 +503,23 @@ character(s).
       (org-indent-mode . "")
       (sh-mode . " Σ")
       (nxhtml-mode . "nx"))
-    
+
     "Alist for `clean-mode-line'.
-  
+
   When you add a new element to the alist, keep in mind that you
   must pass the correct minor/major mode symbol and a string you
   want to use in the modeline *in lieu of* the original.
-  
+
   Want some symbols? Go:
-  
+
   ;ςερτζθιοπασδφγηξκλυχψωβνμ
   :ΣΕΡΤΖΘΙΟΠΑΣΔΦΓΗΞΚΛΥΧΨΩΒΝΜ
   @ł€¶ŧ←↓→øþ¨~æſðđŋħ̣ĸł˝^`|»«¢„“”µ·…
   ☃⌕☥
   ")
-  
+
   (add-hook 'after-change-major-mode-hook 'clean-mode-line)
-  
+
 #+END_SRC
 Unfortunately icicles breaks this with the way it adds/removes itself,
 so take it our for now...
@@ -602,12 +640,11 @@ hilighting them makes it obvious where they are.
 (setq show-paren-style 'parenthesis)
 (show-paren-mode +1)
 #+END_SRC
-*** Kill  other buffers
+*** Kill other buffers
 While many editors allow you to close "all the other files, not the one
 you are in", emacs doesn't have this... Except, now it will.
 #+BEGIN_SRC emacs-lisp
-  
-  (global-set-key (kbd "C-c k") 'prelude-kill-other-buffers)
+(global-set-key (kbd "C-c k") 'prelude-kill-other-buffers)
 #+END_SRC
 *** Scrolling
 Default scrolling behaviour in emacs is a bit annoying, who wants to
@@ -805,14 +842,17 @@ where =temporary-file-directory= is not inside my home).
 
 #+END_SRC
 
+Weeks start on Monday, not sunday.
 #+BEGIN_SRC emacs-lisp
 (setq calendar-week-start-day 1)
 #+END_SRC
 
+Searches and matches should ignore case.
 #+BEGIN_SRC emacs-lisp
 (setq-default case-fold-search t)
 #+END_SRC
 
+Which buffers to get rid off at midnight.
 #+BEGIN_SRC emacs-lisp
 (setq clean-buffer-list-kill-buffer-names (quote ("*Help*" "*Apropos*"
                                                   "*Man " "*Buffer List*"
@@ -824,10 +864,13 @@ where =temporary-file-directory= is not inside my home).
                                                   "*magit" "*Calendar")))
 #+END_SRC
 
+Don't display a cursor in non-selected windows.
 #+BEGIN_SRC emacs-lisp
 (setq-default cursor-in-non-selected-windows nil)
 #+END_SRC
 
+What should be displayed in the mode-line for files with those types
+of line endings.
 #+BEGIN_SRC emacs-lisp
 (setq eol-mnemonic-dos "(DOS)")
 (setq eol-mnemonic-mac "(Mac)")
@@ -843,7 +886,6 @@ Much larger threshold for garbage collection prevents it to run too often.
 (setq max-specpdl-size 3000)
 #+END_SRC
 
-
 Unfill paragraph
 From https://raw.github.com/qdot/conf_emacs/master/emacs_conf.org
 #+BEGIN_SRC emacs-lisp
@@ -873,7 +915,35 @@ From https://raw.github.com/qdot/conf_emacs/master/emacs_conf.org
 (server-start)
 #+END_SRC
 
+** Customized variables
+[2013-05-02 Thu 22:14]
+The following contains a set of variables i may reasonably want to
+change on other systems - which don't affect the init file loading
+process. So I *can* use the customization interface for it...
+#+BEGIN_SRC emacs-lisp
+  (defgroup ganneff nil
+    "Modify ganneffs settings"
+    :group 'environment)
+
+  (defgroup ganneff-org-mode nil
+    "Ganneffs org-mode settings"
+    :tag "Ganneffs org-mode settings"
+    :group 'ganneff
+    :link '(custom-group-link "ganneff"))
 
+  (defcustom bh/organization-task-id "d0db0d3c-f22e-42ff-a654-69524ff7cc91"
+    "ID of the organization task."
+    :tag "Organization Task ID"
+    :type 'string
+    :group 'ganneff-org-mode)
+
+  (defcustom org-my-archive-expiry-days 2
+    "The number of days after which a completed task should be auto-archived.
+  This can be 0 for immediate, or a floating point value."
+    :tag "Archive expiry days"
+    :type 'float
+    :group 'ganneff-org-mode)
+#+END_SRC
 * Extra modes and their configuration
 ** mode alists
 For some file endings we need to tell emacs what mode we want for them.
@@ -901,9 +971,12 @@ configuration.
 
 - perl
 #+BEGIN_SRC emacs-lisp
-(add-to-list 'auto-mode-alist '("\\.p[lm]$" . cperl-mode))
+(add-to-list 'auto-mode-alist '("\\.\\([pP][Llm]\\|al\\)\\'" . cperl-mode))
 (add-to-list 'auto-mode-alist '("\\.pod$" . pod-mode))
 (add-to-list 'auto-mode-alist '("\\.tt$" . tt-mode))
+(add-to-list 'interpreter-mode-alist '("perl" . cperl-mode))
+(add-to-list 'interpreter-mode-alist '("perl5" . cperl-mode))
+(add-to-list 'interpreter-mode-alist '("miniperl" . cperl-mode))
 #+END_SRC
 
 - python
@@ -1073,7 +1146,7 @@ formats if one exists in the first 8 lines of the file.
 I like /cperl-mode/ a bit more than the default /perl-mode/, so set it
 up here to be used.
 #+BEGIN_SRC emacs-lisp
-(require 'cperl-mode)
+(autoload 'cperl-mode "cperl-mode" )
 (defalias 'perl-mode 'cperl-mode)
 (setq cperl-hairy t)
 (setq cperl-electric-keywords t)
@@ -1089,9 +1162,22 @@ up here to be used.
 (setq cperl-use-syntax-table-text-property-for-tags t)
 #+END_SRC
 
+And have cperl mode give ElDoc a useful string
+#+BEGIN_SRC emacs-lisp
+(defun my-cperl-eldoc-documentation-function ()
+  "Return meaningful doc string for `eldoc-mode'."
+  (car
+   (let ((cperl-message-on-help-error nil))
+     (cperl-get-help))))
+(add-hook 'cperl-mode-hook
+          (lambda ()
+            (set (make-local-variable 'eldoc-documentation-function)
+                 'my-cperl-eldoc-documentation-function)
+            (eldoc-mode)))
+#+END_SRC
+
 ** python
 #+BEGIN_SRC emacs-lisp
-(load-library "python")
 (autoload 'python-mode "python-mode" "Python Mode." t)
 (add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
 (add-to-list 'interpreter-mode-alist '("python" . python-mode))
@@ -2131,7 +2217,7 @@ Use multiple cursors mode. See [[http://emacsrocks.com/e13.html][Emacs Rocks! mu
 #+BEGIN_SRC emacs-lisp
   (require 'multiple-cursors)
   (define-key region-bindings-mode-map "a" 'mc/mark-all-like-this)
-  
+
   (define-key region-bindings-mode-map "p" 'mc/mark-previous-like-this)
   (define-key region-bindings-mode-map "n" 'mc/mark-next-like-this)
   (define-key region-bindings-mode-map "l" 'mc/edit-lines)
@@ -2264,30 +2350,29 @@ much possible work for me as it can.
 So here, auto-complete-mode, which lets emacs do this, based on what I
 already had typed.
 #+BEGIN_SRC emacs-lisp
-  (require 'auto-complete)
-  (setq ac-comphist-file (expand-file-name "ac-comphist.dat" jj-cache-dir))
-  (setq ac-dwim t)
-  (setq ac-auto-start t)
-
-  ;; custom keybindings to use tab, enter and up and down arrows
-  (define-key ac-complete-mode-map "\t" 'ac-expand)
-  (define-key ac-complete-mode-map "\r" 'ac-complete)
-  (define-key ac-complete-mode-map "\M-n" 'ac-next)
-  (define-key ac-complete-mode-map "\M-p" 'ac-previous)
-  (define-key ac-mode-map (kbd "M-TAB") 'auto-complete)
+(require 'auto-complete)
+(setq ac-comphist-file (expand-file-name "ac-comphist.dat" jj-cache-dir))
+(setq ac-dwim t)
+(setq ac-auto-start t)
 
-  (require 'ac-dabbrev)
-  (setq ac-sources (list ac-source-dabbrev))
+;; custom keybindings to use tab, enter and up and down arrows
+(define-key ac-complete-mode-map "\t" 'ac-expand)
+(define-key ac-complete-mode-map "\r" 'ac-complete)
+(define-key ac-complete-mode-map "\M-n" 'ac-next)
+(define-key ac-complete-mode-map "\M-p" 'ac-previous)
+(define-key ac-mode-map (kbd "M-TAB") 'auto-complete)
 
-  (setq auto-completion-syntax-alist (quote (global accept . word))) ;; Use space and punctuation to accept the current the most likely completion.
-  (setq auto-completion-min-chars (quote (global . 2))) ;; Avoid completion for short trivial words.
-  (setq completion-use-dynamic t)
+(require 'ac-dabbrev)
+(setq ac-sources (list ac-source-dabbrev))
 
-  (add-hook 'latex-mode-hook 'auto-complete-mode)
-  (add-hook 'LaTeX-mode-hook 'auto-complete-mode)
-  (add-hook 'prog-mode-hook 'auto-complete-mode)
-  (add-hook 'org-mode-hook 'auto-complete-mode)
+(setq auto-completion-syntax-alist (quote (global accept . word))) ;; Use space and punctuation to accept the current the most likely completion.
+(setq auto-completion-min-chars (quote (global . 2))) ;; Avoid completion for short trivial words.
+(setq completion-use-dynamic t)
 
+(add-hook 'latex-mode-hook 'auto-complete-mode)
+(add-hook 'LaTeX-mode-hook 'auto-complete-mode)
+(add-hook 'prog-mode-hook 'auto-complete-mode)
+(add-hook 'org-mode-hook 'auto-complete-mode)
 #+END_SRC
 ** yaml-mode
 [2013-04-28 So 01:13]
@@ -2312,6 +2397,7 @@ understand for me.
   (add-hook 'after-init-hook #'global-flycheck-mode))
 #+END_SRC
 
+
 * Customized variables
 :PROPERTIES:
 :ID: 0102208d-fdf6-4928-9e40-7e341bd3aa3a
@@ -2322,8 +2408,8 @@ things I keep for a long while into statements somewhere else, not just
 custom-set here, but we need it anyways.
 
 #+BEGIN_SRC emacs-lisp
-  (setq custom-file jj-custom-file)
-  (safe-load custom-file)
+(setq custom-file jj-custom-file)
+(safe-load custom-file)
 #+END_SRC
 
 The source of this is:
diff --git a/.emacs.d/elisp/local/ganneff-org.el b/.emacs.d/elisp/local/ganneff-org.el
new file mode 100644 (file)
index 0000000..2671166
--- /dev/null
@@ -0,0 +1,718 @@
+;;; ganneff-org.el --- Some functions and stuff I use
+
+;; Copyright (C) 2012.2013 Joerg Jaspert
+
+;;; Commentary:
+
+;; This file contains all extra functions that deal with my
+;; org-mode setup (which in large parts is copied from Bernt Hansen,
+;; see below).
+;;
+;; The functions in the bh/ namespace are taken from
+;; http://doc.norang.ca/org-mode.org.html which has:
+;; #+AUTHOR: Bernt Hansen (IRC:Thumper_ on freenode)
+;; #+EMAIL: bernt@norang.ca
+;; and the following license statement:
+;;
+;; This document http://doc.norang.ca/org-mode.html and (either in its
+;; HTML format or in its Org format) is licensed under the GNU Free
+;; Documentation License version 1.3 or later
+;; (http://www.gnu.org/copyleft/fdl.html).
+
+;; The code examples and css stylesheets are licensed under the GNU
+;; General Public License v3 or later
+;; (http://www.gnu.org/licenses/gpl.html).
+
+;;; Code:
+
+;;;###autoload
+(defun bh/show-org-agenda ()
+  "Show org-modes agenda."
+  (interactive)
+  (switch-to-buffer "*Org Agenda( )*")
+  (delete-other-windows))
+
+; Exclude DONE state tasks from refile targets
+;;;###autoload
+(defun bh/verify-refile-target ()
+  "Exclude todo keywords with a done state from refile targets."
+  (not (member (nth 2 (org-heading-components)) org-done-keywords)))
+
+;;;###autoload
+(defmacro bh/agenda-sort-test (fn a b)
+  "Test for agenda sort."
+  `(cond
+    ; if both match leave them unsorted
+    ((and (apply ,fn (list ,a))
+          (apply ,fn (list ,b)))
+     (setq result nil))
+    ; if a matches put a first
+    ((apply ,fn (list ,a))
+     (setq result -1))
+    ; otherwise if b matches put b first
+    ((apply ,fn (list ,b))
+     (setq result 1))
+    ; if none match leave them unsorted
+    (t nil)))
+
+;;;###autoload
+(defmacro bh/agenda-sort-test-num (fn compfn a b)
+  `(cond
+    ((apply ,fn (list ,a))
+     (setq num-a (string-to-number (match-string 1 ,a)))
+     (if (apply ,fn (list ,b))
+         (progn
+           (setq num-b (string-to-number (match-string 1 ,b)))
+           (setq result (if (apply ,compfn (list num-a num-b))
+                            -1
+                          1)))
+       (setq result -1)))
+    ((apply ,fn (list ,b))
+     (setq result 1))
+    (t nil)))
+
+;;;###autoload
+(defun bh/agenda-sort (a b)
+  "Sorting strategy for agenda items.
+Late deadlines first, then scheduled, then non-late deadlines"
+  (let (result num-a num-b)
+    (cond
+     ; time specific items are already sorted first by org-agenda-sorting-strategy
+
+     ; non-deadline and non-scheduled items next
+     ((bh/agenda-sort-test 'bh/is-not-scheduled-or-deadline a b))
+
+     ; deadlines for today next
+     ((bh/agenda-sort-test 'bh/is-due-deadline a b))
+
+     ; late deadlines next
+     ((bh/agenda-sort-test-num 'bh/is-late-deadline '< a b))
+
+     ; scheduled items for today next
+     ((bh/agenda-sort-test 'bh/is-scheduled-today a b))
+
+     ; late scheduled items next
+     ((bh/agenda-sort-test-num 'bh/is-scheduled-late '> a b))
+
+     ; pending deadlines last
+     ((bh/agenda-sort-test-num 'bh/is-pending-deadline '< a b))
+
+     ; finally default to unsorted
+     (t (setq result nil)))
+    result))
+
+;;;###autoload
+(defun bh/is-not-scheduled-or-deadline (date-str)
+  (and (not (bh/is-deadline date-str))
+       (not (bh/is-scheduled date-str))))
+
+;;;###autoload
+(defun bh/is-due-deadline (date-str)
+  (string-match "Deadline:" date-str))
+
+;;;###autoload
+(defun bh/is-late-deadline (date-str)
+  (string-match "In *\\(-.*\\)d\.:" date-str))
+
+;;;###autoload
+(defun bh/is-pending-deadline (date-str)
+  (string-match "In \\([^-]*\\)d\.:" date-str))
+
+;;;###autoload
+(defun bh/is-deadline (date-str)
+  (or (bh/is-due-deadline date-str)
+      (bh/is-late-deadline date-str)
+      (bh/is-pending-deadline date-str)))
+
+;;;###autoload
+(defun bh/is-scheduled (date-str)
+  (or (bh/is-scheduled-today date-str)
+      (bh/is-scheduled-late date-str)))
+
+;;;###autoload
+(defun bh/is-scheduled-today (date-str)
+  (string-match "Scheduled:" date-str))
+
+;;;###autoload
+(defun bh/is-scheduled-late (date-str)
+  (string-match "Sched\.\\(.*\\)x:" date-str))
+
+;;;###autoload
+(defun bh/hide-other ()
+  (interactive)
+  (save-excursion
+    (org-back-to-heading 'invisible-ok)
+    (hide-other)
+    (org-cycle)
+    (org-cycle)
+    (org-cycle)))
+
+;;;###autoload
+(defun bh/set-truncate-lines ()
+  "Toggle value of truncate-lines and refresh window display."
+  (interactive)
+  (setq truncate-lines (not truncate-lines))
+  ;; now refresh window display (an idiom from simple.el):
+  (save-excursion
+    (set-window-start (selected-window)
+                      (window-start (selected-window)))))
+
+;;;###autoload
+(defun bh/skip-non-archivable-tasks ()
+  "Skip trees that are not available for archiving"
+  (save-restriction
+    (widen)
+    (let ((next-headline (save-excursion (or (outline-next-heading) (point-max)))))
+      ;; Consider only tasks with done todo headings as archivable candidates
+      (if (member (org-get-todo-state) org-done-keywords)
+          (let* ((subtree-end (save-excursion (org-end-of-subtree t)))
+                 (daynr (string-to-int (format-time-string "%d" (current-time))))
+                 (a-month-ago (* 60 60 24 (+ daynr 1)))
+                 (last-month (format-time-string "%Y-%m-" (time-subtract (current-time) (seconds-to-time a-month-ago))))
+                 (this-month (format-time-string "%Y-%m-" (current-time)))
+                 (subtree-is-current (save-excursion
+                                       (forward-line 1)
+                                       (and (< (point) subtree-end)
+    (re-search-forward (concat last-month "\\|" this-month) subtree-end t)))))
+            (if subtree-is-current
+                next-headline ; Has a date in this month or last month, skip it
+              nil))  ; available to archive
+        (or next-headline (point-max))))))
+
+;;;###autoload
+(defun bh/make-org-scratch ()
+  (interactive)
+  (find-file "/tmp/publish/scratch.org")
+  (gnus-make-directory "/tmp/publish"))
+
+;;;###autoload
+(defun bh/switch-to-scratch ()
+  (interactive)
+  (switch-to-buffer "*scratch*"))
+
+;;;###autoload
+(defun bh/org-todo (arg)
+  (interactive "p")
+  (if (equal arg 4)
+      (save-restriction
+        (widen)
+        (org-narrow-to-subtree)
+        (org-show-todo-tree nil))
+    (widen)
+    (org-narrow-to-subtree)
+    (org-show-todo-tree nil)))
+
+;;;###autoload
+(defun bh/widen ()
+  (interactive)
+  (if (equal major-mode 'org-agenda-mode)
+      (org-agenda-remove-restriction-lock)
+    (widen)
+    (org-agenda-remove-restriction-lock)))
+
+;;;###autoload
+(defun bh/insert-inactive-timestamp ()
+  (interactive)
+  (org-insert-time-stamp nil t t nil nil nil))
+
+;;;###autoload
+(defun bh/insert-heading-inactive-timestamp ()
+  (save-excursion
+    (org-return)
+    (org-cycle)
+    (bh/insert-inactive-timestamp)))
+
+;; Remove empty LOGBOOK drawers on clock out
+;;;###autoload
+(defun bh/remove-empty-drawer-on-clock-out ()
+  (interactive)
+  (save-excursion
+    (beginning-of-line 0)
+    (org-remove-empty-drawer-at "LOGBOOK" (point))))
+
+;;;###autoload
+(defun bh/prepare-meeting-notes ()
+  "Prepare meeting notes for email
+   Take selected region and convert tabs to spaces, mark TODOs with leading >>>, and copy to kill ring for pasting"
+  (interactive)
+  (let (prefix)
+    (save-excursion
+      (save-restriction
+        (narrow-to-region (region-beginning) (region-end))
+        (untabify (point-min) (point-max))
+        (goto-char (point-min))
+        (while (re-search-forward "^\\( *-\\\) \\(TODO\\|DONE\\): " (point-max) t)
+          (replace-match (concat (make-string (length (match-string 1)) ?>) " " (match-string 2) ": ")))
+        (goto-char (point-min))
+        (kill-ring-save (point-min) (point-max))))))
+
+;; Phone capture template handling with BBDB lookup
+;; Adapted from code by Gregory J. Grubbs
+;;;###autoload
+(defun bh/phone-call ()
+  "Return name and company info for caller from bbdb lookup"
+  (interactive)
+  (let* (name rec caller)
+    (setq name (completing-read "Who is calling? "
+                                (bbdb-hashtable)
+                                'bbdb-completion-predicate
+                                'confirm))
+    (when (> (length name) 0)
+; Something was supplied - look it up in bbdb
+      (setq rec
+            (or (first
+                 (or (bbdb-search (bbdb-records) name nil nil)
+                     (bbdb-search (bbdb-records) nil name nil)))
+                name)))
+
+; Build the bbdb link if we have a bbdb record, otherwise just return the name
+    (setq caller (cond ((and rec (vectorp rec))
+                        (let ((name (bbdb-record-name rec))
+                              (company (bbdb-record-company rec)))
+                          (concat "[[bbdb:"
+                                  name "]["
+                                  name "]]"
+                                  (when company
+                                    (concat " - " company)))))
+                       (rec)
+                       (t "NameOfCaller")))
+    (insert caller)))
+
+;;;###autoload
+(defun org-my-archive-done-tasks ()
+  (interactive)
+  (save-excursion
+    (goto-char (point-min))
+    (let ((done-regexp
+           (concat "\\* \\(" (regexp-opt org-done-keywords) "\\) "))
+          (state-regexp
+           (concat "- State \"\\(" (regexp-opt org-done-keywords)
+                   "\\)\"\\s-*\\[\\([^]\n]+\\)\\]")))
+      (while (re-search-forward done-regexp nil t)
+        (let ((end (save-excursion
+                     (outline-next-heading)
+                     (point)))
+              begin)
+          (goto-char (line-beginning-position))
+          (setq begin (point))
+          (if (re-search-forward state-regexp end t)
+              (let* ((time-string (match-string 2))
+                     (when-closed (org-parse-time-string time-string)))
+                (if (>= (time-to-number-of-days
+                         (time-subtract (current-time)
+                                        (apply #'encode-time when-closed)))
+                        org-my-archive-expiry-days)
+                    (org-archive-subtree)))
+            (goto-char end)))))
+    (save-buffer)))
+(setq safe-local-variable-values (quote ((after-save-hook archive-done-tasks))))
+;;;###autoload
+(defalias 'archive-done-tasks 'org-my-archive-done-tasks)
+
+;;;###autoload
+(defun bh/is-project-p ()
+  "Any task with a todo keyword subtask"
+  (save-restriction
+    (widen)
+    (let ((has-subtask)
+          (subtree-end (save-excursion (org-end-of-subtree t)))
+          (is-a-task (member (nth 2 (org-heading-components)) org-todo-keywords-1)))
+      (save-excursion
+        (forward-line 1)
+        (while (and (not has-subtask)
+                    (< (point) subtree-end)
+                    (re-search-forward "^\*+ " subtree-end t))
+          (when (member (org-get-todo-state) org-todo-keywords-1)
+            (setq has-subtask t))))
+      (and is-a-task has-subtask))))
+
+;;;###autoload
+(defun bh/is-project-subtree-p ()
+  "Any task with a todo keyword that is in a project subtree.
+Callers of this function already widen the buffer view."
+  (let ((task (save-excursion (org-back-to-heading 'invisible-ok)
+                              (point))))
+    (save-excursion
+      (bh/find-project-task)
+      (if (equal (point) task)
+          nil
+        t))))
+
+;;;###autoload
+(defun bh/is-task-p ()
+  "Any task with a todo keyword and no subtask"
+  (save-restriction
+    (widen)
+    (let ((has-subtask)
+          (subtree-end (save-excursion (org-end-of-subtree t)))
+          (is-a-task (member (nth 2 (org-heading-components)) org-todo-keywords-1)))
+      (save-excursion
+        (forward-line 1)
+        (while (and (not has-subtask)
+                    (< (point) subtree-end)
+                    (re-search-forward "^\*+ " subtree-end t))
+          (when (member (org-get-todo-state) org-todo-keywords-1)
+            (setq has-subtask t))))
+      (and is-a-task (not has-subtask)))))
+
+;;;###autoload
+(defun bh/is-subproject-p ()
+  "Any task which is a subtask of another project"
+  (let ((is-subproject)
+        (is-a-task (member (nth 2 (org-heading-components)) org-todo-keywords-1)))
+    (save-excursion
+      (while (and (not is-subproject) (org-up-heading-safe))
+        (when (member (nth 2 (org-heading-components)) org-todo-keywords-1)
+          (setq is-subproject t))))
+    (and is-a-task is-subproject)))
+
+;;;###autoload
+(defun bh/list-sublevels-for-projects-indented ()
+  "Set org-tags-match-list-sublevels so when restricted to a subtree we list all subtasks.
+  This is normally used by skipping functions where this variable is already local to the agenda."
+  (if (marker-buffer org-agenda-restrict-begin)
+      (setq org-tags-match-list-sublevels 'indented)
+    (setq org-tags-match-list-sublevels nil))
+  nil)
+
+;;;###autoload
+(defun bh/list-sublevels-for-projects ()
+  "Set org-tags-match-list-sublevels so when restricted to a subtree we list all subtasks.
+  This is normally used by skipping functions where this variable is already local to the agenda."
+  (if (marker-buffer org-agenda-restrict-begin)
+      (setq org-tags-match-list-sublevels t)
+    (setq org-tags-match-list-sublevels nil))
+  nil)
+
+;;;###autoload
+(defun bh/skip-non-stuck-projects ()
+  "Skip trees that are not stuck projects"
+  (bh/list-sublevels-for-projects-indented)
+  (save-restriction
+    (widen)
+   (let ((next-headline (save-excursion (or (outline-next-heading) (point-max)))))
+      (if (bh/is-project-p)
+          (let* ((subtree-end (save-excursion (org-end-of-subtree t)))
+                 (has-next ))
+            (save-excursion
+              (forward-line 1)
+              (while (and (not has-next) (< (point) subtree-end) (re-search-forward "^\\*+ NEXT " subtree-end t))
+                (unless (member "WAITING" (org-get-tags-at))
+                  (setq has-next t))))
+            (if has-next
+                next-headline
+              nil)) ; a stuck project, has subtasks but no next task
+        next-headline))))
+
+;;;###autoload
+(defun bh/skip-non-projects ()
+  "Skip trees that are not projects"
+  (bh/list-sublevels-for-projects-indented)
+  (if (save-excursion (bh/skip-non-stuck-projects))
+      (save-restriction
+        (widen)
+        (let ((subtree-end (save-excursion (org-end-of-subtree t))))
+          (if (bh/is-project-p)
+              nil
+            subtree-end)))
+    (org-end-of-subtree t)))
+
+;;;###autoload
+(defun bh/skip-project-trees-and-habits ()
+  "Skip trees that are projects"
+  (save-restriction
+    (widen)
+    (let ((subtree-end (save-excursion (org-end-of-subtree t))))
+      (cond
+       ((bh/is-project-p)
+        subtree-end)
+       ((org-is-habit-p)
+        subtree-end)
+       (t
+        nil)))))
+
+;;;###autoload
+(defun bh/skip-projects-and-habits-and-single-tasks ()
+  "Skip trees that are projects, tasks that are habits, single non-project tasks"
+  (save-restriction
+    (widen)
+    (let ((next-headline (save-excursion (or (outline-next-heading) (point-max)))))
+      (cond
+       ((org-is-habit-p)
+        next-headline)
+       ((bh/is-project-p)
+        next-headline)
+       ((and (bh/is-task-p) (not (bh/is-project-subtree-p)))
+        next-headline)
+       (t
+        nil)))))
+
+;;;###autoload
+(defun bh/skip-project-tasks-maybe ()
+  "Show tasks related to the current restriction.
+When restricted to a project, skip project and sub project tasks, habits, NEXT tasks, and loose tasks.
+When not restricted, skip project and sub-project tasks, habits, and project related tasks."
+  (save-restriction
+    (widen)
+    (let* ((subtree-end (save-excursion (org-end-of-subtree t)))
+           (next-headline (save-excursion (or (outline-next-heading) (point-max))))
+           (limit-to-project (marker-buffer org-agenda-restrict-begin)))
+      (cond
+       ((bh/is-project-p)
+        next-headline)
+       ((org-is-habit-p)
+        subtree-end)
+       ((and (not limit-to-project)
+             (bh/is-project-subtree-p))
+        subtree-end)
+       ((and limit-to-project
+             (bh/is-project-subtree-p)
+             (member (org-get-todo-state) (list "NEXT")))
+        subtree-end)
+       (t
+        nil)))))
+
+;;;###autoload
+(defun bh/skip-projects-and-habits ()
+  "Skip trees that are projects and tasks that are habits"
+  (save-restriction
+    (widen)
+    (let ((subtree-end (save-excursion (org-end-of-subtree t))))
+      (cond
+       ((bh/is-project-p)
+        subtree-end)
+       ((org-is-habit-p)
+        subtree-end)
+       (t
+        nil)))))
+
+;;;###autoload
+(defun bh/skip-non-subprojects ()
+  "Skip trees that are not projects"
+  (let ((next-headline (save-excursion (outline-next-heading))))
+    (if (bh/is-subproject-p)
+        nil
+      next-headline)))
+
+; Erase all reminders and rebuilt reminders for today from the agenda
+;;;###autoload
+(defun bh/org-agenda-to-appt ()
+  (interactive)
+  (setq appt-time-msg-list nil)
+  (org-agenda-to-appt))
+
+
+;;;###autoload
+(defun bh/restrict-to-file-or-follow (arg)
+  "Set agenda restriction to 'file or with argument invoke follow mode.
+I don't use follow mode very often but I restrict to file all the time
+so change the default 'F' binding in the agenda to allow both"
+  (interactive "p")
+  (if (equal arg 4)
+      (org-agenda-follow-mode)
+    (if (equal major-mode 'org-agenda-mode)
+        (bh/set-agenda-restriction-lock 4)
+      (widen))))
+
+;;;###autoload
+(defun bh/narrow-to-org-subtree ()
+  (widen)
+  (org-narrow-to-subtree)
+  (save-restriction
+    (org-agenda-set-restriction-lock)))
+
+;;;###autoload
+(defun bh/narrow-to-subtree ()
+  (interactive)
+  (if (equal major-mode 'org-agenda-mode)
+      (org-with-point-at (org-get-at-bol 'org-hd-marker)
+        (bh/narrow-to-org-subtree))
+    (bh/narrow-to-org-subtree)))
+
+;;;###autoload
+(defun bh/narrow-up-one-org-level ()
+  (widen)
+  (save-excursion
+    (outline-up-heading 1 'invisible-ok)
+    (bh/narrow-to-org-subtree)))
+
+;;;###autoload
+(defun bh/narrow-up-one-level ()
+  (interactive)
+  (if (equal major-mode 'org-agenda-mode)
+      (org-with-point-at (org-get-at-bol 'org-hd-marker)
+        (bh/narrow-up-one-org-level))
+    (bh/narrow-up-one-org-level)))
+
+;;;###autoload
+(defun bh/narrow-to-org-project ()
+  (widen)
+  (save-excursion
+    (bh/find-project-task)
+    (bh/narrow-to-org-subtree)))
+
+;;;###autoload
+(defun bh/narrow-to-project ()
+  (interactive)
+  (if (equal major-mode 'org-agenda-mode)
+      (org-with-point-at (org-get-at-bol 'org-hd-marker)
+        (bh/narrow-to-org-project))
+    (bh/narrow-to-org-project)))
+
+;;;###autoload
+(defun bh/clock-in-to-next (kw)
+  "Switch a task from TODO to NEXT when clocking in.
+  Skips capture tasks, projects, and subprojects.
+  Switch projects and subprojects from NEXT back to TODO"
+  (when (not (and (boundp 'org-capture-mode) org-capture-mode))
+    (cond
+     ((and (member (org-get-todo-state) (list "TODO"))
+           (bh/is-task-p))
+      "NEXT")
+     ((and (member (org-get-todo-state) (list "NEXT"))
+           (bh/is-project-p))
+      "TODO"))))
+
+;;;###autoload
+(defun bh/find-project-task ()
+  "Move point to the parent (project) task if any"
+  (save-restriction
+    (widen)
+    (let ((parent-task (save-excursion (org-back-to-heading 'invisible-ok) (point))))
+      (while (org-up-heading-safe)
+        (when (member (nth 2 (org-heading-components)) org-todo-keywords-1)
+          (setq parent-task (point))))
+      (goto-char parent-task)
+      parent-task)))
+
+;;;###autoload
+(defun bh/punch-in (arg)
+  "Start continuous clocking and set the default task to the
+  selected task.  If no task is selected set the Organization task
+  as the default task."
+  (interactive "p")
+  (setq bh/keep-clock-running t)
+  (if (equal major-mode 'org-agenda-mode)
+      ;;
+      ;; We're in the agenda
+      ;;
+      (let* ((marker (org-get-at-bol 'org-hd-marker))
+             (tags (org-with-point-at marker (org-get-tags-at))))
+        (if (and (eq arg 4) tags)
+            (org-agenda-clock-in '(16))
+          (bh/clock-in-organization-task-as-default)))
+    ;;
+    ;; We are not in the agenda
+    ;;
+    (save-restriction
+      (widen)
+; Find the tags on the current task
+      (if (and (equal major-mode 'org-mode) (not (org-before-first-heading-p)) (eq arg 4))
+          (org-clock-in '(16))
+        (bh/clock-in-organization-task-as-default)))))
+
+;;;###autoload
+(defun bh/punch-out ()
+  (interactive)
+  (setq bh/keep-clock-running nil)
+  (when (org-clock-is-active)
+    (org-clock-out))
+  (org-agenda-remove-restriction-lock))
+
+;;;###autoload
+(defun bh/clock-in-default-task ()
+  (save-excursion
+    (org-with-point-at org-clock-default-task
+      (org-clock-in))))
+
+;;;###autoload
+(defun bh/clock-in-parent-task ()
+  "Move point to the parent (project) task if any and clock in"
+  (let ((parent-task))
+    (save-excursion
+      (save-restriction
+        (widen)
+        (while (and (not parent-task) (org-up-heading-safe))
+          (when (member (nth 2 (org-heading-components)) org-todo-keywords-1)
+            (setq parent-task (point))))
+        (if parent-task
+            (org-with-point-at parent-task
+              (org-clock-in))
+          (when bh/keep-clock-running
+            (bh/clock-in-default-task)))))))
+
+;;;###autoload
+(defun bh/clock-in-organization-task-as-default ()
+  (interactive)
+  (org-with-point-at (org-id-find bh/organization-task-id 'marker)
+    (org-clock-in '(16))))
+
+;;;###autoload
+(defun bh/clock-out-maybe ()
+  (when (and bh/keep-clock-running
+             (not org-clock-clocking-in)
+             (marker-buffer org-clock-default-task)
+             (not org-clock-resolving-clocks-due-to-idleness))
+    (bh/clock-in-parent-task)))
+
+;;;###autoload
+(defun bh/clock-in-last-task (arg)
+  "Clock in the interrupted task if there is one
+  Skip the default task and get the next one.
+  A prefix arg forces clock in of the default task."
+  (interactive "p")
+  (let ((clock-in-to-task
+         (cond
+          ((eq arg 4) org-clock-default-task)
+          ((and (org-clock-is-active)
+                (equal org-clock-default-task (cadr org-clock-history)))
+           (caddr org-clock-history))
+          ((org-clock-is-active) (cadr org-clock-history))
+          ((equal org-clock-default-task (car org-clock-history)) (cadr org-clock-history))
+          (t (car org-clock-history)))))
+    (org-with-point-at clock-in-to-task
+      (org-clock-in nil))))
+
+;;;###autoload
+(defun bh/set-agenda-restriction-lock (arg)
+  "Set restriction lock to current task subtree or file if prefix is specified"
+  (interactive "p")
+  (let* ((pom (bh/get-pom-from-agenda-restriction-or-point))
+         (tags (org-with-point-at pom (org-get-tags-at))))
+    (let ((restriction-type (if (equal arg 4) 'file 'subtree)))
+      (save-restriction
+        (cond
+         ((and (equal major-mode 'org-agenda-mode) pom)
+          (org-with-point-at pom
+            (org-agenda-set-restriction-lock restriction-type)))
+         ((and (equal major-mode 'org-mode) (org-before-first-heading-p))
+          (org-agenda-set-restriction-lock 'file))
+         (pom
+          (org-with-point-at pom
+            (org-agenda-set-restriction-lock restriction-type))))))))
+
+;;;###autoload
+(defun bh/get-pom-from-agenda-restriction-or-point ()
+  (or (org-get-at-bol 'org-hd-marker)
+      (and (marker-position org-agenda-restrict-begin) org-agenda-restrict-begin)
+      (and (equal major-mode 'org-mode) (point))
+      org-clock-marker))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+(provide 'ganneff-org)
+
+;;; ganneff-org.el ends here
+
index 15bd2e8..ea1e307 100644 (file)
@@ -1,44 +1,14 @@
-;;; ganneff.el --- Lotsa functiuons and their variables for stuff
-;;;                ganneffs .emacs wants
+;;; ganneff1.el --- Some functions and stuff I use
 
-;; Copyright (C) 2012 Joerg Jaspert
+;;; Copyright (C) 2012.2013 Joerg Jaspert
 
 ;; Filename: ganneff.de
 ;; Author: Joerg Jaspert <joerg@debian.org>
 
-;; The functions in the bh/ namespace are taken from
-;; http://doc.norang.ca/org-mode.org.html which has:
-;; #+AUTHOR: Bernt Hansen (IRC:Thumper_ on freenode)
-;; #+EMAIL: bernt@norang.ca
-;; and the following license statement:
-;;
-;; This document http://doc.norang.ca/org-mode.html and (either in its
-;; HTML format or in its Org format) is licensed under the GNU Free
-;; Documentation License version 1.3 or later
-;; (http://www.gnu.org/copyleft/fdl.html).
-
-;; The code examples and css stylesheets are licensed under the GNU
-;; General Public License v3 or later
-;; (http://www.gnu.org/licenses/gpl.html).
-
-
-(defgroup ganneff nil
-  "Modify ganneffs settings"
-  :group 'environment)
-
-(defcustom bh/organization-task-id "d0db0d3c-f22e-42ff-a654-69524ff7cc91"
-  "ID of the organization task"
-  :tag "Organization Task ID"
-  :type 'string
-  :group 'ganneff)
-
-(defcustom org-my-archive-expiry-days 2
-  "The number of days after which a completed task should be auto-archived.
-This can be 0 for immediate, or a floating point value."
-  :tag "Archive expiry days"
-  :type 'float
-  :group 'ganneff)
+;;; Commentary:
+;; This is just stuff I use in my emacs configuration.
 
+;;; Code:
 
 ;;;###autoload
 (defun my-dired-init ()
@@ -53,677 +23,6 @@ This can be 0 for immediate, or a floating point value."
 ;;;###autoload
 (defun ido-disable-line-trucation () (set (make-local-variable 'truncate-lines) nil))
 
-;;;###autoload
-(defun bh/show-org-agenda ()
-  (interactive)
-  (switch-to-buffer "*Org Agenda*")
-  (delete-other-windows))
-
-; Exclude DONE state tasks from refile targets
-;;;###autoload
-(defun bh/verify-refile-target ()
-  "Exclude todo keywords with a done state from refile targets"
-  (not (member (nth 2 (org-heading-components)) org-done-keywords)))
-
-;;;###autoload
-(defmacro bh/agenda-sort-test (fn a b)
-  "Test for agenda sort"
-  `(cond
-    ; if both match leave them unsorted
-    ((and (apply ,fn (list ,a))
-          (apply ,fn (list ,b)))
-     (setq result nil))
-    ; if a matches put a first
-    ((apply ,fn (list ,a))
-     (setq result -1))
-    ; otherwise if b matches put b first
-    ((apply ,fn (list ,b))
-     (setq result 1))
-    ; if none match leave them unsorted
-    (t nil)))
-
-;;;###autoload
-(defmacro bh/agenda-sort-test-num (fn compfn a b)
-  `(cond
-    ((apply ,fn (list ,a))
-     (setq num-a (string-to-number (match-string 1 ,a)))
-     (if (apply ,fn (list ,b))
-         (progn
-           (setq num-b (string-to-number (match-string 1 ,b)))
-           (setq result (if (apply ,compfn (list num-a num-b))
-                            -1
-                          1)))
-       (setq result -1)))
-    ((apply ,fn (list ,b))
-     (setq result 1))
-    (t nil)))
-
-;;;###autoload
-(defun bh/agenda-sort (a b)
-  "Sorting strategy for agenda items.
-Late deadlines first, then scheduled, then non-late deadlines"
-  (let (result num-a num-b)
-    (cond
-     ; time specific items are already sorted first by org-agenda-sorting-strategy
-
-     ; non-deadline and non-scheduled items next
-     ((bh/agenda-sort-test 'bh/is-not-scheduled-or-deadline a b))
-
-     ; deadlines for today next
-     ((bh/agenda-sort-test 'bh/is-due-deadline a b))
-
-     ; late deadlines next
-     ((bh/agenda-sort-test-num 'bh/is-late-deadline '< a b))
-
-     ; scheduled items for today next
-     ((bh/agenda-sort-test 'bh/is-scheduled-today a b))
-
-     ; late scheduled items next
-     ((bh/agenda-sort-test-num 'bh/is-scheduled-late '> a b))
-
-     ; pending deadlines last
-     ((bh/agenda-sort-test-num 'bh/is-pending-deadline '< a b))
-
-     ; finally default to unsorted
-     (t (setq result nil)))
-    result))
-
-;;;###autoload
-(defun bh/is-not-scheduled-or-deadline (date-str)
-  (and (not (bh/is-deadline date-str))
-       (not (bh/is-scheduled date-str))))
-
-;;;###autoload
-(defun bh/is-due-deadline (date-str)
-  (string-match "Deadline:" date-str))
-
-;;;###autoload
-(defun bh/is-late-deadline (date-str)
-  (string-match "In *\\(-.*\\)d\.:" date-str))
-
-;;;###autoload
-(defun bh/is-pending-deadline (date-str)
-  (string-match "In \\([^-]*\\)d\.:" date-str))
-
-;;;###autoload
-(defun bh/is-deadline (date-str)
-  (or (bh/is-due-deadline date-str)
-      (bh/is-late-deadline date-str)
-      (bh/is-pending-deadline date-str)))
-
-;;;###autoload
-(defun bh/is-scheduled (date-str)
-  (or (bh/is-scheduled-today date-str)
-      (bh/is-scheduled-late date-str)))
-
-;;;###autoload
-(defun bh/is-scheduled-today (date-str)
-  (string-match "Scheduled:" date-str))
-
-;;;###autoload
-(defun bh/is-scheduled-late (date-str)
-  (string-match "Sched\.\\(.*\\)x:" date-str))
-
-;;;###autoload
-(defun bh/hide-other ()
-  (interactive)
-  (save-excursion
-    (org-back-to-heading 'invisible-ok)
-    (hide-other)
-    (org-cycle)
-    (org-cycle)
-    (org-cycle)))
-
-;;;###autoload
-(defun bh/set-truncate-lines ()
-  "Toggle value of truncate-lines and refresh window display."
-  (interactive)
-  (setq truncate-lines (not truncate-lines))
-  ;; now refresh window display (an idiom from simple.el):
-  (save-excursion
-    (set-window-start (selected-window)
-                      (window-start (selected-window)))))
-
-;;;###autoload
-(defun bh/skip-non-archivable-tasks ()
-  "Skip trees that are not available for archiving"
-  (save-restriction
-    (widen)
-    (let ((next-headline (save-excursion (or (outline-next-heading) (point-max)))))
-      ;; Consider only tasks with done todo headings as archivable candidates
-      (if (member (org-get-todo-state) org-done-keywords)
-          (let* ((subtree-end (save-excursion (org-end-of-subtree t)))
-                 (daynr (string-to-int (format-time-string "%d" (current-time))))
-                 (a-month-ago (* 60 60 24 (+ daynr 1)))
-                 (last-month (format-time-string "%Y-%m-" (time-subtract (current-time) (seconds-to-time a-month-ago))))
-                 (this-month (format-time-string "%Y-%m-" (current-time)))
-                 (subtree-is-current (save-excursion
-                                       (forward-line 1)
-                                       (and (< (point) subtree-end)
-    (re-search-forward (concat last-month "\\|" this-month) subtree-end t)))))
-            (if subtree-is-current
-                next-headline ; Has a date in this month or last month, skip it
-              nil))  ; available to archive
-        (or next-headline (point-max))))))
-
-;;;###autoload
-(defun bh/make-org-scratch ()
-  (interactive)
-  (find-file "/tmp/publish/scratch.org")
-  (gnus-make-directory "/tmp/publish"))
-
-;;;###autoload
-(defun bh/switch-to-scratch ()
-  (interactive)
-  (switch-to-buffer "*scratch*"))
-
-;;;###autoload
-(defun bh/org-todo (arg)
-  (interactive "p")
-  (if (equal arg 4)
-      (save-restriction
-        (widen)
-        (org-narrow-to-subtree)
-        (org-show-todo-tree nil))
-    (widen)
-    (org-narrow-to-subtree)
-    (org-show-todo-tree nil)))
-
-;;;###autoload
-(defun bh/widen ()
-  (interactive)
-  (if (equal major-mode 'org-agenda-mode)
-      (org-agenda-remove-restriction-lock)
-    (widen)
-    (org-agenda-remove-restriction-lock)))
-
-;;;###autoload
-(defun bh/insert-inactive-timestamp ()
-  (interactive)
-  (org-insert-time-stamp nil t t nil nil nil))
-
-;;;###autoload
-(defun bh/insert-heading-inactive-timestamp ()
-  (save-excursion
-    (org-return)
-    (org-cycle)
-    (bh/insert-inactive-timestamp)))
-
-;; Remove empty LOGBOOK drawers on clock out
-;;;###autoload
-(defun bh/remove-empty-drawer-on-clock-out ()
-  (interactive)
-  (save-excursion
-    (beginning-of-line 0)
-    (org-remove-empty-drawer-at "LOGBOOK" (point))))
-
-;;;###autoload
-(defun bh/prepare-meeting-notes ()
-  "Prepare meeting notes for email
-   Take selected region and convert tabs to spaces, mark TODOs with leading >>>, and copy to kill ring for pasting"
-  (interactive)
-  (let (prefix)
-    (save-excursion
-      (save-restriction
-        (narrow-to-region (region-beginning) (region-end))
-        (untabify (point-min) (point-max))
-        (goto-char (point-min))
-        (while (re-search-forward "^\\( *-\\\) \\(TODO\\|DONE\\): " (point-max) t)
-          (replace-match (concat (make-string (length (match-string 1)) ?>) " " (match-string 2) ": ")))
-        (goto-char (point-min))
-        (kill-ring-save (point-min) (point-max))))))
-
-;; Phone capture template handling with BBDB lookup
-;; Adapted from code by Gregory J. Grubbs
-;;;###autoload
-(defun bh/phone-call ()
-  "Return name and company info for caller from bbdb lookup"
-  (interactive)
-  (let* (name rec caller)
-    (setq name (completing-read "Who is calling? "
-                                (bbdb-hashtable)
-                                'bbdb-completion-predicate
-                                'confirm))
-    (when (> (length name) 0)
-; Something was supplied - look it up in bbdb
-      (setq rec
-            (or (first
-                 (or (bbdb-search (bbdb-records) name nil nil)
-                     (bbdb-search (bbdb-records) nil name nil)))
-                name)))
-
-; Build the bbdb link if we have a bbdb record, otherwise just return the name
-    (setq caller (cond ((and rec (vectorp rec))
-                        (let ((name (bbdb-record-name rec))
-                              (company (bbdb-record-company rec)))
-                          (concat "[[bbdb:"
-                                  name "]["
-                                  name "]]"
-                                  (when company
-                                    (concat " - " company)))))
-                       (rec)
-                       (t "NameOfCaller")))
-    (insert caller)))
-
-;;;###autoload
-(defun org-my-archive-done-tasks ()
-  (interactive)
-  (save-excursion
-    (goto-char (point-min))
-    (let ((done-regexp
-           (concat "\\* \\(" (regexp-opt org-done-keywords) "\\) "))
-          (state-regexp
-           (concat "- State \"\\(" (regexp-opt org-done-keywords)
-                   "\\)\"\\s-*\\[\\([^]\n]+\\)\\]")))
-      (while (re-search-forward done-regexp nil t)
-        (let ((end (save-excursion
-                     (outline-next-heading)
-                     (point)))
-              begin)
-          (goto-char (line-beginning-position))
-          (setq begin (point))
-          (if (re-search-forward state-regexp end t)
-              (let* ((time-string (match-string 2))
-                     (when-closed (org-parse-time-string time-string)))
-                (if (>= (time-to-number-of-days
-                         (time-subtract (current-time)
-                                        (apply #'encode-time when-closed)))
-                        org-my-archive-expiry-days)
-                    (org-archive-subtree)))
-            (goto-char end)))))
-    (save-buffer)))
-(setq safe-local-variable-values (quote ((after-save-hook archive-done-tasks))))
-;;;###autoload
-(defalias 'archive-done-tasks 'org-my-archive-done-tasks)
-
-;;;###autoload
-(defun bh/is-project-p ()
-  "Any task with a todo keyword subtask"
-  (save-restriction
-    (widen)
-    (let ((has-subtask)
-          (subtree-end (save-excursion (org-end-of-subtree t)))
-          (is-a-task (member (nth 2 (org-heading-components)) org-todo-keywords-1)))
-      (save-excursion
-        (forward-line 1)
-        (while (and (not has-subtask)
-                    (< (point) subtree-end)
-                    (re-search-forward "^\*+ " subtree-end t))
-          (when (member (org-get-todo-state) org-todo-keywords-1)
-            (setq has-subtask t))))
-      (and is-a-task has-subtask))))
-
-;;;###autoload
-(defun bh/is-project-subtree-p ()
-  "Any task with a todo keyword that is in a project subtree.
-Callers of this function already widen the buffer view."
-  (let ((task (save-excursion (org-back-to-heading 'invisible-ok)
-                              (point))))
-    (save-excursion
-      (bh/find-project-task)
-      (if (equal (point) task)
-          nil
-        t))))
-
-;;;###autoload
-(defun bh/is-task-p ()
-  "Any task with a todo keyword and no subtask"
-  (save-restriction
-    (widen)
-    (let ((has-subtask)
-          (subtree-end (save-excursion (org-end-of-subtree t)))
-          (is-a-task (member (nth 2 (org-heading-components)) org-todo-keywords-1)))
-      (save-excursion
-        (forward-line 1)
-        (while (and (not has-subtask)
-                    (< (point) subtree-end)
-                    (re-search-forward "^\*+ " subtree-end t))
-          (when (member (org-get-todo-state) org-todo-keywords-1)
-            (setq has-subtask t))))
-      (and is-a-task (not has-subtask)))))
-
-;;;###autoload
-(defun bh/is-subproject-p ()
-  "Any task which is a subtask of another project"
-  (let ((is-subproject)
-        (is-a-task (member (nth 2 (org-heading-components)) org-todo-keywords-1)))
-    (save-excursion
-      (while (and (not is-subproject) (org-up-heading-safe))
-        (when (member (nth 2 (org-heading-components)) org-todo-keywords-1)
-          (setq is-subproject t))))
-    (and is-a-task is-subproject)))
-
-;;;###autoload
-(defun bh/list-sublevels-for-projects-indented ()
-  "Set org-tags-match-list-sublevels so when restricted to a subtree we list all subtasks.
-  This is normally used by skipping functions where this variable is already local to the agenda."
-  (if (marker-buffer org-agenda-restrict-begin)
-      (setq org-tags-match-list-sublevels 'indented)
-    (setq org-tags-match-list-sublevels nil))
-  nil)
-
-;;;###autoload
-(defun bh/list-sublevels-for-projects ()
-  "Set org-tags-match-list-sublevels so when restricted to a subtree we list all subtasks.
-  This is normally used by skipping functions where this variable is already local to the agenda."
-  (if (marker-buffer org-agenda-restrict-begin)
-      (setq org-tags-match-list-sublevels t)
-    (setq org-tags-match-list-sublevels nil))
-  nil)
-
-;;;###autoload
-(defun bh/skip-non-stuck-projects ()
-  "Skip trees that are not stuck projects"
-  (bh/list-sublevels-for-projects-indented)
-  (save-restriction
-    (widen)
-   (let ((next-headline (save-excursion (or (outline-next-heading) (point-max)))))
-      (if (bh/is-project-p)
-          (let* ((subtree-end (save-excursion (org-end-of-subtree t)))
-                 (has-next ))
-            (save-excursion
-              (forward-line 1)
-              (while (and (not has-next) (< (point) subtree-end) (re-search-forward "^\\*+ NEXT " subtree-end t))
-                (unless (member "WAITING" (org-get-tags-at))
-                  (setq has-next t))))
-            (if has-next
-                next-headline
-              nil)) ; a stuck project, has subtasks but no next task
-        next-headline))))
-
-;;;###autoload
-(defun bh/skip-non-projects ()
-  "Skip trees that are not projects"
-  (bh/list-sublevels-for-projects-indented)
-  (if (save-excursion (bh/skip-non-stuck-projects))
-      (save-restriction
-        (widen)
-        (let ((subtree-end (save-excursion (org-end-of-subtree t))))
-          (if (bh/is-project-p)
-              nil
-            subtree-end)))
-    (org-end-of-subtree t)))
-
-;;;###autoload
-(defun bh/skip-project-trees-and-habits ()
-  "Skip trees that are projects"
-  (save-restriction
-    (widen)
-    (let ((subtree-end (save-excursion (org-end-of-subtree t))))
-      (cond
-       ((bh/is-project-p)
-        subtree-end)
-       ((org-is-habit-p)
-        subtree-end)
-       (t
-        nil)))))
-
-;;;###autoload
-(defun bh/skip-projects-and-habits-and-single-tasks ()
-  "Skip trees that are projects, tasks that are habits, single non-project tasks"
-  (save-restriction
-    (widen)
-    (let ((next-headline (save-excursion (or (outline-next-heading) (point-max)))))
-      (cond
-       ((org-is-habit-p)
-        next-headline)
-       ((bh/is-project-p)
-        next-headline)
-       ((and (bh/is-task-p) (not (bh/is-project-subtree-p)))
-        next-headline)
-       (t
-        nil)))))
-
-;;;###autoload
-(defun bh/skip-project-tasks-maybe ()
-  "Show tasks related to the current restriction.
-When restricted to a project, skip project and sub project tasks, habits, NEXT tasks, and loose tasks.
-When not restricted, skip project and sub-project tasks, habits, and project related tasks."
-  (save-restriction
-    (widen)
-    (let* ((subtree-end (save-excursion (org-end-of-subtree t)))
-           (next-headline (save-excursion (or (outline-next-heading) (point-max))))
-           (limit-to-project (marker-buffer org-agenda-restrict-begin)))
-      (cond
-       ((bh/is-project-p)
-        next-headline)
-       ((org-is-habit-p)
-        subtree-end)
-       ((and (not limit-to-project)
-             (bh/is-project-subtree-p))
-        subtree-end)
-       ((and limit-to-project
-             (bh/is-project-subtree-p)
-             (member (org-get-todo-state) (list "NEXT")))
-        subtree-end)
-       (t
-        nil)))))
-
-;;;###autoload
-(defun bh/skip-projects-and-habits ()
-  "Skip trees that are projects and tasks that are habits"
-  (save-restriction
-    (widen)
-    (let ((subtree-end (save-excursion (org-end-of-subtree t))))
-      (cond
-       ((bh/is-project-p)
-        subtree-end)
-       ((org-is-habit-p)
-        subtree-end)
-       (t
-        nil)))))
-
-;;;###autoload
-(defun bh/skip-non-subprojects ()
-  "Skip trees that are not projects"
-  (let ((next-headline (save-excursion (outline-next-heading))))
-    (if (bh/is-subproject-p)
-        nil
-      next-headline)))
-
-; Erase all reminders and rebuilt reminders for today from the agenda
-;;;###autoload
-(defun bh/org-agenda-to-appt ()
-  (interactive)
-  (setq appt-time-msg-list nil)
-  (org-agenda-to-appt))
-
-
-;;;###autoload
-(defun bh/restrict-to-file-or-follow (arg)
-  "Set agenda restriction to 'file or with argument invoke follow mode.
-I don't use follow mode very often but I restrict to file all the time
-so change the default 'F' binding in the agenda to allow both"
-  (interactive "p")
-  (if (equal arg 4)
-      (org-agenda-follow-mode)
-    (if (equal major-mode 'org-agenda-mode)
-        (bh/set-agenda-restriction-lock 4)
-      (widen))))
-
-;;;###autoload
-(defun bh/narrow-to-org-subtree ()
-  (widen)
-  (org-narrow-to-subtree)
-  (save-restriction
-    (org-agenda-set-restriction-lock)))
-
-;;;###autoload
-(defun bh/narrow-to-subtree ()
-  (interactive)
-  (if (equal major-mode 'org-agenda-mode)
-      (org-with-point-at (org-get-at-bol 'org-hd-marker)
-        (bh/narrow-to-org-subtree))
-    (bh/narrow-to-org-subtree)))
-
-;;;###autoload
-(defun bh/narrow-up-one-org-level ()
-  (widen)
-  (save-excursion
-    (outline-up-heading 1 'invisible-ok)
-    (bh/narrow-to-org-subtree)))
-
-;;;###autoload
-(defun bh/narrow-up-one-level ()
-  (interactive)
-  (if (equal major-mode 'org-agenda-mode)
-      (org-with-point-at (org-get-at-bol 'org-hd-marker)
-        (bh/narrow-up-one-org-level))
-    (bh/narrow-up-one-org-level)))
-
-;;;###autoload
-(defun bh/narrow-to-org-project ()
-  (widen)
-  (save-excursion
-    (bh/find-project-task)
-    (bh/narrow-to-org-subtree)))
-
-;;;###autoload
-(defun bh/narrow-to-project ()
-  (interactive)
-  (if (equal major-mode 'org-agenda-mode)
-      (org-with-point-at (org-get-at-bol 'org-hd-marker)
-        (bh/narrow-to-org-project))
-    (bh/narrow-to-org-project)))
-
-;;;###autoload
-(defun bh/clock-in-to-next (kw)
-  "Switch a task from TODO to NEXT when clocking in.
-  Skips capture tasks, projects, and subprojects.
-  Switch projects and subprojects from NEXT back to TODO"
-  (when (not (and (boundp 'org-capture-mode) org-capture-mode))
-    (cond
-     ((and (member (org-get-todo-state) (list "TODO"))
-           (bh/is-task-p))
-      "NEXT")
-     ((and (member (org-get-todo-state) (list "NEXT"))
-           (bh/is-project-p))
-      "TODO"))))
-
-;;;###autoload
-(defun bh/find-project-task ()
-  "Move point to the parent (project) task if any"
-  (save-restriction
-    (widen)
-    (let ((parent-task (save-excursion (org-back-to-heading 'invisible-ok) (point))))
-      (while (org-up-heading-safe)
-        (when (member (nth 2 (org-heading-components)) org-todo-keywords-1)
-          (setq parent-task (point))))
-      (goto-char parent-task)
-      parent-task)))
-
-;;;###autoload
-(defun bh/punch-in (arg)
-  "Start continuous clocking and set the default task to the
-  selected task.  If no task is selected set the Organization task
-  as the default task."
-  (interactive "p")
-  (setq bh/keep-clock-running t)
-  (if (equal major-mode 'org-agenda-mode)
-      ;;
-      ;; We're in the agenda
-      ;;
-      (let* ((marker (org-get-at-bol 'org-hd-marker))
-             (tags (org-with-point-at marker (org-get-tags-at))))
-        (if (and (eq arg 4) tags)
-            (org-agenda-clock-in '(16))
-          (bh/clock-in-organization-task-as-default)))
-    ;;
-    ;; We are not in the agenda
-    ;;
-    (save-restriction
-      (widen)
-; Find the tags on the current task
-      (if (and (equal major-mode 'org-mode) (not (org-before-first-heading-p)) (eq arg 4))
-          (org-clock-in '(16))
-        (bh/clock-in-organization-task-as-default)))))
-
-;;;###autoload
-(defun bh/punch-out ()
-  (interactive)
-  (setq bh/keep-clock-running nil)
-  (when (org-clock-is-active)
-    (org-clock-out))
-  (org-agenda-remove-restriction-lock))
-
-;;;###autoload
-(defun bh/clock-in-default-task ()
-  (save-excursion
-    (org-with-point-at org-clock-default-task
-      (org-clock-in))))
-
-;;;###autoload
-(defun bh/clock-in-parent-task ()
-  "Move point to the parent (project) task if any and clock in"
-  (let ((parent-task))
-    (save-excursion
-      (save-restriction
-        (widen)
-        (while (and (not parent-task) (org-up-heading-safe))
-          (when (member (nth 2 (org-heading-components)) org-todo-keywords-1)
-            (setq parent-task (point))))
-        (if parent-task
-            (org-with-point-at parent-task
-              (org-clock-in))
-          (when bh/keep-clock-running
-            (bh/clock-in-default-task)))))))
-
-;;;###autoload
-(defun bh/clock-in-organization-task-as-default ()
-  (interactive)
-  (org-with-point-at (org-id-find bh/organization-task-id 'marker)
-    (org-clock-in '(16))))
-
-;;;###autoload
-(defun bh/clock-out-maybe ()
-  (when (and bh/keep-clock-running
-             (not org-clock-clocking-in)
-             (marker-buffer org-clock-default-task)
-             (not org-clock-resolving-clocks-due-to-idleness))
-    (bh/clock-in-parent-task)))
-
-;;;###autoload
-(defun bh/clock-in-last-task (arg)
-  "Clock in the interrupted task if there is one
-  Skip the default task and get the next one.
-  A prefix arg forces clock in of the default task."
-  (interactive "p")
-  (let ((clock-in-to-task
-         (cond
-          ((eq arg 4) org-clock-default-task)
-          ((and (org-clock-is-active)
-                (equal org-clock-default-task (cadr org-clock-history)))
-           (caddr org-clock-history))
-          ((org-clock-is-active) (cadr org-clock-history))
-          ((equal org-clock-default-task (car org-clock-history)) (cadr org-clock-history))
-          (t (car org-clock-history)))))
-    (org-with-point-at clock-in-to-task
-      (org-clock-in nil))))
-
-;;;###autoload
-(defun bh/set-agenda-restriction-lock (arg)
-  "Set restriction lock to current task subtree or file if prefix is specified"
-  (interactive "p")
-  (let* ((pom (bh/get-pom-from-agenda-restriction-or-point))
-         (tags (org-with-point-at pom (org-get-tags-at))))
-    (let ((restriction-type (if (equal arg 4) 'file 'subtree)))
-      (save-restriction
-        (cond
-         ((and (equal major-mode 'org-agenda-mode) pom)
-          (org-with-point-at pom
-            (org-agenda-set-restriction-lock restriction-type)))
-         ((and (equal major-mode 'org-mode) (org-before-first-heading-p))
-          (org-agenda-set-restriction-lock 'file))
-         (pom
-          (org-with-point-at pom
-            (org-agenda-set-restriction-lock restriction-type))))))))
-
-;;;###autoload
-(defun bh/get-pom-from-agenda-restriction-or-point ()
-  (or (org-get-at-bol 'org-hd-marker)
-      (and (marker-position org-agenda-restrict-begin) org-agenda-restrict-begin)
-      (and (equal major-mode 'org-mode) (point))
-      org-clock-marker))
 
 ;;;###autoload
 (defun sacha/isearch-yank-current-word ()
@@ -938,7 +237,9 @@ Doesn't mess with special buffers."
   (interactive)
   (just-one-space -1))
 
-(provide 'ganneff)
-
 ;(setq org-icalendar-verify-function 'org-mycal-export-limit)
 ;(org-export-icalendar-combine-agenda-files)
+
+(provide 'ganneff)
+
+;;; ganneff.el ends here
index 61af0f8..3a6d31e 100644 (file)
@@ -1,5 +1,243 @@
 ;;
 \f
+;;;### (autoloads (ace-jump-mode ace-jump-line-mode ace-jump-word-mode
+;;;;;;  ace-jump-char-mode ace-jump-mode-pop-mark) "ace-jump-mode"
+;;;;;;  "ace-jump-mode.el" (20860 60137 783821 671000))
+;;; Generated autoloads from ace-jump-mode.el
+
+(autoload 'ace-jump-mode-pop-mark "ace-jump-mode" "\
+Pop up a postion from `ace-jump-mode-mark-ring', and jump back to that position
+
+\(fn)" t nil)
+
+(autoload 'ace-jump-char-mode "ace-jump-mode" "\
+AceJump char mode
+
+\(fn QUERY-CHAR)" t nil)
+
+(autoload 'ace-jump-word-mode "ace-jump-mode" "\
+AceJump word mode.
+You can set `ace-jump-word-mode-use-query-char' to nil to prevent
+asking for a head char, that will mark all the word in current
+buffer.
+
+\(fn HEAD-CHAR)" t nil)
+
+(autoload 'ace-jump-line-mode "ace-jump-mode" "\
+AceJump line mode.
+Marked each no empty line and move there
+
+\(fn)" t nil)
+
+(autoload 'ace-jump-mode "ace-jump-mode" "\
+AceJump mode is a minor mode for you to quick jump to a
+position in the curret view.
+   There is three submode now:
+     `ace-jump-char-mode'
+     `ace-jump-word-mode'
+     `ace-jump-line-mode'
+
+You can specify the sequence about which mode should enter
+by customize `ace-jump-mode-submode-list'.
+
+If you do not want to query char for word mode, you can change
+`ace-jump-word-mode-use-query-char' to nil.
+
+If you don't like the default move keys, you can change it by
+setting `ace-jump-mode-move-keys'.
+
+You can constrol whether use the case sensitive via
+`ace-jump-mode-case-fold'.
+
+\(fn &optional PREFIX)" t nil)
+
+;;;***
+\f
+;;;### (autoloads (color-theme-initialize color-theme-submit color-theme-install
+;;;;;;  color-theme-compare color-theme-make-snapshot color-theme-analyze-defun
+;;;;;;  color-theme-print color-theme-install-at-point-for-current-frame
+;;;;;;  color-theme-install-at-mouse color-theme-describe color-theme-select)
+;;;;;;  "color-theme" "color-theme.el" (20865 12472 116424 798000))
+;;; Generated autoloads from color-theme.el
+
+(autoload 'color-theme-select "color-theme" "\
+Displays a special buffer for selecting and installing a color theme.
+With optional prefix ARG, this buffer will include color theme libraries
+as well.  A color theme library is in itself not complete, it must be
+used as part of another color theme to be useful.  Thus, color theme
+libraries are mainly useful for color theme authors.
+
+\(fn &optional ARG)" t nil)
+
+(autoload 'color-theme-describe "color-theme" "\
+Describe color theme listed at point.
+This shows the documentation of the value of text-property color-theme
+at point.  The text-property color-theme should be a color theme
+function.  See `color-themes'.
+
+\(fn)" t nil)
+
+(autoload 'color-theme-install-at-mouse "color-theme" "\
+Install color theme clicked upon using the mouse.
+First argument EVENT is used to set point.  Then
+`color-theme-install-at-point' is called.
+
+\(fn EVENT)" t nil)
+
+(autoload 'color-theme-install-at-point-for-current-frame "color-theme" "\
+Install color theme at point for current frame only.
+Binds `color-theme-is-global' to nil and calls
+`color-theme-install-at-point'.
+
+\(fn)" t nil)
+
+(autoload 'color-theme-print "color-theme" "\
+Print the current color theme function.
+
+You can contribute this function to <URL:news:gnu.emacs.sources> or
+paste it into your .emacs file and call it.  That should recreate all
+the settings necessary for your color theme.
+
+Example:
+
+    (require 'color-theme)
+    (defun my-color-theme ()
+      \"Color theme by Alex Schroeder, created 2000-05-17.\"
+      (interactive)
+      (color-theme-install
+       '(...
+        ...
+        ...)))
+    (my-color-theme)
+
+If you want to use a specific color theme function, you can call the
+color theme function in your .emacs directly.
+
+Example:
+
+    (require 'color-theme)
+    (color-theme-gnome2)
+
+\(fn &optional BUF)" t nil)
+
+(autoload 'color-theme-analyze-defun "color-theme" "\
+Once you have a color-theme printed, check for missing faces.
+This is used by maintainers who receive a color-theme submission
+and want to make sure it follows the guidelines by the color-theme
+author.
+
+\(fn)" t nil)
+
+(autoload 'color-theme-make-snapshot "color-theme" "\
+Return the definition of the current color-theme.
+The function returned will recreate the color-theme in use at the moment.
+
+\(fn)" nil nil)
+
+(autoload 'color-theme-compare "color-theme" "\
+Compare two color themes.
+This will print the differences between installing THEME-A and
+installing THEME-B.  Note that the order is important: If a face is
+defined in THEME-A and not in THEME-B, then this will not show up as a
+difference, because there is no reset before installing THEME-B.  If a
+face is defined in THEME-B and not in THEME-A, then this will show up as
+a difference.
+
+\(fn THEME-A THEME-B)" t nil)
+
+(autoload 'color-theme-install "color-theme" "\
+Install a color theme defined by frame parameters, variables and faces.
+
+The theme is installed for all present and future frames; any missing
+faces are created.  See `color-theme-install-faces'.
+
+THEME is a color theme definition.  See below for more information.
+
+If you want to install a color theme from your .emacs, use the output
+generated by `color-theme-print'.  This produces color theme function
+which you can copy to your .emacs.
+
+A color theme definition is a list:
+\([FUNCTION] FRAME-PARAMETERS VARIABLE-SETTINGS FACE-DEFINITIONS)
+
+FUNCTION is the color theme function which called `color-theme-install'.
+This is no longer used.  There was a time when this package supported
+automatic factoring of color themes.  This has been abandoned.
+
+FRAME-PARAMETERS is an alist of frame parameters.  These are installed
+with `color-theme-install-frame-params'.  These are installed last such
+that any changes to the default face can be changed by the frame
+parameters.
+
+VARIABLE-DEFINITIONS is an alist of variable settings.  These are
+installed with `color-theme-install-variables'.
+
+FACE-DEFINITIONS is an alist of face definitions.  These are installed
+with `color-theme-install-faces'.
+
+If `color-theme-is-cumulative' is nil, a color theme will undo face and
+frame-parameter settings of previous color themes.
+
+\(fn THEME)" nil nil)
+
+(autoload 'color-theme-submit "color-theme" "\
+Submit your color-theme to the maintainer.
+
+\(fn)" t nil)
+
+(autoload 'color-theme-initialize "color-theme" "\
+Initialize the color theme package by loading color-theme-libraries.
+
+\(fn)" t nil)
+
+;;;***
+\f
+;;;### (autoloads (diminished-modes diminish-undo diminish) "diminish"
+;;;;;;  "diminish.el" (20865 30363 579223 949000))
+;;; Generated autoloads from diminish.el
+
+(autoload 'diminish "diminish" "\
+Diminish mode-line display of minor mode MODE to TO-WHAT (default \"\").
+
+Interactively, enter (with completion) the name of any minor mode, followed
+on the next line by what you want it diminished to (default empty string).
+The response to neither prompt should be quoted.  However, in Lisp code,
+both args must be quoted, the first as a symbol, the second as a string,
+as in (diminish 'jiggle-mode \" Jgl\").
+
+The mode-line displays of minor modes usually begin with a space, so
+the modes' names appear as separate words on the mode line.  However, if
+you're having problems with a cramped mode line, you may choose to use single
+letters for some modes, without leading spaces.  Capitalizing them works
+best; if you then diminish some mode to \"X\" but have abbrev-mode enabled as
+well, you'll get a display like \"AbbrevX\".  This function prepends a space
+to TO-WHAT if it's > 1 char long & doesn't already begin with a space.
+
+\(fn MODE &optional TO-WHAT)" t nil)
+
+(autoload 'diminish-undo "diminish" "\
+Restore mode-line display of diminished mode MODE to its minor-mode value.
+Do nothing if the arg is a minor mode that hasn't been diminished.
+
+Interactively, enter (with completion) the name of any diminished mode (a
+mode that was formerly a minor mode on which you invoked M-x diminish).
+To restore all diminished modes to minor status, answer `diminished-modes'.
+The response to the prompt shouldn't be quoted.  However, in Lisp code,
+the arg must be quoted as a symbol, as in (diminish-undo 'diminished-modes).
+
+\(fn MODE)" t nil)
+
+(autoload 'diminished-modes "diminish" "\
+Echo all active diminished or minor modes as if they were minor.
+The display goes in the echo area; if it's too long even for that,
+you can see the whole thing in the *Messages* buffer.
+This doesn't change the status of any modes; it just lets you see
+what diminished modes would be on the mode-line if they were still minor.
+
+\(fn)" t nil)
+
+;;;***
+\f
 ;;;### (autoloads (diredp-send-bug-report diredp-dired-plus-help
 ;;;;;;  diredp-describe-mode diredp-mouse-do-chmod diredp-mouse-do-load
 ;;;;;;  diredp-mouse-do-byte-compile diredp-mouse-do-compress diredp-mouse-do-grep
 ;;;;;;  diredp-dired-for-files-other-window diredp-dired-for-files
 ;;;;;;  diredp-dired-files-other-window diredp-dired-files diredp-w32-local-drives
 ;;;;;;  diredp-prompt-for-bookmark-prefix-flag diff-switches) "dired+"
-;;;;;;  "dired+.el" (20835 57211 0 0))
+;;;;;;  "dired+.el" (20858 49922 429890 970000))
 ;;; Generated autoloads from dired+.el
 
 (defvar diff-switches "-c" "\
@@ -1496,7 +1734,7 @@ Send a bug report about a Dired+ problem.
 \f
 ;;;### (autoloads (dired-single-toggle-buffer-name dired-single-magic-buffer
 ;;;;;;  dired-single-buffer-mouse dired-single-buffer) "dired-single"
-;;;;;;  "dired-single.el" (20788 26750 0 0))
+;;;;;;  "dired-single.el" (20858 49922 429890 970000))
 ;;; Generated autoloads from dired-single.el
 
 (autoload 'dired-single-buffer "dired-single" "\
@@ -1549,673 +1787,835 @@ Will also seek to uniquify the 'real' buffer name.
 
 ;;;***
 \f
-;;;### (autoloads (toggle-follow-mouse turn-off-follow-mouse turn-on-follow-mouse)
-;;;;;;  "follow-mouse" "follow-mouse.el" (20788 26750 0 0))
-;;; Generated autoloads from follow-mouse.el
-
-(autoload 'turn-on-follow-mouse "follow-mouse" "\
-Moving the mouse will automatically select the window under it.
-
-\(fn)" t nil)
-
-(autoload 'turn-off-follow-mouse "follow-mouse" "\
-Moving the mouse will not automatically select the window under it.
+;;;### (autoloads (flycheck-info flycheck-def-option-var flycheck-def-config-file-var
+;;;;;;  flycheck-declare-checker global-flycheck-mode flycheck-mode)
+;;;;;;  "flycheck" "flycheck.el" (20861 33952 0 0))
+;;; Generated autoloads from flycheck.el
 
-\(fn)" t nil)
+(defconst flycheck-mode-line-lighter " FlyC" "\
+The standard lighter for flycheck mode.")
 
-(autoload 'toggle-follow-mouse "follow-mouse" "\
-Toggle whether moving the mouse automatically selects the window under it.
-If the optional prefix ARG is specified, follow-mouse is enabled if it is
-positive, and disabled otherwise.  If called interactively, or the optional
-VERBOSE argument is non-nil, display a confirmation message.
+(autoload 'flycheck-mode "flycheck" "\
+Minor mode for on-the-fly syntax checking.
 
-\(fn &optional ARG VERBOSE)" t nil)
+When called interactively, toggle `flycheck-mode'.  With prefix
+ARG, enable `flycheck-mode' if ARG is positive, otherwise disable
+it.
 
-;;;***
-\f
-;;;### (autoloads (prelude-kill-other-buffers force-backup-of-buffer
-;;;;;;  clean-mode-line prelude-emacs-lisp-mode-defaults prelude-remove-elc-on-save
-;;;;;;  interactive-lisp-coding-defaults lisp-coding-defaults prelude-sudo-edit
-;;;;;;  jj-untabify-buffer move-line-down move-line-up revert-all-buffers
-;;;;;;  org-mycal-export mycal-export-limit org-mycal-export-limit
-;;;;;;  my-c-return epa-dired-mode-hook sacha/decrease-font-size
-;;;;;;  sacha/increase-font-size sacha/search-word-forward sacha/search-word-backward
-;;;;;;  sacha/isearch-yank-current-word bh/get-pom-from-agenda-restriction-or-point
-;;;;;;  bh/set-agenda-restriction-lock bh/clock-in-last-task bh/clock-out-maybe
-;;;;;;  bh/clock-in-organization-task-as-default bh/clock-in-parent-task
-;;;;;;  bh/clock-in-default-task bh/punch-out bh/punch-in bh/find-project-task
-;;;;;;  bh/clock-in-to-next bh/narrow-to-project bh/narrow-to-org-project
-;;;;;;  bh/narrow-up-one-level bh/narrow-up-one-org-level bh/narrow-to-subtree
-;;;;;;  bh/narrow-to-org-subtree bh/restrict-to-file-or-follow bh/org-agenda-to-appt
-;;;;;;  bh/skip-non-subprojects bh/skip-projects-and-habits bh/skip-project-tasks-maybe
-;;;;;;  bh/skip-projects-and-habits-and-single-tasks bh/skip-project-trees-and-habits
-;;;;;;  bh/skip-non-projects bh/skip-non-stuck-projects bh/list-sublevels-for-projects
-;;;;;;  bh/list-sublevels-for-projects-indented bh/is-subproject-p
-;;;;;;  bh/is-task-p bh/is-project-subtree-p bh/is-project-p org-my-archive-done-tasks
-;;;;;;  bh/phone-call bh/prepare-meeting-notes bh/remove-empty-drawer-on-clock-out
-;;;;;;  bh/insert-heading-inactive-timestamp bh/insert-inactive-timestamp
-;;;;;;  bh/widen bh/org-todo bh/switch-to-scratch bh/make-org-scratch
-;;;;;;  bh/skip-non-archivable-tasks bh/set-truncate-lines bh/hide-other
-;;;;;;  bh/is-scheduled-late bh/is-scheduled-today bh/is-scheduled
-;;;;;;  bh/is-deadline bh/is-pending-deadline bh/is-late-deadline
-;;;;;;  bh/is-due-deadline bh/is-not-scheduled-or-deadline bh/agenda-sort
-;;;;;;  bh/agenda-sort-test-num bh/agenda-sort-test bh/verify-refile-target
-;;;;;;  bh/show-org-agenda ido-disable-line-trucation my-dired-init)
-;;;;;;  "ganneff" "ganneff.el" (20855 53694 0 0))
-;;; Generated autoloads from ganneff.el
+When called from Lisp, enable `flycheck-mode' if ARG is omitted,
+nil or positive.  If ARG is `toggle', toggle `flycheck-mode'.
+Otherwise behave as if called interactively.
 
-(autoload 'my-dired-init "ganneff" "\
-Bunch of stuff to run for dired, either immediately or when it's
-        loaded.
+In `flycheck-mode' the buffer is automatically syntax-checked
+using the first suitable syntax checker from `flycheck-checkers'.
+Use `flycheck-select-checker' to select a checker for the current
+buffer manually.
 
-\(fn)" nil nil)
+\\{flycheck-mode-map}
 
-(autoload 'ido-disable-line-trucation "ganneff" "\
+\(fn &optional ARG)" t nil)
 
+(defvar global-flycheck-mode nil "\
+Non-nil if Global-Flycheck mode is enabled.
+See the command `global-flycheck-mode' for a description of this minor mode.
+Setting this variable directly does not take effect;
+either customize it (see the info node `Easy Customization')
+or call the function `global-flycheck-mode'.")
 
-\(fn)" nil nil)
+(custom-autoload 'global-flycheck-mode "flycheck" nil)
 
-(autoload 'bh/show-org-agenda "ganneff" "\
+(autoload 'global-flycheck-mode "flycheck" "\
+Toggle Flycheck mode in all buffers.
+With prefix ARG, enable Global-Flycheck mode if ARG is positive;
+otherwise, disable it.  If called from Lisp, enable the mode if
+ARG is omitted or nil.
 
+Flycheck mode is enabled in all buffers where
+`flycheck-mode-on-safe' would do it.
+See `flycheck-mode' for more information on Flycheck mode.
 
-\(fn)" t nil)
+\(fn &optional ARG)" t nil)
 
-(autoload 'bh/verify-refile-target "ganneff" "\
-Exclude todo keywords with a done state from refile targets
+(autoload 'flycheck-declare-checker "flycheck" "\
+Declare SYMBOL as syntax checker with DOCSTRING and PROPERTIES.
 
-\(fn)" nil nil)
+DOCSTRING provides documentation for the new checker.  Use
+`flycheck-checker-documentation' to access the documentation
+string of a checker, and `flycheck-describe-checker' to get help
+about a checker.
 
-(autoload 'bh/agenda-sort-test "ganneff" "\
-Test for agenda sort
+The following PROPERTIES are understood:
 
-\(fn FN A B)" nil t)
+`:command' A list with the executable (in `car') and the
+arguments (in `cdr') of the syntax checker.  The executable is
+checked for existence with `executable-find' before executing the
+checker.  The arguments are substituted with
+`flycheck-substitute-argument' before execution, see the
+documentation of this function for a list of special tags allowed
+in arguments.
 
-(autoload 'bh/agenda-sort-test-num "ganneff" "\
+`:error-patterns' A list of error patterns to parse the output of
+the checker.  Each pattern is a list (REGEXP LEVEL).  REGEXP is a
+regular expression that matches an error.  This regular
+expression may contain match groups extracting specific
+information about the error.  The 1st group is the file name, the
+2nd group the line number, the 3rd group the column number and
+the 4th group the error message.  A group is ignored if it did
+not match or the match returned an empty string.  LEVEL is either
+warning or error and determines the severity of the error message
+parsed with the pattern.
 
+`:error-parser' A function symbol to parse errors with.  The
+function must accept three arguments OUTPUT CHECKER BUFFER, where
+OUTPUT is the output as string and CHECKER the checker symbol
+that was used to check BUFFER.  The function must return a list
+of `flycheck-error' objects parsed from OUTPUT.
 
-\(fn FN COMPFN A B)" nil t)
+`:modes' A major mode symbol or a list thereof.  If present the
+checker is only used in these modes.
 
-(autoload 'bh/agenda-sort "ganneff" "\
-Sorting strategy for agenda items.
-Late deadlines first, then scheduled, then non-late deadlines
+`:predicate' An Emacs Lisp form.  If present the checker is only
+used if the form evaluates to a non-nil result in the buffer to
+check.
 
-\(fn A B)" nil nil)
+`:next-checkers' A list where each element is either a checker
+symbol to run after this checker or a cons cell (PREDICATE
+. CHECKER).  In the latter case, CHECKER is the checker symbol to
+run, and the PREDICATE symbol specifies when to run the checker:
+If PREDICATE is `no-errors' run the next checker only if this
+checker returned no errors at all.  If PREDICATE is
+`warnings-only', run the next checker only if this checker
+returned only warnings.  Only the first usable and
+registered (see `flycheck-registered-checker-p') is run.
 
-(autoload 'bh/is-not-scheduled-or-deadline "ganneff" "\
+A checker must have a `:command' property, either
+`:error-patterns' or `:error-parser' (but not both), and at least
+one of `:predicate' and `:modes'.  If `:predicate' and `:modes'
+are present, both must match for the checker to be used.
 
+\(fn SYMBOL DOCSTRING &rest PROPERTIES)" nil t)
 
-\(fn DATE-STR)" nil nil)
+(put 'flycheck-declare-checker 'lisp-indent-function '1)
 
-(autoload 'bh/is-due-deadline "ganneff" "\
+(put 'flycheck-declare-checker 'doc-string-elt '2)
 
+(autoload 'flycheck-def-config-file-var "flycheck" "\
+Define SYMBOL as config file variable for CHECKER, with default FILE-NAME.
 
-\(fn DATE-STR)" nil nil)
+SYMBOL is declared as customizable variable (see `defcustom`)
+providing a configuration file for CHECKER.  The CHECKER argument
+is used for documentation purposes only.  If given use FILE-NAME
+as initial value.
 
-(autoload 'bh/is-late-deadline "ganneff" "\
+Use this together with the `config-file' cell in syntax checker
+commands.
 
+\(fn SYMBOL CHECKER &optional FILE-NAME)" nil t)
 
-\(fn DATE-STR)" nil nil)
+(put 'flycheck-def-config-file-var 'lisp-indent-function '3)
 
-(autoload 'bh/is-pending-deadline "ganneff" "\
+(autoload 'flycheck-def-option-var "flycheck" "\
+Define SYMBOL as option variable with INIT-VALUE for CHECKER.
 
+INIT-VALUE is the initial value for the new variable.  DOCSTRING
+is its docstring.
 
-\(fn DATE-STR)" nil nil)
+The variable is declared with `defcustom', and declared
+buffer-local.  CUSTOM-ARGS are forwarded to `defcustom'.
 
-(autoload 'bh/is-deadline "ganneff" "\
+Use this together with the `option' cell in syntax checker
+commands.
 
+\(fn SYMBOL INIT-VALUE CHECKER DOCSTRING &rest CUSTOM-ARGS)" nil t)
 
-\(fn DATE-STR)" nil nil)
+(put 'flycheck-def-option-var 'lisp-indent-function '3)
 
-(autoload 'bh/is-scheduled "ganneff" "\
+(put 'flycheck-def-option-var 'doc-string-elt '4)
 
+(autoload 'flycheck-info "flycheck" "\
+Open the Flycheck manual.
 
-\(fn DATE-STR)" nil nil)
+\(fn)" t nil)
 
-(autoload 'bh/is-scheduled-today "ganneff" "\
+;;;***
+\f
+;;;### (autoloads (toggle-follow-mouse turn-off-follow-mouse turn-on-follow-mouse)
+;;;;;;  "follow-mouse" "follow-mouse.el" (20858 49922 453891 89000))
+;;; Generated autoloads from follow-mouse.el
 
+(autoload 'turn-on-follow-mouse "follow-mouse" "\
+Moving the mouse will automatically select the window under it.
 
-\(fn DATE-STR)" nil nil)
+\(fn)" t nil)
 
-(autoload 'bh/is-scheduled-late "ganneff" "\
+(autoload 'turn-off-follow-mouse "follow-mouse" "\
+Moving the mouse will not automatically select the window under it.
 
+\(fn)" t nil)
 
-\(fn DATE-STR)" nil nil)
+(autoload 'toggle-follow-mouse "follow-mouse" "\
+Toggle whether moving the mouse automatically selects the window under it.
+If the optional prefix ARG is specified, follow-mouse is enabled if it is
+positive, and disabled otherwise.  If called interactively, or the optional
+VERBOSE argument is non-nil, display a confirmation message.
 
-(autoload 'bh/hide-other "ganneff" "\
+\(fn &optional ARG VERBOSE)" t nil)
 
+;;;***
+\f
+;;;### (autoloads (just-one-space-with-newline prelude-kill-other-buffers
+;;;;;;  force-backup-of-buffer clean-mode-line prelude-emacs-lisp-mode-defaults
+;;;;;;  prelude-remove-elc-on-save interactive-lisp-coding-defaults
+;;;;;;  lisp-coding-defaults prelude-sudo-edit jj-untabify-buffer
+;;;;;;  move-line-down move-line-up revert-all-buffers org-mycal-export
+;;;;;;  mycal-export-limit org-mycal-export-limit my-c-return epa-dired-mode-hook
+;;;;;;  sacha/decrease-font-size sacha/increase-font-size sacha/search-word-forward
+;;;;;;  sacha/search-word-backward sacha/isearch-yank-current-word
+;;;;;;  ido-disable-line-trucation my-dired-init) "ganneff" "ganneff.el"
+;;;;;;  (20866 32703 266707 225000))
+;;; Generated autoloads from ganneff.el
 
-\(fn)" t nil)
+(autoload 'my-dired-init "ganneff" "\
+Bunch of stuff to run for dired when it's loaded.
 
-(autoload 'bh/set-truncate-lines "ganneff" "\
-Toggle value of truncate-lines and refresh window display.
+\(fn)" nil nil)
 
-\(fn)" t nil)
+(autoload 'ido-disable-line-trucation "ganneff" "\
 
-(autoload 'bh/skip-non-archivable-tasks "ganneff" "\
-Skip trees that are not available for archiving
 
 \(fn)" nil nil)
 
-(autoload 'bh/make-org-scratch "ganneff" "\
-
+(autoload 'sacha/isearch-yank-current-word "ganneff" "\
+Pull current word from buffer into search string.
 
 \(fn)" t nil)
 
-(autoload 'bh/switch-to-scratch "ganneff" "\
-
+(autoload 'sacha/search-word-backward "ganneff" "\
+Find the previous occurrence of the current word.
 
 \(fn)" t nil)
 
-(autoload 'bh/org-todo "ganneff" "\
-
+(autoload 'sacha/search-word-forward "ganneff" "\
+Find the next occurrance of the current word.
 
-\(fn ARG)" t nil)
+\(fn)" t nil)
 
-(autoload 'bh/widen "ganneff" "\
+(autoload 'sacha/increase-font-size "ganneff" "\
 
 
 \(fn)" t nil)
 
-(autoload 'bh/insert-inactive-timestamp "ganneff" "\
+(autoload 'sacha/decrease-font-size "ganneff" "\
 
 
 \(fn)" t nil)
 
-(autoload 'bh/insert-heading-inactive-timestamp "ganneff" "\
+(autoload 'epa-dired-mode-hook "ganneff" "\
 
 
 \(fn)" nil nil)
 
-(autoload 'bh/remove-empty-drawer-on-clock-out "ganneff" "\
-
+(autoload 'my-c-return "ganneff" "\
+When in minibuffer use `icicle-candidate-action', otherwise use `cua-set-rectangle-mark'.
 
 \(fn)" t nil)
 
-(autoload 'bh/prepare-meeting-notes "ganneff" "\
-Prepare meeting notes for email
-   Take selected region and convert tabs to spaces, mark TODOs with leading >>>, and copy to kill ring for pasting
+(autoload 'org-mycal-export-limit "ganneff" "\
+Limit the export to items that have a date, time and a range. Also exclude certain categories.
 
-\(fn)" t nil)
+\(fn)" nil nil)
 
-(autoload 'bh/phone-call "ganneff" "\
-Return name and company info for caller from bbdb lookup
+(autoload 'mycal-export-limit "ganneff" "\
+Limit the export to items that don't match an unwanted category 
 
-\(fn)" t nil)
+\(fn)" nil nil)
 
-(autoload 'org-my-archive-done-tasks "ganneff" "\
+(autoload 'org-mycal-export "ganneff" "\
 
 
 \(fn)" t nil)
 
-(defalias 'archive-done-tasks 'org-my-archive-done-tasks)
-
-(autoload 'bh/is-project-p "ganneff" "\
-Any task with a todo keyword subtask
-
-\(fn)" nil nil)
-
-(autoload 'bh/is-project-subtree-p "ganneff" "\
-Any task with a todo keyword that is in a project subtree.
-Callers of this function already widen the buffer view.
+(autoload 'revert-all-buffers "ganneff" "\
+Refreshes all open buffers from their respective files.
 
-\(fn)" nil nil)
+\(fn)" t nil)
 
-(autoload 'bh/is-task-p "ganneff" "\
-Any task with a todo keyword and no subtask
+(autoload 'move-line-up "ganneff" "\
+Move up the current line.
 
-\(fn)" nil nil)
+\(fn)" t nil)
 
-(autoload 'bh/is-subproject-p "ganneff" "\
-Any task which is a subtask of another project
+(autoload 'move-line-down "ganneff" "\
+Move down the current line.
 
-\(fn)" nil nil)
+\(fn)" t nil)
 
-(autoload 'bh/list-sublevels-for-projects-indented "ganneff" "\
-Set org-tags-match-list-sublevels so when restricted to a subtree we list all subtasks.
-  This is normally used by skipping functions where this variable is already local to the agenda.
+(autoload 'jj-untabify-buffer "ganneff" "\
+Get rid of all tabs
 
-\(fn)" nil nil)
+\(fn)" t nil)
 
-(autoload 'bh/list-sublevels-for-projects "ganneff" "\
-Set org-tags-match-list-sublevels so when restricted to a subtree we list all subtasks.
-  This is normally used by skipping functions where this variable is already local to the agenda.
+(autoload 'prelude-sudo-edit "ganneff" "\
+Edit currently visited file as root.
 
-\(fn)" nil nil)
+With a prefix ARG prompt for a file to visit.
+Will also prompt for a file to visit if current
+buffer is not visiting a file.
 
-(autoload 'bh/skip-non-stuck-projects "ganneff" "\
-Skip trees that are not stuck projects
+\(fn &optional ARG)" t nil)
 
-\(fn)" nil nil)
+(autoload 'lisp-coding-defaults "ganneff" "\
 
-(autoload 'bh/skip-non-projects "ganneff" "\
-Skip trees that are not projects
 
 \(fn)" nil nil)
 
-(autoload 'bh/skip-project-trees-and-habits "ganneff" "\
-Skip trees that are projects
-
-\(fn)" nil nil)
+(autoload 'interactive-lisp-coding-defaults "ganneff" "\
 
-(autoload 'bh/skip-projects-and-habits-and-single-tasks "ganneff" "\
-Skip trees that are projects, tasks that are habits, single non-project tasks
 
 \(fn)" nil nil)
 
-(autoload 'bh/skip-project-tasks-maybe "ganneff" "\
-Show tasks related to the current restriction.
-When restricted to a project, skip project and sub project tasks, habits, NEXT tasks, and loose tasks.
-When not restricted, skip project and sub-project tasks, habits, and project related tasks.
+(autoload 'prelude-remove-elc-on-save "ganneff" "\
+If you're saving an elisp file, likely the .elc is no longer valid.
 
 \(fn)" nil nil)
 
-(autoload 'bh/skip-projects-and-habits "ganneff" "\
-Skip trees that are projects and tasks that are habits
-
-\(fn)" nil nil)
+(autoload 'prelude-emacs-lisp-mode-defaults "ganneff" "\
 
-(autoload 'bh/skip-non-subprojects "ganneff" "\
-Skip trees that are not projects
 
 \(fn)" nil nil)
 
-(autoload 'bh/org-agenda-to-appt "ganneff" "\
+(autoload 'clean-mode-line "ganneff" "\
 
 
 \(fn)" t nil)
 
-(autoload 'bh/restrict-to-file-or-follow "ganneff" "\
-Set agenda restriction to 'file or with argument invoke follow mode.
-I don't use follow mode very often but I restrict to file all the time
-so change the default 'F' binding in the agenda to allow both
-
-\(fn ARG)" t nil)
-
-(autoload 'bh/narrow-to-org-subtree "ganneff" "\
+(autoload 'force-backup-of-buffer "ganneff" "\
 
 
 \(fn)" nil nil)
 
-(autoload 'bh/narrow-to-subtree "ganneff" "\
-
+(autoload 'prelude-kill-other-buffers "ganneff" "\
+Kill all buffers but the current one.
+Doesn't mess with special buffers.
 
 \(fn)" t nil)
 
-(autoload 'bh/narrow-up-one-org-level "ganneff" "\
-
+(autoload 'just-one-space-with-newline "ganneff" "\
+Call just-one-space with a negative argument
 
-\(fn)" nil nil)
+\(fn)" t nil)
 
-(autoload 'bh/narrow-up-one-level "ganneff" "\
+;;;***
+\f
+;;;### (autoloads (sign-or-crypt gnus-user-format-function-topic-line
+;;;;;;  lld-notmuch-goto-message-in-gnus lld-notmuch-file-to-group
+;;;;;;  lld-notmuch-shortcut gnus-scum-expunge message-utils-setup
+;;;;;;  gnus-decay-score september-citation-line us-get-only-mail
+;;;;;;  my-message-header-setup-hook my-message-add-content gnus-user-format-function-y
+;;;;;;  jj-copy-mail-hambox jj-move-mail-spambox jj-forward-issue
+;;;;;;  jj-forward-spam-lists-spi jj-forward-ham-lists-spi jj-forward-spam-lists-oftc
+;;;;;;  jj-forward-ham-lists-oftc jj-forward-spam-lists-debconf jj-forward-ham-lists-debconf
+;;;;;;  jj-forward-spam nnimap-fetch-message-counts nnimap-request-message-counts
+;;;;;;  nnimap-message-count-cache-set nnimap-message-count-cache-get
+;;;;;;  nnimap-message-count-cache-clear gnus-user-format-function-x
+;;;;;;  gnus-user-format-function-t gnus-nnimap-count-format) "ganneff-gnus"
+;;;;;;  "ganneff-gnus.el" (20860 23316 93423 840000))
+;;; Generated autoloads from ganneff-gnus.el
 
+(autoload 'gnus-nnimap-count-format "ganneff-gnus" "\
 
-\(fn)" t nil)
 
-(autoload 'bh/narrow-to-org-project "ganneff" "\
+\(fn N)" nil nil)
 
+(autoload 'gnus-user-format-function-t "ganneff-gnus" "\
 
-\(fn)" nil nil)
 
-(autoload 'bh/narrow-to-project "ganneff" "\
+\(fn DUMMY)" nil nil)
 
+(autoload 'gnus-user-format-function-x "ganneff-gnus" "\
 
-\(fn)" t nil)
 
-(autoload 'bh/clock-in-to-next "ganneff" "\
-Switch a task from TODO to NEXT when clocking in.
-  Skips capture tasks, projects, and subprojects.
-  Switch projects and subprojects from NEXT back to TODO
+\(fn DUMMY)" nil nil)
 
-\(fn KW)" nil nil)
+(autoload 'nnimap-message-count-cache-clear "ganneff-gnus" "\
 
-(autoload 'bh/find-project-task "ganneff" "\
-Move point to the parent (project) task if any
 
 \(fn)" nil nil)
 
-(autoload 'bh/punch-in "ganneff" "\
-Start continuous clocking and set the default task to the
-  selected task.  If no task is selected set the Organization task
-  as the default task.
+(autoload 'nnimap-message-count-cache-get "ganneff-gnus" "\
 
-\(fn ARG)" t nil)
 
-(autoload 'bh/punch-out "ganneff" "\
+\(fn GROUP)" nil nil)
+
+(autoload 'nnimap-message-count-cache-set "ganneff-gnus" "\
 
 
-\(fn)" t nil)
+\(fn GROUP COUNT)" nil nil)
 
-(autoload 'bh/clock-in-default-task "ganneff" "\
+(autoload 'nnimap-request-message-counts "ganneff-gnus" "\
 
 
-\(fn)" nil nil)
+\(fn GROUP METHOD)" nil nil)
 
-(autoload 'bh/clock-in-parent-task "ganneff" "\
-Move point to the parent (project) task if any and clock in
+(autoload 'nnimap-fetch-message-counts "ganneff-gnus" "\
 
-\(fn)" nil nil)
 
-(autoload 'bh/clock-in-organization-task-as-default "ganneff" "\
+\(fn GROUP METHOD)" nil nil)
+
+(autoload 'jj-forward-spam "ganneff-gnus" "\
 
 
 \(fn)" t nil)
 
-(autoload 'bh/clock-out-maybe "ganneff" "\
+(autoload 'jj-forward-ham-lists-debconf "ganneff-gnus" "\
 
 
-\(fn)" nil nil)
+\(fn)" t nil)
 
-(autoload 'bh/clock-in-last-task "ganneff" "\
-Clock in the interrupted task if there is one
-  Skip the default task and get the next one.
-  A prefix arg forces clock in of the default task.
+(autoload 'jj-forward-spam-lists-debconf "ganneff-gnus" "\
 
-\(fn ARG)" t nil)
 
-(autoload 'bh/set-agenda-restriction-lock "ganneff" "\
-Set restriction lock to current task subtree or file if prefix is specified
+\(fn)" t nil)
 
-\(fn ARG)" t nil)
+(autoload 'jj-forward-ham-lists-oftc "ganneff-gnus" "\
 
-(autoload 'bh/get-pom-from-agenda-restriction-or-point "ganneff" "\
 
+\(fn)" t nil)
 
-\(fn)" nil nil)
+(autoload 'jj-forward-spam-lists-oftc "ganneff-gnus" "\
 
-(autoload 'sacha/isearch-yank-current-word "ganneff" "\
-Pull current word from buffer into search string.
 
 \(fn)" t nil)
 
-(autoload 'sacha/search-word-backward "ganneff" "\
-Find the previous occurrence of the current word.
+(autoload 'jj-forward-ham-lists-spi "ganneff-gnus" "\
+
 
 \(fn)" t nil)
 
-(autoload 'sacha/search-word-forward "ganneff" "\
-Find the next occurrance of the current word.
+(autoload 'jj-forward-spam-lists-spi "ganneff-gnus" "\
+
 
 \(fn)" t nil)
 
-(autoload 'sacha/increase-font-size "ganneff" "\
+(autoload 'jj-forward-issue "ganneff-gnus" "\
 
 
 \(fn)" t nil)
 
-(autoload 'sacha/decrease-font-size "ganneff" "\
+(autoload 'jj-move-mail-spambox "ganneff-gnus" "\
 
 
 \(fn)" t nil)
 
-(autoload 'epa-dired-mode-hook "ganneff" "\
+(autoload 'jj-copy-mail-hambox "ganneff-gnus" "\
 
 
-\(fn)" nil nil)
+\(fn)" t nil)
 
-(autoload 'my-c-return "ganneff" "\
-When in minibuffer use `icicle-candidate-action', otherwise use `cua-set-rectangle-mark'.
+(autoload 'gnus-user-format-function-y "ganneff-gnus" "\
+Convert the DATE to DD.MM.YYYY, HH:MM.
 
-\(fn)" t nil)
+\(fn HEADER)" nil nil)
+
+(autoload 'my-message-add-content "ganneff-gnus" "\
 
-(autoload 'org-mycal-export-limit "ganneff" "\
-Limit the export to items that have a date, time and a range. Also exclude certain categories.
 
 \(fn)" nil nil)
 
-(autoload 'mycal-export-limit "ganneff" "\
-Limit the export to items that don't match an unwanted category 
+(autoload 'my-message-header-setup-hook "ganneff-gnus" "\
+
 
 \(fn)" nil nil)
 
-(autoload 'org-mycal-export "ganneff" "\
+(autoload 'us-get-only-mail "ganneff-gnus" "\
+Fetch new mails
 
+\(fn)" nil nil)
 
-\(fn)" t nil)
+(autoload 'september-citation-line "ganneff-gnus" "\
 
-(autoload 'revert-all-buffers "ganneff" "\
-Refreshes all open buffers from their respective files.
 
 \(fn)" t nil)
 
-(autoload 'move-line-up "ganneff" "\
-Move up the current line.
+(autoload 'gnus-decay-score "ganneff-gnus" "\
+Decay SCORE.
+     This is done according to `gnus-score-decay-constant'
+     and `gnus-score-decay-scale'.
 
-\(fn)" t nil)
+\(fn SCORE)" nil nil)
 
-(autoload 'move-line-down "ganneff" "\
-Move down the current line.
+(autoload 'message-utils-setup "ganneff-gnus" "\
+Add menu-entries for message-utils.
 
-\(fn)" t nil)
+\(fn)" nil nil)
 
-(autoload 'jj-untabify-buffer "ganneff" "\
-Get rid of all tabs
+(autoload 'gnus-scum-expunge "ganneff-gnus" "\
+Remove this spammer from existance as much as possible.
 
 \(fn)" t nil)
 
-(autoload 'prelude-sudo-edit "ganneff" "\
-Edit currently visited file as root.
+(autoload 'lld-notmuch-shortcut "ganneff-gnus" "\
 
-With a prefix ARG prompt for a file to visit.
-Will also prompt for a file to visit if current
-buffer is not visiting a file.
 
-\(fn &optional ARG)" t nil)
+\(fn)" nil nil)
 
-(autoload 'lisp-coding-defaults "ganneff" "\
+(autoload 'lld-notmuch-file-to-group "ganneff-gnus" "\
+Calculate the Gnus group name from the given file name.
 
+\(fn FILE)" nil nil)
 
-\(fn)" nil nil)
+(autoload 'lld-notmuch-goto-message-in-gnus "ganneff-gnus" "\
+Open a summary buffer containing the current notmuch article.
 
-(autoload 'interactive-lisp-coding-defaults "ganneff" "\
+\(fn)" t nil)
 
+(autoload 'gnus-user-format-function-topic-line "ganneff-gnus" "\
 
-\(fn)" nil nil)
 
-(autoload 'prelude-remove-elc-on-save "ganneff" "\
-If you're saving an elisp file, likely the .elc is no longer valid.
+\(fn DUMMY)" nil nil)
 
-\(fn)" nil nil)
+(autoload 'sign-or-crypt "ganneff-gnus" "\
 
-(autoload 'prelude-emacs-lisp-mode-defaults "ganneff" "\
 
+\(fn)" t nil)
+
+;;;***
+\f
+;;;### (autoloads (bh/get-pom-from-agenda-restriction-or-point bh/set-agenda-restriction-lock
+;;;;;;  bh/clock-in-last-task bh/clock-out-maybe bh/clock-in-organization-task-as-default
+;;;;;;  bh/clock-in-parent-task bh/clock-in-default-task bh/punch-out
+;;;;;;  bh/punch-in bh/find-project-task bh/clock-in-to-next bh/narrow-to-project
+;;;;;;  bh/narrow-to-org-project bh/narrow-up-one-level bh/narrow-up-one-org-level
+;;;;;;  bh/narrow-to-subtree bh/narrow-to-org-subtree bh/restrict-to-file-or-follow
+;;;;;;  bh/org-agenda-to-appt bh/skip-non-subprojects bh/skip-projects-and-habits
+;;;;;;  bh/skip-project-tasks-maybe bh/skip-projects-and-habits-and-single-tasks
+;;;;;;  bh/skip-project-trees-and-habits bh/skip-non-projects bh/skip-non-stuck-projects
+;;;;;;  bh/list-sublevels-for-projects bh/list-sublevels-for-projects-indented
+;;;;;;  bh/is-subproject-p bh/is-task-p bh/is-project-subtree-p bh/is-project-p
+;;;;;;  org-my-archive-done-tasks bh/phone-call bh/prepare-meeting-notes
+;;;;;;  bh/remove-empty-drawer-on-clock-out bh/insert-heading-inactive-timestamp
+;;;;;;  bh/insert-inactive-timestamp bh/widen bh/org-todo bh/switch-to-scratch
+;;;;;;  bh/make-org-scratch bh/skip-non-archivable-tasks bh/set-truncate-lines
+;;;;;;  bh/hide-other bh/is-scheduled-late bh/is-scheduled-today
+;;;;;;  bh/is-scheduled bh/is-deadline bh/is-pending-deadline bh/is-late-deadline
+;;;;;;  bh/is-due-deadline bh/is-not-scheduled-or-deadline bh/agenda-sort
+;;;;;;  bh/agenda-sort-test-num bh/agenda-sort-test bh/verify-refile-target
+;;;;;;  bh/show-org-agenda) "ganneff-org" "ganneff-org.el" (20866
+;;;;;;  32672 234553 345000))
+;;; Generated autoloads from ganneff-org.el
+
+(autoload 'bh/show-org-agenda "ganneff-org" "\
+Show org-modes agenda.
+
+\(fn)" t nil)
+
+(autoload 'bh/verify-refile-target "ganneff-org" "\
+Exclude todo keywords with a done state from refile targets.
 
 \(fn)" nil nil)
 
-(autoload 'clean-mode-line "ganneff" "\
+(autoload 'bh/agenda-sort-test "ganneff-org" "\
+Test for agenda sort.
 
+\(fn FN A B)" nil t)
 
-\(fn)" t nil)
+(autoload 'bh/agenda-sort-test-num "ganneff-org" "\
 
-(autoload 'force-backup-of-buffer "ganneff" "\
 
+\(fn FN COMPFN A B)" nil t)
 
-\(fn)" nil nil)
+(autoload 'bh/agenda-sort "ganneff-org" "\
+Sorting strategy for agenda items.
+Late deadlines first, then scheduled, then non-late deadlines
 
-(autoload 'prelude-kill-other-buffers "ganneff" "\
-Kill all buffers but the current one.
-Doesn't mess with special buffers.
+\(fn A B)" nil nil)
 
-\(fn)" t nil)
+(autoload 'bh/is-not-scheduled-or-deadline "ganneff-org" "\
 
-;;;***
-\f
-;;;### (autoloads (sign-or-crypt gnus-user-format-function-topic-line
-;;;;;;  lld-notmuch-goto-message-in-gnus lld-notmuch-file-to-group
-;;;;;;  lld-notmuch-shortcut gnus-scum-expunge message-utils-setup
-;;;;;;  gnus-decay-score september-citation-line us-get-only-mail
-;;;;;;  my-message-header-setup-hook my-message-add-content gnus-user-format-function-y
-;;;;;;  jj-copy-mail-hambox jj-move-mail-spambox jj-forward-issue
-;;;;;;  jj-forward-spam-lists-spi jj-forward-ham-lists-spi jj-forward-spam-lists-oftc
-;;;;;;  jj-forward-ham-lists-oftc jj-forward-spam-lists-debconf jj-forward-ham-lists-debconf
-;;;;;;  jj-forward-spam nnimap-fetch-message-counts nnimap-request-message-counts
-;;;;;;  nnimap-message-count-cache-set nnimap-message-count-cache-get
-;;;;;;  nnimap-message-count-cache-clear gnus-user-format-function-x
-;;;;;;  gnus-user-format-function-t gnus-nnimap-count-format) "ganneff-gnus"
-;;;;;;  "ganneff-gnus.el" (20852 61403 0 0))
-;;; Generated autoloads from ganneff-gnus.el
 
-(autoload 'gnus-nnimap-count-format "ganneff-gnus" "\
+\(fn DATE-STR)" nil nil)
 
+(autoload 'bh/is-due-deadline "ganneff-org" "\
 
-\(fn N)" nil nil)
 
-(autoload 'gnus-user-format-function-t "ganneff-gnus" "\
+\(fn DATE-STR)" nil nil)
 
+(autoload 'bh/is-late-deadline "ganneff-org" "\
 
-\(fn DUMMY)" nil nil)
 
-(autoload 'gnus-user-format-function-x "ganneff-gnus" "\
+\(fn DATE-STR)" nil nil)
 
+(autoload 'bh/is-pending-deadline "ganneff-org" "\
 
-\(fn DUMMY)" nil nil)
 
-(autoload 'nnimap-message-count-cache-clear "ganneff-gnus" "\
+\(fn DATE-STR)" nil nil)
 
+(autoload 'bh/is-deadline "ganneff-org" "\
 
-\(fn)" nil nil)
 
-(autoload 'nnimap-message-count-cache-get "ganneff-gnus" "\
+\(fn DATE-STR)" nil nil)
 
+(autoload 'bh/is-scheduled "ganneff-org" "\
 
-\(fn GROUP)" nil nil)
 
-(autoload 'nnimap-message-count-cache-set "ganneff-gnus" "\
+\(fn DATE-STR)" nil nil)
 
+(autoload 'bh/is-scheduled-today "ganneff-org" "\
 
-\(fn GROUP COUNT)" nil nil)
 
-(autoload 'nnimap-request-message-counts "ganneff-gnus" "\
+\(fn DATE-STR)" nil nil)
 
+(autoload 'bh/is-scheduled-late "ganneff-org" "\
 
-\(fn GROUP METHOD)" nil nil)
 
-(autoload 'nnimap-fetch-message-counts "ganneff-gnus" "\
+\(fn DATE-STR)" nil nil)
 
+(autoload 'bh/hide-other "ganneff-org" "\
 
-\(fn GROUP METHOD)" nil nil)
 
-(autoload 'jj-forward-spam "ganneff-gnus" "\
+\(fn)" t nil)
 
+(autoload 'bh/set-truncate-lines "ganneff-org" "\
+Toggle value of truncate-lines and refresh window display.
 
 \(fn)" t nil)
 
-(autoload 'jj-forward-ham-lists-debconf "ganneff-gnus" "\
+(autoload 'bh/skip-non-archivable-tasks "ganneff-org" "\
+Skip trees that are not available for archiving
+
+\(fn)" nil nil)
+
+(autoload 'bh/make-org-scratch "ganneff-org" "\
 
 
 \(fn)" t nil)
 
-(autoload 'jj-forward-spam-lists-debconf "ganneff-gnus" "\
+(autoload 'bh/switch-to-scratch "ganneff-org" "\
 
 
 \(fn)" t nil)
 
-(autoload 'jj-forward-ham-lists-oftc "ganneff-gnus" "\
+(autoload 'bh/org-todo "ganneff-org" "\
 
 
-\(fn)" t nil)
+\(fn ARG)" t nil)
 
-(autoload 'jj-forward-spam-lists-oftc "ganneff-gnus" "\
+(autoload 'bh/widen "ganneff-org" "\
 
 
 \(fn)" t nil)
 
-(autoload 'jj-forward-ham-lists-spi "ganneff-gnus" "\
+(autoload 'bh/insert-inactive-timestamp "ganneff-org" "\
 
 
 \(fn)" t nil)
 
-(autoload 'jj-forward-spam-lists-spi "ganneff-gnus" "\
+(autoload 'bh/insert-heading-inactive-timestamp "ganneff-org" "\
 
 
-\(fn)" t nil)
+\(fn)" nil nil)
 
-(autoload 'jj-forward-issue "ganneff-gnus" "\
+(autoload 'bh/remove-empty-drawer-on-clock-out "ganneff-org" "\
 
 
 \(fn)" t nil)
 
-(autoload 'jj-move-mail-spambox "ganneff-gnus" "\
+(autoload 'bh/prepare-meeting-notes "ganneff-org" "\
+Prepare meeting notes for email
+   Take selected region and convert tabs to spaces, mark TODOs with leading >>>, and copy to kill ring for pasting
 
+\(fn)" t nil)
+
+(autoload 'bh/phone-call "ganneff-org" "\
+Return name and company info for caller from bbdb lookup
 
 \(fn)" t nil)
 
-(autoload 'jj-copy-mail-hambox "ganneff-gnus" "\
+(autoload 'org-my-archive-done-tasks "ganneff-org" "\
 
 
 \(fn)" t nil)
 
-(autoload 'gnus-user-format-function-y "ganneff-gnus" "\
-Convert the DATE to DD.MM.YYYY, HH:MM.
+(defalias 'archive-done-tasks 'org-my-archive-done-tasks)
 
-\(fn HEADER)" nil nil)
+(autoload 'bh/is-project-p "ganneff-org" "\
+Any task with a todo keyword subtask
 
-(autoload 'my-message-add-content "ganneff-gnus" "\
+\(fn)" nil nil)
 
+(autoload 'bh/is-project-subtree-p "ganneff-org" "\
+Any task with a todo keyword that is in a project subtree.
+Callers of this function already widen the buffer view.
 
 \(fn)" nil nil)
 
-(autoload 'my-message-header-setup-hook "ganneff-gnus" "\
+(autoload 'bh/is-task-p "ganneff-org" "\
+Any task with a todo keyword and no subtask
+
+\(fn)" nil nil)
 
+(autoload 'bh/is-subproject-p "ganneff-org" "\
+Any task which is a subtask of another project
 
 \(fn)" nil nil)
 
-(autoload 'us-get-only-mail "ganneff-gnus" "\
-Fetch new mails
+(autoload 'bh/list-sublevels-for-projects-indented "ganneff-org" "\
+Set org-tags-match-list-sublevels so when restricted to a subtree we list all subtasks.
+  This is normally used by skipping functions where this variable is already local to the agenda.
 
 \(fn)" nil nil)
 
-(autoload 'september-citation-line "ganneff-gnus" "\
+(autoload 'bh/list-sublevels-for-projects "ganneff-org" "\
+Set org-tags-match-list-sublevels so when restricted to a subtree we list all subtasks.
+  This is normally used by skipping functions where this variable is already local to the agenda.
+
+\(fn)" nil nil)
+
+(autoload 'bh/skip-non-stuck-projects "ganneff-org" "\
+Skip trees that are not stuck projects
+
+\(fn)" nil nil)
+
+(autoload 'bh/skip-non-projects "ganneff-org" "\
+Skip trees that are not projects
+
+\(fn)" nil nil)
+
+(autoload 'bh/skip-project-trees-and-habits "ganneff-org" "\
+Skip trees that are projects
+
+\(fn)" nil nil)
+
+(autoload 'bh/skip-projects-and-habits-and-single-tasks "ganneff-org" "\
+Skip trees that are projects, tasks that are habits, single non-project tasks
+
+\(fn)" nil nil)
+
+(autoload 'bh/skip-project-tasks-maybe "ganneff-org" "\
+Show tasks related to the current restriction.
+When restricted to a project, skip project and sub project tasks, habits, NEXT tasks, and loose tasks.
+When not restricted, skip project and sub-project tasks, habits, and project related tasks.
+
+\(fn)" nil nil)
+
+(autoload 'bh/skip-projects-and-habits "ganneff-org" "\
+Skip trees that are projects and tasks that are habits
+
+\(fn)" nil nil)
+
+(autoload 'bh/skip-non-subprojects "ganneff-org" "\
+Skip trees that are not projects
+
+\(fn)" nil nil)
+
+(autoload 'bh/org-agenda-to-appt "ganneff-org" "\
 
 
 \(fn)" t nil)
 
-(autoload 'gnus-decay-score "ganneff-gnus" "\
-Decay SCORE.
-     This is done according to `gnus-score-decay-constant'
-     and `gnus-score-decay-scale'.
+(autoload 'bh/restrict-to-file-or-follow "ganneff-org" "\
+Set agenda restriction to 'file or with argument invoke follow mode.
+I don't use follow mode very often but I restrict to file all the time
+so change the default 'F' binding in the agenda to allow both
 
-\(fn SCORE)" nil nil)
+\(fn ARG)" t nil)
+
+(autoload 'bh/narrow-to-org-subtree "ganneff-org" "\
 
-(autoload 'message-utils-setup "ganneff-gnus" "\
-Add menu-entries for message-utils.
 
 \(fn)" nil nil)
 
-(autoload 'gnus-scum-expunge "ganneff-gnus" "\
-Remove this spammer from existance as much as possible.
+(autoload 'bh/narrow-to-subtree "ganneff-org" "\
+
 
 \(fn)" t nil)
 
-(autoload 'lld-notmuch-shortcut "ganneff-gnus" "\
+(autoload 'bh/narrow-up-one-org-level "ganneff-org" "\
 
 
 \(fn)" nil nil)
 
-(autoload 'lld-notmuch-file-to-group "ganneff-gnus" "\
-Calculate the Gnus group name from the given file name.
+(autoload 'bh/narrow-up-one-level "ganneff-org" "\
 
-\(fn FILE)" nil nil)
 
-(autoload 'lld-notmuch-goto-message-in-gnus "ganneff-gnus" "\
-Open a summary buffer containing the current notmuch article.
+\(fn)" t nil)
+
+(autoload 'bh/narrow-to-org-project "ganneff-org" "\
+
+
+\(fn)" nil nil)
+
+(autoload 'bh/narrow-to-project "ganneff-org" "\
+
 
 \(fn)" t nil)
 
-(autoload 'gnus-user-format-function-topic-line "ganneff-gnus" "\
+(autoload 'bh/clock-in-to-next "ganneff-org" "\
+Switch a task from TODO to NEXT when clocking in.
+  Skips capture tasks, projects, and subprojects.
+  Switch projects and subprojects from NEXT back to TODO
 
+\(fn KW)" nil nil)
 
-\(fn DUMMY)" nil nil)
+(autoload 'bh/find-project-task "ganneff-org" "\
+Move point to the parent (project) task if any
 
-(autoload 'sign-or-crypt "ganneff-gnus" "\
+\(fn)" nil nil)
+
+(autoload 'bh/punch-in "ganneff-org" "\
+Start continuous clocking and set the default task to the
+  selected task.  If no task is selected set the Organization task
+  as the default task.
+
+\(fn ARG)" t nil)
+
+(autoload 'bh/punch-out "ganneff-org" "\
 
 
 \(fn)" t nil)
 
+(autoload 'bh/clock-in-default-task "ganneff-org" "\
+
+
+\(fn)" nil nil)
+
+(autoload 'bh/clock-in-parent-task "ganneff-org" "\
+Move point to the parent (project) task if any and clock in
+
+\(fn)" nil nil)
+
+(autoload 'bh/clock-in-organization-task-as-default "ganneff-org" "\
+
+
+\(fn)" t nil)
+
+(autoload 'bh/clock-out-maybe "ganneff-org" "\
+
+
+\(fn)" nil nil)
+
+(autoload 'bh/clock-in-last-task "ganneff-org" "\
+Clock in the interrupted task if there is one
+  Skip the default task and get the next one.
+  A prefix arg forces clock in of the default task.
+
+\(fn ARG)" t nil)
+
+(autoload 'bh/set-agenda-restriction-lock "ganneff-org" "\
+Set restriction lock to current task subtree or file if prefix is specified
+
+\(fn ARG)" t nil)
+
+(autoload 'bh/get-pom-from-agenda-restriction-or-point "ganneff-org" "\
+
+
+\(fn)" nil nil)
+
 ;;;***
 \f
 ;;;### (autoloads (gnus-alias-determine-identity gnus-alias-use-identity
 ;;;;;;  gnus-alias-select-identity gnus-alias-init) "gnus-alias"
-;;;;;;  "gnus-alias.el" (20788 26750 0 0))
+;;;;;;  "gnus-alias.el" (20858 49922 453891 89000))
 ;;; Generated autoloads from gnus-alias.el
 
 (autoload 'gnus-alias-init "gnus-alias" "\
@@ -2253,7 +2653,7 @@ Identity, but don't actually use it (just return it)
 \f
 ;;;### (autoloads (describe-keymap describe-file describe-option-of-type
 ;;;;;;  describe-option describe-command describe-function) "help-fns+"
-;;;;;;  "help-fns+.el" (20788 26750 0 0))
+;;;;;;  "help-fns+.el" (20858 49922 453891 89000))
 ;;; Generated autoloads from help-fns+.el
 
 (autoload 'describe-function "help-fns+" "\
@@ -2321,9 +2721,35 @@ Completion is available for the keymap name.
 
 ;;;***
 \f
+;;;### (autoloads (highlight-indentation-current-column-mode highlight-indentation-set-offset
+;;;;;;  highlight-indentation-mode) "highlight-indentation" "highlight-indentation.el"
+;;;;;;  (20859 59673 185323 424000))
+;;; Generated autoloads from highlight-indentation.el
+
+(autoload 'highlight-indentation-mode "highlight-indentation" "\
+Highlight indentation minor mode highlights indentation based
+on spaces
+
+\(fn &optional ARG)" t nil)
+
+(autoload 'highlight-indentation-set-offset "highlight-indentation" "\
+Set indentation offset localy in buffer, will prevent
+highlight-indentation from trying to guess indentation offset
+from major mode
+
+\(fn OFFSET)" t nil)
+
+(autoload 'highlight-indentation-current-column-mode "highlight-indentation" "\
+Hilight Indentation minor mode displays
+a vertical bar corresponding to the indentation of the current line
+
+\(fn &optional ARG)" t nil)
+
+;;;***
+\f
 ;;;### (autoloads (highline-split-window-horizontally highline-split-window-vertically
 ;;;;;;  highline-view-mode highline-mode global-highline-mode highline-customize)
-;;;;;;  "highline" "highline.el" (20788 26750 0 0))
+;;;;;;  "highline" "highline.el" (20858 49922 457891 109000))
 ;;; Generated autoloads from highline.el
 
 (autoload 'highline-customize "highline" "\
@@ -2405,7 +2831,7 @@ See also `highline-view-mode' for documentation.
 \f
 ;;;### (autoloads (ido-better-flex/match ido-better-flex/score ido-better-flex/disable
 ;;;;;;  ido-better-flex/enable) "ido-better-flex" "ido-better-flex.el"
-;;;;;;  (20788 26750 0 0))
+;;;;;;  (20858 49922 457891 109000))
 ;;; Generated autoloads from ido-better-flex.el
 
 (autoload 'ido-better-flex/enable "ido-better-flex" "\
@@ -2437,8 +2863,8 @@ An advice using `ido-better-flex' for IDO matching." (setq ad-return-value (ido-
 
 ;;;***
 \f
-;;;### (autoloads (json-mode) "json-mode" "json-mode.el" (20835 57211
-;;;;;;  0))
+;;;### (autoloads (json-mode) "json-mode" "json-mode.el" (20858 49922
+;;;;;;  477891 208000))
 ;;; Generated autoloads from json-mode.el
 
 (autoload 'json-mode "json-mode" "\
@@ -2449,7 +2875,7 @@ Major mode for editing JSON files
 ;;;***
 \f
 ;;;### (autoloads (keep-buffers-query) "keep-buffers" "keep-buffers.el"
-;;;;;;  (20855 52930 0 0))
+;;;;;;  (20858 49922 477891 208000))
 ;;; Generated autoloads from keep-buffers.el
 
 (autoload 'keep-buffers-query "keep-buffers" "\
@@ -2469,7 +2895,7 @@ The query function that disable deletion of buffers we protect.
 ;;;;;;  mpd-get-artists mpd-search mpd-list-directory-recursive mpd-get-directory-info
 ;;;;;;  mpd-get-directory-songs mpd-get-current-song mpd-get-playlist-entry
 ;;;;;;  mpd-get-playlist mpd-set-connection-timeout) "libmpdee" "libmpdee.el"
-;;;;;;  (20788 26750 0 0))
+;;;;;;  (20858 49922 477891 208000))
 ;;; Generated autoloads from libmpdee.el
 
 (autoload 'mpd-set-connection-timeout "libmpdee" "\
@@ -2737,7 +3163,7 @@ Interactively submit a bug report about `libmpdee'.
 ;;;***
 \f
 ;;;### (autoloads (global-linum-mode linum-mode linum-format) "linum"
-;;;;;;  "linum.el" (20788 26750 0 0))
+;;;;;;  "linum.el" (20858 49922 481891 228000))
 ;;; Generated autoloads from linum.el
 
 (defvar linum-format 'dynamic "\
@@ -2778,7 +3204,7 @@ See `linum-mode' for more information on Linum mode.
 ;;;***
 \f
 ;;;### (autoloads (linum-version linum-mode linum-format) "linum-old"
-;;;;;;  "linum-old.el" (20788 26750 0 0))
+;;;;;;  "linum-old.el" (20858 49922 477891 208000))
 ;;; Generated autoloads from linum-old.el
 
 (defvar linum-format "%6d " "\
@@ -2801,8 +3227,8 @@ Display version of linum.
 
 ;;;***
 \f
-;;;### (autoloads (lua-mode) "lua-mode" "lua-mode.el" (20835 57211
-;;;;;;  0))
+;;;### (autoloads (lua-mode) "lua-mode" "lua-mode.el" (20858 49922
+;;;;;;  485891 248000))
 ;;; Generated autoloads from lua-mode.el
 
 (autoload 'lua-mode "lua-mode" "\
@@ -2817,7 +3243,7 @@ Major mode for editing Lua code.
 ;;;***
 \f
 ;;;### (autoloads (gfm-mode markdown-mode) "markdown-mode" "markdown-mode.el"
-;;;;;;  (20835 57211 0 0))
+;;;;;;  (20858 49922 485891 248000))
 ;;; Generated autoloads from markdown-mode.el
 
 (autoload 'markdown-mode "markdown-mode" "\
@@ -2834,7 +3260,8 @@ Major mode for editing GitHub Flavored Markdown files.
 \f
 ;;;### (autoloads (markdown-copy-paste-html markdown-copy-rtf markdown-code-copy
 ;;;;;;  markdown-export-pandoc-pdf markdown-export-pdf markdown-export-latex)
-;;;;;;  "markdown-mode+" "markdown-mode+.el" (20835 57211 0 0))
+;;;;;;  "markdown-mode+" "markdown-mode+.el" (20858 49922 485891
+;;;;;;  248000))
 ;;; Generated autoloads from markdown-mode+.el
 
 (autoload 'markdown-export-latex "markdown-mode+" "\
@@ -2874,7 +3301,7 @@ Process file with multimarkdown, copy it to the clipboard, and paste in safari's
 \f
 ;;;### (autoloads (message-xpost-fup2 message-change-subject message-strip-subject-was
 ;;;;;;  message-mark-insert-file message-mark-inserted-region) "message-utils"
-;;;;;;  "message-utils.el" (20788 26750 0 0))
+;;;;;;  "message-utils.el" (20858 49922 485891 248000))
 ;;; Generated autoloads from message-utils.el
 
 (autoload 'message-mark-inserted-region "message-utils" "\
@@ -2907,8 +3334,8 @@ With prefix-argument just set Follow-Up, don't cross-post.
 
 ;;;***
 \f
-;;;### (autoloads (mgp-mode) "mgp-mode-cd" "mgp-mode-cd.el" (20788
-;;;;;;  26750 0 0))
+;;;### (autoloads (mgp-mode) "mgp-mode-cd" "mgp-mode-cd.el" (20858
+;;;;;;  49922 485891 248000))
 ;;; Generated autoloads from mgp-mode-cd.el
 
 (autoload 'mgp-mode "mgp-mode-cd" "\
@@ -2929,8 +3356,8 @@ more convenient. These commands are available from the main menu
 \f
 ;;;### (autoloads (miniedit-install-for-xemacs miniedit-install miniedit
 ;;;;;;  miniedit-new-features miniedit-commentary miniedit-introduction
-;;;;;;  miniedit-quick-start) "miniedit" "miniedit.el" (20788 26750
-;;;;;;  0))
+;;;;;;  miniedit-quick-start) "miniedit" "miniedit.el" (20858 49922
+;;;;;;  489891 267000))
 ;;; Generated autoloads from miniedit.el
 
 (autoload 'miniedit-quick-start "miniedit" "\
@@ -2971,7 +3398,7 @@ Try to Install miniedit for Xemacs.
 ;;;***
 \f
 ;;;### (autoloads (size-indication-mode modelinepos-column-limit)
-;;;;;;  "modeline-posn" "modeline-posn.el" (20788 26750 0 0))
+;;;;;;  "modeline-posn" "modeline-posn.el" (20858 49922 489891 267000))
 ;;; Generated autoloads from modeline-posn.el
 
 (defface modelinepos-column-warning '((t (:foreground "Red"))) "\
@@ -3002,8 +3429,16 @@ of the buffer is shown.
 
 ;;;***
 \f
+;;;### (autoloads nil "naquadah-theme" "naquadah-theme.el" (20865
+;;;;;;  30268 310751 538000))
+;;; Generated autoloads from naquadah-theme.el
+
+(when load-file-name (add-to-list 'custom-theme-load-path (file-name-as-directory (file-name-directory load-file-name))))
+
+;;;***
+\f
 ;;;### (autoloads (org-google-weather) "org-google-weather" "org-google-weather.el"
-;;;;;;  (20788 26750 0 0))
+;;;;;;  (20858 49922 493891 287000))
 ;;; Generated autoloads from org-google-weather.el
 
 (autoload 'org-google-weather "org-google-weather" "\
@@ -3014,8 +3449,8 @@ If LOCATION is not set, use org-google-weather-location.
 
 ;;;***
 \f
-;;;### (autoloads (paredit-mode) "paredit" "paredit.el" (20852 61403
-;;;;;;  0))
+;;;### (autoloads (paredit-mode) "paredit" "paredit.el" (20858 49922
+;;;;;;  493891 287000))
 ;;; Generated autoloads from paredit.el
 
 (autoload 'paredit-mode "paredit" "\
@@ -3031,45 +3466,9 @@ Paredit behaves badly if parentheses are unbalanced, so exercise
 
 ;;;***
 \f
-;;;### (autoloads (python-mode run-python) "python" "python.el" (20834
-;;;;;;  52017 0 0))
-;;; Generated autoloads from python.el
-
-(add-to-list 'auto-mode-alist (cons (purecopy "\\.py\\'") 'python-mode))
-
-(add-to-list 'interpreter-mode-alist (cons (purecopy "python") 'python-mode))
-
-(autoload 'run-python "python" "\
-Run an inferior Python process.
-Input and output via buffer named after
-`python-shell-buffer-name'.  If there is a process already
-running in that buffer, just switch to it.
-
-With argument, allows you to define CMD so you can edit the
-command used to call the interpreter and define DEDICATED, so a
-dedicated process for the current buffer is open.  When numeric
-prefix arg is other than 0 or 4 do not SHOW.
-
-Runs the hook `inferior-python-mode-hook' (after the
-`comint-mode-hook' is run).  (Type \\[describe-mode] in the
-process buffer for a list of commands.)
-
-\(fn CMD &optional DEDICATED SHOW)" t nil)
-
-(autoload 'python-mode "python" "\
-Major mode for editing Python files.
-
-\\{python-mode-map}
-Entry to this mode calls the value of `python-mode-hook'
-if that value is non-nil.
-
-\(fn)" t nil)
-
-;;;***
-\f
 ;;;### (autoloads (global-rainbow-delimiters-mode rainbow-delimiters-mode-disable
 ;;;;;;  rainbow-delimiters-mode-enable rainbow-delimiters-mode) "rainbow-delimiters"
-;;;;;;  "rainbow-delimiters.el" (20837 7309 0 0))
+;;;;;;  "rainbow-delimiters.el" (20858 49922 497891 307000))
 ;;; Generated autoloads from rainbow-delimiters.el
 
 (autoload 'rainbow-delimiters-mode "rainbow-delimiters" "\
@@ -3111,7 +3510,7 @@ See `rainbow-delimiters-mode' for more information on Rainbow-Delimiters mode.
 ;;;***
 \f
 ;;;### (autoloads (rainbow-mode) "rainbow-mode" "rainbow-mode.el"
-;;;;;;  (20852 61403 0 0))
+;;;;;;  (20858 49922 497891 307000))
 ;;; Generated autoloads from rainbow-mode.el
 
 (autoload 'rainbow-mode "rainbow-mode" "\
@@ -3123,7 +3522,7 @@ This will fontify with colors the string like \"#aabbcc\" or \"blue\".
 ;;;***
 \f
 ;;;### (autoloads (register-list) "register-list" "register-list.el"
-;;;;;;  (20835 57211 0 0))
+;;;;;;  (20858 49922 501891 327000))
 ;;; Generated autoloads from register-list.el
 
 (autoload 'register-list "register-list" "\
@@ -3144,8 +3543,8 @@ The list is displayed in a buffer named `*Register List*' in
 ;;;***
 \f
 ;;;### (autoloads (turn-off-screen-lines-mode turn-on-screen-lines-mode
-;;;;;;  screen-lines-mode) "screen-lines" "screen-lines.el" (20835
-;;;;;;  57211 0 0))
+;;;;;;  screen-lines-mode) "screen-lines" "screen-lines.el" (20858
+;;;;;;  49922 501891 327000))
 ;;; Generated autoloads from screen-lines.el
 
 (autoload 'screen-lines-mode "screen-lines" "\
@@ -3166,8 +3565,16 @@ Turn off Screen Lines minor mode for the current buffer.
 
 ;;;***
 \f
+;;;### (autoloads nil "solarized" "solarized.el" (20861 32727 719267
+;;;;;;  670000))
+;;; Generated autoloads from solarized.el
+
+(when (and (boundp 'custom-theme-load-path) load-file-name) (add-to-list 'custom-theme-load-path (file-name-as-directory (file-name-directory load-file-name))))
+
+;;;***
+\f
 ;;;### (autoloads (global-undo-tree-mode undo-tree-mode) "undo-tree"
-;;;;;;  "undo-tree.el" (20852 61403 0 0))
+;;;;;;  "undo-tree.el" (20858 49922 501891 327000))
 ;;; Generated autoloads from undo-tree.el
 
 (autoload 'undo-tree-mode "undo-tree" "\
@@ -3214,7 +3621,8 @@ See `undo-tree-mode' for more information on Undo-Tree mode.
 ;;;***
 \f
 ;;;### (autoloads (update-autoloads-for-file-in-package-area update-autoloads-in-package-area)
-;;;;;;  "update-autoloads" "update-autoloads.el" (20788 26750 0 0))
+;;;;;;  "update-autoloads" "update-autoloads.el" (20858 49922 545891
+;;;;;;  545000))
 ;;; Generated autoloads from update-autoloads.el
 
 (setq load-path (cons (file-name-directory load-file-name) load-path))
@@ -3231,8 +3639,8 @@ Update autoloads for files in the diretory containing this file.
 
 ;;;***
 \f
-;;;### (autoloads (uptimes-this uptimes) "uptimes" "uptimes.el" (20788
-;;;;;;  26750 0 0))
+;;;### (autoloads (uptimes-this uptimes) "uptimes" "uptimes.el" (20858
+;;;;;;  49922 545891 545000))
 ;;; Generated autoloads from uptimes.el
 
 (autoload 'uptimes "uptimes" "\
@@ -3248,7 +3656,7 @@ Display the uptime for the current emacs session.
 ;;;***
 \f
 ;;;### (autoloads (wdired-change-to-wdired-mode) "wdired" "wdired.el"
-;;;;;;  (20788 26750 0 0))
+;;;;;;  (20858 49922 561891 624000))
 ;;; Generated autoloads from wdired.el
 
 (autoload 'wdired-change-to-wdired-mode "wdired" "\
@@ -3266,7 +3674,7 @@ See `wdired-mode'.
 \f
 ;;;### (autoloads (worklog-summarize-tasks worklog-task-done worklog-task-stop
 ;;;;;;  worklog-task-begin worklog-do-task) "worklog" "worklog.el"
-;;;;;;  (20788 26750 0 0))
+;;;;;;  (20858 49922 561891 624000))
 ;;; Generated autoloads from worklog.el
 
 (autoload 'worklog-do-task "worklog" "\
@@ -3309,16 +3717,45 @@ Durations are measured in hours.  If invoked non-interactively (i.e., \"emacs
 
 ;;;***
 \f
+;;;### (autoloads (writegood-mode) "writegood-mode" "writegood-mode.el"
+;;;;;;  (20860 17206 775129 367000))
+;;; Generated autoloads from writegood-mode.el
+
+(autoload 'writegood-mode "writegood-mode" "\
+Colorize issues with the writing in the buffer.
+
+\(fn &optional ARG)" t nil)
+
+;;;***
+\f
+;;;### (autoloads (yaml-mode yaml) "yaml-mode" "yaml-mode.el" (20859
+;;;;;;  57200 0 0))
+;;; Generated autoloads from yaml-mode.el
+
+(let ((loads (get 'yaml 'custom-loads))) (if (member '"yaml-mode" loads) nil (put 'yaml 'custom-loads (cons '"yaml-mode" loads))))
+
+(autoload 'yaml-mode "yaml-mode" "\
+Simple mode to edit YAML.
+
+\\{yaml-mode-map}
+
+\(fn)" t nil)
+
+(add-to-list 'auto-mode-alist '("\\.ya?ml$" . yaml-mode))
+
+;;;***
+\f
 ;;;### (autoloads nil nil ("beamer.el" "bind-key.el" "buildd-gnus.el"
-;;;;;;  "crypt++.el" "dash.el" "ldap-mode.el" "mingus-stays-home.el"
-;;;;;;  "mingus.el" "moinmoin-mode.el" "naquadah-theme.el" "nnir.el"
-;;;;;;  "nntodo.el" "randomsig.el" "typing.el" "use-package.el" "volatile-highlights.el")
-;;;;;;  (20855 53701 778659 505000))
+;;;;;;  "crypt++.el" "dash.el" "filladapt.el" "ganneff2.el" "ldap-mode.el"
+;;;;;;  "mingus-stays-home.el" "mingus.el" "moinmoin-mode.el" "nnir.el"
+;;;;;;  "nntodo.el" "randomsig.el" "region-bindings-mode.el" "s.el"
+;;;;;;  "typing.el" "use-package.el" "volatile-highlights.el") (20866
+;;;;;;  32858 445377 86000))
 
 ;;;***
 \f
-;;;### (autoloads (bbdb-utilities-pgp) "bbdb-pgp" "bbdb-pgp.el" (20788
-;;;;;;  26750 0 0))
+;;;### (autoloads (bbdb-utilities-pgp) "bbdb-pgp" "bbdb-pgp.el" (20858
+;;;;;;  49922 393890 791000))
 ;;; Generated autoloads from bbdb-pgp.el
 
 (let ((loads (get 'bbdb-utilities-pgp 'custom-loads))) (if (member '"bbdb-pgp" loads) nil (put 'bbdb-utilities-pgp 'custom-loads (cons '"bbdb-pgp" loads))))