Subject: 23.1.50; empty string not allowed as line-prefix
From: Carsten Dominik <[email-masked]>
To: [email-masked]
Date: Sat, 21 Nov 2009 12:01:02 +0100

It seems that an empty string as a line prefix makes the redisplay
engine choke.

Test case:

- open a new buffer in fundamental mode, no auto-fill-mode
- insert a long line that will be wrapped for display into two or more
   lines.
- insert the following form into the buffer, after the long line

    (add-text-properties (point-min) (point) '(line-prefix ""))

- evaluate this form

Expected result:  No change in display
Actual result:  The formerly wrapped line is no longer wrapped but
displayed as if truncate-lines had been set (it is not set)

I suspect that the empty string causes the problem.  A nil line-prefix
property, or a non-empty string both work fine.

It is possible (likely?) that the same error also occurs with
wrap-prefix, but I have not tested this.

If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
     `bt full' and `xbacktrace'.
For information about debugging Emacs, please read the file
/Users/dominik/lib/git/emacs-new/etc/DEBUG.

In GNU Emacs 23.1.50.2 (i386-apple-darwin9.8.0, X toolkit, Xaw3d  
scroll bars)
  of 2009-11-20 on carsten-dominiks-macbook-pro.local
Windowing system distributor `The X.Org Foundation', version  
11.0.10402000
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: nil
   value of $XMODIFIERS: nil
   locale-coding-system: nil
   default enable-multibyte-characters: t

Major mode: Fundamental

Minor modes in effect:
   show-paren-mode: t
   iswitchb-mode: t
   diff-auto-refine-mode: t
   tooltip-mode: t
   mouse-wheel-mode: t
   menu-bar-mode: t
   file-name-shadow-mode: t
   global-font-lock-mode: t
   font-lock-mode: t
   blink-cursor-mode: t
   global-auto-composition-mode: t
   auto-composition-mode: t
   auto-encryption-mode: t
   auto-compression-mode: t
   line-number-mode: t
   transient-mark-mode: t

Recent input:
? ? ? <tab> <down> <tab> <tab> <down> <tab> <tab> <tab>
C-x C-f $ o r g e l / t t t <backspace> <backspace>
e <tab> t t t . o r g <return> <return> <return> <return>
M-x f u n d a m <tab> <return> SPC <backspace> k j
f SPC a l k f j SPC l a k j f SPC a l k j f SPC a l
k j f SPC a l k j f h SPC a l k f j SPC a l k j f h
SPC a l k j f SPC a l k f j h SPC a l k f j h SPC a
l k j f h SPC a l k j f h SPC l a k j f SPC l a k j
f h SPC l a k j s f h SPC l a k j s f h SPC l k a j
s h f SPC l k j SPC <up> <up> <up> C-d C-d C-d <down>
<down> <return> ( a d d - t e x M-/ <escape> <tab>
t - p r o p e r t i e s SPC ( p o i n t - m i n ) SPC
( p o i n t ) SPC ' ( l i n e - p r e f i x SPC " "
) ) C-x C-e <up> <up> <down> <down> <up> <left> <down>
C-a C-SPC C-e <escape> w M-x s u b m i t - b u <tab>
<backspace> <tab> <backspace> <tab> <tab> <escape>
<tab> C-a C-k <tab> C-x o C-x o C-s - b u g C-s C-s
C-s C-s C-s C-s C-s C-s C-s C-s <help-echo> <down-mouse-1>
<mouse-2>

Recent messages:
Auto-saving...
(New file)
OVERVIEW
Scanning for dabbrevs...100%
dabbrev-expand: No dynamic expansion for `add-tex' found
complete-tag: No tags table loaded; try M-x visit-tags-table
t
Mark set
complete-tag: No tags table loaded; try M-x visit-tags-table
Making completion list...

Load-path shadows:
/Users/dominik/lib/git/emacs-w3m/w3mhack hides /Users/dominik/lib/ 
emacs/lisp/w3mhack
/Users/dominik/lib/git/emacs-w3m/w3m hides /Users/dominik/lib/emacs/ 
lisp/w3m
/Users/dominik/lib/git/emacs-w3m/w3m-xmas hides /Users/dominik/lib/ 
emacs/lisp/w3m-xmas
/Users/dominik/lib/git/emacs-w3m/w3m-weather hides /Users/dominik/lib/ 
emacs/lisp/w3m-weather
/Users/dominik/lib/git/emacs-w3m/w3m-util hides /Users/dominik/lib/ 
emacs/lisp/w3m-util
/Users/dominik/lib/git/emacs-w3m/w3m-ucs hides /Users/dominik/lib/ 
emacs/lisp/w3m-ucs
/Users/dominik/lib/git/emacs-w3m/w3m-tabmenu hides /Users/dominik/lib/ 
emacs/lisp/w3m-tabmenu
/Users/dominik/lib/git/emacs-w3m/w3m-symbol hides /Users/dominik/lib/ 
emacs/lisp/w3m-symbol
/Users/dominik/lib/git/emacs-w3m/w3m-search hides /Users/dominik/lib/ 
emacs/lisp/w3m-search
/Users/dominik/lib/git/emacs-w3m/w3m-rss hides /Users/dominik/lib/ 
emacs/lisp/w3m-rss
/Users/dominik/lib/git/emacs-w3m/w3m-proc hides /Users/dominik/lib/ 
emacs/lisp/w3m-proc
/Users/dominik/lib/git/emacs-w3m/w3m-perldoc hides /Users/dominik/lib/ 
emacs/lisp/w3m-perldoc
/Users/dominik/lib/git/emacs-w3m/w3m-namazu hides /Users/dominik/lib/ 
emacs/lisp/w3m-namazu
/Users/dominik/lib/git/emacs-w3m/w3m-lnum hides /Users/dominik/lib/ 
emacs/lisp/w3m-lnum
/Users/dominik/lib/git/emacs-w3m/w3m-image hides /Users/dominik/lib/ 
emacs/lisp/w3m-image
/Users/dominik/lib/git/emacs-w3m/w3m-hist hides /Users/dominik/lib/ 
emacs/lisp/w3m-hist
/Users/dominik/lib/git/emacs-w3m/w3m-form hides /Users/dominik/lib/ 
emacs/lisp/w3m-form
/Users/dominik/lib/git/emacs-w3m/w3m-filter hides /Users/dominik/lib/ 
emacs/lisp/w3m-filter
/Users/dominik/lib/git/emacs-w3m/w3m-favicon hides /Users/dominik/lib/ 
emacs/lisp/w3m-favicon
/Users/dominik/lib/git/emacs-w3m/w3m-dtree hides /Users/dominik/lib/ 
emacs/lisp/w3m-dtree
/Users/dominik/lib/git/emacs-w3m/w3m-cookie hides /Users/dominik/lib/ 
emacs/lisp/w3m-cookie
/Users/dominik/lib/git/emacs-w3m/w3m-ccl hides /Users/dominik/lib/ 
emacs/lisp/w3m-ccl
/Users/dominik/lib/git/emacs-w3m/w3m-bug hides /Users/dominik/lib/ 
emacs/lisp/w3m-bug
/Users/dominik/lib/git/emacs-w3m/w3m-bookmark hides /Users/dominik/lib/ 
emacs/lisp/w3m-bookmark
/Users/dominik/lib/git/emacs-w3m/w3m-antenna hides /Users/dominik/lib/ 
emacs/lisp/w3m-antenna
/Users/dominik/lib/emacs/lisp/auctex/texmathp hides /Users/dominik/lib/ 
emacs/lisp/texmathp
/Users/dominik/lib/emacs/work/org-mode/contrib/lisp/htmlize hides / 
Users/dominik/lib/emacs/lisp/htmlize
/Users/dominik/lib/emacs/lisp/epg hides /Users/dominik/lib/git/emacs- 
new/lisp/epg
/Users/dominik/lib/emacs/lisp/epg-config hides /Users/dominik/lib/git/ 
emacs-new/lisp/epg-config
/Users/dominik/lib/emacs/lisp/epa hides /Users/dominik/lib/git/emacs- 
new/lisp/epa
/Users/dominik/lib/emacs/lisp/epa-mail hides /Users/dominik/lib/git/ 
emacs-new/lisp/epa-mail
/Users/dominik/lib/emacs/lisp/epa-file hides /Users/dominik/lib/git/ 
emacs-new/lisp/epa-file
/Users/dominik/lib/emacs/lisp/epa-dired hides /Users/dominik/lib/git/ 
emacs-new/lisp/epa-dired
/Users/dominik/lib/emacs/lisp/table hides /Users/dominik/lib/git/emacs- 
new/lisp/textmodes/table
/Users/dominik/lib/emacs/lisp/remember hides /Users/dominik/lib/git/ 
emacs-new/lisp/textmodes/remember
/Users/dominik/lib/emacs/lisp/reftex hides /Users/dominik/lib/git/ 
emacs-new/lisp/textmodes/reftex
/Users/dominik/lib/emacs/lisp/reftex-vars hides /Users/dominik/lib/git/ 
emacs-new/lisp/textmodes/reftex-vars
/Users/dominik/lib/emacs/lisp/reftex-toc hides /Users/dominik/lib/git/ 
emacs-new/lisp/textmodes/reftex-toc
/Users/dominik/lib/emacs/lisp/reftex-sel hides /Users/dominik/lib/git/ 
emacs-new/lisp/textmodes/reftex-sel
/Users/dominik/lib/emacs/lisp/reftex-ref hides /Users/dominik/lib/git/ 
emacs-new/lisp/textmodes/reftex-ref
/Users/dominik/lib/emacs/lisp/reftex-parse hides /Users/dominik/lib/ 
git/emacs-new/lisp/textmodes/reftex-parse
/Users/dominik/lib/emacs/lisp/reftex-index hides /Users/dominik/lib/ 
git/emacs-new/lisp/textmodes/reftex-index
/Users/dominik/lib/emacs/lisp/reftex-global hides /Users/dominik/lib/ 
git/emacs-new/lisp/textmodes/reftex-global
/Users/dominik/lib/emacs/lisp/reftex-dcr hides /Users/dominik/lib/git/ 
emacs-new/lisp/textmodes/reftex-dcr
/Users/dominik/lib/emacs/lisp/reftex-cite hides /Users/dominik/lib/git/ 
emacs-new/lisp/textmodes/reftex-cite
/Users/dominik/lib/emacs/lisp/reftex-auc hides /Users/dominik/lib/git/ 
emacs-new/lisp/textmodes/reftex-auc
/Users/dominik/lib/emacs/lisp/idlwave hides /Users/dominik/lib/git/ 
emacs-new/lisp/progmodes/idlwave
/Users/dominik/lib/emacs/lisp/idlw-toolbar hides /Users/dominik/lib/ 
git/emacs-new/lisp/progmodes/idlw-toolbar
/Users/dominik/lib/emacs/lisp/idlw-shell hides /Users/dominik/lib/git/ 
emacs-new/lisp/progmodes/idlw-shell
/Users/dominik/lib/emacs/lisp/idlw-help hides /Users/dominik/lib/git/ 
emacs-new/lisp/progmodes/idlw-help
/Users/dominik/lib/emacs/lisp/idlw-complete-structtag hides /Users/ 
dominik/lib/git/emacs-new/lisp/progmodes/idlw-complete-structtag
/Users/dominik/lib/emacs/work/org-mode/lisp/org hides /Users/dominik/ 
lib/git/emacs-new/lisp/org/org
/Users/dominik/lib/emacs/work/org-mode/lisp/org-xoxo hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-xoxo
/Users/dominik/lib/emacs/work/org-mode/lisp/org-wl hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-wl
/Users/dominik/lib/emacs/work/org-mode/lisp/org-w3m hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-w3m
/Users/dominik/lib/emacs/work/org-mode/lisp/org-vm hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-vm
/Users/dominik/lib/emacs/work/org-mode/lisp/org-timer hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-timer
/Users/dominik/lib/emacs/work/org-mode/lisp/org-table hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-table
/Users/dominik/lib/emacs/work/org-mode/lisp/org-src hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-src
/Users/dominik/lib/emacs/work/org-mode/lisp/org-rmail hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-rmail
/Users/dominik/lib/emacs/work/org-mode/lisp/org-remember hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-remember
/Users/dominik/lib/emacs/work/org-mode/lisp/org-publish hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-publish
/Users/dominik/lib/emacs/work/org-mode/lisp/org-protocol hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-protocol
/Users/dominik/lib/emacs/work/org-mode/lisp/org-plot hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-plot
/Users/dominik/lib/emacs/work/org-mode/lisp/org-mouse hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-mouse
/Users/dominik/lib/emacs/work/org-mode/lisp/org-mobile hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-mobile
/Users/dominik/lib/emacs/work/org-mode/lisp/org-mhe hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-mhe
/Users/dominik/lib/emacs/work/org-mode/lisp/org-mew hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-mew
/Users/dominik/lib/emacs/work/org-mode/lisp/org-macs hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-macs
/Users/dominik/lib/emacs/work/org-mode/lisp/org-mac-message hides / 
Users/dominik/lib/git/emacs-new/lisp/org/org-mac-message
/Users/dominik/lib/emacs/work/org-mode/lisp/org-list hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-list
/Users/dominik/lib/emacs/work/org-mode/lisp/org-latex hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-latex
/Users/dominik/lib/emacs/work/org-mode/lisp/org-jsinfo hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-jsinfo
/Users/dominik/lib/emacs/work/org-mode/lisp/org-irc hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-irc
/Users/dominik/lib/emacs/work/org-mode/lisp/org-install hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-install
/Users/dominik/lib/emacs/work/org-mode/lisp/org-inlinetask hides / 
Users/dominik/lib/git/emacs-new/lisp/org/org-inlinetask
/Users/dominik/lib/emacs/work/org-mode/lisp/org-info hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-info
/Users/dominik/lib/emacs/work/org-mode/lisp/org-indent hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-indent
/Users/dominik/lib/emacs/work/org-mode/lisp/org-id hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-id
/Users/dominik/lib/emacs/work/org-mode/lisp/org-icalendar hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-icalendar
/Users/dominik/lib/emacs/work/org-mode/lisp/org-html hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-html
/Users/dominik/lib/emacs/work/org-mode/lisp/org-habit hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-habit
/Users/dominik/lib/emacs/work/org-mode/lisp/org-gnus hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-gnus
/Users/dominik/lib/emacs/work/org-mode/lisp/org-freemind hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-freemind
/Users/dominik/lib/emacs/work/org-mode/lisp/org-footnote hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-footnote
/Users/dominik/lib/emacs/work/org-mode/lisp/org-feed hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-feed
/Users/dominik/lib/emacs/work/org-mode/lisp/org-faces hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-faces
/Users/dominik/lib/emacs/work/org-mode/lisp/org-exp hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-exp
/Users/dominik/lib/emacs/work/org-mode/lisp/org-exp-blocks hides / 
Users/dominik/lib/git/emacs-new/lisp/org/org-exp-blocks
/Users/dominik/lib/emacs/work/org-mode/lisp/org-docbook hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-docbook
/Users/dominik/lib/emacs/work/org-mode/lisp/org-datetree hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-datetree
/Users/dominik/lib/emacs/work/org-mode/lisp/org-crypt hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-crypt
/Users/dominik/lib/emacs/work/org-mode/lisp/org-compat hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-compat
/Users/dominik/lib/emacs/work/org-mode/lisp/org-colview hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-colview
/Users/dominik/lib/emacs/work/org-mode/lisp/org-clock hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-clock
/Users/dominik/lib/emacs/work/org-mode/lisp/org-bibtex hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-bibtex
/Users/dominik/lib/emacs/work/org-mode/lisp/org-bbdb hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-bbdb
/Users/dominik/lib/emacs/work/org-mode/lisp/org-attach hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-attach
/Users/dominik/lib/emacs/work/org-mode/lisp/org-ascii hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-ascii
/Users/dominik/lib/emacs/work/org-mode/lisp/org-archive hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-archive
/Users/dominik/lib/emacs/work/org-mode/lisp/org-agenda hides /Users/ 
dominik/lib/git/emacs-new/lisp/org/org-agenda

Features:
(shadow emacsbug multi-isearch help-mode view etags dabbrev cal-china
lunar solar cal-dst cal-bahai cal-islam cal-hebrew holidays hol-loaddefs
diary-lib diary-loaddefs cal-iso org-indent vc-git flyspell ispell
org-wl org-vm org-rmail org-mhe org-mew org-mac-message org-irc
org-habit org-jsinfo org-infojs org-html org-exp org-exp-blocks
org-agenda org-info org-id org-gnus org-bibtex org-bbdb org-clock ido
jka-compr-ccrypt jka-compr muse-texinfo texnfo-upd texinfo muse-latex
muse-html muse-xml-common pcomplete cus-edit muse-publish muse-project
muse-protocols info muse-regexps muse muse-nested-tags muse-mode
remember org-remember org-datetree org byte-opt bytecomp byte-compile
advice help-fns advice-preload derived org-footnote org-src org-list
org-faces org-compat org-macs noutline outline cal-menu calendar
cal-loaddefs org-install paren iswitchb cus-start cus-load tex-site
bbdb-hooks bbdb-rmail rmailsum rmail bbdb-gnus gnus-art mm-uu mml2015
epg-config epg-package-info mm-view smime dig gnus-sum nnoo gnus-group
gnus-undo nnmail mail-source format-spec gnus-start gnus-spec gnus-int
gnus-range gnus-win bbdb-snarf mail-extr gnus gnus-ems bbdb-gui bbdb-com
bbdb message sendmail regexp-opt ecomplete rfc822 mml mml-sec
password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231
rfc2047 rfc2045 qp ietf-drums mailabbrev nnheader gnus-util netrc
time-date mm-util mail-prsvr gmm-utils wid-edit mailheader canlock sha1
hex-util hashcash mail-utils timezone magit diff-mode log-edit easymenu
easy-mmode ring pcvs-util add-log parse-time cl cl-19 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 text-properties overlay md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
font-render-setting x-toolkit x multi-tty emacs)