Subject: 23.4; hs-hide-* functions don't honor page break in Emacs-Lisp major mode (and probably others too)

From: [email-masked] (Bruno Félix Rezende Ribeiro)
Date: Sat, 11 Feb 2012 01:59:28 -0200

Suppose that you have a buffer with Emacs-Lisp major mode and hs minor
mode enabled and into it a piece of code like this: (where ^L indicates
page break)

--

;; here is only a foo comment for a commented bar function
;; (defun my-bar-function () nil)

^L
;; here is another foo comment for another commented bar function
;; (defun my-second-bar-function () nil)

--

Now, if you run hs-hide-all command the text appears like this:

--

;; here is only a foo comment for a commented bar function...

--

It's very annoying.  I often comment consecutive functions and
hs-hide-all don't honor sequential newlines.  So, I was breaked page
hoping that my functions were kept separated.  But that didn't happen.
This bug report is to suggest developers to make hs-hide-* functions
respect page breaks for this and others major modes too.

Thanks for your attention.

In GNU Emacs 23.4.1 (i686-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2012-02-08 on felix-laptop
Windowing system distributor `The X.Org Foundation', version 11.0.10707000
configured using `configure  '--with-x-toolkit=athena' '--with-crt-dir=/usr/lib/i386-linux-gnu' 'CFLAGS=-O3''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: pt_BR.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  gpm-mouse-mode: t
  shell-dirtrack-mode: t
  which-function-mode: t
  server-mode: t
  display-time-mode: t
  display-battery-mode: t
  desktop-save-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  hs-minor-mode: t

Recent input:
] C-x ] C-x ] C-x ] C-x ] C-x ] C-x ] C-x ] C-c @ C-M-h 
C-c @ C-M-s C-n C-x ] C-n C-n C-n C-n C-n C-a C-SPC 
C-n C-n C-n C-n C-n C-n C-n C-w <backspace> <up> <up> 
<up> <up> <up> <up> <up> <up> <right> <right> ; <down> 
<down> <up> <up> <down> C-c @ C-c C-c @ C-c C-c @ C-c 
C-c @ C-c <down> <down> <down> <down> <down> <down> 
<up> <down> <up> <up> <up> ( ) <backspace> <backspace> 
n i l <return> <backspace> <backspace> <backspace> 
<backspace> <return> <backspace> <up> <up> <down> <down> 
<down> <down> <down> <down> <down> <down> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <down> <down> <down> 
<down> C-b C-n C-n C-p C-n C-c @ C-g C-p C-p C-p C-p 
C-n C-c @ C-c C-c @ C-c C-f C-f C-d C-e C-a C-n C-e 
C-n C-e C-a M-x r e p o r t <tab> b u <tab> e m a c 
s <tab> <M-backspace> C-k <M-backspace> e m a c s - 
<tab> <M-backspace> <M-backspace> r e p o r t <tab> 
C-g C-e M-x r e p o r <tab> <tab> e m a <tab> b u <tab> 
<return> W <backspace> h s SPC m i n o r SPC C-g C-a 
C-h c C-c @ C-M-h M-x h s - h o <tab> <backspace> i 
<tab> <tab> C-g M-x <up> C-k h f - <backspace> <backspace> 
s - h i <tab> - <backspace> i n i <tab> <return> M-> 
M-> M-< M-< C-c @ C-c M-> M-> C-p C-p C-p C-p C-p C-p 
C-p M-x h s - <M-backspace> M-x M-x h s - h i d e <tab> 
<tab> C-g M-x r e p o r t - e m a c s - b u g <ret
urn>

Recent messages:
Making completion list...
Quit
Mark set [6 times]
call-interactively: Command attempted to use minibuffer while in minibuffer
Quit
Making completion list...
Quit
Checking spelling of RESPECT...
RESPECT is correct
call-interactively: End of buffer [2 times]

Load-path shadows:
/usr/local/share/emacs/site-lisp/emms/tq hides /usr/local/share/emacs/23.4/lisp/emacs-lisp/tq

Features:
(shadow emacsbug term ehelp make-mode ffap t-mouse re-builder starttls
mailalias smtpmail sendmail spam-stat nnmairix nnml nnir mm-url
gnus-soup gnus-sieve deuglify gnus-uu yenc gnus-eform gnus-dup
gnus-diary nndiary gnus-demon gnus-delay gnus-draft gnus-bookmark
dired-aux shell comint descr-text quail bookmark crm xesam url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-util
url-parse dbus url-vars org org-footnote org-src org-list org-faces
org-compat org-macs metamail etags thumbs image-file image-dired
gnus-audio man assoc locate bib-mode newcomment debug uniquify warnings
spell ses advice advice-preload unsafep rcirc newst-backend xml derived
mpc ispell htmlfontify ring esh-var esh-io esh-cmd esh-ext esh-proc
esh-arg eldoc help-fns esh-groups eshell esh-module esh-mode esh-util
erc-goodies erc erc-backend erc-compat pp cal-menu calendar cal-loaddefs
calc calc-loaddefs calc-macs ebnf2ps ps-print ps-def lpr cus-edit
add-log foldout noutline outline finder finder-inf find-func lisp-mnt
goto-addr tmm electric help-mode view thingatpt w3m-search multi-isearch
w3m-form mule-util w3m-cookie w3m-bookmark w3m-tabmenu w3m-session w3m
doc-view jka-compr image-mode w3m-hist w3m-fb bookmark-w3m w3m-ems
w3m-ccl ccl w3m-favicon w3m-image w3m-proc w3m-util browse-url gnus-fun
flow-fill sort gnus-cite smiley ansi-color mail-extr gnus-async
gnus-bcklg byte-opt bytecomp byte-compile gnus-ml disp-table gnus-topic
parse-time timezone utf-7 utf7 nnimap imap nndraft nnmh auth-source
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art
mm-uu mml2015 epg-config mm-view smime dig nntp gnus-cache gnus-sum nnoo
gnus-group gnus-undo nnmail mail-source format-spec gnus-start gnus-spec
gnus-int gnus-range gnus-win hideshow message ecomplete rfc822 mml
mml-sec password-cache mm-decode mm-bodies mm-encode mailcap mail-parse
rfc2231 rfc2047 rfc2045 qp ietf-drums mailabbrev gmm-utils mailheader
canlock sha1 hex-util hashcash info easymenu w3m-load
espeak-key-bindings espeak-core espeak-customize espeak-elisp-facilities
espeak emms-playing-time emms-player-mpg321-remote emms-cache
emms-info-ogginfo emms-info-mp3info emms-info later-do
emms-player-mplayer emms-player-simple emms-volume easy-mmode
emms-volume-amixer emms-playlist-mode emms-source-playlist
emms-source-file dired regexp-opt emms-setup emms emms-compat edmacro
kmacro preview-latex tex-site auto-loads windmove which-func imenu
server gnus gnus-ems nnheader gnus-util netrc time-date mail-utils
mm-util mail-prsvr wid-edit time battery desktop cus-start cus-load
tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd
font-setting tool-bar dnd fontset image fringe lisp-mode register page
menu-bar rfn-eshadow timer select scroll-bar mldrag 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 loaddefs button
minibuffer faces cus-face files text-properties overlay md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process dbusbind system-font-setting
font-render-setting x-toolkit x multi-tty emacs)

-- 
Bruno Félix Rezende Ribeiro (oitofelix)

Ps: Please, let me know my english errors