From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joe Corneli Subject: Bug: link beginning with parenthesis doesn't work [9.0.5 (release_9.0.5-474-g942b62 @ /home/joe/org-mode/lisp/)] Date: Thu, 20 Apr 2017 14:53:49 +0100 Message-ID: <871ssnqjh6.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:42330) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d1CWz-0001Vo-Sh for emacs-orgmode@gnu.org; Thu, 20 Apr 2017 09:54:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d1CWv-0005PH-9n for emacs-orgmode@gnu.org; Thu, 20 Apr 2017 09:53:57 -0400 Received: from mail-wm0-x234.google.com ([2a00:1450:400c:c09::234]:35147) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d1CWu-0005OO-Qw for emacs-orgmode@gnu.org; Thu, 20 Apr 2017 09:53:53 -0400 Received: by mail-wm0-x234.google.com with SMTP id w64so104661708wma.0 for ; Thu, 20 Apr 2017 06:53:52 -0700 (PDT) Received: from Teacup (cpc2-flit3-2-0-cust79.9-1.cable.virginm.net. [213.105.32.80]) by smtp.gmail.com with ESMTPSA id v52sm3241906wrc.53.2017.04.20.06.53.49 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 20 Apr 2017 06:53:50 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: emacs-orgmode@gnu.org Hello, I've noticed a problem with the link system. Reproduction steps. 1. Find any text in a file, surrounded by parentheses (like this). 2. org-capture the region in parentheses to come up with, e.g., ** TODO This is a problem (like this) [[file:~/test.tex::(like%20this)]] 3. Now try to follow the file:... link with org-open-at-point. This triggers an error, with a backtrace as follows (between ~~~'s). If you remove the leading parenthesis so that the link looks like this inst= ead: [[file:~/test.tex::like%20this)]] you can then jump to the captured text in the file, as expected. ~~~ Debugger entered--Lisp error: (error "No match for coderef: like this") signal(error ("No match for coderef: like this")) error("No match for coderef: like this") (condition-case err (org-link-search search) (error (funcall save-positio= n-maybe) (error (nth 1 err)))) (cond (line (org-goto-line line) (if (derived-mode-p (quote org-mode)) (p= rogn (org-reveal)))) (search (condition-case err (org-link-search search) (= error (funcall save-position-maybe) (error (nth 1 err)))))) (cond ((and (stringp cmd) (not (string-match "^\\s-*$" cmd))) (while (str= ing-match "['\"]%s['\"]" cmd) (setq cmd (replace-match "%s" t t cmd))) (set= q cmd (replace-regexp-in-string "%s" (shell-quote-argument (convert-standar= d-filename file)) cmd nil t)) (let ((save-match-data-internal (match-data))= ) (unwind-protect (progn (let ((match-index 1) (number-of-groups ...)) (set= -match-data link-match-data) (while (<=3D match-index number-of-groups) (le= t ... ...) (setq match-index ...)))) (set-match-data save-match-data-intern= al (quote evaporate)))) (let ((wconfig (current-window-configuration))) (un= wind-protect (progn (message "Running %s...done" cmd) (start-process-shell-= command cmd nil cmd) (and (boundp (quote org-wait)) (numberp org-wait) (sit= -for org-wait))) (set-window-configuration wconfig)))) ((or (stringp cmd) (= eq cmd (quote emacs))) (funcall (cdr (assq (quote file) org-link-frame-setu= p)) file) (widen) (cond (line (org-goto-line line) (if (derived-mode-p (quo= te org-mode)) (progn (org-reveal)))) (search (condition-case err (org-link-= search search) (error (funcall save-position-maybe) (error (nth 1 err))))))= ) ((functionp cmd) (let ((save-match-data-internal (match-data))) (unwind-p= rotect (progn (set-match-data link-match-data) (condition-case nil (funcall= cmd file link) ((debug wrong-number-of-arguments wrong-type-argument inval= id-function) (user-error "Please see Org News for version 9.0 about `org-fi= le-apps'--Lisp error: %S" cmd)))) (set-match-data save-match-data-internal = (quote evaporate))))) ((consp cmd) (user-error "Please see Org News for ver= sion 9.0 about `org-file-apps'--Error: Deprecated usage of %S" cmd)) (t (fu= ncall (cdr (assq (quote file) org-link-frame-setup)) file))) (let* ((file (if (equal path "") buffer-file-name (substitute-in-file-nam= e (expand-file-name path)))) (file-apps (append org-file-apps (org-default-= apps))) (apps (cl-remove-if (quote org-file-apps-entry-match-against-dlink-= p) file-apps)) (apps-dlink (cl-remove-if-not (quote org-file-apps-entry-mat= ch-against-dlink-p) file-apps)) (remp (and (assq (quote remote) apps) (org-= file-remote-p file))) (dirp (if remp nil (file-directory-p file))) (file (i= f (and dirp org-open-directory-means-index-dot-org) (concat (file-name-as-d= irectory file) "index.org") file)) (a-m-a-p (assq (quote auto-mode) apps)) = (dfile (downcase file)) (link (cond (line (concat file "::" (number-to-stri= ng line))) (search (concat file "::" search)) (t file))) (dlink (downcase l= ink)) (ext (and (string-match "\\`.*?\\.\\([a-zA-Z0-9]+\\(\\.gz\\)?\\)\\'" = dfile) (match-string 1 dfile))) (save-position-maybe (let ((old-buffer (cur= rent-buffer)) (old-pos (point)) (old-mode major-mode)) (function (lambda ni= l (and (derived-mode-p ...) (eq old-mode ...) (or ... ...) (org-mark-ring-p= ush old-pos old-buffer)))))) cmd link-match-data) (cond ((member in-emacs (= quote ((16) system))) (setq cmd (cdr (assq (quote system) apps)))) (in-emac= s (setq cmd (quote emacs))) (t (setq cmd (or (and remp (cdr (assq ... apps)= )) (and dirp (cdr (assq ... apps))) (let ((match ...)) (if match (progn ...= match) (progn ... nil))) (assoc-default dfile (org-apps-regexp-alist apps = a-m-a-p) (quote string-match)) (cdr (assoc ext apps)) (cdr (assq t apps))))= )) (if (eq cmd (quote system)) (progn (setq cmd (cdr (assq (quote system) a= pps))))) (if (eq cmd (quote default)) (progn (setq cmd (cdr (assoc t apps))= ))) (if (eq cmd (quote mailcap)) (progn (require (quote mailcap)) (mailcap-= parse-mailcaps) (let* ((mime-type (mailcap-extension-to-mime (or ext ""))) = (command (mailcap-mime-info mime-type))) (if (stringp command) (setq cmd co= mmand) (setq cmd (quote emacs)))))) (if (and (not (eq cmd (quote emacs))) (= not (file-exists-p file)) (not org-open-non-existing-files)) (progn (user-e= rror "No such file: %s" file))) (cond ((and (stringp cmd) (not (string-matc= h "^\\s-*$" cmd))) (while (string-match "['\"]%s['\"]" cmd) (setq cmd (repl= ace-match "%s" t t cmd))) (setq cmd (replace-regexp-in-string "%s" (shell-q= uote-argument (convert-standard-filename file)) cmd nil t)) (let ((save-mat= ch-data-internal (match-data))) (unwind-protect (progn (let (... ...) (set-= match-data link-match-data) (while ... ... ...))) (set-match-data save-matc= h-data-internal (quote evaporate)))) (let ((wconfig (current-window-configu= ration))) (unwind-protect (progn (message "Running %s...done" cmd) (start-p= rocess-shell-command cmd nil cmd) (and (boundp ...) (numberp org-wait) (sit= -for org-wait))) (set-window-configuration wconfig)))) ((or (stringp cmd) (= eq cmd (quote emacs))) (funcall (cdr (assq (quote file) org-link-frame-setu= p)) file) (widen) (cond (line (org-goto-line line) (if (derived-mode-p (quo= te org-mode)) (progn (org-reveal)))) (search (condition-case err (org-link-= search search) (error (funcall save-position-maybe) (error ...)))))) ((func= tionp cmd) (let ((save-match-data-internal (match-data))) (unwind-protect (= progn (set-match-data link-match-data) (condition-case nil (funcall cmd fil= e link) (... ...))) (set-match-data save-match-data-internal (quote evapora= te))))) ((consp cmd) (user-error "Please see Org News for version 9.0 about= `org-file-apps'--Error: Deprecated usage of %S" cmd)) (t (funcall (cdr (as= sq (quote file) org-link-frame-setup)) file))) (funcall save-position-maybe= )) org-open-file("~/test.tex" nil nil "(like this)") apply(org-open-file "~/test.tex" nil (nil "(like this)")) (if dedicated-function (funcall dedicated-function (concat path (and opti= on (concat "::" option)))) (apply (function org-open-file) path (cond (arg)= ((equal app "emacs") (quote emacs)) ((equal app "sys") (quote system))) (c= ond ((not option) nil) ((string-match-p "\\`[0-9]+\\'" option) (list (strin= g-to-number option))) (t (list nil (org-link-unescape option)))))) (let* ((option (org-element-property :search-option context)) (app (org-e= lement-property :application context)) (dedicated-function (org-link-get-pa= rameter (if app (concat type "+" app) type) :follow))) (if dedicated-functi= on (funcall dedicated-function (concat path (and option (concat "::" option= )))) (apply (function org-open-file) path (cond (arg) ((equal app "emacs") = (quote emacs)) ((equal app "sys") (quote system))) (cond ((not option) nil)= ((string-match-p "\\`[0-9]+\\'" option) (list (string-to-number option))) = (t (list nil (org-link-unescape option))))))) (if (string-match "[*?{]" (file-name-nondirectory path)) (dired path) (le= t* ((option (org-element-property :search-option context)) (app (org-elemen= t-property :application context)) (dedicated-function (org-link-get-paramet= er (if app (concat type "+" app) type) :follow))) (if dedicated-function (f= uncall dedicated-function (concat path (and option (concat "::" option)))) = (apply (function org-open-file) path (cond (arg) ((equal app "emacs") (quot= e emacs)) ((equal app "sys") (quote system))) (cond ((not option) nil) ((st= ring-match-p "\\`[0-9]+\\'" option) (list (string-to-number option))) (t (l= ist nil (org-link-unescape option)))))))) (cond ((equal type "file") (if (string-match "[*?{]" (file-name-nondirect= ory path)) (dired path) (let* ((option (org-element-property :search-option= context)) (app (org-element-property :application context)) (dedicated-fun= ction (org-link-get-parameter (if app ... type) :follow))) (if dedicated-fu= nction (funcall dedicated-function (concat path (and option ...))) (apply (= function org-open-file) path (cond (arg) (... ...) (... ...)) (cond (... ni= l) (... ...) (t ...))))))) ((functionp (org-link-get-parameter type :follow= )) (funcall (org-link-get-parameter type :follow) path)) ((member type (quo= te ("coderef" "custom-id" "fuzzy" "radio"))) (if (run-hook-with-args-until-= success (quote org-open-link-functions) path) nil (if (not arg) (org-mark-r= ing-push) (switch-to-buffer-other-window (org-get-buffer-for-internal-link = (current-buffer)))) (let ((destination (save-excursion (save-restriction ..= . ... ...)))) (if (and (<=3D (point-min) destination) (>=3D (point-max) des= tination)) nil (widen)) (goto-char destination)))) (t (browse-url-at-point)= )) (save-current-buffer (set-buffer (or reference-buffer (current-buffer))) = (cond ((equal type "file") (if (string-match "[*?{]" (file-name-nondirector= y path)) (dired path) (let* ((option (org-element-property :search-option c= ontext)) (app (org-element-property :application context)) (dedicated-funct= ion (org-link-get-parameter ... :follow))) (if dedicated-function (funcall = dedicated-function (concat path ...)) (apply (function org-open-file) path = (cond ... ... ...) (cond ... ... ...)))))) ((functionp (org-link-get-parame= ter type :follow)) (funcall (org-link-get-parameter type :follow) path)) ((= member type (quote ("coderef" "custom-id" "fuzzy" "radio"))) (if (run-hook-= with-args-until-success (quote org-open-link-functions) path) nil (if (not = arg) (org-mark-ring-push) (switch-to-buffer-other-window (org-get-buffer-fo= r-internal-link (current-buffer)))) (let ((destination (save-excursion ...)= )) (if (and (<=3D ... destination) (>=3D ... destination)) nil (widen)) (go= to-char destination)))) (t (browse-url-at-point)))) (let ((type (org-element-property :type context)) (path (org-link-unescap= e (org-element-property :path context)))) (save-current-buffer (set-buffer = (or reference-buffer (current-buffer))) (cond ((equal type "file") (if (str= ing-match "[*?{]" (file-name-nondirectory path)) (dired path) (let* ((optio= n ...) (app ...) (dedicated-function ...)) (if dedicated-function (funcall = dedicated-function ...) (apply ... path ... ...))))) ((functionp (org-link-= get-parameter type :follow)) (funcall (org-link-get-parameter type :follow)= path)) ((member type (quote ("coderef" "custom-id" "fuzzy" "radio"))) (if = (run-hook-with-args-until-success (quote org-open-link-functions) path) nil= (if (not arg) (org-mark-ring-push) (switch-to-buffer-other-window (org-get= -buffer-for-internal-link ...))) (let ((destination ...)) (if (and ... ...)= nil (widen)) (goto-char destination)))) (t (browse-url-at-point))))) (cond ((not context) (user-error "No link found")) ((memq type (quote (co= mment comment-block keyword node-property))) (call-interactively (function = org-open-at-point-global))) ((and (memq type (quote (headline inlinetask)))= (let ((case-fold-search nil)) (save-excursion (beginning-of-line) (looking= -at org-complex-heading-regexp)) (or (not (match-beginning 5)) (< (point) (= match-beginning 5))))) (let* ((data (org-offer-links-in-entry (current-buff= er) (point) arg)) (links (car data)) (links-end (cdr data))) (if links (let= ((--dolist-tail-- (if ... ... links))) (while --dolist-tail-- (let (...) (= search-forward link nil links-end) (goto-char ...) (org-open-at-point) (set= q --dolist-tail-- ...)))) (require (quote org-attach)) (org-attach-reveal (= quote if-exists))))) ((and (eq type (quote clock)) value (>=3D (point) (org= -element-property :begin value)) (<=3D (point) (org-element-property :end v= alue))) (org-follow-timestamp-link)) ((>=3D (point) (save-excursion (goto-c= har (org-element-property :end context)) (skip-chars-backward " ") (point)= )) (user-error "No link found")) ((eq type (quote timestamp)) (org-follow-t= imestamp-link)) ((and (memq type (quote (headline inlinetask))) (let ((case= -fold-search nil)) (save-excursion (beginning-of-line) (looking-at org-comp= lex-heading-regexp)) (and (match-beginning 5) (>=3D (point) (match-beginnin= g 5))))) (org-tags-view arg (substring (match-string 5) 0 -1))) ((eq type (= quote link)) (let ((type (org-element-property :type context)) (path (org-l= ink-unescape (org-element-property :path context)))) (save-current-buffer (= set-buffer (or reference-buffer (current-buffer))) (cond ((equal type "file= ") (if (string-match "[*?{]" ...) (dired path) (let* ... ...))) ((functionp= (org-link-get-parameter type :follow)) (funcall (org-link-get-parameter ty= pe :follow) path)) ((member type (quote ...)) (if (run-hook-with-args-until= -success ... path) nil (if ... ... ...) (let ... ... ...))) (t (browse-url-= at-point)))))) ((or (eq type (quote footnote-reference)) (and (eq type (quo= te footnote-definition)) (save-excursion (skip-chars-forward " ") (let ((b= egin ...)) (if begin (< ... begin) (=3D ... ...)))))) (org-footnote-action)= ) (t (user-error "No link found"))) (let* ((context (org-element-lineage (org-element-context) (quote (clock = comment comment-block footnote-definition footnote-reference headline inlin= etask keyword link node-property timestamp)) t)) (type (org-element-type co= ntext)) (value (org-element-property :value context))) (cond ((not context)= (user-error "No link found")) ((memq type (quote (comment comment-block ke= yword node-property))) (call-interactively (function org-open-at-point-glob= al))) ((and (memq type (quote (headline inlinetask))) (let ((case-fold-sear= ch nil)) (save-excursion (beginning-of-line) (looking-at org-complex-headin= g-regexp)) (or (not (match-beginning 5)) (< (point) (match-beginning 5)))))= (let* ((data (org-offer-links-in-entry (current-buffer) (point) arg)) (lin= ks (car data)) (links-end (cdr data))) (if links (let ((--dolist-tail-- ...= )) (while --dolist-tail-- (let ... ... ... ... ...))) (require (quote org-a= ttach)) (org-attach-reveal (quote if-exists))))) ((and (eq type (quote cloc= k)) value (>=3D (point) (org-element-property :begin value)) (<=3D (point) = (org-element-property :end value))) (org-follow-timestamp-link)) ((>=3D (po= int) (save-excursion (goto-char (org-element-property :end context)) (skip-= chars-backward " ") (point))) (user-error "No link found")) ((eq type (quo= te timestamp)) (org-follow-timestamp-link)) ((and (memq type (quote (headli= ne inlinetask))) (let ((case-fold-search nil)) (save-excursion (beginning-o= f-line) (looking-at org-complex-heading-regexp)) (and (match-beginning 5) (= >=3D (point) (match-beginning 5))))) (org-tags-view arg (substring (match-s= tring 5) 0 -1))) ((eq type (quote link)) (let ((type (org-element-property = :type context)) (path (org-link-unescape (org-element-property :path contex= t)))) (save-current-buffer (set-buffer (or reference-buffer (current-buffer= ))) (cond ((equal type "file") (if ... ... ...)) ((functionp ...) (funcall = ... path)) ((member type ...) (if ... nil ... ...)) (t (browse-url-at-point= )))))) ((or (eq type (quote footnote-reference)) (and (eq type (quote footn= ote-definition)) (save-excursion (skip-chars-forward " ") (let (...) (if b= egin ... ...))))) (org-footnote-action)) (t (user-error "No link found")))) (if (run-hook-with-args-until-success (quote org-open-at-point-functions)= ) nil (let* ((context (org-element-lineage (org-element-context) (quote (cl= ock comment comment-block footnote-definition footnote-reference headline i= nlinetask keyword link node-property timestamp)) t)) (type (org-element-typ= e context)) (value (org-element-property :value context))) (cond ((not cont= ext) (user-error "No link found")) ((memq type (quote (comment comment-bloc= k keyword node-property))) (call-interactively (function org-open-at-point-= global))) ((and (memq type (quote (headline inlinetask))) (let ((case-fold-= search nil)) (save-excursion (beginning-of-line) (looking-at org-complex-he= ading-regexp)) (or (not ...) (< ... ...)))) (let* ((data (org-offer-links-i= n-entry ... ... arg)) (links (car data)) (links-end (cdr data))) (if links = (let (...) (while --dolist-tail-- ...)) (require (quote org-attach)) (org-a= ttach-reveal (quote if-exists))))) ((and (eq type (quote clock)) value (>= =3D (point) (org-element-property :begin value)) (<=3D (point) (org-element= -property :end value))) (org-follow-timestamp-link)) ((>=3D (point) (save-e= xcursion (goto-char (org-element-property :end context)) (skip-chars-backwa= rd " ") (point))) (user-error "No link found")) ((eq type (quote timestamp= )) (org-follow-timestamp-link)) ((and (memq type (quote (headline inlinetas= k))) (let ((case-fold-search nil)) (save-excursion (beginning-of-line) (loo= king-at org-complex-heading-regexp)) (and (match-beginning 5) (>=3D ... ...= )))) (org-tags-view arg (substring (match-string 5) 0 -1))) ((eq type (quot= e link)) (let ((type (org-element-property :type context)) (path (org-link-= unescape ...))) (save-current-buffer (set-buffer (or reference-buffer ...))= (cond (... ...) (... ...) (... ...) (t ...))))) ((or (eq type (quote footn= ote-reference)) (and (eq type (quote footnote-definition)) (save-excursion = (skip-chars-forward " ") (let ... ...)))) (org-footnote-action)) (t (user-= error "No link found"))))) (if (call-interactively (quote org-babel-open-src-block-result)) nil (org= -load-modules-maybe) (setq org-window-config-before-follow-link (current-wi= ndow-configuration)) (org-remove-occur-highlights nil nil t) (if (run-hook-= with-args-until-success (quote org-open-at-point-functions)) nil (let* ((co= ntext (org-element-lineage (org-element-context) (quote (clock comment comm= ent-block footnote-definition footnote-reference headline inlinetask keywor= d link node-property timestamp)) t)) (type (org-element-type context)) (val= ue (org-element-property :value context))) (cond ((not context) (user-error= "No link found")) ((memq type (quote (comment comment-block keyword node-p= roperty))) (call-interactively (function org-open-at-point-global))) ((and = (memq type (quote ...)) (let (...) (save-excursion ... ...) (or ... ...))) = (let* ((data ...) (links ...) (links-end ...)) (if links (let ... ...) (req= uire ...) (org-attach-reveal ...)))) ((and (eq type (quote clock)) value (>= =3D (point) (org-element-property :begin value)) (<=3D (point) (org-element= -property :end value))) (org-follow-timestamp-link)) ((>=3D (point) (save-e= xcursion (goto-char ...) (skip-chars-backward " ") (point))) (user-error "= No link found")) ((eq type (quote timestamp)) (org-follow-timestamp-link)) = ((and (memq type (quote ...)) (let (...) (save-excursion ... ...) (and ... = ...))) (org-tags-view arg (substring (match-string 5) 0 -1))) ((eq type (qu= ote link)) (let ((type ...) (path ...)) (save-current-buffer (set-buffer ..= .) (cond ... ... ... ...)))) ((or (eq type (quote footnote-reference)) (and= (eq type ...) (save-excursion ... ...))) (org-footnote-action)) (t (user-e= rror "No link found"))))) (run-hook-with-args (quote org-follow-link-hook))) org-open-at-point(nil) funcall-interactively(org-open-at-point nil) call-interactively(org-open-at-point nil nil) command-execute(org-open-at-point) ~~~ Details of my system: Emacs : GNU Emacs 25.1.50.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.1= 3) of 2016-08-15 Package: Org mode version 9.0.5 (release_9.0.5-474-g942b62 @ /home/joe/org-= mode/lisp/) current state: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D (setq org-tree-slide-mode-hook '(toggle-org-cloaking) org-tab-first-hook '(org-babel-hide-result-toggle-maybe org-babel-header-arg-expand) org-speed-command-hook '(org-speed-command-activate org-babel-speed-command-activate) org-agenda-diary-file "~/postdoc.git/org/work.org" org-occur-hook '(org-first-headline-recenter) org-use-fast-todo-selection 'prefix org-clock-in-prepare-hook '((lambda nil (if (not pomodoro-is-active) (let ((minutes (read-number "Start timer: " 90) ) ) (when org-timer-current-timer (org-timer-stop)) (org-timer-set-timer minutes) (pomodoro-mode)) ) ) ) org-metaup-hook '(org-babel-load-in-session-maybe) org-html-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME CONTENTS)"] org-log-done 'note org-latex-format-inlinetask-function 'org-latex-format-inlinetask-default-= function org-confirm-shell-link-function 'yes-or-no-p org-image-actual-width nil org-finalize-agenda-hook '(remove-todo-and-cookies place-agenda-tags) org-ascii-format-inlinetask-function 'org-ascii-format-inlinetask-default org-latex-pdf-process '("latexmk -pdflatex=3D'pdflatex -interaction nonsto= pmode' -pdf -bibtex -f %f") org-agenda-prefix-format '((agenda . " %i %-10:c%?-12t% s") (timeline . " % s") (todo . " %i %-12:c") (tags . " %i %-12:c") (search . " %i %-12:c")) org-agenda-custom-commands '(("a" agenda "" ((org-agenda-include-diary t) (org-agenda-remove-tags t)) ) ) org-latex-format-headline-function 'org-latex-format-headline-default-func= tion org-default-notes-file "~/postdoc.git/org/blotter.org" org-todo-keyword-faces '(("META" :foreground "darkgreen" :background "snow" :box (:line-width -1)) ("NOTE" :foreground "lightgreen" :weight bold) ("LOW" :foreground "#cb4b16" :background "snow" :weight bold :box (:line-width -1)) ("MED" :foreground "goldenrod" :background "cornsilk" :weight bold :box (:line-width -1)) ("HIGH" :foreground "darkgreen" :background "honeydew" :weight bold :box (:line-width -1)) ("NICE" :foreground "blue" :background "honeydew" :weight bold :box (:line-width -1)) ("MUST" :foreground "purple" :background "honeydew" :weight bold :box (:line-width -1)) ("TODO" :foreground "black" :background "snow" :weight bold :box (:line-width -1)) ("DONE" . org-done) ("WONTFIX" . org-done) ("ONICE" . org-done) ("QUESTION" . org-done)) org-capture-templates '(("c" "Comment" entry (file+headline "~/postdoc.git/org/blotter.org" "Comments") "* COMMENT %?\n %i\n %a\n:PROPERTIES:\n:capture= d: %U\n:END:") ("q" "Question" entry (file+headline "~/postdoc.git/org/blotter.org" "Questions") "* QUESTION %?\n %i\n %a\n:PROPERTIES:\n:captur= ed: %U\n:END:") ("t" "Todo" entry (file+headline "~/postdoc.git/org/blotter.org" "Tasks") "* TODO %?\n %i\n %a") ("n" "Note" entry (file+headline "~/postdoc.git/org/blotter.org" "Notes") "* NOTE %?\n %i\n %a") ("c" "calfw2org" entry (file nil) "* %?\n %(cfw:org-capture-day)") ) org-after-todo-state-change-hook '(org-clock-out-if-current) org-latex-format-drawer-function #[514 "\207" [] 3 "\n\n(fn _ CONTENTS)"] org-odt-format-headline-function 'org-odt-format-headline-default-function org-from-is-user-regexp "\\" org-html-postamble t org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer) org-agenda-before-write-hook '(org-agenda-add-entry-text) org-babel-pre-tangle-hook '(save-buffer) org-mode-hook '((lambda nil (font-lock-add-keywords nil (quote (("^\\s-*?\\(-\\{1\\}\\|[0-9]+\\.\\)\\s-" 1 font-lock-warning-face t) ) ) ) (font-lock-add-keywords nil (quote (("^\\(-\\{5,\\}\\)" 1 font-lock-type-face t) ) ) ) ) (closure (org-inlinetask-min-level buffer-face-mode-face org-mode-map org-tbl-menu org-org-menu org-struct-menu org-entities org-last-state org-id-track-globally org-clock-start-time texmathp-why remember-data-file org-agenda-tags-todo-honor-ignore-options iswitchb-temp-buflist calc-embedded-open-mode calc-embedded-open-formula calc-embedded-close-formula align-mode-rules-list org-emphasis-alist org-emphasis-regexp-components org-export-registered-backends org-modules org-babel-load-languages t) nil (add-hook (quote change-major-mode-hook) (quote org-show-block-all) (quote append) (quote local)) ) #[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-babel-show-result-all append local] 5] org-babel-result-hide-spec org-babel-hide-all-hashes) org-refile-targets '((org-agenda-files :maxlevel . 1) ("~/postdoc.git/org/alt/backlog.org" :maxlevel . 1) ) org-archive-hook '(org-attach-archive-delete-maybe) org-make-link-description-function 'rewrite-link org-agenda-sorting-strategy '((agenda todo-state-down tag-up category-keep priority-down) (todo todo-state-down tag-up priority-down category-keep) (tags priority-down category-keep) (search category-keep)) org-ascii-format-drawer-function #[771 ".\207" [] 4 "\n\n(fn NAME CONTENTS= WIDTH)"] org-odt-format-inlinetask-function 'org-odt-format-inlinetask-default-func= tion org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point org-babel-execute-safely-maybe) org-timer-done-hook '((lambda nil (message "Timer done!") (when pomodoro-is-active (save-excursion (set-buffer (get-file-buffer org-agenda-diary-file) ) (pomodoro-mode -1)) (message "Pomodoro done!") (notifications-notify :title "time over" :body "record comments and take a break") (start-process-shell-command "cvlc" nil (concat "cvlc --play-and-exit --no-video " timer-done-sound-file) ) (org-clock-out)) ) ) org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers org-cycle-show-empty-lines org-optimize-window-after-visibility-change) org-agenda-hide-tags-regexp "write" org-archive-location "~/postdoc.git/org/work.org::datetree/" org-agenda-use-time-grid nil org-agenda-finalize-hook '(remove-todo-and-cookies place-agenda-tags) org-export-before-processing-hook '((lambda (x) (setq org-html-postamble-format (list =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 (list =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 "en" =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 (co= ncat =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20 = "

Author: %a

\n

Created:= %d

\n

Revised: " =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20 = (format-time-string "%B %-d, %Y") =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20 = "

\n

%v

") =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 ) =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 ) ) ) ) org-todo-keywords '((sequence "META(M)" "NOTE(n)" "NICE(i)" "LOW(l)" "MED(m)" "HIGH(h)" "MUST(u)" "TODO(t)" "|" "DONE(d)" "WONTFIX(w)" "ONICE(o)" "QUESTION(q)") ) org-timer-default-timer 90 org-export-allow-bind-keywords t org-babel-tangle-lang-exts '(("clojure" . "clj") ("emacs-lisp" . "el") ("elisp" . "el")) org-confirm-elisp-link-function 'yes-or-no-p org-metadown-hook '(org-babel-pop-to-session-maybe) org-odt-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME CONTENTS)"] org-html-format-headline-function 'org-html-format-headline-default-functi= on org-link-parameters '(("id" :follow org-id-open) ("rmail" :follow org-rmail-open :store org-rmail-store-link) ("mhe" :follow org-mhe-open :store org-mhe-store-link) ("irc" :follow org-irc-visit :store org-irc-store-link) ("info" :follow org-info-open :export org-info-export :store org-info-store-link) ("gnus" :follow org-gnus-open :store org-gnus-store-link) ("docview" :follow org-docview-open :export org-docview-export :store org-docview-store-link) ("bibtex" :follow org-bibtex-open :store org-bibtex-store-link) ("bbdb" :follow org-bbdb-open :export org-bbdb-export :complete org-bbdb-complete-link :store org-bbdb-store-link) ("w3m" :store org-w3m-store-link) ("cite" :follow org-bibtex-goto-citation :export nil) ("mu4e" :follow org-mu4e-open :export nil) ("file+sys") ("file+emacs") ("doi" :follow org--open-doi-link) ("elisp" :follow org--open-elisp-link) ("file" :complete org-file-complete-link) ("ftp" :follow (lambda (path) (browse-url (concat "ftp:" path))) ) ("help" :follow org--open-help-link) ("http" :follow (lambda (path) (browse-url (concat "http:" path))) ) ("https" :follow (lambda (path) (browse-url (concat "https:" path))) ) ("mailto" :follow (lambda (path) (browse-url (concat "mailto:" path))) ) ("news" :follow (lambda (path) (browse-url (concat "news:" path))) ) ("shell" :follow org--open-shell-link)) org-structure-template-alist '(("s" "#+BEGIN_SRC ?\n\n#+END_SRC") ("e" "#+BEGIN_EXAMPLE\n?\n#+END_EXAMPLE") ("q" "#+BEGIN_QUOTE\n?\n#+END_QUOTE") ("v" "#+BEGIN_VERSE\n?\n#+END_VERSE") ("V" "#+BEGIN_VERBATIM\n?\n#+END_VERBATIM") ("c" "#+BEGIN_CENTER\n?\n#+END_CENTER") ("l" "#+BEGIN_LaTeX\n?\n#+END_LaTeX") ("L" "#+LaTeX: ") ("h" "#+BEGIN_HTML\n?\n#+END_HTML") ("H" "#+HTML: ") ("a" "#+BEGIN_ASCII\n?\n#+END_ASCII") ("A" "#+ASCII: ") ("i" "#+INDEX: ?") ("I" "#+INCLUDE: %file ?") ("x" "#+BEGIN_COMMENT\n?\n#+END_COMMENT") ) org-babel-load-languages '((clojure . t) (emacs-lisp . t)) org-clock-sound t org-cycle-global-at-bob t org-tree-slide-slide-in-effect nil org-agenda-include-deadlines nil org-html-format-inlinetask-function 'org-html-format-inlinetask-default-fu= nction org-agenda-mode-hook '(hide-notes) org-agenda-files '("~/postdoc.git/org/") org-clock-out-hook '((lambda nil (when (timerp org-timer-countdown-timer) (save-excursion (set-buffer (get-file-buffer org-agenda-diary-file) ) (pomodoro-mode -1)) (cancel-timer org-timer-countdown-timer) ) (let ((comments (read-string "Comments: "))) (save-excursion (org-set-property "SUMMARY" comments)) ) (let ((minutes (read-number "Take a break: " 5)) ) (when (> minutes 0) (org-agenda-list) (org-agenda-diary-entry-in-org-file-programmatical= ly (concat =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 = (int-to-string minutes) =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 = " minute break " =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 = (substring =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20 = (current-time-string) =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20 =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20 = 11 16) =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20 = ) ) (org-agenda-list) (search-forward "break") (goto-char (line-beginning-position)) (org-timer-set-timer minutes)) ) ) org-clock-remove-empty-clock-drawer) )