(defun org-synch (package-file) (let* ((archive-file "archive-contents") (package-name 'org) (date (substring package-file 4 12)) (date-int (string-to-number date)) contents entry) (unless (and (integerp date-int) (> date-int 20100000) (< date-int 21000000)) (error "Package date is bad")) (unless (file-exists-p package-file) (error "No package file found")) (when (file-exists-p archive-file) (find-file archive-file) (setq contents (read (current-buffer)) entry (assq package-name contents)) (unless entry (error "No entry for %s in archive-contents" package-name)) (aset (cdr entry) 0 (version-to-list date)) (erase-buffer) (insert (pp-to-string contents) "\n") (save-buffer 0))))