diff options
Diffstat (limited to '42header.el')
| -rw-r--r-- | 42header.el | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/42header.el b/42header.el new file mode 100644 index 0000000..401fcf2 --- /dev/null +++ b/42header.el @@ -0,0 +1,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) |
