Subject: Re: bug#22369: 24.5; comment-style 'extra-line' doesn't correctly indent with tabs

From: "Geyslan G. Bem" <[email-masked]>
Date: Mon, 18 Jan 2016 08:14:24 -0300

2016-01-16 10:22 GMT-03:00 Geyslan G. Bem <[email-masked]>:
>
> On 15 Jan 2016 18:59, "Geyslan G. Bem" <[email-masked]> wrote:
>>
>> 2016-01-15 9:42 GMT-03:00 Alan Mackenzie <[email-masked]>:
>> > Bug fixed in emacs-25 branch.
>>
>> Alan, tested and it's ok. Thank you.
>>
>> I realized now that comment-dwim leaves a trailing space in the first
>> line of the comment ( /* extra-line).
>
> Actually this space is on all empty lines.
I managed it for my C style (/*, * and */) using

(save-excursion
;; Cleaning only trailing spaces inserted by comment-region.
;; Existing ones are not touched.
  (replace-regexp "\\(/+\\|^\\s-+\\)\\(\\*\\)\\(\\s-+$\\)" "\\1\\2"
nil beg end))

Maybe an optional parameter (trim-trailing-spaces) would be a good
call for comment-region function.

>
>> This space isn't needed by
>> c-indent-new-comment-line (M-j), so I think that it could be an issue
>> too, since it's deliberately doing that.
>>
>> >
>> > Bug report left open, due to a feature request in it.
>> >
>> > --
>> > Alan Mackenzie (Nuremberg, Germany).
>> >
>> >
>> > In article <[email-masked]> you
>> > wrote:
>> >> (setq c-basic-offset 8
>> >>       tab-width 8
>> >>       indent-tabs-mode t
>> >>       comment-style 'extra-line)
>> >> (c-set-style "linux")
>> >
>> >> Using the above settings the comment-dwim (with region active) indent
>> >> the second and last lines with spaces instead of tabs.
>> >
>> >>         /*
>> >>          * void main()
>> >>          * {
>> >>          *  int i;
>> >>          *  int b;
>> >>          *  printf("format string");
>> >>          * }
>> >>          */
>> >
>> >> For better comprehension check out this
>> >>
>> >> http://stackoverflow.com/questions/34710840/c-comment-in-emacs-linux-kernel-style-v2
>> >
>> >> May I suggest the addition of a new comment-style option that does like
>> >> this?
>> >
>> >>         /* void main()
>> >>          * {
>> >>          *  int i;
>> >>          *  int b;
>> >>          *  printf("format string");
>> >>          * }
>> >>          */
>> >
>> >
>> >
>> >> In GNU Emacs 24.5.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.16.6)
>> >>  of 2015-09-09 on foutrelis
>> >> Windowing system distributor `The X.Org Foundation', version
>> >> 11.0.11800000
>> >> System Description:    Arch Linux
>> >
>> >> Configured using:
>> >>  `configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
>> >>  --localstatedir=/var --with-x-toolkit=gtk3 --with-xft
>> >>  'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe
>> >> -fstack-protector-strong
>> >>  --param=ssp-buffer-size=4' CPPFLAGS=-D_FORTIFY_SOURCE=2
>> >>  LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro'
>> >
>> >> Important settings:
>> >>   value of $LC_CTYPE: pt_BR.UTF-8
>> >>   value of $LC_MONETARY: pt_BR.UTF-8
>> >>   value of $LC_NUMERIC: pt_BR.UTF-8
>> >>   value of $LC_TIME: pt_BR.UTF-8
>> >>   value of $LANG: en_US.UTF-8
>> >>   value of $XMODIFIERS: @im=ibus
>> >>   locale-coding-system: utf-8-unix
>> >
>> >> Major mode: Emacs-Lisp
>> >
>> >> Minor modes in effect:
>> >>   tooltip-mode: t
>> >>   electric-indent-mode: t
>> >>   mouse-wheel-mode: t
>> >>   tool-bar-mode: t
>> >>   menu-bar-mode: t
>> >>   file-name-shadow-mode: t
>> >>   global-font-lock-mode: t
>> >>   font-lock-mode: t
>> >>   blink-cursor-mode: t
>> >>   auto-composition-mode: t
>> >>   auto-encryption-mode: t
>> >>   auto-compression-mode: t
>> >>   line-number-mode: t
>> >>   transient-mark-mode: t
>> >
>> >> Recent messages:
>> >
>> >
>> >> Load-path shadows:
>> >> /home/geyslan/.emacs.d/elpa/helm-20151106.2158/helm-multi-match hides
>> >> /home/geyslan/.emacs.d/elpa/helm-core-20151104.0/helm-multi-match
>> >
>> >> Features:
>> >> (shadow sort gnus-util mail-extr emacsbug message idna format-spec
>> >> rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
>> >> mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
>> >> mm-util mail-prsvr mail-utils jka-compr find-func help-fns sregex
>> >> re-builder debug tabify cc-langs cc-mode cc-fonts cc-guess cc-menus
>> >> cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs help-mode
>> >> go-mode-autoloads info easymenu package epg-config edmacro kmacro
>> >> cl-loaddefs cl-lib time-date tooltip electric uniquify ediff-hook
>> >> vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image
>> >> regexp-opt fringe tabulated-list newcomment lisp-mode prog-mode
>> >> register
>> >> page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock
>> >> font-lock syntax facemenu font-core frame cham georgian utf-8-lang
>> >> misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew
>> >> greek romanian slovak czech european ethiopic indian cyrillic chinese
>> >> case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer nadvice
>> >> loaddefs button faces cus-face macroexp files text-properties overlay
>> >> sha1 md5 base64 format env code-pages mule custom widget
>> >> hashtable-print-readable backquote make-network-process dbusbind
>> >> gfilenotify dynamic-setting system-font-setting font-render-setting
>> >> move-toolbar gtk x-toolkit x multi-tty emacs)
>> >
>> >> Memory information:
>> >> ((conses 16 132515 7051)
>> >>  (symbols 48 21866 0)
>> >>  (miscs 40 226 747)
>> >>  (strings 32 23818 4361)
>> >>  (string-bytes 1 883190)
>> >>  (vectors 16 12839)
>> >>  (vector-slots 8 428611 6669)
>> >>  (floats 8 75 442)
>> >>  (intervals 56 799 191)
>> >>  (buffers 960 17)
>> >>  (heap 1024 45432 1517))
>> >
>> >
>> >
>>
>>
>>
>> --
>> Regards,
>>
>> Geyslan G. Bem
>> hackingbits.com

-- 
Regards,

Geyslan G. Bem
hackingbits.com