From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.help Subject: Re: shell-command-on-region but with command line arguments Date: Wed, 09 Nov 2022 11:37:51 +0100 Message-ID: <87v8noza4g.fsf@dataswamp.org> References: <63695966.5d0a0220.15a40.29d3@mx.google.com> <636b5b28.050a0220.b181b.e9bc@mx.google.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="28087"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:/mFgfT/lIqmCQlAM6ovFmdfCymM= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Wed Nov 09 13:16:26 2022 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1osk0I-00076z-FM for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 09 Nov 2022 13:16:26 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1osk05-00087q-2R; Wed, 09 Nov 2022 07:16:13 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1osiT4-0007nv-5n for help-gnu-emacs@gnu.org; Wed, 09 Nov 2022 05:38:03 -0500 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1osiT2-0004Vl-B8 for help-gnu-emacs@gnu.org; Wed, 09 Nov 2022 05:38:01 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1osiT0-00006t-TK for help-gnu-emacs@gnu.org; Wed, 09 Nov 2022 11:37:58 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -15 X-Spam_score: -1.6 X-Spam_bar: - X-Spam_report: (-1.6 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Wed, 09 Nov 2022 07:16:09 -0500 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:140866 Archived-At: Bruno Barbier wrote: > Something like: > > (defun my-on-region (where how) ... ) (defun command (cmd &optional args beg end) ...) where args is a list of arguments, &optional arguments including args LOL default to nil which in this case is fine as that is an empty list, i.e., args holds no arguments, however "beg" and "end" has to be set explicitly, and not just for interactive use. Close to this example ... (defun use-region () (when (use-region-p) (list (region-beginning) (region-end)) )) (defun test-dwim-2 (re &optional beg end) (interactive `(,(read-regexp "re: ") ,@(use-region) )) (or beg (setq beg (point-min))) (or end (setq end (point-max))) (message "%d %d %s" beg end re) ) [ That interactive spec couldn't have been fully integrated with the "R" code letter (that doesn't exist) anyway since there seems to be no code letter for regexps either? ] Or maybe even better: (defun command (cmd &optional beg end &rest args) ... ) That will mean a lot of ugly (command "havoc" nil nil "--nuclear") in Lisp tho, yet another option would be (defun command (cmd &optional args beg end) ... ) which is the same as the first suggestion only here args can be either non-nil that isn't a list, say "-n", in what case it's the one and only argument, otherwise it'd be a list of arguments as earlier. But then one cannot send nil as a single argument, since that means no arguments? Just do ("nil") then ... -- underground experts united https://dataswamp.org/~incal