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)))