From unknown Sat Jun 21 10:21:02 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#24398 <24398@debbugs.gnu.org> To: bug#24398 <24398@debbugs.gnu.org> Subject: Status: [PATCH] Refactor common code in {upcase, downcase, capitalize}-word functions Reply-To: bug#24398 <24398@debbugs.gnu.org> Date: Sat, 21 Jun 2025 17:21:02 +0000 retitle 24398 [PATCH] Refactor common code in {upcase, downcase, capitalize= }-word functions reassign 24398 emacs submitter 24398 Michal Nazarewicz severity 24398 wishlist tag 24398 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Sep 09 17:59:41 2016 Received: (at submit) by debbugs.gnu.org; 9 Sep 2016 21:59:41 +0000 Received: from localhost ([127.0.0.1]:54948 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1biTpk-0002ac-PK for submit@debbugs.gnu.org; Fri, 09 Sep 2016 17:59:40 -0400 Received: from eggs.gnu.org ([208.118.235.92]:51403) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1biTpi-0002aM-OC for submit@debbugs.gnu.org; Fri, 09 Sep 2016 17:59:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1biTpc-0006dL-HE for submit@debbugs.gnu.org; Fri, 09 Sep 2016 17:59:33 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:57346) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1biTpc-0006d0-EH for submit@debbugs.gnu.org; Fri, 09 Sep 2016 17:59:32 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42366) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1biTpa-0006Sy-0b for bug-gnu-emacs@gnu.org; Fri, 09 Sep 2016 17:59:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1biTpX-0006c8-Uu for bug-gnu-emacs@gnu.org; Fri, 09 Sep 2016 17:59:28 -0400 Received: from mail-wm0-x233.google.com ([2a00:1450:400c:c09::233]:35004) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1biTpX-0006bb-Nn for bug-gnu-emacs@gnu.org; Fri, 09 Sep 2016 17:59:27 -0400 Received: by mail-wm0-x233.google.com with SMTP id w12so52821500wmf.0 for ; Fri, 09 Sep 2016 14:59:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=sender:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=5vtPthLlTxI/aib89zBGm8jVXo/pANyjegO+ae5QN8Y=; b=kpCuR3k3imF/7Kxv35HpgZhav/qLlDbOrpL+KIK2M7E3QuU5aSODIrvnTvUKiriOS3 zV9RyuD0uqKzYpbthDstL4MDYCFALDV4Gh4dXNrbMvfNpMV2gXGm/XRdPt/DKcKW2PJt VDhTh3lHeuHBNNC8n1dCcsUqCiCSXpnQngZFV4TKMPFC2pDIBWYtGRyqm48t7R58NmmP K6ss5HcK/WG4LFZ/nGyv17GKSd4LaaTu/9X8bvvV2vLNdtU8fVrLF1sg4i4GfV3Q9o0g JcbNJwZUwvr05j9vbCnHQgxHpJyIzJdk/3B7f6wXeijc0u+Odwj0WrjTE6VhnVJaWnPp +58g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:subject:date:message-id :mime-version:content-transfer-encoding; bh=5vtPthLlTxI/aib89zBGm8jVXo/pANyjegO+ae5QN8Y=; b=JWKm7geZmNLb0qYjYXhxaqyWxYP2OpGGvb0L6CqgoisJy3h9YaAsfmbdtSpmPuqomt WqdGrwPgseKkP1vFNxuHHcCIVnGgKDB6CG33xUIpzypUIKhRDLRPi7CqD7Apue2cKJ/I 1slN9hQauYbVU92LK6zsNU8/u/g7H/L9nd5XPThojiIFzM+xnpgznqtmAU97tUgM3KN/ pXSW/MhffwHvEcfIy2OogHFrXEAtQmtKtHuxR7EzGz60aDDhl23uzXlkGuEn5tlcxq6o aGRVjJ9ShNss8MlFtMwTUDXjM2iNLDQrSDfN8IukcoNRYOHw86FYQDN+S5Wo79frajZB J1og== X-Gm-Message-State: AE9vXwN1lObZ/TXF5qYAQSu7bq+n8w8EXisX08Qk40fl24az/w/9Az5qINExZIS+J/Kpu310 X-Received: by 10.195.20.33 with SMTP id gz1mr2216270wjd.75.1473458366316; Fri, 09 Sep 2016 14:59:26 -0700 (PDT) Received: from mpn.zrh.corp.google.com ([172.16.113.135]) by smtp.gmail.com with ESMTPSA id r67sm5291801wmb.14.2016.09.09.14.59.24 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Sep 2016 14:59:24 -0700 (PDT) Received: by mpn.zrh.corp.google.com (Postfix, from userid 126942) id BC2C01E020D; Fri, 9 Sep 2016 23:59:23 +0200 (CEST) From: Michal Nazarewicz To: bug-gnu-emacs@gnu.org Subject: [PATCH] Refactor common code in {upcase, downcase, capitalize}-word functions Date: Fri, 9 Sep 2016 23:59:19 +0200 Message-Id: <1473458359-29865-1-git-send-email-mina86@mina86.com> X-Mailer: git-send-email 2.8.0.rc3.226.g39d4020 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) * src/casefiddle.c (operate_on_word): Removed in favour of… (casify_word) …new function which does what operate_on_word did plus what all of the common code from *-word functions. (upcase-word, downcase-word, capitalize-word): Move code common between those functions (pretty much the whole body of those functions) into casify_word and use that instead of now deleted operato_on_word. --- src/casefiddle.c | 44 +++++++++++++++++--------------------------- 1 file changed, 17 insertions(+), 27 deletions(-) Unless there are any comments, I’m goning to push this in a few days. diff --git a/src/casefiddle.c b/src/casefiddle.c index 6114a6f..6c64d67 100644 --- a/src/casefiddle.c +++ b/src/casefiddle.c @@ -376,22 +376,27 @@ character positions to operate on. */) } static Lisp_Object -operate_on_word (Lisp_Object arg, ptrdiff_t *newpoint) +casify_word (enum case_action flag, Lisp_Object arg) { - Lisp_Object val; - ptrdiff_t farend; + Lisp_Object beg, end; + ptrdiff_t newpoint; EMACS_INT iarg; CHECK_NUMBER (arg); iarg = XINT (arg); - farend = scan_words (PT, iarg); - if (!farend) - farend = iarg > 0 ? ZV : BEGV; - *newpoint = PT > farend ? PT : farend; - XSETFASTINT (val, farend); + newpoint = scan_words (PT, iarg); + if (!newpoint) + newpoint = iarg > 0 ? ZV : BEGV; + + XSETFASTINT (beg, PT); + XSETFASTINT (end, newpoint); + if (PT > newpoint) + newpoint = PT; + + casify_region (flag, beg, end); - return val; + SET_PT (newpoint); } DEFUN ("upcase-word", Fupcase_word, Supcase_word, 1, 1, "p", @@ -404,12 +409,7 @@ With negative argument, convert previous words but do not move. See also `capitalize-word'. */) (Lisp_Object arg) { - Lisp_Object beg, end; - ptrdiff_t newpoint; - XSETFASTINT (beg, PT); - end = operate_on_word (arg, &newpoint); - casify_region (CASE_UP, beg, end); - SET_PT (newpoint); + casify_word (CASE_UP, arg); return Qnil; } @@ -422,12 +422,7 @@ is ignored when moving forward. With negative argument, convert previous words but do not move. */) (Lisp_Object arg) { - Lisp_Object beg, end; - ptrdiff_t newpoint; - XSETFASTINT (beg, PT); - end = operate_on_word (arg, &newpoint); - casify_region (CASE_DOWN, beg, end); - SET_PT (newpoint); + casify_word (CASE_DOWN, arg); return Qnil; } @@ -443,12 +438,7 @@ is ignored when moving forward. With negative argument, capitalize previous words but do not move. */) (Lisp_Object arg) { - Lisp_Object beg, end; - ptrdiff_t newpoint; - XSETFASTINT (beg, PT); - end = operate_on_word (arg, &newpoint); - casify_region (CASE_CAPITALIZE, beg, end); - SET_PT (newpoint); + casify_word (CASE_CAPITALIZE, arg); return Qnil; } -- 2.8.0.rc3.226.g39d4020 From debbugs-submit-bounces@debbugs.gnu.org Sat Sep 10 02:46:35 2016 Received: (at 24398) by debbugs.gnu.org; 10 Sep 2016 06:46:35 +0000 Received: from localhost ([127.0.0.1]:55080 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bic3f-0000GA-HQ for submit@debbugs.gnu.org; Sat, 10 Sep 2016 02:46:35 -0400 Received: from eggs.gnu.org ([208.118.235.92]:33602) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bic3d-0000Fw-B0 for 24398@debbugs.gnu.org; Sat, 10 Sep 2016 02:46:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bic3T-0006QF-2h for 24398@debbugs.gnu.org; Sat, 10 Sep 2016 02:46:27 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-3.2 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:56488) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bic3S-0006PG-Vw; Sat, 10 Sep 2016 02:46:23 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1784 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bic3Q-00006P-Qr; Sat, 10 Sep 2016 02:46:21 -0400 Date: Sat, 10 Sep 2016 09:46:19 +0300 Message-Id: <83pooc8d6s.fsf@gnu.org> From: Eli Zaretskii To: Michal Nazarewicz In-reply-to: <1473458359-29865-1-git-send-email-mina86@mina86.com> (message from Michal Nazarewicz on Fri, 9 Sep 2016 23:59:19 +0200) Subject: Re: bug#24398: [PATCH] Refactor common code in {upcase, downcase, capitalize}-word functions References: <1473458359-29865-1-git-send-email-mina86@mina86.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -6.3 (------) X-Debbugs-Envelope-To: 24398 Cc: 24398@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.3 (------) > From: Michal Nazarewicz > Date: Fri, 9 Sep 2016 23:59:19 +0200 > > * src/casefiddle.c (operate_on_word): Removed in favour of… > (casify_word) …new function which does what operate_on_word did plus > what all of the common code from *-word functions. > (upcase-word, downcase-word, capitalize-word): Move code common between > those functions (pretty much the whole body of those functions) into > casify_word and use that instead of now deleted operato_on_word. ^^^^^^^^^^^^^^^ A typo. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 12 07:26:27 2016 Received: (at 24398-done) by debbugs.gnu.org; 12 Sep 2016 11:26:27 +0000 Received: from localhost ([127.0.0.1]:57059 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bjPNb-0005rp-G3 for submit@debbugs.gnu.org; Mon, 12 Sep 2016 07:26:27 -0400 Received: from mail-wm0-f42.google.com ([74.125.82.42]:38051) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bjPNZ-0005rc-LV for 24398-done@debbugs.gnu.org; Mon, 12 Sep 2016 07:26:26 -0400 Received: by mail-wm0-f42.google.com with SMTP id 1so138785578wmz.1 for <24398-done@debbugs.gnu.org>; Mon, 12 Sep 2016 04:26:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=sender:from:to:cc:subject:in-reply-to:organization:references :user-agent:face:date:message-id:mime-version :content-transfer-encoding; bh=ypPP1tUU2xLoa3sYJ9e3MlwOOEF4krOBDkbfVKj/iLo=; b=K3VpgRFFNjoC5p7HN1OYLPyHoYFkyJvjf5uAbfSy8zU8l02Nv4CmILzAhywAz08/Bb jeOc7ayxKq0UCgCvuTV3WLw6sGk8GOvSfOgEiWG1hI8qCDYcJWkyg5DJ7pUEDbdYETr9 a2Km+p2k3LlSWfhN6aQCDuX3ytzimdt3+d6KMsyRBCnh9IdCqHik8zbBjbldeBzx4UFR gVkCAp5oU7KQXVkuCuuzoZbfCydGbL+zm+IOJfhsymZupeBkYhEZ3dj0WVgiLeWicVvY zvntrkMpkOL+v9NeMQSs2py7j7AMrji1ZdyiYcALDwl62ci13VA8EkzhdzD6XVCF2wh3 OiiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:in-reply-to :organization:references:user-agent:face:date:message-id :mime-version:content-transfer-encoding; bh=ypPP1tUU2xLoa3sYJ9e3MlwOOEF4krOBDkbfVKj/iLo=; b=gWfAkEtmt7IOFK8lFXZpYnPHoTgCYEF9UeqBEjHSMFMaZ5jt69K5I1rUVu4KvNWdM7 EurPVSXnGi28cpa/N3VBZS4F9jkV22qX9hDlWw9D+GaDQy97BElKlWN6sv0PcOF8127y qxLz7le01JFixUj04uHvvd3eqTPF64P1wazbUtRpALGO4L7RjiAmZgkHq/0djy9MpudE EsUWXjXtOUcPFlCZAOu8p+kE/S3XTYTbOJIGLHlfeGu8dJjybIb2l4EHFaXEs1KasTZd 2ICrwZ6aezaillLvZb8hxaGKXK4lDny9wrNzWgRCmQe5NcPZi/3beWMH/xRU19JLV6EN xJ2g== X-Gm-Message-State: AE9vXwOMGaAjUWgp7QU2T3veXOyW1PgSmiozjps2gL0yt6mR9GL+nHOm7r23KVPZprultOZu X-Received: by 10.194.45.232 with SMTP id q8mr58927wjm.9.1473679579605; Mon, 12 Sep 2016 04:26:19 -0700 (PDT) Received: from mpn-glaptop ([2620:0:105f:310:9179:5bf1:1a:83f6]) by smtp.gmail.com with ESMTPSA id jd4sm17444002wjb.6.2016.09.12.04.26.17 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Mon, 12 Sep 2016 04:26:17 -0700 (PDT) From: Michal Nazarewicz To: Eli Zaretskii Subject: Re: bug#24398: [PATCH] Refactor common code in {upcase, downcase, capitalize}-word functions In-Reply-To: <83pooc8d6s.fsf@gnu.org> Organization: http://mina86.com/ References: <1473458359-29865-1-git-send-email-mina86@mina86.com> <83pooc8d6s.fsf@gnu.org> User-Agent: Notmuch/0.19+53~g2e63a09 (http://notmuchmail.org) Emacs/25.1.50.106 (x86_64-unknown-linux-gnu) Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAJFBMVEWbfGlUPDDHgE57V0jUupKjgIObY0PLrom9mH4dFRK4gmjPs41MxjOgAAACP0lEQVQ4T23Sv2vbQBQHcBk1xE6WyALX107VUEgmn6+ouUwpEQQ6uRjttkWP4CkBg2M0BQLBdPFZYPsyFYo7qEtKDQ7on+t7+nF2Ux8ahD587717OmNYrOvycHsZ+o2r051wHTHysAvGb8ygvgu4QWT0sCmkgZCIEnlV2X8BtyraazFGDuxhmKSQJMlwHQ7v5MHSNxmz78rfElwAa3ieVD9e+hBhjaPDDG6NgFo2f4wBMNIo5YmRtF0RyDgFjJjlMIWbnuM4x9MMfABGTlN4qgIQB4A1DEyA1BHWtfeWNUMwiVJKoqh97KrkOO+qzgluVYLvFCUKAX73nONeBr7BGMdM6Sg0kuep03VywLaIzRiVr+GAzKlpQIsAFnWAG2e6DT5WmWDiudZMIc6hYrMOmeMQK9WX0B+/RfjzL9DI7Y9/Iayn29Ci0r2i4f9gMimMSZLCDMalgQGU5hnUtqAN0OGvEmO1Wnl0C0wWSCEHnuHBqmygxdxA8oWXwbipoc1EoNR9DqOpBpOJrnr0criQab9ZT4LL+wI+K7GBQH30CrhUruilgP9DRTrhVWZCiAyILP+wiuLeCKGTD6r/nc8LOJcAwR6IBTUs+7CASw3QFZ0MdA2PI3zNziH4ZKVhXCRMBjeZ1DWMekKwDCASwExy+NQ86TaykaDAFHO4aP48y4fIcDM5yOG8GcTLbOyp8A8azjJI93JFd1EA6yN8sSxMQJWoABqniRZVykYgRXErzrdqExAoUrRb0xfRp8p2A/4XmfilTtkDZ4cAAAAASUVORK5CYII= X-Face: -TR8(rDTHy/(xl?SfWd1|3:TTgDIatE^t'vop%*gVg[kn$t{EpK(P"VQ=~T2#ysNmJKN$"yTRLB4YQs$4{[.]Fc1)*O]3+XO^oXM>Q#b^ix, O)Zbn)q[y06$`e3?C)`CwR9y5riE=fv^X@x$y?D:XO6L&x4f-}}I4=VRNwiA^t1-ZrVK^07.Pi/57c_du'& X-PGP: 50751FF4 X-PGP-FP: AC1F 5F5C D418 88F8 CC84 5858 2060 4012 5075 1FF4 X-Hashcash: 1:20:160912:eliz@gnu.org::VRYYg9end9Lqxyco:000000bl0 X-Hashcash: 1:20:160912:24398@debbugs.gnu.org::E1K7Dsj6Q6BCA1w/:00000000000000000000000000000000000000002Tu5 Date: Mon, 12 Sep 2016 13:26:16 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 24398-done Cc: 24398-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.0 (---) On Sat, Sep 10 2016, Eli Zaretskii wrote: >> From: Michal Nazarewicz >> Date: Fri, 9 Sep 2016 23:59:19 +0200 >>=20 >> * src/casefiddle.c (operate_on_word): Removed in favour of=E2=80=A6 >> (casify_word) =E2=80=A6new function which does what operate_on_word did = plus >> what all of the common code from *-word functions. >> (upcase-word, downcase-word, capitalize-word): Move code common between >> those functions (pretty much the whole body of those functions) into >> casify_word and use that instead of now deleted operato_on_word. > ^^^^^^^^^^^^^^^ > A typo. Fixed and pushed. > Thanks. --=20 Best regards =E3=83=9F=E3=83=8F=E3=82=A6 =E2=80=9C=F0=9D=93=B6=F0=9D=93=B2=F0=9D=93=B7= =F0=9D=93=AA86=E2=80=9D =E3=83=8A=E3=82=B6=E3=83=AC=E3=83=B4=E3=82=A4=E3=83= =84 =C2=ABIf at first you don=E2=80=99t succeed, give up skydiving=C2=BB From unknown Sat Jun 21 10:21:02 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 11 Oct 2016 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator