diff --git a/contrib/lisp/org-effectiveness.el b/contrib/lisp/org-effectiveness.el index a872cb201..998171205 100644 --- a/contrib/lisp/org-effectiveness.el +++ b/contrib/lisp/org-effectiveness.el @@ -33,6 +33,22 @@ (require 'org) +(defcustom org-effectiveness-max-todo 50 + "This variable is useful to advice to the user about +many TODO pending" + :type 'integer + :group 'org-effectiveness) + +(defun org-effectiveness-advice() + "Advicing about a possible excess of TODOS" + (interactive) + (goto-char (point-min)) + (if (< org-effectiveness-max-todo (count-matches "* TODO")) + (message "An excess of TODOS!"))) + +;; Check advice starting an org file +(add-hook 'org-mode-hook 'org-effectiveness-advice) + (defun org-effectiveness-count-keyword(keyword) "Print a message with the number of keyword outline in the current buffer" (interactive "sKeyword: ") @@ -208,21 +224,26 @@ (defun org-effectiveness-plot-ascii (startdate enddate) (interactive "sGive me the start date: \nsGive me the end date: " startdate enddate) (setq dates (org-effectiveness-check-dates startdate enddate)) - (setq syear (cadr (assoc 'startyear dates))) - (setq smonth (cadr (assoc 'startmonth dates))) - (setq eyear (cadr (assoc 'endyear dates))) - (setq emonth (cadr (assoc 'endmonth dates))) -;; (switch-to-buffer "*org-effectiveness*") - (let ((month smonth) - (year syear) + (let ((syear (cadr (assoc 'startyear dates))) + (smonth (cadr (assoc 'startmonth dates))) + (year (cadr (assoc 'startyear dates))) + (month (cadr (assoc 'startmonth dates))) + (emonth (cadr (assoc 'endmonth dates))) + (eyear (cadr (assoc 'endyear dates))) + (buffer (current-buffer)) (str "")) - (while (and (>= eyear year) (>= emonth month)) - (org-effectiveness-ascii-bar (string-to-number (org-effectiveness-in-date (concat (number-to-string year) "-" (org-effectiveness-month-to-string month)) 1)) (format "%s-%s" year month)) - (if (= month 12) + (while (or (> eyear year) (and (= eyear year) (>= emonth month))) + (setq str (org-effectiveness-in-date (concat (number-to-string year) "-" (org-effectiveness-month-to-string month)) 1)) + (switch-to-buffer "*org-effectiveness*") + (org-effectiveness-ascii-bar (string-to-number str) (format "%s-%s" year month)) + (switch-to-buffer buffer) + (if (eq month 12) (progn (setq year (+ 1 year)) (setq month 1)) - (setq month (+ 1 month)))))) + (setq month (+ 1 month))))) + (switch-to-buffer "*org-effectiveness*")) + (provide 'org-effectiveness) diff --git a/lisp/org.el b/lisp/org.el index cbcc7f947..b1022fdde 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -10556,7 +10556,8 @@ is used internally by `org-open-link-from-string'." (cond ((not option) nil) ((org-string-match-p "\\`[0-9]+\\'" option) (list (string-to-number option))) - (t (list nil option)))))))) + (t (list nil + (org-link-unescape option))))))))) ((assoc type org-link-protocols) (funcall (nth 1 (assoc type org-link-protocols)) path)) ((equal type "help")