From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.help Subject: Re: bundling C-u C-space Date: Mon, 12 Oct 2015 00:44:46 +0200 Message-ID: <877fmt10v5.fsf@debian.uxu> References: <20151010200341.GI3342@mail.akwebsoft.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1444602995 23421 80.91.229.3 (11 Oct 2015 22:36:35 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 11 Oct 2015 22:36:35 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Oct 12 00:36:25 2015 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZlPE7-0002X4-F4 for geh-help-gnu-emacs@m.gmane.org; Mon, 12 Oct 2015 00:36:23 +0200 Original-Received: from localhost ([::1]:49998 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlPE6-000494-K1 for geh-help-gnu-emacs@m.gmane.org; Sun, 11 Oct 2015 18:36:22 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55977) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlPDY-00048E-H1 for help-gnu-emacs@gnu.org; Sun, 11 Oct 2015 18:35:49 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZlPDV-0007m4-7n for help-gnu-emacs@gnu.org; Sun, 11 Oct 2015 18:35:48 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:39359) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlPDV-0007la-1j for help-gnu-emacs@gnu.org; Sun, 11 Oct 2015 18:35:45 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1ZlPDS-0001uD-KL for help-gnu-emacs@gnu.org; Mon, 12 Oct 2015 00:35:42 +0200 Original-Received: from nl106-137-244.student.uu.se ([130.243.137.244]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 12 Oct 2015 00:35:42 +0200 Original-Received: from embe8573 by nl106-137-244.student.uu.se with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 12 Oct 2015 00:35:42 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Original-Lines: 53 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: nl106-137-244.student.uu.se Mail-Copies-To: never User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) Cancel-Lock: sha1:nsL+QZpVltxezVG8C3I+zUfFbmk= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 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.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:107580 Archived-At: Tim Johnson writes: > I'd like to get the functionality of Control-u > Control-space in one keystroke (for instance, > Control-,) but can't wrap my thoughts about how to > put that in a lambda or use-defined function. In general, if you want to emulate a function's behavior in the face of a prefix argument supplying data, find out what that function is and supply that data yourself! C-SPC is `set-mark-command', so that would be (set-mark-command '(4)) Why '(4) and not 4? Use the source, Luke! For set-mark-command, it is (interactive "P") and not "p". Test this with these - evaluate, and then call with M-x! (defun test-prefix-from-code (arg) (interactive "P") (if arg (message "arg is %s - i.e., data is %s" arg (prefix-numeric-value arg)) (message "No arg, dammit!") )) (defun test-prefix-from-code-not-raw (arg) (interactive "p") (message "arg is %s - i.e., data is %s" arg (prefix-numeric-value arg)) ) ;; note: no `if' form! arg will be 1 if not ;; supplied, and not nil as above! And now something else: Sometimes the ARG isn't exactly to supply data but to control behavior. Then instead of supplying the "data" that by all means get you the behavior you want, instead you can examine the source - again - and simply detect the function that does what you want. If the code is neatly written it shouldn't be a problem detecting and isolating it. In this case, is it `pop-to-mark-command'? Good luck! -- underground experts united http://user.it.uu.se/~embe8573