File Make-vcard-parser-more-robust-to-invalid-vcards.patch of Package emacs-vcard

From: Egbert Eich <eich@suse.com>
Date: Tue Dec 2 15:15:59 2025 +0100
Subject: Make vcard parser more robust to invalid vcards
Patch-mainline: Not yet
Git-commit: 754148eae7d781b901dfd873549128ec35ce35fb
References: 

Signed-off-by: Egbert Eich <eich@suse.com>
Signed-off-by: Egbert Eich <eich@suse.de>
---
 vcard.el | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/vcard.el b/vcard.el
index f7dc308..1cadf63 100644
--- a/vcard.el
+++ b/vcard.el
@@ -242,22 +242,22 @@ Note: this function modifies the buffer!"
           (delete-char 1))
 
         (goto-char (point-min))
-        (re-search-forward "^begin:[ \t]*vcard[ \t]*\n")
-        (set-marker pos (point))
-        (while (and (not (looking-at "^end[ \t]*:[ \t]*vcard[ \t]*$"))
-                    (re-search-forward ":[ \t]*" nil t))
-          (set-marker newpos (match-end 0))
-          (setq properties
-                (vcard-parse-region-properties pos (match-beginning 0)))
-          (set-marker pos (marker-position newpos))
-          (re-search-forward "[ \t]*\n")
-          (set-marker newpos (match-end 0))
-          (setq value
-                (vcard-parse-region-value properties pos (match-beginning 0)))
-          (set-marker pos (marker-position newpos))
-          (goto-char pos)
-          (funcall filter properties value)
-          (setq vcard-data (cons (cons properties value) vcard-data)))))
+        (if (re-search-forward "^begin:[ \t]*vcard[ \t]*\n" nil t)
+            (set-marker pos (point))
+          (while (and (not (looking-at "^end[ \t]*:[ \t]*vcard[ \t]*$"))
+                      (re-search-forward ":[ \t]*" nil t))
+            (set-marker newpos (match-end 0))
+            (setq properties
+                  (vcard-parse-region-properties pos (match-beginning 0)))
+            (set-marker pos (marker-position newpos))
+            (re-search-forward "[ \t]*\n")
+            (set-marker newpos (match-end 0))
+            (setq value
+                  (vcard-parse-region-value properties pos (match-beginning 0)))
+            (set-marker pos (marker-position newpos))
+            (goto-char pos)
+            (funcall filter properties value)
+            (setq vcard-data (cons (cons properties value) vcard-data))))))
     (nreverse vcard-data)))
 
 (defun vcard-parse-region-properties (beg end)
openSUSE Build Service is sponsored by