]> git.eshelyaron.com Git - emacs.git/commitdiff
Bring back 'oddp' and 'evenp'
authorEshel Yaron <me@eshelyaron.com>
Tue, 6 Aug 2024 09:51:28 +0000 (11:51 +0200)
committerEshel Yaron <me@eshelyaron.com>
Tue, 6 Aug 2024 09:51:28 +0000 (11:51 +0200)
14 files changed:
lisp/calendar/cal-tex.el
lisp/calendar/todo-mode.el
lisp/elec-pair.el
lisp/emacs-lisp/bytecomp.el
lisp/emacs-lisp/cl-lib.el
lisp/emacs-lisp/elint.el
lisp/emacs-lisp/gv.el
lisp/emacs-lisp/macroexp.el
lisp/erc/erc.el
lisp/gnus/message.el
lisp/hexl.el
lisp/keymap.el
lisp/mail/rfc2047.el
lisp/subr.el

index ea396329e4c7e611eefce4df22f6d3d83fa95d1e..5f0813061d9ef08888d754bc2eae1590e0c0471f 100644 (file)
@@ -1388,7 +1388,7 @@ Optional EVENT indicates a buffer position to use instead of point."
     (cal-tex-cmd "\\pagestyle" "empty")
     (dotimes (i n)
       (dotimes (j 4)
-        (let ((even (zerop (% j 2))))
+        (let ((even (evenp j)))
           (insert (if even
                       "\\righthead"
                     "\\lefthead"))
index c75dd4b59143a8eb4d75b09cd320046551f05a10..0107cbb57d793c117e8112a25f78d7c42e94a5ea 100644 (file)
@@ -3750,7 +3750,7 @@ The placement of the padding is determined by the value of user
 option `todo-categories-align'."
   (let* ((len (todo-adjusted-category-label-length))
         (strlen (length str))
-        (strlen-odd (eq (logand strlen 1) 1))
+        (strlen-odd (oddp strlen))
         (padding (max 0 (/ (- len strlen) 2)))
         (padding-left (cond ((eq todo-categories-align 'left) 0)
                             ((eq todo-categories-align 'center) padding)
index 1fae0ba6ba4d95b2208ea33b9b3dd7170f658066..e952d3217fba3893477bec17cd51e8cbf1e4c807 100644 (file)
@@ -558,7 +558,7 @@ The decision is taken by order of preference:
         ;; Backslash-escaped: no pairing, no skipping.
         ((save-excursion
            (goto-char beg)
-           (not (zerop (% (skip-syntax-backward "\\") 2))))
+           (oddp (skip-syntax-backward "\\")))
          (let ((current-prefix-arg (1- num)))
            (electric-pair-post-self-insert-function)))
         ;; Skip self.
index 569bd7f03f7174654abf2a3f33823e3537c8ce93..a87b77a875e77166d4a16f19736be3236f102744 100644 (file)
@@ -3780,7 +3780,7 @@ This assumes the function has the `important-return-value' property."
         ;; Add missing &optional (or &rest) arguments.
         (dotimes (_ (- (/ (1+ fmax2) 2) alen))
           (byte-compile-push-constant nil)))
-       ((zerop (logand fmax2 1))
+       ((evenp fmax2)
         (byte-compile-report-error
          (format "Too many arguments for inlined function %S" form))
         (byte-compile-discard (- alen (/ fmax2 2))))
index 108dcd31f48b7ef131c27e40aacec30ab14a712a..3c8940b9ad521004b630d1df0f476b6c5ce27de6 100644 (file)
@@ -278,13 +278,9 @@ so that they are registered at compile-time as well as run-time."
   "Return t if NUMBER is negative."
   (< number 0))
 
-(defun cl-oddp (integer)
-  "Return t if INTEGER is odd."
-  (eq (logand integer 1) 1))
+(defalias 'cl-oddp 'oddp)
 
-(defun cl-evenp (integer)
-  "Return t if INTEGER is even."
-  (eq (logand integer 1) 0))
+(defalias 'cl-evenp 'evenp)
 
 (defconst cl-digit-char-table
   (let* ((digits (make-vector 256 nil))
index 27c169cc6573ecd61942a4d414e062380dff9110..b1f446874276231a47b00804c03423f32e31342b 100644 (file)
@@ -833,7 +833,7 @@ CODE can be a lambda expression, a macro, or byte-compiled code."
   "Lint the defcustom FORM in ENV."
   (if (and (> (length form) 3)
           ;; even no. of keyword/value args ?
-          (zerop (logand (length form) 1)))
+          (evenp (length form)))
       (elint-env-add-global-var (elint-form (nth 2 form) env)
                                (car (cdr form)))
     (elint-error "Malformed variable declaration: %s" form)
index fa9b437fcfd4aa5e7ae957e10ec26720c973f8ac..3f6272b9c3df25e6f99ce79628bdbd54792ad97d 100644 (file)
@@ -294,8 +294,8 @@ The return value is the last VAL in the list.
 
 \(fn PLACE VAL PLACE VAL ...)"
   (declare (debug (&rest [gv-place form])))
-  (if (/= (logand (length args) 1) 0)
-      (signal 'wrong-number-of-arguments (list 'setf (length args))))
+  (unless (evenp (length args))
+    (signal 'wrong-number-of-arguments (list 'setf (length args))))
   (if (and args (null (cddr args)))
       (let ((place (pop args))
             (val (car args)))
index 4524eccc7ef8b5a0e7282ba25ac9cb8d0ca5ec98..e96aaa9bf3e2d80a5b6e2821d38696599c08bd1d 100644 (file)
@@ -434,7 +434,7 @@ Assumes the caller has bound `macroexpand-all-environment'."
              ;; Malformed code is translated to code that signals an error
              ;; at run time.
              (let ((nargs (length args)))
-               (if (/= (logand nargs 1) 0)
+               (if (oddp nargs)
                    (macroexp-warn-and-return
                     (format-message "odd number of arguments in `setq' form")
                     `(signal 'wrong-number-of-arguments '(setq ,nargs))
index 0ac58b09f64508a98bc637093bff17fd7257dd29..b7679fa2e8e9d069bcfc0e21520f3937db438132 100644 (file)
@@ -9665,7 +9665,7 @@ if yet untried."
   "Format MSG according to ARGS.
 
 See also `format-spec'."
-  (when (eq (logand (length args) 1) 1) ; oddp
+  (when (oddp (length args))
     (error "Obscure usage of this function appeared"))
   (let ((entry (erc-retrieve-catalog-entry msg)))
     (when (not entry)
index cf695c20bc14c591e50a6d4d70c9c3e7891663ef..d85a9333f2524f91afa3a7e3d4fb4fd7b74d32a0 100644 (file)
@@ -6006,7 +6006,7 @@ In posting styles use `(\"Expires\" (make-expires-date 30))'."
                      (while (search-forward "\"" nil t)
                        (when (prog2
                                  (backward-char)
-                                 (zerop (% (skip-chars-backward "\\\\") 2))
+                                 (evenp (skip-chars-backward "\\\\"))
                                (goto-char (match-beginning 0)))
                          (insert "\\"))
                        (forward-char))
index 28441a28d6ea949381d22681f163da3a4e7c7d13..9f25900e8449ef3e20c72314c2378efc30115393 100644 (file)
@@ -1011,7 +1011,7 @@ Embedded whitespace, dashes, and periods in the string are ignored."
   (let ((chars '()))
     (let ((len (length str))
          (idx 0))
-      (if (eq (logand len 1) 1)
+      (if (oddp len)
          (let ((num (hexl-hex-string-to-integer (substring str 0 1))))
            (setq chars (cons num chars))
            (setq idx 1)))
index 737c11dbd8301ca6a3602a61f54c940ee3e23657..39442146f01d0f02e1db9abab3656fec5d5b7f54 100644 (file)
@@ -656,7 +656,7 @@ in the echo area.
          ((eq keyword :repeat) (setq repeat (pop defs)))
          (t (push keyword opts)
             (push (pop defs) opts)))))
-    (unless (zerop (% (length defs) 2))
+    (unless (evenp (length defs))
       (error "Uneven number of key/definition pairs: %s" defs))
 
     (let ((defs defs)
index e122fe8c9b5ce83f1b49437e882e923dc76c70bb..51b6c8e11c016bf79ab4d3637cdeb65fcb754955 100644 (file)
@@ -1020,10 +1020,10 @@ other than `\"' and `\\' in quoted strings."
                end (match-end 0)
                words nil)
          (while match
-           (push (list (match-string 2) ;; charset
+           (push (list (match-string 2)                 ;; charset
                        (char-after (match-beginning 3)) ;; encoding
-                       (substring (match-string 3) 2) ;; encoded-text
-                       (match-string 1)) ;; encoded-word
+                       (substring (match-string 3) 2)   ;; encoded-text
+                       (match-string 1))                ;; encoded-word
                  words)
            ;; Look for the subsequent encoded-words.
            (when (setq match (looking-at eword-regexp))
@@ -1076,7 +1076,7 @@ other than `\"' and `\\' in quoted strings."
                (while (search-forward "\"" end t)
                  (when (prog2
                            (backward-char)
-                           (zerop (% (skip-chars-backward "\\\\") 2))
+                           (evenp (skip-chars-backward "\\\\"))
                          (goto-char (match-beginning 0)))
                    (insert "\\"))
                  (forward-char))
index edfac77d50bf79523f74175d80e964fdc47067d6..0bc8d7ba7e1a3dc95cbf903eed5016c29a51c033 100644 (file)
@@ -4052,8 +4052,7 @@ Otherwise, return nil."
 (defun plistp (object)
   "Non-nil if and only if OBJECT is a valid plist."
   (declare (pure t) (side-effect-free error-free))
-  (let ((len (proper-list-p object)))
-    (and len (zerop (% len 2)))))
+  (let ((len (proper-list-p object))) (and len (evenp len))))
 
 (defun macrop (object)
   "Non-nil if and only if OBJECT is a macro."
@@ -7150,4 +7149,12 @@ that does the same thing as `caadr'."
         (funcall (car funs) (funcall (apply #'compose (cdr funs)) x)))
     #'identity))
 
+(defsubst plusp (number) "Return t if NUMBER is positive." (> number 0))
+
+(defsubst minusp (number) "Return t if NUMBER is negative." (< number 0))
+
+(defun oddp (integer) "Return t if INTEGER is odd." (eq (logand integer 1) 1))
+
+(defun evenp (integer) "Return t if INTEGER is even." (eq (logand integer 1) 0))
+
 ;;; subr.el ends here