(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]]")