unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Patch: Syntax and Hard Newlines
@ 2006-11-13  5:24 Herbert Euler
  2006-11-13  5:52 ` Herbert Euler
                   ` (4 more replies)
  0 siblings, 5 replies; 94+ messages in thread
From: Herbert Euler @ 2006-11-13  5:24 UTC (permalink / raw)


Emacs provides a hard newline mode.  If you type M-x use-hard-newlines
RET, you turn on the hard newline mode.  In this mode, all newlines in
a buffer are re-scanned and marked as either a ``hard'' one or a
``soft'' one.  The behavior of commands inserting a newline character
is also altered: `newline' and `open-line' will add the text property
`hard' (value set to t) to newlines that they insert.

As documented in the doc string of the command `use-hard-newlines',
newlines not marked hard are internal to paragraphs.  However,
currently the syntax feature does not work well with this.  For
example, if you turn on long-lines mode with M-x longlines-mode RET in
the *scratch* buffer, you will see the word `evaluation' in the first
line is wrapped into the second line, but not recognized as a part of
the comment.

To fix this, we can let the function `forw_comment' in syntax.c skip
the soft newlines when possible.  Below is the patch.

Regards,
Guanpeng Xu

Index: syntax.c
===================================================================
RCS file: /sources/emacs/emacs/src/syntax.c,v
retrieving revision 1.166.4.20
diff -r1.166.4.20 syntax.c
2126a2127
>   register int skip_soft_newlines;
2129a2131,2137
>   /* If `use-hard-newlines' is t, only newlines with the `hard'
>      property set to t are real newlines.  Other newlines are soft and
>      should be skipped. */
>   skip_soft_newlines = !NILP (Fsymbol_value
>                               (intern
>                                ("use-hard-newlines")));
>
2145a2154,2163
>       if (skip_soft_newlines
>           && c == '\n'
>           && NILP (Fget_text_property (make_number (from_byte),
>                                        intern ("hard"),
>                                        Qnil)))
>         {
>           INC_BOTH (from, from_byte);
>           UPDATE_SYNTAX_TABLE_FORWARD (from);
>           continue;
>         }

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE! 
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/

^ permalink raw reply	[flat|nested] 94+ messages in thread

end of thread, other threads:[~2006-12-09 18:25 UTC | newest]

Thread overview: 94+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-13  5:24 Patch: Syntax and Hard Newlines Herbert Euler
2006-11-13  5:52 ` Herbert Euler
2006-11-13 10:12   ` Herbert Euler
2006-11-13 20:15   ` Richard Stallman
2006-11-14  1:35     ` Herbert Euler
2006-11-15  3:14       ` Richard Stallman
2006-11-13 19:43 ` Stefan Monnier
2006-11-14  1:19   ` Herbert Euler
2006-11-14  6:51     ` Stefan Monnier
2006-11-14  7:35       ` Herbert Euler
2006-11-14 15:00         ` Stefan Monnier
2006-11-15  1:32       ` Herbert Euler
2006-11-15  3:58         ` Stefan Monnier
2006-11-15  4:24           ` Herbert Euler
2006-11-16  6:22             ` Richard Stallman
2006-11-30  6:36               ` Herbert Euler
2006-11-30 14:52                 ` Stefan Monnier
2006-12-02 17:56                 ` Richard Stallman
2006-12-07 18:46                   ` Stefan Monnier
2006-12-08  5:04                     ` Richard Stallman
2006-12-08  7:44                       ` Stefan Monnier
2006-12-09  1:25                         ` Richard Stallman
2006-12-09  3:50                           ` Stefan Monnier
2006-12-09 18:25                             ` Richard Stallman
2006-11-15  4:37           ` Herbert Euler
2006-11-15  7:26             ` Miles Bader
2006-11-15 14:03             ` Stefan Monnier
2006-11-15 15:47               ` Johan Bockgård
2006-11-15 16:37                 ` Stefan Monnier
2006-11-16 15:01                 ` Richard Stallman
2006-11-16 15:01                 ` Richard Stallman
2006-11-23  9:33                   ` Johan Bockgård
2006-11-14 12:27   ` Richard Stallman
2006-11-14 15:08     ` Stefan Monnier
2006-11-15 22:58       ` Richard Stallman
2006-11-13 20:15 ` Richard Stallman
2006-11-14  1:42   ` Herbert Euler
2006-11-14  8:36 ` Herbert Euler
2006-11-14 11:38   ` Herbert Euler
2006-11-14 15:03     ` Stefan Monnier
2006-11-16  6:23 ` Herbert Euler
2006-11-16  8:42   ` martin rudalics
2006-11-16 10:47     ` Herbert Euler
2006-11-16 12:18       ` martin rudalics
2006-11-16 12:37         ` Herbert Euler
2006-11-16 12:57           ` martin rudalics
2006-11-16 15:12             ` Herbert Euler
2006-11-16 16:03               ` martin rudalics
2006-11-17  1:24                 ` Herbert Euler
2006-11-17  2:27                   ` Stefan Monnier
2006-11-17  1:36                 ` Herbert Euler
2006-11-16 14:22     ` Stefan Monnier
2006-11-17  6:30     ` Herbert Euler
2006-11-17 18:39       ` martin rudalics
2006-11-18  0:51         ` Herbert Euler
2006-11-18 14:34           ` martin rudalics
2006-11-18 15:21             ` Miles Bader
2006-11-19 11:11               ` martin rudalics
2006-11-19 18:14                 ` Stefan Monnier
2006-11-20  1:37                 ` Richard Stallman
2006-11-20  3:04                   ` Stefan Monnier
2006-11-20 23:57                     ` Richard Stallman
2006-11-21  0:03                       ` David Kastrup
2006-11-22 13:15                         ` Richard Stallman
2006-11-22 13:50                           ` David Kastrup
2006-11-24 22:49                             ` Richard Stallman
2006-11-26 11:42                               ` Kim F. Storm
2006-11-26 12:08                                 ` David Kastrup
2006-11-26 18:32                                   ` Kim F. Storm
2006-11-26 19:53                                     ` David Kastrup
2006-12-05 17:43                           ` David Reitter
2006-12-06 14:24                             ` Richard Stallman
2006-12-08  9:03                               ` David Reitter
2006-11-20  7:39                   ` martin rudalics
2006-11-20 10:13                   ` David Kastrup
2006-11-20  7:09                 ` Herbert Euler
2006-11-20  8:03                   ` martin rudalics
2006-11-19  0:58           ` Stefan Monnier
2006-11-19 12:47             ` Richard Stallman
2006-11-19 18:09               ` Stefan Monnier
2006-11-20 12:59                 ` Richard Stallman
2006-11-21  3:45                   ` Herbert Euler
2006-11-22 13:15                     ` Richard Stallman
2006-11-23  3:27                       ` Herbert Euler
2006-11-26  2:01                         ` Richard Stallman
2006-11-27  1:10                           ` Stefan Monnier
2006-11-29  4:06                             ` Herbert Euler
2006-11-29  4:08                               ` Herbert Euler
2006-11-29  4:57                               ` Stefan Monnier
2006-11-29  7:36                                 ` Herbert Euler
2006-11-29 11:28                                   ` Stefan Monnier
2006-11-30  3:20                                   ` Richard Stallman
2006-11-29  8:13                               ` David Kastrup
2006-11-19  7:59           ` Richard Stallman

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).