Use new style backquotes. apel-wl
authordmaus <dmaus>
Sun, 17 Jul 2011 07:01:18 +0000 (07:01 +0000)
committerdmaus <dmaus>
Sun, 17 Jul 2011 07:01:18 +0000 (07:01 +0000)
* tinycustom.el (defcustom): Use new style backquotes.
* static.el (static-if, static-when, static-unless)
(static-condition-case, static-defconst): Dto.
* pym.el (defun-maybe, defmacro-maybe, defsubst-maybe)
(defalias-maybe, defvar-maybe, defconst-maybe, defun-maybe-cond)
(defmacro-maybe-cond, defsubst-maybe-cond, def-edebug-spec): Dto.
* product.el (product-provide): Dto.
* poem-om.el (char-next-index): Dto.
* poem-nemacs.el (char-next-index): Dto.
* poem-ltn1.el (char-next-index): Dto.
* poe.el (save-current-buffer, with-current-buffer)
(with-temp-file, with-temp-message, with-temp-buffer)
(with-output-to-string): Dto.
* poe-18.el (save-match-data): Dto.
* pces-raw.el (as-binary-process, as-binary-input-file)
(as-binary-output-file): Dto
* pces-om.el (as-binary-process, as-binary-input-file)
(as-binary-output-file): Dto.
* pces-nemacs.el (as-binary-process, as-binary-input-file)
(as-binary-output-file): Dto.
* pccl.el (define-ccl-program): Dto.
* filename.el (filename-special-filter-1): Dto.
* broken.el (broken-facility, if-broken, when-broken)
(unless-broken, check-broken-facility): Dto.

[Patch created by HAMANO Kiyoto <khiker.mail@gmail.com>]

This breaks compatibility with Emacs18.

16 files changed:
ChangeLog
broken.el
filename.el
pccl.el
pces-nemacs.el
pces-om.el
pces-raw.el
poe-18.el
poe.el
poem-ltn1.el
poem-nemacs.el
poem-om.el
product.el
pym.el
static.el
tinycustom.el

index 9ead1a8..e77100f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,32 @@
+2011-07-17  David Maus  <dmaus@ictsoc.de>
+
+       * tinycustom.el (defcustom): Use new style backquotes.
+       * static.el (static-if, static-when, static-unless)
+       (static-condition-case, static-defconst): Dto.
+       * pym.el (defun-maybe, defmacro-maybe, defsubst-maybe)
+       (defalias-maybe, defvar-maybe, defconst-maybe, defun-maybe-cond)
+       (defmacro-maybe-cond, defsubst-maybe-cond, def-edebug-spec): Dto.
+       * product.el (product-provide): Dto.
+       * poem-om.el (char-next-index): Dto.
+       * poem-nemacs.el (char-next-index): Dto.
+       * poem-ltn1.el (char-next-index): Dto.
+       * poe.el (save-current-buffer, with-current-buffer)
+       (with-temp-file, with-temp-message, with-temp-buffer)
+       (with-output-to-string): Dto.
+       * poe-18.el (save-match-data): Dto.
+       * pces-raw.el (as-binary-process, as-binary-input-file)
+       (as-binary-output-file): Dto
+       * pces-om.el (as-binary-process, as-binary-input-file)
+       (as-binary-output-file): Dto.
+       * pces-nemacs.el (as-binary-process, as-binary-input-file)
+       (as-binary-output-file): Dto.
+       * pccl.el (define-ccl-program): Dto.
+       * filename.el (filename-special-filter-1): Dto.
+       * broken.el (broken-facility, if-broken, when-broken)
+       (unless-broken, check-broken-facility): Dto.
+
+       [Patch created by HAMANO Kiyoto <khiker.mail@gmail.com>]
+
 2010-06-15  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
 
        * APEL: Version 10.8 released.
index 81d1ec6..c2eda6f 100644 (file)
--- a/broken.el
+++ b/broken.el
@@ -58,51 +58,51 @@ FACILITY must be symbol.
 
 If ASSERTION is not omitted and evaluated to nil and NO-NOTICE is nil,
 it is noticed."
-  (` (static-if (, assertion)
-        (eval-and-compile
-          (broken-facility-internal '(, facility) (, docstring) t))
-       (eval-when-compile
-        (when (and '(, assertion) (not '(, no-notice))
-                   notice-non-obvious-broken-facility)
-          (message "BROKEN FACILITY DETECTED: %s" (, docstring)))
-        nil)
-       (eval-and-compile
-        (broken-facility-internal '(, facility) (, docstring) nil)))))
+  `(static-if ,assertion
+             (eval-and-compile
+               (broken-facility-internal ',facility ,docstring t))
+             (eval-when-compile
+               (when (and ',assertion (not ',no-notice)
+                          notice-non-obvious-broken-facility)
+                 (message "BROKEN FACILITY DETECTED: %s" ,docstring))
+               nil)
+             (eval-and-compile
+               (broken-facility-internal ',facility ,docstring nil))))
 
 (put 'if-broken 'lisp-indent-function 2)
 (defmacro if-broken (facility then &rest else)
   "If FACILITY is broken, expand to THEN, otherwise (progn . ELSE)."
-  (` (static-if (broken-p '(, facility))
-        (, then)
-       (,@ else))))
+  `(static-if (broken-p ',facility)
+             ,then
+             ,@else))
 
 
 (put 'when-broken 'lisp-indent-function 1)
 (defmacro when-broken (facility &rest body)
   "If FACILITY is broken, expand to (progn . BODY), otherwise nil."
-  (` (static-when (broken-p '(, facility))
-       (,@ body))))
+  `(static-when (broken-p ',facility)
+               ,@body))
 
 (put 'unless-broken 'lisp-indent-function 1)
 (defmacro unless-broken (facility &rest body)
   "If FACILITY is not broken, expand to (progn . BODY), otherwise nil."
-  (` (static-unless (broken-p '(, facility))
-       (,@ body))))
+  `(static-unless (broken-p ',facility)
+                 ,@ body))
 
 (defmacro check-broken-facility (facility)
   "Check FACILITY is broken or not. If the status is different on
 compile(macro expansion) time and run time, warn it."
-  (` (if-broken (, facility)
-        (unless (broken-p '(, facility))
-          (message "COMPILE TIME ONLY BROKEN FACILITY DETECTED: %s" 
-                   (or
-                    '(, (broken-facility-description facility))
-                    (broken-facility-description '(, facility)))))
-       (when (broken-p '(, facility))
-        (message "RUN TIME ONLY BROKEN FACILITY DETECTED: %s" 
-                 (or
-                  (broken-facility-description '(, facility))
-                  '(, (broken-facility-description facility))))))))
+  `(if-broken ,facility
+             (unless (broken-p ',facility)
+               (message "COMPILE TIME ONLY BROKEN FACILITY DETECTED: %s" 
+                        (or
+                         ',(broken-facility-description facility)
+                         (broken-facility-description ',facility))))
+             (when (broken-p ',facility)
+               (message "RUN TIME ONLY BROKEN FACILITY DETECTED: %s" 
+                        (or
+                         (broken-facility-description ',facility)
+                         ', (broken-facility-description facility))))))
 
 
 ;;; @ end
index 6aa4edd..c5af551 100644 (file)
@@ -102,26 +102,26 @@ Moreover, if you want to convert Japanese filename to roman string by kakasi,
                inc-i '(1+ i))
        (setq sref 'aref
              inc-i '(+ i (char-length chr))))
-      (` (let ((len (length (, string)))
-              (b 0)(i 0)
-              (dest ""))
-          (while (< i len)
-            (let ((chr ((, sref) (, string) i))
-                  (lst filename-replacement-alist)
-                  ret)
-              (while (and lst (not ret))
-                (if (if (functionp (car (car lst)))
-                        (setq ret (funcall (car (car lst)) chr))
-                      (setq ret (memq chr (car (car lst)))))
-                    t                  ; quit this loop.
-                  (setq lst (cdr lst))))
-              (if ret
-                  (setq dest (concat dest (substring (, string) b i)
-                                     (cdr (car lst)))
-                        i (, inc-i)
-                        b i)
-                (setq i (, inc-i)))))
-          (concat dest (substring (, string) b)))))))
+      `(let ((len (length ,string))
+            (b 0)(i 0)
+            (dest ""))
+        (while (< i len)
+          (let ((chr (,sref ,string i))
+                (lst filename-replacement-alist)
+                ret)
+            (while (and lst (not ret))
+              (if (if (functionp (car (car lst)))
+                      (setq ret (funcall (car (car lst)) chr))
+                    (setq ret (memq chr (car (car lst)))))
+                  t                    ; quit this loop.
+                (setq lst (cdr lst))))
+            (if ret
+                (setq dest (concat dest (substring ,string b i)
+                                   (cdr (car lst)))
+                      i ,inc-i
+                      b i)
+              (setq i ,inc-i))))
+        (concat dest (substring ,string b))))))
 
 (defun filename-special-filter (string)
   (filename-special-filter-1 string))
diff --git a/pccl.el b/pccl.el
index 088d5c9..c719a3c 100644 (file)
--- a/pccl.el
+++ b/pccl.el
@@ -55,7 +55,7 @@
       "When CCL-PROGRAM is too long, internal buffer is extended automatically."
       (let ((try-ccl-compile t)
            (prog (eval (ad-get-arg 1))))
-       (ad-set-arg 1 (` '(, prog)))
+       (ad-set-arg 1 `',prog)
        (while try-ccl-compile
          (setq try-ccl-compile nil)
          (condition-case sig
@@ -86,12 +86,12 @@ Value is a list of transformed arguments."
            (setq properties (plist-put properties 'pre-write-conversion tmp)))
        (cond
         ((eq type 'shift-jis)
-         (` ((, name) 1 (, mnemonic) (, doc-string)
-             nil (, properties) (, eol-type))))
+         `(,name 1 ,mnemonic ,doc-string
+                 nil ,properties ,eol-type))
         ((eq type 'iso2022) ; This is not perfect.
          (if (plist-get props 'escape-quoted)
              (error "escape-quoted is not supported: %S"
-                    (` ((, name) (, type) (, doc-string) (, props)))))
+                    `(,name ,type ,doc-string ,props)))
          (let ((g0 (plist-get props 'charset-g0))
                (g1 (plist-get props 'charset-g1))
                (g2 (plist-get props 'charset-g2))
@@ -114,43 +114,43 @@ Value is a list of transformed arguments."
                      'japanese-jisx0208-1978))))
            (if (charsetp g0)
                (if (plist-get props 'force-g0-on-output)
-                   (setq g0 (` (nil (, g0))))
-                 (setq g0 (` ((, g0) t)))))
+                   (setq g0 `(nil ,g0))
+                 (setq g0 `(,g0 t))))
            (if (charsetp g1)
                (if (plist-get props 'force-g1-on-output)
-                   (setq g1 (` (nil (, g1))))
-                 (setq g1 (` ((, g1) t)))))
+                   (setq g1 `(nil ,g1))
+                 (setq g1 `(,g1 t))))
            (if (charsetp g2)
                (if (plist-get props 'force-g2-on-output)
-                   (setq g2 (` (nil (, g2))))
-                 (setq g2 (` ((, g2) t)))))
+                   (setq g2 `(nil ,g2))
+                 (setq g2 `(,g2 t))))
            (if (charsetp g3)
                (if (plist-get props 'force-g3-on-output)
-                   (setq g3 (` (nil (, g3))))
-                 (setq g3 (` ((, g3) t)))))
-           (` ((, name) 2 (, mnemonic) (, doc-string)
-               ((, g0) (, g1) (, g2) (, g3)
-                (, (plist-get props 'short))
-                (, (not (plist-get props 'no-ascii-eol)))
-                (, (not (plist-get props 'no-ascii-cntl)))
-                (, (plist-get props 'seven))
-                t
-                (, (not (plist-get props 'lock-shift)))
-                (, use-roman)
-                (, use-oldjis)
-                (, (plist-get props 'no-iso6429))
-                nil nil nil nil)
-               (, properties) (, eol-type)))))
-        ((eq type 'big5)
-         (` ((, name) 3 (, mnemonic) (, doc-string)
-             nil (, properties) (, eol-type))))
+                   (setq g3 `(nil ,g3))
+                 (setq g3 `(,g3 t))))
+           `(,name 2 ,mnemonic ,doc-string
+                   (,g0 ,g1 ,g2 ,g3
+                        ,(plist-get props 'short)
+                        ,(not (plist-get props 'no-ascii-eol))
+                        ,(not (plist-get props 'no-ascii-cntl))
+                        ,(plist-get props 'seven)
+                        t
+                        ,(not (plist-get props 'lock-shift))
+                        ,use-roman
+                        ,use-oldjis
+                        ,(plist-get props 'no-iso6429)
+                        nil nil nil nil)
+                   ,properties ,eol-type)))
+         ((eq type 'big5)
+          `(,name 3 ,mnemonic ,doc-string
+                  nil ,properties ,eol-type))
         ((eq type 'ccl)
-         (` ((, name) 4 (, mnemonic) (, doc-string)
-             ((, (plist-get props 'decode)) . (, (plist-get props 'encode)))
-             (, properties) (, eol-type))))
+         `(,name 4 ,mnemonic ,doc-string
+                 (,(plist-get props 'decode) . ,(plist-get props 'encode))
+                 ,properties ,eol-type))
         (t
          (error "unsupported XEmacs style make-coding-style arguments: %S"
-                (` ((, name) (, type) (, doc-string) (, props))))))))
+                `(,name ,type ,doc-string ,props))))))
     (defadvice make-coding-system
       (before ccl-compat (name type &rest ad-subr-args) activate)
       "Emulate XEmacs style make-coding-system."
index e2479e9..dc86a42 100644 (file)
 ;;;
 
 (defmacro as-binary-process (&rest body)
-  (` (let (selective-display   ; Disable ^M to nl translation.
-          ;; Nemacs
-          kanji-flag
-          (default-kanji-process-code 0)
-          program-kanji-code-alist)
-       (,@ body))))
+  `(let (selective-display     ; Disable ^M to nl translation.
+        ;; Nemacs
+        kanji-flag
+        (default-kanji-process-code 0)
+        program-kanji-code-alist)
+     ,@ body))
 
 (defmacro as-binary-input-file (&rest body)
-  (` (let (kanji-flag default-kanji-flag)
-       (,@ body))))
+  `(let (kanji-flag default-kanji-flag)
+     ,@ body))
 
 (defmacro as-binary-output-file (&rest body)
-  (` (let (kanji-flag)
-       (,@ body))))
+  `(let (kanji-flag)
+     ,@ body))
 
 (defun write-region-as-binary (start end filename
                                     &optional append visit lockname)
index 54d4584..678feb1 100644 (file)
@@ -227,24 +227,24 @@ applied to `coding-system-for-write'."
 (make-coding-system 'binary nil ?= "No conversion")
 
 (defmacro as-binary-process (&rest body)
-  (` (let (selective-display   ; Disable ^M to nl translation.
-          ;; Mule
-          mc-flag
-          (default-process-coding-system (cons *noconv* *noconv*))
-          program-coding-system-alist)
-       (,@ body))))
+  `(let (selective-display     ; Disable ^M to nl translation.
+        ;; Mule
+        mc-flag
+        (default-process-coding-system (cons *noconv* *noconv*))
+        program-coding-system-alist)
+     ,@ body))
 
 (defmacro as-binary-input-file (&rest body)
-  (` (let (mc-flag
-          (file-coding-system-for-read *noconv*)
-          )
-       (,@ body))))
+  `(let (mc-flag
+        (file-coding-system-for-read *noconv*)
+        )
+     ,@ body))
 
 (defmacro as-binary-output-file (&rest body)
-  (` (let (mc-flag
-          (file-coding-system *noconv*)
-          )
-       (,@ body))))
+  `(let (mc-flag
+        (file-coding-system *noconv*)
+        )
+     ,@ body))
 
 (defalias 'set-process-input-coding-system 'set-process-coding-system)
 
index 1a4bca8..9d500ca 100644 (file)
 ;;;
 
 (defmacro as-binary-process (&rest body)
-  (` (let (selective-display)  ; Disable ^M to nl translation.
-       (,@ body))))
+  `(let (selective-display)    ; Disable ^M to nl translation.
+     ,@ body))
 
 (defmacro as-binary-input-file (&rest body)
-  (` (let ((emx-binary-mode t)) ; Stop CRLF to LF conversion in OS/2
-       (,@ body))))
+  `(let ((emx-binary-mode t)) ; Stop CRLF to LF conversion in OS/2
+     ,@ body))
 
 (defmacro as-binary-output-file (&rest body)
-  (` (let ((emx-binary-mode t)) ; Stop CRLF to LF conversion in OS/2
-       (,@ body))))
+  `(let ((emx-binary-mode t)) ; Stop CRLF to LF conversion in OS/2
+     ,@ body))
 
 (defun write-region-as-binary (start end filename
                                     &optional append visit lockname)
index 0dffa0e..883fbf2 100644 (file)
--- a/poe-18.el
+++ b/poe-18.el
@@ -492,9 +492,9 @@ With optional non-nil ALL, force redisplay of all mode-lines."
 ;; that works ok in practice (people should not use that variable elsewhere).
 (defmacro save-match-data (&rest body)
   "Execute the BODY forms, restoring the global value of the match data."
-  (` (let ((save-match-data-internal (match-data)))
-       (unwind-protect (progn (,@ body))
-         (set-match-data save-match-data-internal)))))
+  `(let ((save-match-data-internal (match-data)))
+     (unwind-protect (progn ,@ body)
+       (set-match-data save-match-data-internal))))
 
 
 ;;; @ Basic editing commands.
diff --git a/poe.el b/poe.el
index 0c7b4ff..f7e7689 100644 (file)
--- a/poe.el
+++ b/poe.el
@@ -916,20 +916,20 @@ APEL provides this as dummy for compatibility.")
 (defmacro-maybe save-current-buffer (&rest body)
   "Save the current buffer; execute BODY; restore the current buffer.
 Executes BODY just like `progn'."
-  (` (let ((orig-buffer (current-buffer)))
-       (unwind-protect
-          (progn (,@ body))
-        (if (buffer-live-p orig-buffer)
-            (set-buffer orig-buffer))))))
+  `(let ((orig-buffer (current-buffer)))
+     (unwind-protect
+         (progn ,@ body)
+       (if (buffer-live-p orig-buffer)
+           (set-buffer orig-buffer)))))
 
 ;; Emacs 20.1/XEmacs 20.3(?) and later: (with-current-buffer BUFFER &rest BODY)
 (defmacro-maybe with-current-buffer (buffer &rest body)
   "Execute the forms in BODY with BUFFER as the current buffer.
 The value returned is the value of the last form in BODY.
 See also `with-temp-buffer'."
-  (` (save-current-buffer
-       (set-buffer (, buffer))
-       (,@ body))))
+  `(save-current-buffer
+     (set-buffer ,buffer)
+     ,@ body))
 
 ;; Emacs 20.1/XEmacs 20.3(?) and later: (with-temp-file FILE &rest FORMS)
 (defmacro-maybe with-temp-file (file &rest forms)
@@ -938,18 +938,18 @@ The value of the last form in FORMS is returned, like `progn'.
 See also `with-temp-buffer'."
   (let ((temp-file (make-symbol "temp-file"))
        (temp-buffer (make-symbol "temp-buffer")))
-    (` (let (((, temp-file) (, file))
-            ((, temp-buffer)
-             (get-buffer-create (generate-new-buffer-name " *temp file*"))))
-        (unwind-protect
-            (prog1
-                (with-current-buffer (, temp-buffer)
-                  (,@ forms))
-              (with-current-buffer (, temp-buffer)
-                (widen)
-                (write-region (point-min) (point-max) (, temp-file) nil 0)))
-          (and (buffer-name (, temp-buffer))
-               (kill-buffer (, temp-buffer))))))))
+    `(let ((,temp-file ,file)
+           (,temp-buffer
+            (get-buffer-create (generate-new-buffer-name " *temp file*"))))
+       (unwind-protect
+           (prog1
+               (with-current-buffer ,temp-buffer
+                 ,@forms)
+             (with-current-buffer ,temp-buffer
+               (widen)
+               (write-region (point-min) (point-max) ,temp-file nil 0)))
+         (and (buffer-name ,temp-buffer)
+              (kill-buffer ,temp-buffer))))))
 
 ;; Emacs 20.4 and later: (with-temp-message MESSAGE &rest BODY)
 ;; This macro uses `current-message', which appears in v20.
@@ -965,41 +965,41 @@ If MESSAGE is nil, the echo area and message log buffer are unchanged.
 Use a MESSAGE of \"\" to temporarily clear the echo area."
     (let ((current-message (make-symbol "current-message"))
          (temp-message (make-symbol "with-temp-message")))
-      (` (let (((, temp-message) (, message))
-              ((, current-message)))
-          (unwind-protect
-              (progn
-                (when (, temp-message)
-                  (setq (, current-message) (current-message))
-                  (message "%s" (, temp-message))
-                  (,@ body))
-                (and (, temp-message) (, current-message)
-                     (message "%s" (, current-message))))))))))
+      `(let ((,temp-message ,message)
+             (,current-message))
+         (unwind-protect
+             (progn
+               (when ,temp-message
+                 (setq ,current-message (current-message))
+                 (message "%s" ,temp-message)
+                 ,@ body)
+               (and ,temp-message ,current-message
+                    (message "%s" ,current-message))))))))
 
 ;; Emacs 20.1/XEmacs 20.3(?) and later: (with-temp-buffer &rest FORMS)
 (defmacro-maybe with-temp-buffer (&rest forms)
   "Create a temporary buffer, and evaluate FORMS there like `progn'.
 See also `with-temp-file' and `with-output-to-string'."
   (let ((temp-buffer (make-symbol "temp-buffer")))
-    (` (let (((, temp-buffer)
-             (get-buffer-create (generate-new-buffer-name " *temp*"))))
-        (unwind-protect
-            (with-current-buffer (, temp-buffer)
-              (,@ forms))
-          (and (buffer-name (, temp-buffer))
-               (kill-buffer (, temp-buffer))))))))
+    `(let ((,temp-buffer
+            (get-buffer-create (generate-new-buffer-name " *temp*"))))
+       (unwind-protect
+           (with-current-buffer ,temp-buffer
+             ,@ forms)
+         (and (buffer-name ,temp-buffer)
+              (kill-buffer ,temp-buffer))))))
 
 ;; Emacs 20.1/XEmacs 20.3(?) and later: (with-output-to-string &rest BODY)
 (defmacro-maybe with-output-to-string (&rest body)
   "Execute BODY, return the text it sent to `standard-output', as a string."
-  (` (let ((standard-output
-           (get-buffer-create (generate-new-buffer-name " *string-output*"))))
-       (let ((standard-output standard-output))
-        (,@ body))
-       (with-current-buffer standard-output
-        (prog1
-            (buffer-string)
-          (kill-buffer nil))))))
+  `(let ((standard-output
+          (get-buffer-create (generate-new-buffer-name " *string-output*"))))
+     (let ((standard-output standard-output))
+       ,@ body)
+     (with-current-buffer standard-output
+       (prog1
+           (buffer-string)
+         (kill-buffer nil)))))
 
 ;; Emacs 20.1 and later: (combine-after-change-calls &rest BODY)
 (defmacro-maybe combine-after-change-calls (&rest body)
index d71329d..4dbb454 100644 (file)
@@ -110,7 +110,7 @@ but the contents viewed as characters do change.
 
 (defmacro char-next-index (char index)
   "Return index of character succeeding CHAR whose index is INDEX."
-  (` (1+ (, index))))
+  `(1+ ,index))
 
 
 ;;; @ string
index 8af6364..9f0eb86 100644 (file)
@@ -140,7 +140,7 @@ but the contents viewed as characters do change.
 (defmacro char-next-index (char index)
   "Return index of character succeeding CHAR whose index is INDEX.
 \[emu-nemacs.el]"
-  (` (+ (, index) (char-bytes (, char)))))
+  `(+ ,index (char-bytes ,char)))
 
 
 ;;; @ string
index 3b762e7..65da52d 100644 (file)
@@ -102,7 +102,7 @@ but the contents viewed as characters do change.
 
 (defmacro char-next-index (char index)
   "Return index of character succeeding CHAR whose index is INDEX."
-  (` (+ (, index) (char-bytes (, char)))))
+  `(+ ,index (char-bytes ,char)))
 
 
 ;;; @@ obsoleted aliases
index b49d698..98376bb 100644 (file)
@@ -232,21 +232,21 @@ PRODUCT-DEF is a definition of the product."
         (product-version (product-version product))
         (product-code-name (product-code-name product))
         (product-version-string (product-version-string product)))
-    (` (progn
-        (, product-def)
-        (put (, feature) 'product
-             (let ((product (product-find-by-name (, product-name))))
-               (product-run-checkers product '(, product-version))
-               (and (, product-family)
-                    (product-add-to-family (, product-family)
-                                           (, product-name)))
-               (product-add-feature product (, feature))
-               (if (equal '(, product-version) (product-version product))
-                   product
-                 (vector (, product-name) (, product-family)
-                         '(, product-version) (, product-code-name)
-                         nil nil nil (, product-version-string)))))
-        (, feature-def)))))
+    `(progn
+       ,product-def
+       (put ,feature 'product
+            (let ((product (product-find-by-name ,product-name)))
+              (product-run-checkers product ',product-version)
+              (and ,product-family
+                   (product-add-to-family ,product-family
+                                          ,product-name))
+              (product-add-feature product ,feature)
+              (if (equal ',product-version (product-version product))
+                  product
+                (vector ,product-name ,product-family
+                        ',product-version ,product-code-name
+                        nil nil nil ,product-version-string))))
+       ,feature-def)))
 
 (defun product-version-as-string (product)
   "Return version number of product as a string.
diff --git a/pym.el b/pym.el
index 46c85ef..ff789e8 100644 (file)
--- a/pym.el
+++ b/pym.el
   "Define NAME as a function if NAME is not defined.
 See also the function `defun'."
   (or (and (fboundp name)
-          (not (get name 'defun-maybe)))
-      (` (or (fboundp (quote (, name)))
-            (prog1
-                (defun (, name) (,@ everything-else))
-              ;; This `defun' will be compiled to `fset',
-              ;; which does not update `load-history'.
-              ;; We must update `current-load-list' explicitly.
-              (setq current-load-list
-                    (cons (quote (, name)) current-load-list))
-              (put (quote (, name)) 'defun-maybe t))))))
+           (not (get name 'defun-maybe)))
+      `(or (fboundp (quote ,name))
+           (prog1
+               (defun ,name ,@ everything-else)
+             ;; This `defun' will be compiled to `fset',
+             ;; which does not update `load-history'.
+             ;; We must update `current-load-list' explicitly.
+             (setq current-load-list
+                   (cons (quote ,name) current-load-list))
+             (put (quote ,name) 'defun-maybe t)))))
 
 (put 'defmacro-maybe 'lisp-indent-function 'defun)
 (defmacro defmacro-maybe (name &rest everything-else)
   "Define NAME as a macro if NAME is not defined.
 See also the function `defmacro'."
   (or (and (fboundp name)
-          (not (get name 'defmacro-maybe)))
-      (` (or (fboundp (quote (, name)))
-            (prog1
-                (defmacro (, name) (,@ everything-else))
-              ;; This `defmacro' will be compiled to `fset',
-              ;; which does not update `load-history'.
-              ;; We must update `current-load-list' explicitly.
-              (setq current-load-list
-                    (cons (quote (, name)) current-load-list))
-              (put (quote (, name)) 'defmacro-maybe t))))))
+           (not (get name 'defmacro-maybe)))
+      `(or (fboundp (quote ,name))
+           (prog1
+               (defmacro ,name ,@ everything-else)
+             ;; This `defmacro' will be compiled to `fset',
+             ;; which does not update `load-history'.
+             ;; We must update `current-load-list' explicitly.
+             (setq current-load-list
+                   (cons (quote ,name) current-load-list))
+             (put (quote ,name) 'defmacro-maybe t)))))
 
 (put 'defsubst-maybe 'lisp-indent-function 'defun)
 (defmacro defsubst-maybe (name &rest everything-else)
@@ -95,51 +95,51 @@ See also the function `defmacro'."
 See also the macro `defsubst'."
   (or (and (fboundp name)
           (not (get name 'defsubst-maybe)))
-      (` (or (fboundp (quote (, name)))
-            (prog1
-                (defsubst (, name) (,@ everything-else))
-              ;; This `defsubst' will be compiled to `fset',
-              ;; which does not update `load-history'.
-              ;; We must update `current-load-list' explicitly.
-              (setq current-load-list
-                    (cons (quote (, name)) current-load-list))
-              (put (quote (, name)) 'defsubst-maybe t))))))
+      `(or (fboundp (quote ,name))
+           (prog1
+               (defsubst ,name ,@ everything-else)
+             ;; This `defsubst' will be compiled to `fset',
+             ;; which does not update `load-history'.
+             ;; We must update `current-load-list' explicitly.
+             (setq current-load-list
+                   (cons (quote ,name) current-load-list))
+             (put (quote ,name) 'defsubst-maybe t)))))
 
 (defmacro defalias-maybe (symbol definition)
   "Define SYMBOL as an alias for DEFINITION if SYMBOL is not defined.
 See also the function `defalias'."
   (setq symbol (eval symbol))
   (or (and (fboundp symbol)
-          (not (get symbol 'defalias-maybe)))
-      (` (or (fboundp (quote (, symbol)))
-            (prog1
-                (defalias (quote (, symbol)) (, definition))
-              ;; `defalias' updates `load-history' internally.
-              (put (quote (, symbol)) 'defalias-maybe t))))))
+           (not (get symbol 'defalias-maybe)))
+      `(or (fboundp (quote ,symbol))
+           (prog1
+               (defalias (quote ,symbol) ,definition)
+             ;; `defalias' updates `load-history' internally.
+             (put (quote ,symbol) 'defalias-maybe t)))))
 
 (defmacro defvar-maybe (name &rest everything-else)
   "Define NAME as a variable if NAME is not defined.
 See also the function `defvar'."
   (or (and (boundp name)
           (not (get name 'defvar-maybe)))
-      (` (or (boundp (quote (, name)))
-            (prog1
-                (defvar (, name) (,@ everything-else))
-              ;; byte-compiler will generate code to update
-              ;; `load-history'.
-              (put (quote (, name)) 'defvar-maybe t))))))
+      `(or (boundp (quote ,name))
+           (prog1
+               (defvar ,name ,@ everything-else)
+             ;; byte-compiler will generate code to update
+             ;; `load-history'.
+             (put (quote ,name) 'defvar-maybe t)))))
 
 (defmacro defconst-maybe (name &rest everything-else)
   "Define NAME as a constant variable if NAME is not defined.
 See also the function `defconst'."
   (or (and (boundp name)
-          (not (get name 'defconst-maybe)))
-      (` (or (boundp (quote (, name)))
-            (prog1
-                (defconst (, name) (,@ everything-else))
-              ;; byte-compiler will generate code to update
-              ;; `load-history'.
-              (put (quote (, name)) 'defconst-maybe t))))))
+           (not (get name 'defconst-maybe)))
+      `(or (boundp (quote ,name))
+           (prog1
+               (defconst ,name ,@ everything-else)
+             ;; byte-compiler will generate code to update
+             ;; `load-history'.
+             (put (quote ,name) 'defconst-maybe t)))))
 
 (defmacro defun-maybe-cond (name args &optional doc &rest clauses)
   "Define NAME as a function if NAME is not defined.
@@ -149,29 +149,29 @@ for function definition of NAME.
 See also the function `defun'."
   (or (stringp doc)
       (setq clauses (cons doc clauses)
-           doc nil))
+            doc nil))
   (or (and (fboundp name)
-          (not (get name 'defun-maybe)))
-      (` (or (fboundp (quote (, name)))
-            (prog1
-                (static-cond
-                 (,@ (mapcar
-                      (function
-                       (lambda (case)
-                         (list (car case)
-                               (if doc
-                                   (` (defun (, name) (, args)
-                                        (, doc)
-                                        (,@ (cdr case))))
-                                 (` (defun (, name) (, args)
-                                      (,@ (cdr case))))))))
-                      clauses)))
-              ;; This `defun' will be compiled to `fset',
-              ;; which does not update `load-history'.
-              ;; We must update `current-load-list' explicitly.
-              (setq current-load-list
-                    (cons (quote (, name)) current-load-list))
-              (put (quote (, name)) 'defun-maybe t))))))
+           (not (get name 'defun-maybe)))
+      `(or (fboundp (quote ,name))
+           (prog1
+               (static-cond
+                ,@ (mapcar
+                    (function
+                      (lambda (case)
+                        (list (car case)
+                              (if doc
+                                  `(defun ,name ,args
+                                     ,doc
+                                     ,@ (cdr case))
+                                ` (defun ,name ,args
+                                    ,@ (cdr case))))))
+                     clauses))
+             ;; This `defun' will be compiled to `fset',
+             ;; which does not update `load-history'.
+             ;; We must update `current-load-list' explicitly.
+             (setq current-load-list
+                   (cons (quote ,name) current-load-list))
+             (put (quote ,name) 'defun-maybe t)))))
 
 (defmacro defmacro-maybe-cond (name args &optional doc &rest clauses)
   "Define NAME as a macro if NAME is not defined.
@@ -184,26 +184,26 @@ See also the function `defmacro'."
            doc nil))
   (or (and (fboundp name)
           (not (get name 'defmacro-maybe)))
-      (` (or (fboundp (quote (, name)))
-            (prog1
-                (static-cond
-                 (,@ (mapcar
-                      (function
-                       (lambda (case)
-                         (list (car case)
-                               (if doc
-                                   (` (defmacro (, name) (, args)
-                                        (, doc)
-                                        (,@ (cdr case))))
-                                 (` (defmacro (, name) (, args)
-                                      (,@ (cdr case))))))))
-                      clauses)))
-              ;; This `defmacro' will be compiled to `fset',
-              ;; which does not update `load-history'.
-              ;; We must update `current-load-list' explicitly.
-              (setq current-load-list
-                    (cons (quote (, name)) current-load-list))
-              (put (quote (, name)) 'defmacro-maybe t))))))
+      `(or (fboundp (quote ,name))
+           (prog1
+               (static-cond
+                ,@ (mapcar
+                     (function
+                      (lambda (case)
+                        (list (car case)
+                              (if doc
+                                  `(defmacro ,name ,args
+                                     ,doc
+                                     ,@ (cdr case))
+                                `(defmacro ,name ,args
+                                   ,@ (cdr case))))))
+                     clauses))
+             ;; This `defmacro' will be compiled to `fset',
+             ;; which does not update `load-history'.
+             ;; We must update `current-load-list' explicitly.
+             (setq current-load-list
+                   (cons (quote ,name) current-load-list))
+             (put (quote ,name) 'defmacro-maybe t)))))
 
 (defmacro defsubst-maybe-cond (name args &optional doc &rest clauses)
   "Define NAME as an inline function if NAME is not defined.
@@ -213,29 +213,29 @@ for function definition of NAME.
 See also the macro `defsubst'."
   (or (stringp doc)
       (setq clauses (cons doc clauses)
-           doc nil))
+            doc nil))
   (or (and (fboundp name)
-          (not (get name 'defsubst-maybe)))
-      (` (or (fboundp (quote (, name)))
-            (prog1
-                (static-cond
-                 (,@ (mapcar
-                      (function
-                       (lambda (case)
-                         (list (car case)
-                               (if doc
-                                   (` (defsubst (, name) (, args)
-                                        (, doc)
-                                        (,@ (cdr case))))
-                                 (` (defsubst (, name) (, args)
-                                      (,@ (cdr case))))))))
-                      clauses)))
-              ;; This `defsubst' will be compiled to `fset',
-              ;; which does not update `load-history'.
-              ;; We must update `current-load-list' explicitly.
-              (setq current-load-list
-                    (cons (quote (, name)) current-load-list))
-              (put (quote (, name)) 'defsubst-maybe t))))))
+           (not (get name 'defsubst-maybe)))
+      `(or (fboundp (quote ,name))
+           (prog1
+               (static-cond
+                ,@ (mapcar
+                     (function
+                      (lambda (case)
+                        (list (car case)
+                              (if doc
+                                  `(defsubst ,name ,args
+                                     ,doc
+                                     ,@ (cdr case))
+                                `(defsubst ,name ,args
+                                   ,@ (cdr case))))))
+                     clauses))
+             ;; This `defsubst' will be compiled to `fset',
+             ;; which does not update `load-history'.
+             ;; We must update `current-load-list' explicitly.
+             (setq current-load-list
+                   (cons (quote ,name) current-load-list))
+             (put (quote ,name) 'defsubst-maybe t)))))
 
 
 ;;; Edebug spec.
@@ -246,7 +246,7 @@ See also the macro `defsubst'."
   "Set the edebug-form-spec property of SYMBOL according to SPEC.
 Both SYMBOL and SPEC are unevaluated. The SPEC can be 0, t, a symbol
 \(naming a function\), or a list."
-  (` (put (quote (, symbol)) 'edebug-form-spec (quote (, spec)))))
+  `(put (quote ,symbol) 'edebug-form-spec (quote ,spec)))
 
 ;; edebug-spec for `def*-maybe' macros.
 (def-edebug-spec defun-maybe defun)
index 34d6f1b..e7cb5cd 100644 (file)
--- a/static.el
+++ b/static.el
   "Like `if', but evaluate COND at compile time."
   (if (eval cond)
       then
-    (` (progn  (,@ else)))))
+    `(progn ,@ else)))
 
 (put 'static-when 'lisp-indent-function 1)
 (defmacro static-when (cond &rest body)
   "Like `when', but evaluate COND at compile time."
   (if (eval cond)
-      (` (progn (,@ body)))))
+      `(progn ,@ body)))
 
 (put 'static-unless 'lisp-indent-function 1)
 (defmacro static-unless (cond &rest body)
   "Like `unless', but evaluate COND at compile time."
   (if (eval cond)
       nil
-    (` (progn (,@ body)))))
+    `(progn ,@ body)))
 
 (put 'static-condition-case 'lisp-indent-function 2)
 (defmacro static-condition-case (var bodyform &rest handlers)
   "Like `condition-case', but evaluate BODYFORM at compile time."
-  (eval (` (condition-case (, var)
-              (list (quote quote) (, bodyform))
-            (,@ (mapcar
-                 (if var
-                     (function
-                      (lambda (h)
-                        (` ((, (car h))
-                            (list (quote funcall)
-                                  (function (lambda ((, var)) (,@ (cdr h))))
-                                  (list (quote quote) (, var)))))))
-                   (function
-                    (lambda (h)
-                      (` ((, (car h)) (quote (progn (,@ (cdr h)))))))))
-                 handlers))))))
+  (eval `(condition-case ,var
+             (list (quote quote) ,bodyform)
+           ,@
+           (mapcar
+            (if var
+                (function
+                 (lambda (h)
+                   `(,(car h)
+                     (list (quote funcall)
+                           (function (lambda (,var) ,@ (cdr h)))
+                           (list (quote quote) ,var)))))
+              (function
+               (lambda (h)
+                 `(,(car h) (quote (progn ,@ (cdr h)))))))
+            handlers))))
 
 (put 'static-defconst 'lisp-indent-function 'defun)
 (defmacro static-defconst (symbol initvalue &optional docstring)
@@ -68,8 +69,8 @@
 
 The variable SYMBOL can be referred at both compile time and run time."
   (let ((value (eval initvalue)))
-    (eval (` (defconst (, symbol) (quote (, value)) (, docstring))))
-    (` (defconst (, symbol) (quote (, value)) (, docstring)))))
+    (eval `(defconst ,symbol (quote ,value) ,docstring))
+    `(defconst ,symbol (quote ,value) ,docstring)))
 
 (defmacro static-cond (&rest clauses)
   "Like `cond', but evaluate CONDITION part of each clause at compile time."
index 9113768..38e4ba6 100644 (file)
@@ -50,7 +50,7 @@ DOC is the variable documentation.
 
 This is a defcustom only for emulating purpose.
 Its effect is just as same as that of defvar."
-  (` (defvar (, symbol) (, value) (, doc))))
+  `(defvar ,symbol ,value ,doc))
 
 (defvar-maybe frame-background-mode nil
   "*The brightness of the background.