From: SourceForge.net <no...@so...> - 2006-12-27 23:19:45
|
Bugs item #1412454, was opened at 2006-01-22 21:24 Message generated for change (Comment added) made by sds You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=101355&aid=1412454&group_id=1355 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: clisp Group: ANSI compliance issue >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Sam Steingold (sds) >Assigned to: Sam Steingold (sds) Summary: format/*print-pretty* interaction: extra newlines Initial Comment: an extra newline is inserted in the format output when *print-pretty* is non-NIL: (format nil "~{~a~}" (list "string1" "string2" (concatenate 'string "string3" (string #\newline)))) "string1string2 string3 " (let ((*print-pretty* nil)) (format nil "~{~a~}" (list "string1" "string2" (concatenate 'string "string3" (string #\newline))))) "string1string2string3 " http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/350c664e996b151d/067f8812cfe47221 ---------------------------------------------------------------------- Comment By: Sam Steingold (sds) Date: 2006-12-27 18:19 Message: Logged In: YES user_id=5735 Originator: YES thank you for your bug report. the bug has been fixed in the CVS tree. you can either wait for the next release (recommended) or check out the current CVS tree (see http://clisp.cons.org) and build CLISP from the sources (be advised that between releases the CVS tree is very unstable and may not even build on your platform). ---------------------------------------------------------------------- Comment By: Sam Steingold (sds) Date: 2006-12-27 15:46 Message: Logged In: YES user_id=5735 Originator: YES please try the appended patch: --- io.d 27 Dec 2006 13:35:53 -0500 1.304 +++ io.d 27 Dec 2006 15:44:32 -0500 @@ -6629,6 +6629,8 @@ } if (eq(Symbol_value(S(prin_l1)),Fixnum_0)) # or at position 0 ? skip_first_nl = true; + if (nullpSv(pprint_first_newline)) /* use asked: no first newlines */ + skip_first_nl = true; if (nullp(Cdr(Cdr(STACK_0)))) { # DEFINITELY a single-liner skip_first_nl = true; } else { # several lines, maybe still a single-liner? @@ -6645,8 +6647,7 @@ fit_this_line = (pphs_len_i <= (prm_i - pos_i)); if (pphs_len_i > prm_i) TheStream(ppstream)->strm_pphelp_modus = mehrzeiler; - if (fit_this_line - || nullpSv(pprint_first_newline)) + if (fit_this_line) skip_first_nl = true; } if (skip_first_nl && !fit_this_line) ---------------------------------------------------------------------- Comment By: Matt Gregory (msgregory) Date: 2006-02-06 14:54 Message: Logged In: YES user_id=625598 Hey Sam, Thanks for the response, but that doesn't affect it. If I turn off the *print-pretty* option it will do what I want, but the *pprint-first-newline* option doesn't appear to do anything. Matt ---------------------------------------------------------------------- Comment By: Sam Steingold (sds) Date: 2006-02-06 11:23 Message: Logged In: YES user_id=5735 this behavior is controlled by *PPRINT-FIRST-NEWLINE* (see impnotes) the issue is ---- initial value (for princ) ---- should is also influence format ---------------------------------------------------------------------- Comment By: Matt Gregory (msgregory) Date: 2006-02-06 10:24 Message: Logged In: YES user_id=625598 This looks very similar to a bug I found in (princ), so I thought I would post it here. This: --test.lisp-- (princ "hello") (princ "goodbye ") ; newline intended (princ "hello") (princ "goodbye") --test.lisp-- Prints: hello goodbye hellogoodbye But it should print: hellogoodbye hellogoodbye HTH, Matt ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=101355&aid=1412454&group_id=1355 |