From 43f674f7100a8bca536c3730cd5381aeb5aa2aec Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 9 May 2021 11:13:18 +0200 Subject: [PATCH] ambrevar: Patch magicffi to support wildcards. --- .../common-lisp/source/ambrevar/ambrevar.asd | 3 ++- .../source/ambrevar/patch-magicffi.lisp | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 .local/share/common-lisp/source/ambrevar/patch-magicffi.lisp diff --git a/.local/share/common-lisp/source/ambrevar/ambrevar.asd b/.local/share/common-lisp/source/ambrevar/ambrevar.asd index ff500a70..0605e029 100644 --- a/.local/share/common-lisp/source/ambrevar/ambrevar.asd +++ b/.local/share/common-lisp/source/ambrevar/ambrevar.asd @@ -2,4 +2,5 @@ (defsystem "ambrevar" :class :package-inferred-system - :depends-on ("ambrevar/all")) + :depends-on ("ambrevar/all") + :components ((:file "patch-magicffi"))) diff --git a/.local/share/common-lisp/source/ambrevar/patch-magicffi.lisp b/.local/share/common-lisp/source/ambrevar/patch-magicffi.lisp new file mode 100644 index 00000000..d1dc71f9 --- /dev/null +++ b/.local/share/common-lisp/source/ambrevar/patch-magicffi.lisp @@ -0,0 +1,18 @@ +(in-package :magicffi) + +(defun path-string (path) + (uiop:unix-namestring + (uiop:truename* (if (pathnamep path) + path + (uiop:parse-native-namestring path))))) + +;; Original function uses %truename which fails on wildcards. +(defun magic-file (magic pathspec) + "Returns a textual description of the contents of the PATHSPEC +argument. PATHSPEC is a pathname designator. An error of type +MAGIC-ERROR is signaled on failure." + (or (foreign-funcall "magic_file" + cmagic magic + :string (path-string pathspec) + :string) + (magic-error magic)))