Subject: bug#35967: [PATCH] avoid flyspell error if point is at bob

From: Alex Branham <[email-masked]>
Date: Fri, 14 Jun 2019 13:41:29 -0500

On Fri 14 Jun 2019 at 13:31, [email-masked] wrote:

> Alex Branham <[email-masked]> writes:
>
>> Here's a new patch that checks for (equal (point) 1) rather than using
>> bobp. OK to push to master?
>
>> +  (unless (eql (point) 1)
>> +    ;; (point) is next char after the word. Must check one char before.
>> +    (let ((f (get-text-property (- (point) 1) 'face)))
>
> This will do the wrong thing when point is at the beginning of a
> narrowed buffer.  Score one point for bobp?

Oh, of course. Here it is with (point-min), which should work I think.

Alex

>From f4ecc0a1657e736173f6daeabbe870dae4e8a7f1 Mon Sep 17 00:00:00 2001
From: Alex Branham <[email-masked]>
Date: Fri, 14 Jun 2019 13:15:36 -0500
Subject: [PATCH] Avoid a flyspell error if point is at beginning of buffer

* lisp/textmodes/flyspell.el (flyspell-generic-progmode-verify): Check
if point is at the beginning of the buffer.  This prevents an error
when e.g. 'flyspell-auto-correct-word' gets called with point at the
beginning of the buffer.
---
 lisp/textmodes/flyspell.el | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index d18916dfd0..22f9db4363 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -423,9 +423,10 @@ flyspell-prog-text-faces
 
 (defun flyspell-generic-progmode-verify ()
   "Used for `flyspell-generic-check-word-predicate' in programming modes."
-  ;; (point) is next char after the word. Must check one char before.
-  (let ((f (get-text-property (- (point) 1) 'face)))
-    (memq f flyspell-prog-text-faces)))
+  (unless (eql (point) (point-min))
+    ;; (point) is next char after the word. Must check one char before.
+    (let ((f (get-text-property (- (point) 1) 'face)))
+      (memq f flyspell-prog-text-faces))))
 
 ;; Records the binding of M-TAB in effect before flyspell was activated.
 (defvar flyspell--prev-meta-tab-binding)
-- 
2.21.0