From: Michal Nazarewicz Date: Mon, 4 Nov 2013 04:29:59 +0000 (-0500) Subject: * lisp/textmodes/fill.el (fill-single-char-nobreak-p): New function X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~998 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0a749fa0e64fc88bcd1772253774d7e44ecfe8ce;p=emacs.git * lisp/textmodes/fill.el (fill-single-char-nobreak-p): New function checking whether point is after a 1-letter word. --- diff --git a/etc/NEWS b/etc/NEWS index 1c171ba6f51..2e86ecbda6a 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -180,6 +180,12 @@ some enhancements, like the ability to restore deleted frames. Command ** The default value of `comment-use-global-state' is changed to t, and this variable has been marked obsolete. +** `fill-single-char-nobreak-p' prevents fill from breaking a line after +a 1-letter word, which is an error according to Polish and +Czech typography rules. To globally enable this feature, evaluate: + + (add-hook 'fill-nobreak-predicate 'fill-single-char-nobreak-p) + * Editing Changes in Emacs 24.4 diff --git a/lisp/ChangeLog b/lisp/ChangeLog index fb4f29befe1..9ff4ab8f04c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,4 +1,9 @@ -2013-11-03 Nathan Trapuzzano (tiny change) +2013-11-04 Michal Nazarewicz + + * textmodes/fill.el (fill-single-char-nobreak-p): New function + checking whether point is after a 1-letter word. + +2013-11-04 Nathan Trapuzzano (tiny change) * progmodes/cperl-mode.el (cperl-font-lock-fontify-region-function): Don't infloop when expanding region over `multiline' syntax-type that diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el index 119b4b04593..73b9362da76 100644 --- a/lisp/textmodes/fill.el +++ b/lisp/textmodes/fill.el @@ -329,13 +329,24 @@ places." (and (memq (preceding-char) '(?\t ?\s)) (eq (char-syntax (following-char)) ?w))))))) +(defun fill-single-char-nobreak-p () + "Return t if point is placed just after a 1-letter word. +This is used in `fill-nobreak-predicate' to prevent breaking line just +after a 1-letter word (usually conjunction or preposition) which is +considered composition error in Polish and Czech typography." + (save-excursion + (skip-chars-backward " \t") + (backward-char 2) + (looking-at "[[:space:]][[:alpha:]]"))) + (defcustom fill-nobreak-predicate nil "List of predicates for recognizing places not to break a line. The predicates are called with no arguments, with point at the place to be tested. If it returns t, fill commands do not break the line there." :group 'fill :type 'hook - :options '(fill-french-nobreak-p fill-single-word-nobreak-p)) + :options '(fill-french-nobreak-p fill-single-word-nobreak-p + fill-single-char-nobreak-p)) (defcustom fill-nobreak-invisible nil "Non-nil means that fill commands do not break lines in invisible text."