Function: majutsu-row-normalize-column-spec

majutsu-row-normalize-column-spec is a natively compiled function defined in majutsu-row.el.

Signature

(majutsu-row-normalize-column-spec PROFILE SPEC)

Documentation

Normalize one column SPEC using PROFILE.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-row.el
(defun majutsu-row-normalize-column-spec (profile spec)
  "Normalize one column SPEC using PROFILE."
  (unless (and (plistp spec)
               (symbolp (plist-get spec :field)))
    (user-error "Invalid row column %S" spec))
  (let* ((field (plist-get spec :field))
         (module (if (plist-member spec :module)
                     (plist-get spec :module)
                   (user-error "Column %S requires :module" field)))
         (face (if (plist-member spec :face)
                   (plist-get spec :face)
                 t))
         (post (if (plist-member spec :post)
                   (plist-get spec :post)
                 :default))
         (template (if (plist-member spec :template)
                       (plist-get spec :template)
                     (user-error "Column %S requires :template" field))))
    (when (plist-member spec :instance)
      (user-error "Column %S must not declare reserved :instance" field))
    (setq module (if (keywordp module)
                     (intern (substring (symbol-name module) 1))
                   module))
    (unless (memq module majutsu-row-module-order)
      (user-error "Column %S has invalid :module %S" field module))
    (unless (or (eq face t) (null face) (symbolp face))
      (user-error "Column %S has invalid :face %S" field face))
    (list :field field
          :module module
          :template template
          :face face
          :post (majutsu-row-normalize-postprocessors
                 profile post field))))