X-Git-Url: https://git.distorted.org.uk/~mdw/skel/blobdiff_plain/283303711f6c1e302e1817e0f4fde31e9a58b771..da3134ee428238075d12295d6f184694e9cca36c:/skelrc.h diff --git a/skelrc.h b/skelrc.h index 444af4d..ec7ab24 100644 --- a/skelrc.h +++ b/skelrc.h @@ -2,16 +2,30 @@ (skel-include "skelrc.c") +(defun skelrc-c-sanitize-guard (s) + (setq s (copy-sequence s)) + (let ((i 0) (l (length s))) + (while (< i l) + (let ((c (aref s i))) + (aset s i (if (eq (char-syntax c) ?w) (upcase c) ?_))) + (setq i (1+ i)))) + s) + (defun skelrc-c-guard-name () (if buffer-file-name - (upcase (file-name-sans-extension (file-name-nondirectory - buffer-file-name))) + (skelrc-c-sanitize-guard + (concat + (let ((pre (or (skelrc-assq 'guard-prefix skel-alist) + (skelrc-assq 'library skel-alist) + (skelrc-assq 'Library skel-alist)))) + (if pre (concat pre "/"))) + (file-name-nondirectory buffer-file-name))) (skel-lookup 'include-guard-name))) (setq skel-alist (append '((preamble . "[[guard]][[c++-guard]][[includes]][[structures]][[functions]]") - (guard . "#ifndef [[guard-name]]_H\n#define [[guard-name]]_H\n\n") + (guard . "#ifndef [[guard-name]]\n#define [[guard-name]]\n\n") (guard-name . (skelrc-c-guard-name)) (c++-guard . "#ifdef __cplusplus\n extern \"C\" {\n#endif\n\n") (includes . "[[includes-banner]]\n\n[[headers]]")