Previously, the macro would expect the parent style to exist at
expansion time, which works at the REPL, but not in the byte compiler.
Instead, expand to code to handle inheritance at runtime.
(func (intern (concat "mdw-define-c-style/" name-string))))
`(progn
(setq ,var
(func (intern (concat "mdw-define-c-style/" name-string))))
`(progn
(setq ,var
- ',(if (null parent)
- assocs
- (let ((parent-list (symbol-value
- (intern (concat "mdw-c-style/"
- (symbol-name parent))))))
- (mdw-merge-style-alists assocs parent-list))))
+ ,(if (null parent)
+ `',assocs
+ (let ((parent-list (intern (concat "mdw-c-style/"
+ (symbol-name parent)))))
+ `(mdw-merge-style-alists ',assocs ,parent-list))))
(defun ,func () (c-add-style ,name-string ,var))
(and (featurep 'cc-mode) (,func))
(add-hook 'mdw-define-c-styles-hook ',func)
(defun ,func () (c-add-style ,name-string ,var))
(and (featurep 'cc-mode) (,func))
(add-hook 'mdw-define-c-styles-hook ',func)