blob: 401fcf2f1f5c3d4bef6e8c79fc38e63d810ce44e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
(defconst 42name "dkaiser")
(defconst 42email "dkaiser@student.42heilbronn.de")
(defun trim-or-fill-string (string length)
(if (> (length string) length)
(substring string 0 length)
(concat string (make-string (- length (length string)) ?\s))))
(defun check-42header ()
(save-excursion
(goto-char (point-min))
(equal (thing-at-point 'line t)
(concat "/* " (make-string 74 ?*) " */\n"))))
(defun add-42header ()
(save-excursion
(goto-char (point-min))
(insert "/* " (make-string 74 ?*) " */\n")
(insert "/* " (make-string 74 ? ) " */\n")
(insert "/* ::: :::::::: */\n")
(insert "/* "
(trim-or-fill-string (file-name-nondirectory buffer-file-name) 43)
" :+: :+: :+: */\n")
(insert "/* +:+ +:+ +:+ */\n")
(insert "/* By: "
(trim-or-fill-string (concat 42name " <" 42email ">") 39)
" +#+ +:+ +#+ */\n")
(insert "/* +#+#+#+#+#+ +#+ */\n")
(insert "/* Created: "
(format-time-string "%Y/%m/%d %H:%M:%S" (nth 5 (file-attributes buffer-file-name)))
" by "
(trim-or-fill-string 42name 11)
" #+# #+# */\n")
(insert "/* Updated: "
(format-time-string "%Y/%m/%d %H:%M:%S")
" by "
(trim-or-fill-string 42name 11)
" ### ########.fr */\n")
(insert "/* " (make-string 74 ? ) " */\n")
(insert "/* " (make-string 74 ?*) " */\n\n")))
(defun update-42header ()
(save-excursion
(goto-char (point-min))
(forward-line 8)
(kill-line)
(insert "/* Updated: "
(format-time-string "%Y/%m/%d %H:%M:%S")
" by "
(trim-or-fill-string 42name 11)
" ### ########.fr */")))
(defun add-or-update-42header ()
(interactive)
(save-excursion
(if (check-42header)
(funcall #'update-42header)
(funcall #'add-42header))))
(defun update-42header-if-existing ()
(if (check-42header)
(funcall #'update-42header)))
(add-hook 'before-save-hook #'update-42header-if-existing)
(global-set-key (kbd "C-c h") 'add-or-update-42header)
|