help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Handling optional argument with t value


From: Emanuel Berg
Subject: Re: Handling optional argument with t value
Date: Tue, 06 Dec 2022 00:03:49 +0100
User-agent: Gnus/5.13 (Gnus v5.13)

Heime wrote:

> I need some advice on how to handle optional arguments,
> where one either does not pass it or passes t.

Optional arguments default to nil so the default version of
the function's behavior should do its thing - the default
thing - when the optional arguments are nil.

If something that isn't default should happen, you can name
the optional argument to describe this, say INSERT, meaning
the default behavior isn't to insert, but with the optional
argument set, the non-default execution kicks in and something
is indeed inserted.

Then the Elisp will look like this:

(when insert
  (insert ...) )

And vice versa, if the default is it _should_ happen, then the
optional argument can be called NO-INSERT

(unless no-insert
  (insert ... ) )

It's up to you to decide what's default and what's
optional/non-default ...

Take a look at this ...

;;; -*- lexical-binding: t -*-
;;
;; this file:
;;   https://dataswamp.org/~incal/emacs-init/meta.el
;;
;; also see:
;;   https://dataswamp.org/~incal/emacs-init/w3m/w3m-version.el
;;
;; example:
;;   GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, cairo version 1.16.0)
;;   of 2022-05-22 [commit 714970f5967f2153bb95e35823dbd917e0e5b60b]

(defun emacs-version-commit (&optional here)
  (interactive "P")
  (let ((ver (replace-regexp-in-string " \\(of\\)" "\\1"
               (format "%s [commit %s]"
                 (emacs-version)
                 (emacs-repository-get-version) ))))
    (when here
      (insert ver) )
    (message ver) ))

(defalias 'ever #'emacs-version-commit)

-- 
underground experts united
https://dataswamp.org/~incal




reply via email to

[Prev in Thread] Current Thread [Next in Thread]