7fb0878b |
1 | ;;; -*-emacs-lisp-*- |
2 | |
3 | (skel-include "skelrc.c") |
4 | |
5 | (defun skelrc-c-guard-name () |
6 | (if buffer-file-name |
7 | (upcase (file-name-sans-extension (file-name-nondirectory |
8 | buffer-file-name))) |
9 | (skel-lookup 'include-guard-name))) |
10 | |
11 | (setq skel-alist |
12 | (append |
13 | '((preamble . "[[guard]][[c++-guard]][[includes]][[structures]][[functions]]") |
14 | (guard . "#ifndef [[guard-name]]_H\n#define [[guard-name]]_H\n\n") |
15 | (guard-name . (skelrc-c-guard-name)) |
16 | (c++-guard . "#ifdef __cplusplus\n extern \"C\" {\n#endif\n\n") |
17 | (includes . "[[includes-banner]]\n\n[[headers]]") |
18 | (includes-banner . (skelrc-banner "Header files")) |
19 | (headers . "") |
20 | (structures . "[[struct-banner]]\n\n") |
21 | (struct-banner . (skelrc-banner "Data structures")) |
22 | (functions . "[[func-banner]]\n\n") |
23 | (func-banner . (skelrc-banner "Functions provided")) |
24 | (postamble . "\n\n[[c++-unguard]]#endif") |
25 | (c++-unguard . "#ifdef __cplusplus\n }\n#endif\n\n")) |
26 | skel-alist)) |