emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-25 0daba48: Fix Bug#22092.


From: Ulf Jasper
Subject: [Emacs-diffs] emacs-25 0daba48: Fix Bug#22092.
Date: Sat, 05 Dec 2015 16:01:40 +0000

branch: emacs-25
commit 0daba4888771e29f2edf170216adaf3d33040bea
Author: Ulf Jasper <address@hidden>
Commit: Ulf Jasper <address@hidden>

    Fix Bug#22092.
    
    * lisp/calendar/icalendar.el (icalendar--get-unfolded-buffer):
      Clean up inconsistent line endings. (Bug#22092)
      (icalendar--clean-up-line-endings): New.
    * test/automated/icalendar-tests.el (icalendar-real-world): Add test
      for Bug#22092.
---
 lisp/calendar/icalendar.el        |   13 ++++++++-
 test/automated/icalendar-tests.el |   56 +++++++++++++++++++++++++++++++++++++
 2 files changed, 68 insertions(+), 1 deletions(-)

diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el
index 0c7a063..ca6669d 100644
--- a/lisp/calendar/icalendar.el
+++ b/lisp/calendar/icalendar.el
@@ -321,18 +321,29 @@ other sexp entries are enumerated in any case."
   "Return a new buffer containing the unfolded contents of a buffer.
 Folding is the iCalendar way of wrapping long lines.  In the
 created buffer all occurrences of CR LF BLANK are replaced by the
-empty string.  Argument FOLDED-ICAL-BUFFER is the unfolded input
+empty string.  Argument FOLDED-ICAL-BUFFER is the folded input
 buffer."
   (let ((unfolded-buffer (get-buffer-create " *icalendar-work*")))
     (save-current-buffer
       (set-buffer unfolded-buffer)
       (erase-buffer)
       (insert-buffer-substring folded-ical-buffer)
+      (icalendar--clean-up-line-endings)
       (goto-char (point-min))
       (while (re-search-forward "\r?\n[ \t]" nil t)
         (replace-match "" nil nil)))
     unfolded-buffer))
 
+(defun icalendar--clean-up-line-endings ()
+  "Replace DOS- and MAC-like line endings with unix line endings.
+All occurrences of (CR LF) and (LF CF) are replaced with LF in
+the current buffer.  This is necessary in buffers which contain a
+mix of different line endings."
+  (save-excursion
+    (goto-char (point-min))
+    (while (re-search-forward "\r\n\\|\n\r" nil t)
+      (replace-match "\n" nil nil))))
+
 (defsubst icalendar--rris (regexp rep string &optional fixedcase literal)
   "Replace regular expression in string.
 Pass arguments REGEXP REP STRING FIXEDCASE LITERAL to
diff --git a/test/automated/icalendar-tests.el 
b/test/automated/icalendar-tests.el
index 7e05d49..829cbf2 100644
--- a/test/automated/icalendar-tests.el
+++ b/test/automated/icalendar-tests.el
@@ -2231,7 +2231,63 @@ END:VCALENDAR"
  Class: PUBLIC
  UID: 
040000008200E00074C5B7101A82E0080000000020FFAED0CFEFCC01000000000000000010000000575268034ECDB649A15349B1BF240F15
 "     nil)
+
+  ;; 2015-12-05, mixed line endings and empty lines, see Bug#22092.
+  (icalendar-tests--test-import
+   "BEGIN:VCALENDAR\r
+PRODID:-//www.norwegian.no//iCalendar MIMEDIR//EN\r
+VERSION:2.0\r
+METHOD:REQUEST\r
+BEGIN:VEVENT\r
+UID:RFCALITEM1\r
+SEQUENCE:1512040950\r
+DTSTAMP:20141204T095043Z\r
+ORGANIZER:address@hidden
+DTSTART:20141208T173000Z\r
+
+DTEND:20141208T215500Z\r
+
+LOCATION:Stavanger-Sola\r
+
+DESCRIPTION:Fly med Norwegian, reservasjon. Fra Stavanger til Troms&#248; 8. 
des 2014 18:30, DY545Fly med Norwegian, reservasjon . Fra Stavanger til 
Troms&#248; 8. des 2014 21:00, DY390\r
+
+X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 
3.2//EN\"><html><head><META NAME=\"Generator\" CONTENT=\"MS Exchange Server 
version 08.00.0681.000\"><title></title></head><body><b><font face=\"Calibri\" 
size=\"3\">Reisereferanse</p></body></html>
+SUMMARY:Norwegian til Tromsoe-Langnes -\r
+
+CATEGORIES:Appointment\r
+
+
+PRIORITY:5\r
+
+CLASS:PUBLIC\r
+
+TRANSP:OPAQUE\r
+END:VEVENT\r
+END:VCALENDAR
+"
+"&2014/12/8 18:30-22:55 Norwegian til Tromsoe-Langnes -
+ Desc: Fly med Norwegian, reservasjon. Fra Stavanger til Troms&#248; 8. des 
2014 18:30, DY545Fly med Norwegian, reservasjon . Fra Stavanger til Troms&#248; 
8. des 2014 21:00, DY390
+ Location: Stavanger-Sola
+ Organizer: address@hidden
+ Class: PUBLIC
+ UID: RFCALITEM1
+"
+"&8/12/2014 18:30-22:55 Norwegian til Tromsoe-Langnes -
+ Desc: Fly med Norwegian, reservasjon. Fra Stavanger til Troms&#248; 8. des 
2014 18:30, DY545Fly med Norwegian, reservasjon . Fra Stavanger til Troms&#248; 
8. des 2014 21:00, DY390
+ Location: Stavanger-Sola
+ Organizer: address@hidden
+ Class: PUBLIC
+ UID: RFCALITEM1
+"
+"&12/8/2014 18:30-22:55 Norwegian til Tromsoe-Langnes -
+ Desc: Fly med Norwegian, reservasjon. Fra Stavanger til Troms&#248; 8. des 
2014 18:30, DY545Fly med Norwegian, reservasjon . Fra Stavanger til Troms&#248; 
8. des 2014 21:00, DY390
+ Location: Stavanger-Sola
+ Organizer: address@hidden
+ Class: PUBLIC
+ UID: RFCALITEM1
+"
 )
+  )
 
 (provide 'icalendar-tests)
 ;;; icalendar-tests.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]