From unknown Tue Aug 19 05:12:46 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41923: CC Mode 5.33.2 (AWK//l); Bad indentation of gawk switch cases Resent-From: Peter Kozich Original-Sender: "Debbugs-submit" Resent-CC: bug-cc-mode@gnu.org Resent-Date: Wed, 17 Jun 2020 17:17:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 41923 X-GNU-PR-Package: cc-mode X-GNU-PR-Keywords: To: 41923@debbugs.gnu.org X-Debbugs-Original-To: submit@debbugs.gnu.org Received: via spool by submit@debbugs.gnu.org id=B.15924141885359 (code B ref -1); Wed, 17 Jun 2020 17:17:02 +0000 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 Date: Wed, 17 Jun 2020 18:54:55 +0200 Message-ID: <861rmd7huo.fsf@upcmail.hu> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-CMAE-Envelope: MS4wfINK1IjcAmtHM5nahAbUSs2L2Vn1IF0enRaMXsICR7WEalMGa6MjluVOF+wmTViFzdPk4sgP471n0CrDyhqfMM09C8wQ3HgBIxDAwbw1LJVakSbbASte oqAQ6lBydZ2zcsJ+iIpxU5fvLFwutaj0mITznGZu+X9fDun8SA6HGNx4 X-Spam-Score: -0.7 (/) 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 unknown Tue Aug 19 05:12:46 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41923: CC Mode 5.33.2 (AWK//l); Bad indentation of gawk switch cases Resent-From: Alan Mackenzie Original-Sender: "Debbugs-submit" Resent-CC: bug-cc-mode@gnu.org Resent-Date: Thu, 18 Jun 2020 18:57:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41923 X-GNU-PR-Package: cc-mode X-GNU-PR-Keywords: To: Peter Kozich Cc: 41923@debbugs.gnu.org Received: via spool by 41923-submit@debbugs.gnu.org id=B41923.159250658730785 (code B ref 41923); Thu, 18 Jun 2020 18:57:01 +0000 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 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-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 unknown Tue Aug 19 05:12:46 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Peter Kozich Subject: bug#41923: closed (Re: bug#41923: CC Mode 5.33.2 (AWK//l); Bad indentation of gawk switch cases) Message-ID: References: <20200624195759.GB8870@ACM> <861rmd7huo.fsf@upcmail.hu> X-Gnu-PR-Message: they-closed 41923 X-Gnu-PR-Package: cc-mode Reply-To: 41923@debbugs.gnu.org Date: Wed, 24 Jun 2020 19:59:01 +0000 Content-Type: multipart/mixed; boundary="----------=_1593028741-16072-1" This is a multi-part message in MIME format... ------------=_1593028741-16072-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #41923: CC Mode 5.33.2 (AWK//l); Bad indentation of gawk switch cases which was filed against the cc-mode package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 41923@debbugs.gnu.org. --=20 41923: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D41923 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1593028741-16072-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit 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). ------------=_1593028741-16072-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit 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]+[ ]*\\)*\\)" ) --=-=-=-- ------------=_1593028741-16072-1--