davidam.el: add davidam-org-envolve-check-list
[worg.git] / code / elisp / davidam.el
1 ;; Copyright (C) 2013  David Arroyo Menéndez
2
3 ;; Author: David Arroyo Menéndez <davidam@es.gnu.org>
4 ;; Maintainer: David Arroyo Menéndez <davidam@es.gnu.org>
5
6 ;; This file is free software; you can redistribute it and/or modify
7 ;; it under the terms of the GNU General Public License as published by
8 ;; the Free Software Foundation; either version 3, or (at your option)
9 ;; any later version.
10
11 ;; This file is distributed in the hope that it will be useful,
12 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 ;; GNU General Public License for more details.
15
16 ;; You should have received a copy of the GNU General Public License
17 ;; along with GNU Emacs; see the file COPYING.  If not, write to
18 ;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 
19 ;; Boston, MA 02110-1301 USA,
20
21 (defun davidam-org-envolve-numbered-list()
22   "Itemize some lines as a numbered list"
23   (interactive)
24   (setq num 1)
25   (setq max (+ 1 (count-lines (point) (mark))))
26   (if (> (point) (mark))
27       (goto-line (+ 1 (count-lines 1 (mark))))
28     (goto-line (+ 1 (count-lines 1 (point)))))
29   (while (< num max)
30     (move-beginning-of-line nil)
31     (insert (concat (number-to-string num) ". "))
32     (setq num (+ 1 num))
33     (forward-line)))
34
35 (defun davidam-org-envolve-check-list()
36   "Itemize some lines as a checked list"
37   (interactive)
38   (setq num 1)
39   (setq max (+ 1 (count-lines (point) (mark))))
40   (if (> (point) (mark))
41       (goto-line (+ 1 (count-lines 1 (mark))))
42     (goto-line (+ 1 (count-lines 1 (point)))))
43   (while (< num max)
44     (move-beginning-of-line nil)
45     (insert (concat "+ [ ] "))
46     (setq num (+ 1 num))
47     (forward-line)))
48
49 (defun davidam-org-envolve-src(msg)
50   "Envolve source between org tags"
51   (interactive "sChoose your programming language: " msg)
52   (if (string= "" msg)
53       (setq msg "lisp"))
54   (if (> (point) (mark))
55       (progn 
56         (goto-char (point))
57         (insert "#+END_SRC")
58         (goto-char (mark))
59         (insert "#+BEGIN_SRC " msg "\n"))
60     (progn
61       (goto-char (point))
62       (insert "#+BEGIN_SRC " msg "\n")
63       (goto-char (mark))
64       (insert "#+END_SRC"))))
65
66 (defun davidam-org-src(msg)
67   "Insert org source tags"
68   (interactive "sChoose your programming language: " msg)
69   (if (equal nil msg) 
70       (setq msg "lisp"))
71   (insert "#+BEGIN_SRC " msg)
72   (insert "\n#+END_SRC\n"))
73
74 (defun davidam-org-display-date ()
75   (interactive)
76   (setq item-time (org-get-scheduled-time (point)))
77   (message "%s" item-time))
78
79 (defun davidam-happy-birthday(person)
80   (interactive "MWrite the person name: ")
81   (message (concat "Happy birthday to you. Happy birthday to you. Happy birthday, dear " person ". Happy birthday to you")))
82
83 (defun davidam-fibonacci (n)
84   (interactive "nEscribe un numero: " n)
85   (message (number-to-string (fibonacci-aux n))))
86
87 (defun fibonacci-aux (n)
88 ;;  (interactive "dEscribe un numero: " n)
89   (if (or (= n 0) (= n 1))
90       1
91     (+ (fibonacci-aux (- n 1)) (fibonacci-aux (- n 2)))))
92
93 (defun davidam-torres-de-hanoi (discos)
94   (interactive "nDime tus discos y te digo cuantos pasos tienes que dar: " discos)
95   (message (number-to-string (torres-de-hanoi-aux discos))))
96
97 (defun torres-de-hanoi-aux (discos)
98   (if (= discos 1)
99       1
100     (+ 1 (* 2 (torres-de-hanoi-aux (- discos 1))))))
101
102 (defun davidam-insert-output (command)
103    (interactive "sCommand: ")
104    (insert (shell-command-to-string command)))
105
106 (defun davidam-output-to-buffer (buffer command)
107    (interactive "sBuffer name: \nsCommand: ")
108    (get-buffer-create buffer)
109    (call-process command nil buffer)
110    (switch-to-buffer (get-buffer buffer)))
111
112 (defun davidam-rsync-rmail ()
113   (interactive)
114   (get-buffer-create "rsync")
115   (call-process "/home/davidam/scripts/rsync-rmail.sh" nil "rsync")
116   (switch-to-buffer (get-buffer "rsync")))
117
118 (defun davidam-multiply-two (number1 number2)
119   (interactive "nNumber 1: \nnNumber 2: " number1 number2)
120   (message "The result is %d" (* number1 number2)))
121
122 (defun davidam-triangle-using-dotimes (number-of-rows)
123   "Using dotimes, add up the number of pebbles in a triangle."
124   (interactive "nNumber of rows: " number-of-rows) 
125   (let ((total 0))  ; otherwise a total is a void variable
126     (dotimes (number number-of-rows total)
127       (setq total (+ total (1+ number))))
128     (message "Number of pebbles: %d" total)))
129
130