Hi. Thank you for the comments. On 2/10/20 12:34 AM, Eli Zaretskii wrote: >> From: Jaehwang Jerry Jung >> Date: Sun, 9 Feb 2020 16:43:34 +0900 >> Cc: Jaehwang Jerry Jung >> >> * src/buffer.c (syms_of_buffer): Define buffer-local variable >> word-wrap-boundary. >> * src/buffer.h (struct buffer): Add word_wrap_boundary_. >> * src/xdisp.c (IT_DISPLAYING_WORD_WRAP_BOUNDARY): replaces >> IT_DISPLAYING_WHITESPACE. > Thank you for your interest in Emacs. > > When proposing a new feature, please always describe the rationale and > relevant practical use cases. In this case, it is not clear to me > when it would make sense to allow arbitrary characters as wrap > boundaries. Maybe you had only white-space characters in mind, but > then why not use [:space:] or some Unicode category specification > instead of allowing any characters? I noticed that word wrapping looks a bit weird when the text contains long URLs. So I wanted to add non-word ASCII characters so that URLs can be wrapped more naturally as in other editors, while not changing the default behavior. >> + /* Characters that may cause word wrapping. */ >> + Lisp_Object word_wrap_boundary_; > Any reason this is a Lisp object and not a C string? No specific reason for that. I chose Lisp object because other members like name_ are Lisp objects too. >> -#define IT_DISPLAYING_WHITESPACE(it) \ >> - ((it->what == IT_CHARACTER && (it->c == ' ' || it->c == '\t')) \ >> +#define IT_DISPLAYING_WORD_WRAP_BOUNDARY(it) \ >> + ((it->what == IT_CHARACTER \ >> + && strchr ((char *) SDATA (BVAR (current_buffer, word_wrap_boundary)), \ >> + it->c)) \ > This cannot be right: characters are stored in Lisp strings in a > multibyte encoding that is superset of UTF-8, so the above will only > support pure-ASCII boundary characters, which is probably not what you > had in mind. You're right. Actually I think it would be simpler to hard-code a better list of boundary characters in that macro. > This feature, if we decide to accept it, will also need to be > described in the Emacs user manual, as that is why you exposed this to > Lisp. We would also want a defcustom form for it, probably in > cus-start.el. Thanks for letting me know that. > Last, but not least, for a contribution this large, we will need you > to assign the copyright to the FSF. If you agree, I will send you the > form to fill and the instructions to send it. Yes, I agree.