Follow user preference in calendar diagnostics
Respect text-quoting-style preference in diagnostic formats by using curved quotes (which are translated as per text-quoting-style) instead of grave accent and apostrophe (which are not). * lisp/calendar/appt.el (appt-display-message): * lisp/calendar/diary-lib.el (diary-check-diary-file) (diary-mail-entries, diary-from-outlook): * lisp/calendar/icalendar.el (icalendar-export-region) (icalendar--convert-float-to-ical) (icalendar--convert-date-to-ical) (icalendar--convert-ical-to-diary) (icalendar--convert-recurring-to-diary) (icalendar--add-diary-entry): * lisp/calendar/time-date.el (format-seconds): * lisp/calendar/timeclock.el (timeclock-mode-line-display) (timeclock-make-hours-explicit): * lisp/calendar/todo-mode.el (todo-prefix, todo-delete-category) (todo-item-mark, todo-check-format) (todo-insert-item--next-param, todo-edit-item--next-key) (todo-mode): Use curved quotes in diagnostic format strings. * lisp/calendar/icalendar.el (icalendar-import-format-sample): * test/automated/icalendar-tests.el (icalendar--import-format-sample): Just use straight quoting for simple test case.
This commit is contained in:
parent
21c2b4ac52
commit
8c01e88921
7 changed files with 28 additions and 28 deletions
|
@ -239,7 +239,7 @@ also calls `beep' for an audible reminder."
|
|||
(wrong-type-argument
|
||||
(if (not (listp mins))
|
||||
(signal (car err) (cdr err))
|
||||
(message "Argtype error in `appt-disp-window-function' - \
|
||||
(message "Argtype error in ‘appt-disp-window-function’ - \
|
||||
update it for multiple appts?")
|
||||
;; Fallback to just displaying the first appt, as we used to.
|
||||
(funcall appt-disp-window-function
|
||||
|
|
|
@ -484,8 +484,8 @@ If so, return the expanded file name, otherwise signal an error."
|
|||
(if (and diary-file (file-exists-p diary-file))
|
||||
(if (file-readable-p diary-file)
|
||||
diary-file
|
||||
(error "Diary file `%s' is not readable" diary-file))
|
||||
(error "Diary file `%s' does not exist" diary-file)))
|
||||
(error "Diary file ‘%s’ is not readable" diary-file))
|
||||
(error "Diary file ‘%s’ does not exist" diary-file)))
|
||||
|
||||
;;;###autoload
|
||||
(defun diary (&optional arg)
|
||||
|
@ -1197,7 +1197,7 @@ ensure that all relevant variables are set.
|
|||
"
|
||||
(interactive "P")
|
||||
(if (string-equal diary-mail-addr "")
|
||||
(user-error "You must set `diary-mail-addr' to use this command")
|
||||
(user-error "You must set ‘diary-mail-addr’ to use this command")
|
||||
(let ((diary-display-function 'diary-fancy-display))
|
||||
(diary-list-entries (calendar-current-date) (or ndays diary-mail-days)))
|
||||
(compose-mail diary-mail-addr
|
||||
|
@ -2527,7 +2527,7 @@ entry is found the user is asked to confirm its addition."
|
|||
#'diary-from-outlook-rmail)
|
||||
((memq major-mode '(gnus-summary-mode gnus-article-mode))
|
||||
#'diary-from-outlook-gnus)
|
||||
(t (error "Don't know how to snarf in `%s'" major-mode)))))
|
||||
(t (error "Don't know how to snarf in ‘%s’" major-mode)))))
|
||||
(funcall func noconfirm)))
|
||||
|
||||
(provide 'diary-lib)
|
||||
|
|
|
@ -1118,7 +1118,7 @@ FExport diary data into iCalendar file: ")
|
|||
(setq found-error t)
|
||||
(save-current-buffer
|
||||
(set-buffer (get-buffer-create "*icalendar-errors*"))
|
||||
(insert (format "Error in line %d -- %s: `%s'\n"
|
||||
(insert (format "Error in line %d -- %s: ‘%s’\n"
|
||||
(count-lines (point-min) (point))
|
||||
error-val
|
||||
entry-main))))))
|
||||
|
@ -1741,7 +1741,7 @@ entries. ENTRY-MAIN is the first line of the diary entry."
|
|||
(when day
|
||||
(progn
|
||||
(icalendar--dmsg "diary-float %s" entry-main)
|
||||
(error "Don't know if or how to implement day in `diary-float'")))
|
||||
(error "Don't know if or how to implement day in ‘diary-float’")))
|
||||
|
||||
(cons (concat
|
||||
;;Start today (yes this is an arbitrary choice):
|
||||
|
@ -1788,7 +1788,7 @@ entries. ENTRY-MAIN is the first line of the diary entry."
|
|||
entry-main)
|
||||
(progn
|
||||
(icalendar--dmsg "diary-date %s" entry-main)
|
||||
(error "`diary-date' is not supported yet"))
|
||||
(error "‘diary-date’ is not supported yet"))
|
||||
;; no match
|
||||
nil))
|
||||
|
||||
|
@ -2104,7 +2104,7 @@ written into the buffer `*icalendar-errors*'."
|
|||
(rrule (icalendar--get-event-property e 'RRULE))
|
||||
(rdate (icalendar--get-event-property e 'RDATE))
|
||||
(duration (icalendar--get-event-property e 'DURATION)))
|
||||
(icalendar--dmsg "%s: `%s'" start-d summary)
|
||||
(icalendar--dmsg "%s: ‘%s’" start-d summary)
|
||||
;; check whether start-time is missing
|
||||
(if (and dtstart
|
||||
(string=
|
||||
|
@ -2282,7 +2282,7 @@ END-T is the event's end time in diary format."
|
|||
interval))))
|
||||
)
|
||||
(t
|
||||
(message "Cannot handle COUNT attribute for `%s' events."
|
||||
(message "Cannot handle COUNT attribute for ‘%s’ events."
|
||||
frequency)))
|
||||
(setq until-conv (icalendar--datetime-to-diary-date until))
|
||||
(setq until-1-conv (icalendar--datetime-to-diary-date until-1))
|
||||
|
@ -2473,7 +2473,7 @@ SUMMARY is not nil it must be a string that gives the summary of the
|
|||
entry. In this case the user will be asked whether he wants to insert
|
||||
the entry."
|
||||
(when (or (not summary)
|
||||
(y-or-n-p (format "Add appointment for `%s' to diary? "
|
||||
(y-or-n-p (format "Add appointment for ‘%s’ to diary? "
|
||||
summary)))
|
||||
(when summary
|
||||
(setq non-marking
|
||||
|
@ -2500,8 +2500,8 @@ the entry."
|
|||
;; ======================================================================
|
||||
(defun icalendar-import-format-sample (event)
|
||||
"Example function for formatting an iCalendar EVENT."
|
||||
(format (concat "SUMMARY=`%s' DESCRIPTION=`%s' LOCATION=`%s' ORGANIZER=`%s' "
|
||||
"STATUS=`%s' URL=`%s' CLASS=`%s'")
|
||||
(format (concat "SUMMARY='%s' DESCRIPTION='%s' LOCATION='%s' ORGANIZER='%s' "
|
||||
"STATUS='%s' URL='%s' CLASS='%s'")
|
||||
(or (icalendar--get-event-property event 'SUMMARY) "")
|
||||
(or (icalendar--get-event-property event 'DESCRIPTION) "")
|
||||
(or (icalendar--get-event-property event 'LOCATION) "")
|
||||
|
|
|
@ -377,9 +377,9 @@ This function does not work for SECONDS greater than `most-positive-fixnum'."
|
|||
spec (match-string 1 string))
|
||||
(unless (string-equal spec "%")
|
||||
(or (setq match (assoc (downcase spec) units))
|
||||
(error "Bad format specifier: `%s'" spec))
|
||||
(error "Bad format specifier: ‘%s’" spec))
|
||||
(if (assoc (downcase spec) usedunits)
|
||||
(error "Multiple instances of specifier: `%s'" spec))
|
||||
(error "Multiple instances of specifier: ‘%s’" spec))
|
||||
(if (string-equal (car match) "z")
|
||||
(setq zeroflag t)
|
||||
(unless larger
|
||||
|
|
|
@ -305,8 +305,8 @@ display (non-nil means on)."
|
|||
;; on calling this function.
|
||||
(if display-time-mode
|
||||
(timeclock-update-mode-line)
|
||||
(message "Activate `display-time-mode' or turn off \
|
||||
`timeclock-use-display-time' to see timeclock information"))
|
||||
(message "Activate ‘display-time-mode’ or turn off \
|
||||
‘timeclock-use-display-time’ to see timeclock information"))
|
||||
(add-hook 'display-time-hook 'timeclock-update-mode-line))
|
||||
(setq timeclock-update-timer
|
||||
(run-at-time nil 60 'timeclock-update-mode-line))))
|
||||
|
@ -575,7 +575,7 @@ relative only to the time worked today, and not to past time."
|
|||
OLD-DEFAULT hours are set for every day that has no number indicated."
|
||||
(interactive "P")
|
||||
(if old-default (setq old-default (prefix-numeric-value old-default))
|
||||
(error "`timelog-make-hours-explicit' requires an explicit argument"))
|
||||
(error "‘timelog-make-hours-explicit’ requires an explicit argument"))
|
||||
(let ((extant-timelog (find-buffer-visiting timeclock-file))
|
||||
current-date)
|
||||
(with-current-buffer (find-file-noselect timeclock-file t)
|
||||
|
@ -589,7 +589,7 @@ OLD-DEFAULT hours are set for every day that has no number indicated."
|
|||
(unless (looking-at
|
||||
(concat "^\\([bhioO]\\) \\([0-9]+/[0-9]+/[0-9]+\\) "
|
||||
"\\([0-9]+:[0-9]+:[0-9]+\\)"))
|
||||
(error "Can't parse `%s'" timeclock-file))
|
||||
(error "Can't parse ‘%s’" timeclock-file))
|
||||
(let ((this-date (match-string 2)))
|
||||
(unless (or (and current-date
|
||||
(string= this-date current-date))
|
||||
|
|
|
@ -237,7 +237,7 @@ The final element is \"*\", indicating an unspecified month.")
|
|||
(when (string= (widget-value widget) todo-item-mark)
|
||||
(widget-put
|
||||
widget :error
|
||||
"Invalid value: must be distinct from `todo-item-mark'")
|
||||
"Invalid value: must be distinct from ‘todo-item-mark’")
|
||||
widget)))
|
||||
:initialize 'custom-initialize-default
|
||||
:set 'todo-reset-prefix
|
||||
|
@ -1346,7 +1346,7 @@ todo or done items."
|
|||
"the archived category will remain\n"
|
||||
"after deleting the todo category. "
|
||||
"Do you still want to delete it\n"
|
||||
"(see `todo-skip-archived-categories' "
|
||||
"(see ‘todo-skip-archived-categories’ "
|
||||
"for another option)? ")))
|
||||
(t
|
||||
(todo-y-or-n-p (concat "Permanently remove category \"" cat
|
||||
|
@ -1694,7 +1694,7 @@ only when no items are marked."
|
|||
(when (string= (widget-value widget) todo-prefix)
|
||||
(widget-put
|
||||
widget :error
|
||||
"Invalid value: must be distinct from `todo-prefix'")
|
||||
"Invalid value: must be distinct from ‘todo-prefix’")
|
||||
widget)))
|
||||
:set (lambda (symbol value)
|
||||
(custom-set-default symbol (propertize value 'face 'todo-mark)))
|
||||
|
@ -5034,7 +5034,7 @@ but the categories sexp differs from the current value of
|
|||
;; Warn user if categories sexp has changed.
|
||||
(unless (string= ssexp cats)
|
||||
(message (concat "The sexp at the beginning of the file differs "
|
||||
"from the value of `todo-categories.\n"
|
||||
"from the value of ‘todo-categories’.\n"
|
||||
"If the sexp is wrong, you can fix it with "
|
||||
"M-x todo-repair-categories-sexp,\n"
|
||||
"but note this reverts any changes you have "
|
||||
|
@ -5531,7 +5531,7 @@ already entered and those still available."
|
|||
(todo-insert-item--this-key)
|
||||
todo-insert-item--argsleft)))))))))
|
||||
(setq todo-insert-item--argsleft todo-insert-item--newargsleft))
|
||||
(when prompt (message "Press a key (so far `%s'): %s"
|
||||
(when prompt (message "Press a key (so far ‘%s’): %s"
|
||||
todo-insert-item--keys-so-far prompt))
|
||||
(set-transient-map map)
|
||||
(setq todo-insert-item--argsleft argsleft)))
|
||||
|
@ -5585,7 +5585,7 @@ already entered and those still available."
|
|||
(`delete (todo-edit-item--text 'comment-delete))
|
||||
(`diary (todo-edit-item--diary-inclusion))
|
||||
(`nonmarking (todo-edit-item--diary-inclusion 'nonmarking))
|
||||
(`date (let ((todo-edit-item--prompt "Press a key (so far `e d'): "))
|
||||
(`date (let ((todo-edit-item--prompt "Press a key (so far ‘e d’): "))
|
||||
(todo-edit-item--next-key
|
||||
todo-edit-item--date-param-key-alist arg)))
|
||||
(`full (progn (todo-edit-item--header 'date)
|
||||
|
@ -6598,7 +6598,7 @@ Added to `window-configuration-change-hook' in Todo mode."
|
|||
|
||||
\\{todo-mode-map}"
|
||||
(if (called-interactively-p 'any)
|
||||
(message "Type `M-x todo-show' to enter Todo mode")
|
||||
(message "Type ‘M-x todo-show’ to enter Todo mode")
|
||||
(todo-modes-set-1)
|
||||
(todo-modes-set-2)
|
||||
(todo-modes-set-3)
|
||||
|
|
|
@ -391,8 +391,8 @@ END:VTIMEZONE
|
|||
|
||||
(ert-deftest icalendar--import-format-sample ()
|
||||
"Test method for `icalendar-import-format-sample'."
|
||||
(should (string= (concat "SUMMARY=`a' DESCRIPTION=`b' LOCATION=`c' "
|
||||
"ORGANIZER=`d' STATUS=`' URL=`' CLASS=`'")
|
||||
(should (string= (concat "SUMMARY='a' DESCRIPTION='b' LOCATION='c' "
|
||||
"ORGANIZER='d' STATUS='' URL='' CLASS=''")
|
||||
(icalendar-import-format-sample
|
||||
(icalendar-tests--get-ical-event "BEGIN:VEVENT
|
||||
DTSTAMP:20030509T043439Z
|
||||
|
|
Loading…
Add table
Reference in a new issue