|
@@ -335,6 +335,41 @@ Also set it if the optional argument REFRESH is non-nil."
|
|
|
(setq org-publish-files-alist
|
|
|
(org-publish-get-files org-publish-project-alist))))
|
|
|
|
|
|
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
+;;; Compatibility aliases
|
|
|
+
|
|
|
+;; Looks like dired-files-attributes is not in Emacs 21.4a.
|
|
|
+;; FIXME: Check this twice
|
|
|
+(if (fboundp 'dired-files-attributes)
|
|
|
+ (defalias 'org-publish-dired-files-attributes 'dired-files-attributes)
|
|
|
+ ;; taken from dired-aux.el
|
|
|
+ (defun dired-files-attributes (dir)
|
|
|
+ "Return a list of all file names and attributes from DIR.
|
|
|
+List has a form of (file-name full-file-name (attribute-list))"
|
|
|
+ (mapcar
|
|
|
+ (lambda (file-name)
|
|
|
+ (let ((full-file-name (expand-file-name file-name dir)))
|
|
|
+ (list file-name
|
|
|
+ full-file-name
|
|
|
+ (file-attributes full-file-name))))
|
|
|
+ (directory-files dir))))
|
|
|
+
|
|
|
+;; Delete-dups is not in Emacs <22
|
|
|
+(if (fboundp 'delete-dups)
|
|
|
+ (defalias 'org-publish-delete-duplicates 'delete-dups)
|
|
|
+ (defun org-publish-delete-duplicates (list)
|
|
|
+ "Destructively remove `equal' duplicates from LIST.
|
|
|
+Store the result in LIST and return it. LIST must be a proper list.
|
|
|
+Of several `equal' occurrences of an element in LIST, the first
|
|
|
+one is kept.
|
|
|
+
|
|
|
+This is a compatibility function for Emacsen without `delete-dups'."
|
|
|
+ ;; Code from `subr.el' in Emacs 22:
|
|
|
+ (let ((tail list))
|
|
|
+ (while tail
|
|
|
+ (setcdr tail (delete (car tail) (cdr tail)))
|
|
|
+ (setq tail (cdr tail))))
|
|
|
+ list))
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
;;; Getting project information out of org-publish-project-alist
|
|
@@ -356,22 +391,6 @@ If NO-EXCLUSION is non-nil, don't exclude files."
|
|
|
(org-publish-expand-projects projects-alist))
|
|
|
all-files))
|
|
|
|
|
|
-(if (fboundp 'delete-dups)
|
|
|
- (defalias 'org-publish-delete-duplicates 'delete-dups)
|
|
|
- (defun org-publish-delete-duplicates (list)
|
|
|
- "Destructively remove `equal' duplicates from LIST.
|
|
|
-Store the result in LIST and return it. LIST must be a proper list.
|
|
|
-Of several `equal' occurrences of an element in LIST, the first
|
|
|
-one is kept.
|
|
|
-
|
|
|
-This is a compatibility function for Emacsen without `delete-dups'."
|
|
|
- ;; Code from `subr.el' in Emacs 22:
|
|
|
- (let ((tail list))
|
|
|
- (while tail
|
|
|
- (setcdr tail (delete (car tail) (cdr tail)))
|
|
|
- (setq tail (cdr tail))))
|
|
|
- list))
|
|
|
-
|
|
|
(defun org-publish-expand-projects (projects-alist)
|
|
|
"Expand projects contained in PROJECTS-ALIST."
|
|
|
(let (without-component with-component)
|
|
@@ -405,7 +424,7 @@ matching filenames."
|
|
|
(regexp (concat "^[^\\.].*\\.\\(" extension "\\)$"))
|
|
|
alldirs allfiles files dir)
|
|
|
;; Get all files and directories in base-directory
|
|
|
- (setq files (dired-files-attributes base-dir))
|
|
|
+ (setq files (org-publish-dired-files-attributes base-dir))
|
|
|
;; Get all subdirectories if recursive-p
|
|
|
(setq alldirs
|
|
|
(if recursive-p
|