From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Marcin Borkowski Newsgroups: gmane.emacs.bugs Subject: bug#20871: 25.0.50; fill-single-char-nobreak-p does not recognize a single-letter word when it is preceded by an open paren Date: Sun, 17 Apr 2016 17:34:04 +0200 Message-ID: <87k2jwtfkj.fsf@mbork.pl> References: <87y4jchwog.fsf@mbork.pl> <87wpywhwa8.fsf@mbork.pl> <87shyku4jt.fsf@mbork.pl> <8337qkb7v7.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1460907322 4810 80.91.229.3 (17 Apr 2016 15:35:22 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 17 Apr 2016 15:35:22 +0000 (UTC) Cc: 20871@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Apr 17 17:35:11 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aroj8-0006Ja-QS for geb-bug-gnu-emacs@m.gmane.org; Sun, 17 Apr 2016 17:35:11 +0200 Original-Received: from localhost ([::1]:47875 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aroj7-0001mY-SH for geb-bug-gnu-emacs@m.gmane.org; Sun, 17 Apr 2016 11:35:09 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:57231) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aroj3-0001i3-D1 for bug-gnu-emacs@gnu.org; Sun, 17 Apr 2016 11:35:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aroj0-0005on-6x for bug-gnu-emacs@gnu.org; Sun, 17 Apr 2016 11:35:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:54476) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aroj0-0005of-3N for bug-gnu-emacs@gnu.org; Sun, 17 Apr 2016 11:35:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1aroiz-0000bA-S5 for bug-gnu-emacs@gnu.org; Sun, 17 Apr 2016 11:35:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Marcin Borkowski Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 17 Apr 2016 15:35:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 20871 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 20871-submit@debbugs.gnu.org id=B20871.14609072562240 (code B ref 20871); Sun, 17 Apr 2016 15:35:01 +0000 Original-Received: (at 20871) by debbugs.gnu.org; 17 Apr 2016 15:34:16 +0000 Original-Received: from localhost ([127.0.0.1]:38580 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aroiG-0000a4-Dz for submit@debbugs.gnu.org; Sun, 17 Apr 2016 11:34:16 -0400 Original-Received: from mail.mojserwer.eu ([195.110.48.8]:48424) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aroiE-0000Zw-Sx for 20871@debbugs.gnu.org; Sun, 17 Apr 2016 11:34:15 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by mail.mojserwer.eu (Postfix) with ESMTP id AA80DAD1E50; Sun, 17 Apr 2016 17:34:12 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at mail.mojserwer.eu Original-Received: from mail.mojserwer.eu ([127.0.0.1]) by localhost (mail.mojserwer.eu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WOuJtbZEKcQh; Sun, 17 Apr 2016 17:34:08 +0200 (CEST) Original-Received: from localhost (98-171.echostar.pl [213.156.98.171]) by mail.mojserwer.eu (Postfix) with ESMTPSA id 8A41FAD1E4F; Sun, 17 Apr 2016 17:34:07 +0200 (CEST) User-agent: mu4e 0.9.13; emacs 25.1.50.8 In-reply-to: <8337qkb7v7.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:116566 Archived-At: On 2016-04-17, at 14:57, Eli Zaretskii wrote: >> From: Marcin Borkowski >> Date: Sun, 17 Apr 2016 08:34:30 +0200 >> >> >> today I found that fill-single-char-nobreak-p is just a bit too >> >> simplistic. When point is after e.g. the string " (a", it returns nil >> >> instead of t. I am not sure which characters should be added to the >> >> regex, but at least the opening paren (and maybe bracket) should be >> >> there, so I'd change the regex into [[:space:]][[(]*[[:alpha:]]. (Two >> >> or more opening parens/brackets are unlikely, but when in doubt, I guess >> >> it's better to return t than nil than the other way round.) >> >> >> >> Best regards, >> > >> > Just noticed that there is a hardcoded (backward-char 2), so it >> > seems that adding a few characters to the regex is not enough. Maybe >> > looking-back is the way to go (though it might slow filling down)? >> > I don't know. >> >> Hi there, >> >> so here's a patch for the bug I reported some time ago. > > Could you please elaborate on the bug itself? In Polish typography, it is customary to foribid line breaks after one-letter words (and we have quite a few of them: a, i, o, w, z - they are conjunctions or prepositions). And it is not uncommon to have a combination of them with a parenthesized remark or something like that. That's why allowing a linebreak after, say "(a" when writing something in Polish (like an email, for instance) is a bug IMO. > See, the function in question, fill-single-char-nobreak-p, is > documented as a possible value to use in the fill hook, for a very > specific purpose. If you are saying that it doesn't fulfill that > purpose well enough, please show a use case where it fails to do that. > At least the situation you described, with " (a", doesn't seem to fit > the use cases which this function is supposed to cover, since the > parenthesis makes a 2-character sequence, whereas > fill-single-char-nobreak-p aims to support isolated one-character > words. I see. So you suggest that instead of patching `fill-single-char-nobreak-p' I should have provided another function, customized for Polish? In fact, I'm not so sure about it. The whole point of such functions (as I see it) is help write texts in natural langauges. It seems unnatural to treat words preceded by a space and by a parenthesis *in a natural language* differently, no? > I also am not sure I understand what is so special about '(' that it > has to be hard-coded here. What about '[' or '{' or '<' (or any other > punctuation character, for that matter)? The special thing about `(' is that (unlike other characters you mentioned) is that it is actually used in a text in a natural language (though one could make a case for `[', too). >> Please review both the patch and the commit message (I'm still >> learning to write them...). > > The commit message should begin with a capital letter. Also, I think > this variant is more clear: > > Don't break after a single-character word that follows an opening > parenthesis. > > Thanks. Thanks and best regards, -- Marcin Borkowski http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski Faculty of Mathematics and Computer Science Adam Mickiewicz University