3 (skel-include "skelrc.c")
5 (defun skelrc-c-sanitize-guard (s)
6 (setq s (copy-sequence s))
7 (let ((i 0) (l (length s)))
10 (aset s i (if (eq (char-syntax c) ?w) (upcase c) ?_)))
14 (defun skelrc-c-guard-name ()
16 (skelrc-c-sanitize-guard
17 (file-name-sans-extension (file-name-nondirectory buffer-file-name)))
18 (skel-lookup 'include-guard-name)))
22 '((preamble . "[[guard]][[c++-guard]][[includes]][[structures]][[functions]]")
23 (guard . "#ifndef [[guard-name]]_H\n#define [[guard-name]]_H\n\n")
24 (guard-name . (skelrc-c-guard-name))
25 (c++-guard . "#ifdef __cplusplus\n extern \"C\" {\n#endif\n\n")
26 (includes . "[[includes-banner]]\n\n[[headers]]")
27 (includes-banner . (skelrc-banner "Header files"))
29 (structures . "[[struct-banner]]\n\n")
30 (struct-banner . (skelrc-banner "Data structures"))
31 (functions . "[[func-banner]]\n\n")
32 (func-banner . (skelrc-banner "Functions provided"))
33 (postamble . "\n[[c++-unguard]]#endif\n")
34 (c++-unguard . "#ifdef __cplusplus\n }\n#endif\n\n"))