girzel / ebdb

An EIEIO port of BBDB, Emacs' contact-management package
67 stars 11 forks source link

let: Symbol’s function definition is void: file-attribute-modification-time #19

Closed tumashu closed 7 years ago

tumashu commented 7 years ago
Debugger entered--Lisp error: (void-function file-attribute-modification-time)
  (file-attribute-modification-time (file-attributes (expand-file-name (slot-value db (quote file)))))
  (let ((file-mod-time (file-attribute-modification-time (file-attributes (expand-file-name (slot-value db (quote file))))))) (and file-mod-time (time-less-p (slot-value db (quote sync-time)) file-mod-time)))
  (progn (let ((file-mod-time (file-attribute-modification-time (file-attributes (expand-file-name (slot-value db ...)))))) (and file-mod-time (time-less-p (slot-value db (quote sync-time)) file-mod-time))))
  (closure (original-date t) (db) "Return t if DB's persistence file has been accessed since the\nlast time DB was loaded.\n\nThis is the base implementation, which only checks if DB's\npersistence file has been accessed.  Subclasses should combine\nthis check with their own check to see if their records are\nsomehow out of sync.\n\n\"Unsynced\" is different from \"dirty\".  Dirty just means the\nDB has unsaved changes.  Unsynced means that saving those\nchanges (or re-loading the database from its source) would\noverwrite data somewhere." (progn (let ((file-mod-time (file-attribute-modification-time (file-attributes (expand-file-name ...))))) (and file-mod-time (time-less-p (slot-value db (quote sync-time)) file-mod-time)))))([eieio-class-tag--ebdb-db-file "File: ~/.emacs.d/ebdb" "~/.emacs.d/ebdb" [eieio-class-tag--ebdb-field-uuid "f2bb0c88-a096-41a7-ba94-45fbc53934a8"] nil nil nil "0.1" "" "" t t nil ebdb-record-person])
  apply((closure (original-date t) (db) "Return t if DB's persistence file has been accessed since the\nlast time DB was loaded.\n\nThis is the base implementation, which only checks if DB's\npersistence file has been accessed.  Subclasses should combine\nthis check with their own check to see if their records are\nsomehow out of sync.\n\n\"Unsynced\" is different from \"dirty\".  Dirty just means the\nDB has unsaved changes.  Unsynced means that saving those\nchanges (or re-loading the database from its source) would\noverwrite data somewhere." (progn (let ((file-mod-time (file-attribute-modification-time (file-attributes (expand-file-name ...))))) (and file-mod-time (time-less-p (slot-value db (quote sync-time)) file-mod-time))))) [eieio-class-tag--ebdb-db-file "File: ~/.emacs.d/ebdb" "~/.emacs.d/ebdb" [eieio-class-tag--ebdb-field-uuid "f2bb0c88-a096-41a7-ba94-45fbc53934a8"] nil nil nil "0.1" "" "" t t nil ebdb-record-person] nil)
  ebdb-db-unsynced([eieio-class-tag--ebdb-db-file "File: ~/.emacs.d/ebdb" "~/.emacs.d/ebdb" [eieio-class-tag--ebdb-field-uuid "f2bb0c88-a096-41a7-ba94-45fbc53934a8"] nil nil nil "0.1" "" "" t t nil ebdb-record-person])
  (cond ((slot-value db (quote read-only)) (quote ebdb-readonly-db)) ((slot-value db (quote disabled)) (quote ebdb-disabled-db)) ((ebdb-db-unsynced db) (if (and (null (ebdb-db-dirty db)) reload) (progn (ebdb-db-reload db) nil) (quote ebdb-unsynced-db))) (t nil))
  (let ((err (cond ((slot-value db (quote read-only)) (quote ebdb-readonly-db)) ((slot-value db (quote disabled)) (quote ebdb-disabled-db)) ((ebdb-db-unsynced db) (if (and (null ...) reload) (progn (ebdb-db-reload db) nil) (quote ebdb-unsynced-db))) (t nil)))) (or (not err) (if noerror nil (signal err (list db)))))
  (progn (let ((err (cond ((slot-value db (quote read-only)) (quote ebdb-readonly-db)) ((slot-value db (quote disabled)) (quote ebdb-disabled-db)) ((ebdb-db-unsynced db) (if (and ... reload) (progn ... nil) (quote ebdb-unsynced-db))) (t nil)))) (or (not err) (if noerror nil (signal err (list db))))))
  (closure (original-date t) (db &optional noerror reload) (progn (let ((err (cond ((slot-value db ...) (quote ebdb-readonly-db)) ((slot-value db ...) (quote ebdb-disabled-db)) ((ebdb-db-unsynced db) (if ... ... ...)) (t nil)))) (or (not err) (if noerror nil (signal err (list db)))))))([eieio-class-tag--ebdb-db-file "File: ~/.emacs.d/ebdb" "~/.emacs.d/ebdb" [eieio-class-tag--ebdb-field-uuid "f2bb0c88-a096-41a7-ba94-45fbc53934a8"] nil nil nil "0.1" "" "" t t nil ebdb-record-person])
  apply((closure (original-date t) (db &optional noerror reload) (progn (let ((err (cond ((slot-value db ...) (quote ebdb-readonly-db)) ((slot-value db ...) (quote ebdb-disabled-db)) ((ebdb-db-unsynced db) (if ... ... ...)) (t nil)))) (or (not err) (if noerror nil (signal err (list db))))))) [eieio-class-tag--ebdb-db-file "File: ~/.emacs.d/ebdb" "~/.emacs.d/ebdb" [eieio-class-tag--ebdb-field-uuid "f2bb0c88-a096-41a7-ba94-45fbc53934a8"] nil nil nil "0.1" "" "" t t nil ebdb-record-person] nil)
  ebdb-db-editable([eieio-class-tag--ebdb-db-file "File: ~/.emacs.d/ebdb" "~/.emacs.d/ebdb" [eieio-class-tag--ebdb-field-uuid "f2bb0c88-a096-41a7-ba94-45fbc53934a8"] nil nil nil "0.1" "" "" t t nil ebdb-record-person])
  (progn (ebdb-db-editable db))
  (if (ebdb-db-dirty db) (progn (ebdb-db-editable db)))
  (progn (if (ebdb-db-dirty db) (progn (ebdb-db-editable db))))
  (closure (original-date t) (db &optional _prompt) "Prepare DB to be saved." (progn (if (ebdb-db-dirty db) (progn (ebdb-db-editable db)))))([eieio-class-tag--ebdb-db-file "File: ~/.emacs.d/ebdb" "~/.emacs.d/ebdb" [eieio-class-tag--ebdb-field-uuid "f2bb0c88-a096-41a7-ba94-45fbc53934a8"] nil nil nil "0.1" "" "" t t nil ebdb-record-person])
  apply((closure (original-date t) (db &optional _prompt) "Prepare DB to be saved." (progn (if (ebdb-db-dirty db) (progn (ebdb-db-editable db))))) [eieio-class-tag--ebdb-db-file "File: ~/.emacs.d/ebdb" "~/.emacs.d/ebdb" [eieio-class-tag--ebdb-field-uuid "f2bb0c88-a096-41a7-ba94-45fbc53934a8"] nil nil nil "0.1" "" "" t t nil ebdb-record-person])
  #[128 "\300\211\203
girzel commented 7 years ago

Oops, those were added in Emacs 26.1. I'll add a check for that.

Thanks!