Motivation
I use ESS every day and since I comment my code to great lengths, I use
adaptive-fill regularly (M-q on commented region with auto-fill-mode
on). However, since I upgraded to the last version of ESS, adaptive fill of
commented code doesn't behave like expected anymore.

Reproducible example
1. Visit a *.R buffer with ESS as major mode
2. Turn auto-fill-mode on
3. Set fill-column to, say, 80
4. Copy the following commented text into the buffer: '## The quick brown
for jumps over the lazy dog.  The quick brown for jumps over the lazy dog.
 The quick brown for jumps over the lazy dog.  The quick brown for jumps
over the lazy dog.  '
5. Select the commented text
6. M-x fill-paragraph

Expected outcome:
## The quick brown for jumps over the lazy dog.  The quick brown for jumps
over         ## the lazy dog.  The quick brown for jumps over the lazy dog.
 The quick brown         ## for jumps over the lazy dog.

Observed outcome:
## The quick brown for jumps over the lazy dog.  The quick brown for jumps
over
the lazy dog.  The quick brown for jumps over the lazy dog.  The quick
brown for
jumps over the lazy dog.

Notice the absence of the expected adaptive fill prefix on the second and
third lines of the wrapped commented text.


-------------------------------------------------------
This bug report will be sent to the ESS bugs email list
Press C-c C-c when you are ready to send your message.
-------------------------------------------------------

) (ess-load-visibly-command . .ess.source("%s", TRUE, TRUE, 300)
) (ess-load-visibly-noecho-command . .ess.source("%s", FALSE, TRUE, 300)
) (ess-dump-filename-template ess-replace-regexp-in-string S$ ess-suffix
ess-dump-filename-template-proto) (ess-help-web-search-command quote
ess-R-sos) (ess-mode-syntax-table . R-syntax-table) (ess-mode-editing-alist
. R-editing-alist) (ess-change-sp-regexp . ess-R-change-sp-regexp)
(ess-help-sec-regex . ess-help-R-sec-regex) (ess-help-sec-keys-alist .
ess-help-R-sec-keys-alist) (ess-loop-timeout . ess-S-loop-timeout)
(ess-cmd-delay . ess-R-cmd-delay) (ess-function-pattern .
ess-R-function-pattern) (ess-object-name-db-file . ess-r-namedb.el)
(ess-smart-operators . ess-R-smart-operators) (inferior-ess-program .
inferior-R-program-name) (inferior-ess-objects-command .
inferior-R-objects-command) (inferior-ess-font-lock-keywords quote
inferior-R-font-lock-keywords) (inferior-ess-search-list-command . search()
) (inferior-ess-help-command . inferior-ess-r-help-command)
(inferior-ess-help-filetype) (inferior-ess-exit-command . q())
(inferior-ess-exit-prompt . Save workspace image? [y/n/c]: )
(inferior-ess-start-file) (inferior-ess-start-args . )
(ess-error-regexp-alist . ess-R-error-regexp-alist)
(ess-describe-object-at-point-commands quote
ess-R-describe-object-at-point-commands) (ess-STERM . iESS) (ess-editor .
R-editor) (ess-pager . R-pager) (prettify-symbols-alist quote ((<- . 8592)
(<<- . 8606) (-> . 8594) (->> . 8608))) (ess-language . S)
(inferior-ess-exit-command . q()
) (inferior-ess-language-start eval inferior-S-language-start)
(comint-use-prompt-regexp . t) (comint-process-echoes . t)
(inferior-ess-primary-prompt . > ) (inferior-ess-secondary-prompt . + )
(comment-start . #) (ess-imenu-generic-expression .
ess-imenu-S-generic-expression) (comment-add . 1) (comment-start-skip . #+
*) (comment-use-syntax . t) (comment-column . 40) (ess-no-skip-regexp
concat ^ *@\| (default-value (quote ess-no-skip-regexp)))
(inferior-ess-prompt . inferior-S-prompt) (ess-get-help-topics-function
quote ess-get-S-help-topics-function) (ess-getwd-command . getwd()
) (ess-setwd-command . setwd('%s')
) (ess-funargs-command . .ess_funargs("%s")
) (fill-nobreak-predicate quote ess-inside-string-p)
(normal-auto-fill-function quote ess-do-auto-fill))
(ess-mode-1.6): editing-alist=((paragraph-start concat \s-*$\|
page-delimiter) (paragraph-separate concat \s-*$\| page-delimiter)
(paragraph-ignore-fill-prefix . t) (require-final-newline . t)
(indent-line-function quote ess-indent-line) (parse-sexp-ignore-comments .
t) (ess-style . ess-default-style) (ess-mode-syntax-table . S-syntax-table)
(add-log-current-defun-header-regexp . ^\(.+\)\s-+<-[
]*function) (ess-font-lock-keywords quote ess-R-font-lock-keywords)
(ess-font-lock-defaults ess--extract-default-fl-keywords
ess-R-font-lock-keywords) (font-lock-defaults quote (ess-font-lock-defaults
nil nil ((46 . w) (95 . w)))))
(ess-setq-vars-LOCAL): language=S, dialect=R, buf=nil, comint..echoes=t,
comint..sender=comint-simple-send

Finished setting up ESS-mode.

(R): ess-dialect=R, buf=preprocess-GSE13507.R, start-arg=nil
 current-prefix-arg=nil
(inf-ess 1): lang=S, dialect=R, tmp-dialect=R, buf=preprocess-GSE13507.R
(inf-ess 1.1): procname=R:2 temp-dialect=R, buf-name=*R:2*
(ess-setq-vars-LOCAL): language=S, dialect=R, buf=nil, comint..echoes=t,
comint..sender=comint-simple-send
(ess-mode-1): ess-language=S, ess-dialect=R buf=tmp.R
(ess-mode-1.5): alist=((ess-local-customize-alist quote R-customize-alist)
(ess-eldoc-function quote ess-R-eldoc-function) (ess-dialect . R)
(ess-suffix . R) (ess-ac-sources quote (ac-source-R))
(ess-build-tags-command . rtags('%s', recursive = TRUE, pattern =
'\\.[RrSs](rw)?$',ofile = '%s')) (ess-traceback-command .
local({cat(geterrmessage(), "----------------------------------
", fill=TRUE);try(traceback(), silent=TRUE)})
) (ess-call-stack-command . traceback(1)
) (ess-eval-command . .ess.eval("%s", FALSE, FALSE, file="%f")
) (ess-eval-visibly-command . .ess.eval("%s", TRUE, TRUE, 300, file="%f")
) (ess-eval-visibly-noecho-command . .ess.eval("%s", FALSE, TRUE, 300,
file="%f")
) (ess-load-command . .ess.source("%s", FALSE, FALSE)
) (ess-load-visibly-command . .ess.source("%s", TRUE, TRUE, 300)
) (ess-load-visibly-noecho-command . .ess.source("%s", FALSE, TRUE, 300)
) (ess-dump-filename-template ess-replace-regexp-in-string S$ ess-suffix
ess-dump-filename-template-proto) (ess-help-web-search-command quote
ess-R-sos) (ess-mode-syntax-table . R-syntax-table) (ess-mode-editing-alist
. R-editing-alist) (ess-change-sp-regexp . ess-R-change-sp-regexp)
(ess-help-sec-regex . ess-help-R-sec-regex) (ess-help-sec-keys-alist .
ess-help-R-sec-keys-alist) (ess-loop-timeout . ess-S-loop-timeout)
(ess-cmd-delay . ess-R-cmd-delay) (ess-function-pattern .
ess-R-function-pattern) (ess-object-name-db-file . ess-r-namedb.el)
(ess-smart-operators . ess-R-smart-operators) (inferior-ess-program .
inferior-R-program-name) (inferior-ess-objects-command .
inferior-R-objects-command) (inferior-ess-font-lock-keywords quote
inferior-R-font-lock-keywords) (inferior-ess-search-list-command . search()
) (inferior-ess-help-command . inferior-ess-r-help-command)
(inferior-ess-help-filetype) (inferior-ess-exit-command . q())
(inferior-ess-exit-prompt . Save workspace image? [y/n/c]: )
(inferior-ess-start-file) (inferior-ess-start-args . )
(ess-error-regexp-alist . ess-R-error-regexp-alist)
(ess-describe-object-at-point-commands quote
ess-R-describe-object-at-point-commands) (ess-STERM . iESS) (ess-editor .
R-editor) (ess-pager . R-pager) (prettify-symbols-alist quote ((<- . 8592)
(<<- . 8606) (-> . 8594) (->> . 8608))) (ess-language . S)
(inferior-ess-exit-command . q()
) (inferior-ess-language-start eval inferior-S-language-start)
(comint-use-prompt-regexp . t) (comint-process-echoes . t)
(inferior-ess-primary-prompt . > ) (inferior-ess-secondary-prompt . + )
(comment-start . #) (ess-imenu-generic-expression .
ess-imenu-S-generic-expression) (comment-add . 1) (comment-start-skip . #+
*) (comment-use-syntax . t) (comment-column . 40) (ess-no-skip-regexp
concat ^ *@\| (default-value (quote ess-no-skip-regexp)))
(inferior-ess-prompt . inferior-S-prompt) (ess-get-help-topics-function
quote ess-get-S-help-topics-function) (ess-getwd-command . getwd()
) (ess-setwd-command . setwd('%s')
) (ess-funargs-command . .ess_funargs("%s")
) (fill-nobreak-predicate quote ess-inside-string-p)
(normal-auto-fill-function quote ess-do-auto-fill))
(ess-mode-1.6): editing-alist=((paragraph-start concat \s-*$\|
page-delimiter) (paragraph-separate concat \s-*$\| page-delimiter)
(paragraph-ignore-fill-prefix . t) (require-final-newline . t)
(indent-line-function quote ess-indent-line) (parse-sexp-ignore-comments .
t) (ess-style . ess-default-style) (ess-mode-syntax-table . S-syntax-table)
(add-log-current-defun-header-regexp . ^\(.+\)\s-+<-[
]*function) (ess-font-lock-keywords quote ess-R-font-lock-keywords)
(ess-font-lock-defaults ess--extract-default-fl-keywords
ess-R-font-lock-keywords) (font-lock-defaults quote (ess-font-lock-defaults
nil nil ((46 . w) (95 . w)))))
(ess-setq-vars-LOCAL): language=S, dialect=R, buf=nil, comint..echoes=t,
comint..sender=comint-simple-send

Finished setting up ESS-mode.
(inf-ess 1): lang=nil, dialect=nil, tmp-dialect=R, buf=tmp.R
(inf-ess 1.1): procname=R:2 temp-dialect=R, buf-name=*R:2*
(inferior-ess) Method #3 start=/Users/giltomas/ buf=*R:2*
(ess-setq-vars-LOCAL): language=S, dialect=R, buf=nil, comint..echoes=t,
comint..sender=comint-simple-send
(inf-ess 2.1): ess-language=S, ess-dialect=R buf=*R:2*
(ess-setq-vars-LOCAL): language=S, dialect=R, buf=nil, comint..echoes=t,
comint..sender=inferior-ess-input-sender
(i-ess 1): buf=*R:2*, lang=S, comint..echo=t,
comint..sender=inferior-ess-input-sender,
(i-ess end): buf=*R:2*, lang=S, comint..echo=t,
comint..sender=inferior-ess-input-sender,
(inferior-ess (post inf-ess): start-args=, comint-echoes=t
Making Process...Buf *R:2*, :Proc R:2, :Prog R
 :Args=
Start File=nil
(inferior-ess: waiting for process to start (before hook)
(inferior-ess 3): waiting for process after hook(ess-setq-vars-LOCAL):
language=S, dialect=R, buf=nil, comint..echoes=t,
comint..sender=inferior-ess-input-sender
(i-ess 1): buf=tmp.R, lang=S, comint..echo=t,
comint..sender=inferior-ess-input-sender,
(i-ess end): buf=tmp.R, lang=S, comint..echo=t,
comint..sender=inferior-ess-input-sender,
(ess-setq-vars-LOCAL): language=S, dialect=R, buf=nil, comint..echoes=t,
comint..sender=comint-simple-send
(ess-mode-1): ess-language=S, ess-dialect=R buf=tmp/tmp.R
(ess-mode-1.5): alist=((ess-local-customize-alist quote R-customize-alist)
(ess-eldoc-function quote ess-R-eldoc-function) (ess-dialect . R)
(ess-suffix . R) (ess-ac-sources quote (ac-source-R))
(ess-build-tags-command . rtags('%s', recursive = TRUE, pattern =
'\\.[RrSs](rw)?$',ofile = '%s')) (ess-traceback-command .
local({cat(geterrmessage(), "----------------------------------
", fill=TRUE);try(traceback(), silent=TRUE)})
) (ess-call-stack-command . traceback(1)
) (ess-eval-command . .ess.eval("%s", FALSE, FALSE, file="%f")
) (ess-eval-visibly-command . .ess.eval("%s", TRUE, TRUE, 300, file="%f")
) (ess-eval-visibly-noecho-command . .ess.eval("%s", FALSE, TRUE, 300,
file="%f")
) (ess-load-command . .ess.source("%s", FALSE, FALSE)
) (ess-load-visibly-command . .ess.source("%s", TRUE, TRUE, 300)
) (ess-load-visibly-noecho-command . .ess.source("%s", FALSE, TRUE, 300)
) (ess-dump-filename-template ess-replace-regexp-in-string S$ ess-suffix
ess-dump-filename-template-proto) (ess-help-web-search-command quote
ess-R-sos) (ess-mode-syntax-table . R-syntax-table) (ess-mode-editing-alist
. R-editing-alist) (ess-change-sp-regexp . ess-R-change-sp-regexp)
(ess-help-sec-regex . ess-help-R-sec-regex) (ess-help-sec-keys-alist .
ess-help-R-sec-keys-alist) (ess-loop-timeout . ess-S-loop-timeout)
(ess-cmd-delay . ess-R-cmd-delay) (ess-function-pattern .
ess-R-function-pattern) (ess-object-name-db-file . ess-r-namedb.el)
(ess-smart-operators . ess-R-smart-operators) (inferior-ess-program .
inferior-R-program-name) (inferior-ess-objects-command .
inferior-R-objects-command) (inferior-ess-font-lock-keywords quote
inferior-R-font-lock-keywords) (inferior-ess-search-list-command . search()
) (inferior-ess-help-command . inferior-ess-r-help-command)
(inferior-ess-help-filetype) (inferior-ess-exit-command . q())
(inferior-ess-exit-prompt . Save workspace image? [y/n/c]: )
(inferior-ess-start-file) (inferior-ess-start-args . )
(ess-error-regexp-alist . ess-R-error-regexp-alist)
(ess-describe-object-at-point-commands quote
ess-R-describe-object-at-point-commands) (ess-STERM . iESS) (ess-editor .
R-editor) (ess-pager . R-pager) (prettify-symbols-alist quote ((<- . 8592)
(<<- . 8606) (-> . 8594) (->> . 8608))) (ess-language . S)
(inferior-ess-exit-command . q()
) (inferior-ess-language-start eval inferior-S-language-start)
(comint-use-prompt-regexp . t) (comint-process-echoes . t)
(inferior-ess-primary-prompt . > ) (inferior-ess-secondary-prompt . + )
(comment-start . #) (ess-imenu-generic-expression .
ess-imenu-S-generic-expression) (comment-add . 1) (comment-start-skip . #+
*) (comment-use-syntax . t) (comment-column . 40) (ess-no-skip-regexp
concat ^ *@\| (default-value (quote ess-no-skip-regexp)))
(inferior-ess-prompt . inferior-S-prompt) (ess-get-help-topics-function
quote ess-get-S-help-topics-function) (ess-getwd-command . getwd()
) (ess-setwd-command . setwd('%s')
) (ess-funargs-command . .ess_funargs("%s")
) (fill-nobreak-predicate quote ess-inside-string-p)
(normal-auto-fill-function quote ess-do-auto-fill))
(ess-mode-1.6): editing-alist=((paragraph-start concat \s-*$\|
page-delimiter) (paragraph-separate concat \s-*$\| page-delimiter)
(paragraph-ignore-fill-prefix . t) (require-final-newline . t)
(indent-line-function quote ess-indent-line) (parse-sexp-ignore-comments .
t) (ess-style . ess-default-style) (ess-mode-syntax-table . S-syntax-table)
(add-log-current-defun-header-regexp . ^\(.+\)\s-+<-[
]*function) (ess-font-lock-keywords quote ess-R-font-lock-keywords)
(ess-font-lock-defaults ess--extract-default-fl-keywords
ess-R-font-lock-keywords) (font-lock-defaults quote (ess-font-lock-defaults
nil nil ((46 . w) (95 . w)))))
(ess-setq-vars-LOCAL): language=S, dialect=R, buf=nil, comint..echoes=t,
comint..sender=comint-simple-send

Finished setting up ESS-mode.
(ess-setq-vars-LOCAL): language=S, dialect=R, buf=nil, comint..echoes=t,
comint..sender=comint-simple-send
(ess-mode-1): ess-language=S, ess-dialect=R buf=Desktop/tmp.R
(ess-mode-1.5): alist=((ess-local-customize-alist quote R-customize-alist)
(ess-eldoc-function quote ess-R-eldoc-function) (ess-dialect . R)
(ess-suffix . R) (ess-ac-sources quote (ac-source-R))
(ess-build-tags-command . rtags('%s', recursive = TRUE, pattern =
'\\.[RrSs](rw)?$',ofile = '%s')) (ess-traceback-command .
local({cat(geterrmessage(), "----------------------------------
", fill=TRUE);try(traceback(), silent=TRUE)})
) (ess-call-stack-command . traceback(1)
) (ess-eval-command . .ess.eval("%s", FALSE, FALSE, file="%f")
) (ess-eval-visibly-command . .ess.eval("%s", TRUE, TRUE, 300, file="%f")
) (ess-eval-visibly-noecho-command . .ess.eval("%s", FALSE, TRUE, 300,
file="%f")
) (ess-load-command . .ess.source("%s", FALSE, FALSE)
) (ess-load-visibly-command . .ess.source("%s", TRUE, TRUE, 300)
) (ess-load-visibly-noecho-command . .ess.source("%s", FALSE, TRUE, 300)
) (ess-dump-filename-template ess-replace-regexp-in-string S$ ess-suffix
ess-dump-filename-template-proto) (ess-help-web-search-command quote
ess-R-sos) (ess-mode-syntax-table . R-syntax-table) (ess-mode-editing-alist
. R-editing-alist) (ess-change-sp-regexp . ess-R-change-sp-regexp)
(ess-help-sec-regex . ess-help-R-sec-regex) (ess-help-sec-keys-alist .
ess-help-R-sec-keys-alist) (ess-loop-timeout . ess-S-loop-timeout)
(ess-cmd-delay . ess-R-cmd-delay) (ess-function-pattern .
ess-R-function-pattern) (ess-object-name-db-file . ess-r-namedb.el)
(ess-smart-operators . ess-R-smart-operators) (inferior-ess-program .
inferior-R-program-name) (inferior-ess-objects-command .
inferior-R-objects-command) (inferior-ess-font-lock-keywords quote
inferior-R-font-lock-keywords) (inferior-ess-search-list-command . search()
) (inferior-ess-help-command . inferior-ess-r-help-command)
(inferior-ess-help-filetype) (inferior-ess-exit-command . q())
(inferior-ess-exit-prompt . Save workspace image? [y/n/c]: )
(inferior-ess-start-file) (inferior-ess-start-args . )
(ess-error-regexp-alist . ess-R-error-regexp-alist)
(ess-describe-object-at-point-commands quote
ess-R-describe-object-at-point-commands) (ess-STERM . iESS) (ess-editor .
R-editor) (ess-pager . R-pager) (prettify-symbols-alist quote ((<- . 8592)
(<<- . 8606) (-> . 8594) (->> . 8608))) (ess-language . S)
(inferior-ess-exit-command . q()
) (inferior-ess-language-start eval inferior-S-language-start)
(comint-use-prompt-regexp . t) (comint-process-echoes . t)
(inferior-ess-primary-prompt . > ) (inferior-ess-secondary-prompt . + )
(comment-start . #) (ess-imenu-generic-expression .
ess-imenu-S-generic-expression) (comment-add . 1) (comment-start-skip . #+
*) (comment-use-syntax . t) (comment-column . 40) (ess-no-skip-regexp
concat ^ *@\| (default-value (quote ess-no-skip-regexp)))
(inferior-ess-prompt . inferior-S-prompt) (ess-get-help-topics-function
quote ess-get-S-help-topics-function) (ess-getwd-command . getwd()
) (ess-setwd-command . setwd('%s')
) (ess-funargs-command . .ess_funargs("%s")
) (fill-nobreak-predicate quote ess-inside-string-p)
(normal-auto-fill-function quote ess-do-auto-fill))
(ess-mode-1.6): editing-alist=((paragraph-start concat \s-*$\|
page-delimiter) (paragraph-separate concat \s-*$\| page-delimiter)
(paragraph-ignore-fill-prefix . t) (require-final-newline . t)
(indent-line-function quote ess-indent-line) (parse-sexp-ignore-comments .
t) (ess-style . ess-default-style) (ess-mode-syntax-table . S-syntax-table)
(add-log-current-defun-header-regexp . ^\(.+\)\s-+<-[
]*function) (ess-font-lock-keywords quote ess-R-font-lock-keywords)
(ess-font-lock-defaults ess--extract-default-fl-keywords
ess-R-font-lock-keywords) (font-lock-defaults quote (ess-font-lock-defaults
nil nil ((46 . w) (95 . w)))))
(ess-setq-vars-LOCAL): language=S, dialect=R, buf=nil, comint..echoes=t,
comint..sender=comint-simple-send

Finished setting up ESS-mode.


Emacs  : GNU Emacs 24.3.1 (x86_64-apple-darwin13.0.0, NS
apple-appkit-1265.00)
 of 2013-12-11 on iri-pc15.ulb.ac.be
Package: ess-mode 13.09-1 [elpa: 20131207.1141]

current state:
==============
(setq
 ess-language nil
 ess-dialect nil
 ess-ask-for-ess-directory t
 ess-ask-about-transfile nil
 ess-directory nil
 ess-keep-dump-files "always"
 ess-source-directory "/var/folders/ns/fgcv47c13xv8kv98s7n8h5f40000gp/T/"
 ess-use-ido t
 ess-use-eldoc t
 ess-use-tracebug t
 ess-use-auto-complete t
 ess-eval-visibly-p t
 ess-can-eval-in-background nil
 ess-local-process-name nil
 )

	[[alternative HTML version deleted]]

