all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Herbert Euler" <herberteuler@hotmail.com>
Subject: RE: Patch: Syntax and Hard Newlines
Date: Mon, 13 Nov 2006 13:52:56 +0800	[thread overview]
Message-ID: <BAY112-F223EDC2150F1D0DB1C941EDAF40@phx.gbl> (raw)
In-Reply-To: <BAY112-F2D84F91ED1C638C488407DAF40@phx.gbl>

Sorry but in the patch format:

Index: syntax.c
===================================================================
RCS file: /sources/emacs/emacs/src/syntax.c,v
retrieving revision 1.166.4.20
diff -u -p -r1.166.4.20 syntax.c
--- syntax.c    20 Sep 2006 06:04:11 -0000      1.166.4.20
+++ syntax.c    13 Nov 2006 05:51:53 -0000
@@ -2124,9 +2124,17 @@ forw_comment (from, from_byte, stop, nes
   register int c, c1;
   register enum syntaxcode code;
   register int syntax;
+  register int skip_soft_newlines;

   if (nesting <= 0) nesting = -1;

+  /* 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")));
+
   /* Enter the loop in the middle so that we find
      a 2-char comment ender if we start in the middle of it.  */
   syntax = prev_syntax;
@@ -2143,6 +2151,16 @@ forw_comment (from, from_byte, stop, nes
        }
       c = FETCH_CHAR_AS_MULTIBYTE (from_byte);
       syntax = SYNTAX_WITH_FLAGS (c);
+      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;
+        }
       code = syntax & 0xff;
       if (code == Sendcomment
          && SYNTAX_FLAGS_COMMENT_STYLE (syntax) == style


>From: "Herbert Euler" <herberteuler@hotmail.com>
>To: emacs-devel@gnu.org
>Subject: Patch: Syntax and Hard Newlines
>Date: Mon, 13 Nov 2006 13:24:59 +0800
>
>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/
>
>
>
>_______________________________________________
>Emacs-devel mailing list
>Emacs-devel@gnu.org
>http://lists.gnu.org/mailman/listinfo/emacs-devel

_________________________________________________________________
Don't just search. Find. Check out the new MSN Search! 
http://search.msn.click-url.com/go/onm00200636ave/direct/01/

  reply	other threads:[~2006-11-13  5:52 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-13  5:24 Patch: Syntax and Hard Newlines Herbert Euler
2006-11-13  5:52 ` Herbert Euler [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=BAY112-F223EDC2150F1D0DB1C941EDAF40@phx.gbl \
    --to=herberteuler@hotmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.