From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 17 13:16:28 2020 Received: (at submit) by debbugs.gnu.org; 17 Jun 2020 17:16:28 +0000 Received: from localhost ([127.0.0.1]:52100 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jlbfm-0001OK-VI for submit@debbugs.gnu.org; Wed, 17 Jun 2020 13:16:28 -0400 Received: from vie01a-dmta-pe05-3.mx.upcmail.net ([84.116.36.13]:33709) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jlbQy-00011I-3m for submit@debbugs.gnu.org; Wed, 17 Jun 2020 13:01:09 -0400 Received: from [172.31.216.235] (helo=vie01a-pemc-psmtp-pe12.mail.upcmail.net) by vie01a-dmta-pe05.mx.upcmail.net with esmtp (Exim 4.92) (envelope-from ) id 1jlbQw-0003rW-7u for submit@debbugs.gnu.org; Wed, 17 Jun 2020 19:01:06 +0200 Received: from gygv ([80.99.244.3]) by vie01a-pemc-psmtp-pe12.mail.upcmail.net with ESMTP id lbQWjXtKA6Jy6lbQwjIovi; Wed, 17 Jun 2020 19:01:06 +0200 X-Env-Mailfrom: peter.kozich@upcmail.hu X-Env-Rcptto: submit@debbugs.gnu.org X-SourceIP: 80.99.244.3 X-CNFS-Analysis: v=2.3 cv=GKl27dFK c=1 sm=1 tr=0 a=sDNWBPGJeVDRPKANBelFfw==:117 a=sDNWBPGJeVDRPKANBelFfw==:17 a=y4JdaEXI8hr2QBxNPH4A:9 a=03VlcogLNPvsxf-HAJIA:9 a=2q8PsuLMid_0NRhpy9kA:9 a=vNumVxT5JeU-Ulalq0sA:9 a=QEXdDO2ut3YA:10 From: Peter Kozich To: submit@debbugs.gnu.org Subject: CC Mode 5.33.2 (AWK//l); Bad indentation of gawk switch cases Date: Wed, 17 Jun 2020 18:54:55 +0200 Message-ID: <861rmd7huo.fsf@upcmail.hu> X-Debbugs-Package: cc-mode MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-CMAE-Envelope: MS4wfINK1IjcAmtHM5nahAbUSs2L2Vn1IF0enRaMXsICR7WEalMGa6MjluVOF+wmTViFzdPk4sgP471n0CrDyhqfMM09C8wQ3HgBIxDAwbw1LJVakSbbASte oqAQ6lBydZ2zcsJ+iIpxU5fvLFwutaj0mITznGZu+X9fDun8SA6HGNx4 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Wed, 17 Jun 2020 13:16:25 -0400 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: -1.7 (-) --=-=-= Content-Type: text/plain Package: cc-mode Indentation of the case labels of the gawk switch is somehow strange: the AWK mode does not seem to recognize the case keyword when indenting (although it recognizes it as a keyword when coloring): --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=case.awk Content-Transfer-Encoding: base64 Content-Description: AWK buffer Cgp7CgogIHN3aXRjaCAobXNnKQogIHsKICAgIGNhc2UgMToKICAgICAgYnJlYWs7CiAgICAgIAog ICAgICBjYXNlIDI6CiAgICAgICAgYnJlYWs7CiAgICAgICAgCiAgICAgICAgY2FzZSAzOgogICAg ICAgICAgYnJlYWs7CiAgICAgICAgICAKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGJy ZWFrOwogIH0KICAKfQo= --=-=-= Content-Type: text/plain { switch (msg) { case 1: break; case 2: break; case 3: break; default: break; } } In a C buffer, the indentatation of the same works as expected: --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=case.c Content-Transfer-Encoding: base64 Content-Description: C buffer CgppbnQgbWFpbigpCnsKICBzd2l0Y2ggKHMpCiAgewogICAgY2FzZSAxOgogICAgICBicmVhazsK CiAgICBjYXNlIDI6CiAgICAgIGJyZWFrOwoKICAgIGRlZmF1bHQ6CiAgICAgIGJyZWFrOwogIH0K fQo= --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable int main() { switch (s) { case 1: break; case 2: break; default: break; } } Is this a bug, or am I missing something in my .emacs file? br pk Emacs : GNU Emacs 26.3 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 3.2= 4.13) of 2020-01-28 Package: CC Mode 5.33.2 (AWK//l) Buffer Style: cello c-emacs-features: (pps-extended-state col-0-paren posix-char-classes gen-st= ring-delim gen-comment-delim syntax-properties 1-bit) current state: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D (setq c-basic-offset 2 c-comment-only-line-offset '(0 . 0) c-indent-comment-alist '((anchored-comment column . 0) (end-block space . = 1) (cpp-end-block space . 2)) c-indent-comments-syntactically-p nil c-block-comment-prefix "* " c-comment-prefix-regexp '((pike-mode . "//+!?\\|\\**") (awk-mode . "#+") (other . "//+\\|\\**")) c-doc-comment-style '((java-mode . javadoc) (pike-mode . autodoc) (c-mode . gtkdoc)) c-cleanup-list '(scope-operator) c-hanging-braces-alist '((brace-list-open) (brace-entry-open) (statement-cont) (substatement-open after) (block-close . c-snug-do-while) (extern-lang-open after) (namespace-open after) (module-open after) (composition-open after) (inexpr-class-open after) (inexpr-class-close before) (arglist-cont-nonempt= y)) c-hanging-colons-alist nil c-hanging-semi&comma-criteria '(c-semi&comma-inside-parenlist) c-backslash-column 48 c-backslash-max-column 72 c-special-indent-hook '(c-gnu-impose-minimum) c-label-minimum-indentation 1 c-offsets-alist '((inexpr-class . +) (inexpr-statement . +) (lambda-intro-cont . +) (inlambda . c-lineup-inexpr-block) (template-args-cont c-lineup-template-args +) (incomposition . +) (inmodule . +) (innamespace . +) (inextern-lang . +) (composition-close . 0) (module-close . 0) (namespace-close . 0) (extern-lang-close . 0) (composition-open . 0) (module-open . 0) (namespace-open . 0) (extern-lang-open . 0) (objc-method-call-cont c-lineup-ObjC-method-call-colons c-lineup-ObjC-method-call + ) (objc-method-args-cont . c-lineup-ObjC-method-args) (objc-method-intro . [0]) (friend . 0) (cpp-define-intro c-lineup-cpp-define +) (cpp-macro-cont . +) (cpp-macro . [0]) (inclass . +) (stream-op . c-lineup-streamop) (arglist-cont-nonempty c-lineup-gcc-asm-reg c-lineup-arglist ) (arglist-cont c-lineup-gcc-asm-reg 0) (comment-intro c-lineup-knr-region-comment c-lineup-comment ) (catch-clause . 0) (else-clause . 0) (do-while-closure . 0) (access-label . -) (substatement-label . 2) (statement-case-intro . +) (statement . 0) (brace-entry-open . 0) (brace-list-entry . c-lineup-under-anchor) (brace-list-intro . +) (brace-list-close . 0) (brace-list-open . 0) (block-close . 0) (block-open . 0) (inher-cont . c-lineup-multi-inher) (inher-intro . +) (member-init-cont . c-lineup-multi-inher) (member-init-intro . +) (annotation-var-cont . +) (annotation-top-cont . 0) (topmost-intro-cont . c-lineup-topmost-intro-cont) (topmost-intro . 0) (knr-argdecl . 0) (func-decl-cont . +) (inline-close . 0) (inline-open . +) (class-close . 0) (class-open . 0) (defun-block-intro . +) (defun-close . 0) (defun-open . 0) (c . c-lineup-C-comments) (string . c-lineup-dont-change) (arglist-close . c-lineup-arglist) (arglist-intro . c-lineup-arglist-intro-after-paren) (statement-cont . +) (label . 0) (case-label . +) (knr-argdecl-intro . 5) (statement-block-intro . +) (statement-case-open . +) (substatement-open . 0) (substatement . +) ) c-buffer-is-cc-mode 'awk-mode c-tab-always-indent t c-syntactic-indentation t c-syntactic-indentation-in-macros t c-ignore-auto-fill '(string cpp code) c-auto-align-backslashes t c-backspace-function 'backward-delete-char-untabify c-delete-function 'delete-char c-electric-pound-behavior nil c-default-style '((other . "cello")) c-enable-xemacs-performance-kludge-p nil c-old-style-variable-behavior nil defun-prompt-regexp nil tab-width 4 comment-column 32 parse-sexp-ignore-comments t parse-sexp-lookup-properties t auto-fill-function nil comment-multi-line t comment-start-skip "\\(#+\\)\\s *" fill-prefix nil fill-column 70 paragraph-start "[ ]*\\(\\(#+\\)[ ]*\\)?$\\|^\f" adaptive-fill-mode t adaptive-fill-regexp "[ ]*\\(#+\\)[ ]*\\([ ]*\\([-=E2=80=93!|#%;>*=C2= =B7=E2=80=A2=E2=80=A3=E2=81=83=E2=97=A6]+[ ]*\\)*\\)" ) --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 18 14:56:27 2020 Received: (at 41923) by debbugs.gnu.org; 18 Jun 2020 18:56:27 +0000 Received: from localhost ([127.0.0.1]:54424 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jlzi7-00080T-1m for submit@debbugs.gnu.org; Thu, 18 Jun 2020 14:56:27 -0400 Received: from colin.muc.de ([193.149.48.1]:17567 helo=mail.muc.de) by debbugs.gnu.org with smtp (Exim 4.84_2) (envelope-from ) id 1jlzi5-00080F-86 for 41923@debbugs.gnu.org; Thu, 18 Jun 2020 14:56:26 -0400 Received: (qmail 68640 invoked by uid 3782); 18 Jun 2020 18:56:18 -0000 Received: from acm.muc.de (p4fe15e7b.dip0.t-ipconnect.de [79.225.94.123]) by localhost.muc.de (tmda-ofmipd) with ESMTP; Thu, 18 Jun 2020 20:56:17 +0200 Received: (qmail 10337 invoked by uid 1000); 18 Jun 2020 18:56:17 -0000 Date: Thu, 18 Jun 2020 18:56:17 +0000 To: Peter Kozich Subject: Re: bug#41923: CC Mode 5.33.2 (AWK//l); Bad indentation of gawk switch cases Message-ID: <20200618185617.GA10283@ACM> References: <861rmd7huo.fsf@upcmail.hu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <861rmd7huo.fsf@upcmail.hu> X-Delivery-Agent: TMDA/1.1.12 (Macallan) From: Alan Mackenzie X-Primary-Address: acm@muc.de X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41923 Cc: 41923@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: -1.0 (-) Hello, Peter. On Wed, Jun 17, 2020 at 18:54:55 +0200, Peter Kozich wrote: > Package: cc-mode > Indentation of the case labels of the gawk switch is somehow strange: > the AWK mode does not seem to recognize the case keyword when indenting > (although it recognizes it as a keyword when coloring): > { > switch (msg) > { > case 1: > break; > case 2: > break; > case 3: > break; > default: > break; > } > } > In a C buffer, the indentatation of the same works as expected: [ .... ] > Is this a bug, or am I missing something in my .emacs file? This is indeed a bug. At the time AWK Mode was written, switch didn't exist in AWK, so special steps were taken to exclude switch and case from AWK's indentation engine. When it was introduced, CC Mode failed to get updated to match. The following patch puts switch/case/default into AWK Mode. Would you please apply it to ...../emacs/lisp/progmodes/cc-langs.el and byte-compile all of CC Mode (i.e. ...../emacs/lisp/progmodes/cc-*.el). (If you would like any help with the patching or byte-compilation, feel free to send me private email.) On reloading CC Mode (possibly, by restarting Emacs), the indentation of case etc. should work. Please then get back to me, confirming the patch works, or saying what still needs fixing. Thanks! diff -r fd31432873bd cc-langs.el --- a/cc-langs.el Thu Jun 11 10:50:35 2020 +0000 +++ b/cc-langs.el Thu Jun 18 18:53:00 2020 +0000 @@ -2772,7 +2772,7 @@ java '("for" "if" "switch" "while" "catch" "synchronized") idl nil pike '("for" "if" "switch" "while" "foreach") - awk '("for" "if" "while")) + awk '("for" "if" "switch" "while")) (c-lang-defconst c-block-stmt-2-key ;; Regexp matching the start of any statement followed by a paren sexp @@ -2851,8 +2851,7 @@ (c-lang-defconst c-case-kwds "The keyword(s) which introduce a \"case\" like construct. This construct is \" :\"." - t '("case") - awk nil) + t '("case")) (c-lang-defconst c-case-kwds-regexp ;; Adorned regexp matching any "case"-like keyword. > br > pk > Emacs : GNU Emacs 26.3 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 3.24.13) > of 2020-01-28 > Package: CC Mode 5.33.2 (AWK//l) > Buffer Style: cello > c-emacs-features: (pps-extended-state col-0-paren posix-char-classes gen-string-delim gen-comment-delim syntax-properties 1-bit) [ CC Mode state dump snipped, but appreciated. ] -- Alan Mackenzie (Nuremberg, Germany). From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 24 15:58:08 2020 Received: (at 41923-done) by debbugs.gnu.org; 24 Jun 2020 19:58:08 +0000 Received: from localhost ([127.0.0.1]:39174 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1joBX6-0004A4-6A for submit@debbugs.gnu.org; Wed, 24 Jun 2020 15:58:08 -0400 Received: from colin.muc.de ([193.149.48.1]:42101 helo=mail.muc.de) by debbugs.gnu.org with smtp (Exim 4.84_2) (envelope-from ) id 1joBX4-00049c-Om for 41923-done@debbugs.gnu.org; Wed, 24 Jun 2020 15:58:07 -0400 Received: (qmail 9263 invoked by uid 3782); 24 Jun 2020 19:58:00 -0000 Received: from acm.muc.de (p4fe15a7c.dip0.t-ipconnect.de [79.225.90.124]) by localhost.muc.de (tmda-ofmipd) with ESMTP; Wed, 24 Jun 2020 21:57:59 +0200 Received: (qmail 20896 invoked by uid 1000); 24 Jun 2020 19:57:59 -0000 Date: Wed, 24 Jun 2020 19:57:59 +0000 To: "Peter Kozich \(UM\)" Subject: Re: bug#41923: CC Mode 5.33.2 (AWK//l); Bad indentation of gawk switch cases Message-ID: <20200624195759.GB8870@ACM> References: <861rmd7huo.fsf@upcmail.hu> <20200618185617.GA10283@ACM> <1e856e6fa6726634edf4df1a96ae9edd82886b29.camel@upcmail.hu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1e856e6fa6726634edf4df1a96ae9edd82886b29.camel@upcmail.hu> X-Delivery-Agent: TMDA/1.1.12 (Macallan) From: Alan Mackenzie X-Primary-Address: acm@muc.de X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41923-done Cc: 41923-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: -1.0 (-) Hello, Peter. On Fri, Jun 19, 2020 at 21:20:37 +0200, Peter Kozich (UM) wrote: > Hello Alan, > I recompiled them and now case indentation works correctly in the AWK > buffer, too. Thanks. I've committed the patch to the Emacs master branch, and it will find its way into Emacs 28 when that is released (probably in about a year and a half's time). I suggest you keep the patch handy and apply it to Emacs-27 when that gets released ("any time now"). > There is a 200+ lines difference somewhere between your el file and > mine. Yes, sorry about that. CC Mode is still a separate package from Emacs, if only just, and I was working on the upstream version. The line number difference is harmless. > Thank you for the help Thanks again for the bug report. I'm closing the bug with this post. > br > pk -- Alan Mackenzie (Nuremberg, Germany). From unknown Thu Aug 14 22:21:13 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 23 Jul 2020 11:24:05 +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