unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Emanuel Berg <incal@dataswamp.org>
To: help-gnu-emacs@gnu.org
Subject: Re: Handling optional argument with t value
Date: Tue, 06 Dec 2022 00:03:49 +0100	[thread overview]
Message-ID: <871qpda1wq.fsf@dataswamp.org> (raw)
In-Reply-To: soyXUpah8-yFIWzZQHQEuzb5mlYa_v-HPeLZ0-fI7TPzrbf1SveSiv-xuFzAm65u_efYLn1M4Op0GroZdcvuKiGw3lcHxhmC8ds8zPs0K2E=@protonmail.com

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	other threads:[~2022-12-05 23:03 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-04 23:01 Handling optional argument with t value Heime
2022-12-05 19:16 ` Jean Louis
2022-12-05 20:09   ` Heime
2022-12-05 23:03     ` Emanuel Berg [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=871qpda1wq.fsf@dataswamp.org \
    --to=incal@dataswamp.org \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).