From a50b42281c8dfa4bb727f43f006cbaefa0d88640 Mon Sep 17 00:00:00 2001 From: Philip K Date: Fri, 28 Aug 2020 23:34:05 +0200 Subject: [PATCH] Drop dash dependency --- nov.el | 96 +++++++++++++++++++++++++++++++--------------------------- 1 file changed, 51 insertions(+), 45 deletions(-) diff --git a/nov.el b/nov.el index 0072ea1..43749de 100644 --- a/nov.el +++ b/nov.el @@ -5,7 +5,7 @@ ;; Author: Vasilij Schneidermann ;; URL: https://depp.brause.cc/nov.el ;; Version: 0.3.0 -;; Package-Requires: ((dash "2.12.0") (esxml "0.3.3") (emacs "24.4")) +;; Package-Requires: ((esxml "0.3.3") (emacs "24.4")) ;; Keywords: hypermedia, multimedia, epub ;; This file is NOT part of GNU Emacs. @@ -44,7 +44,7 @@ ;;; Code: (require 'cl-lib) -(require 'dash) +(require 'pcase) (require 'esxml-query) (require 'shr) (require 'url-parse) @@ -148,8 +148,9 @@ Each element of the stack is a list (NODEINDEX BUFFERPOS).") (defun nov-directory-files (directory) "Returns a list of files in DIRECTORY except for . and .." - (--remove (string-match-p "/\\.\\(?:\\.\\)?\\'" it) - (directory-files directory t))) + (cl-loop for file in (directory-files directory t) + unless (string-match-p "/\\.\\(?:\\.\\)?\\'" file) + collect file)) (defun nov-contains-nested-directory-p (directory) "Non-nil if DIRECTORY contains exactly one directory." @@ -167,9 +168,9 @@ Each element of the stack is a list (NODEINDEX BUFFERPOS).") (delete-directory child)) (defun nov--fix-permissions (file-or-directory mode) - (->> (file-modes file-or-directory) - (file-modes-symbolic-to-number mode) - (set-file-modes file-or-directory))) + (let* ((modes (file-modes file-or-directory)) + (symbolic (file-modes-symbolic-to-number mode modes))) + (set-file-modes file-or-directory symbolic))) (defun nov-fix-permissions (directory) "Iterate recursively through DIRECTORY to fix its files." @@ -306,7 +307,9 @@ Required keys are 'identifier and everything in "Extract an alist of manifest files for CONTENT in DIRECTORY. Each alist item consists of the identifier and full path." (mapcar (lambda (node) - (-let [(&alist 'id id 'href href) (esxml-node-attributes node)] + (let* ((attr (esxml-node-attributes node)) + (id (cdr (assq 'id attr))) + (href (cdr (assq 'href attr)))) (cons (intern id) (nov-make-path directory (nov-urldecode href))))) (esxml-query-all "package>manifest>item" content))) @@ -336,7 +339,7 @@ Each alist item consists of the identifier and full path." (let ((toc-file (assq nov-toc-id manifest))) (when (not toc-file) (error "EPUB 3