* Version 1.5.12
* src/libraries.lisp: Patch from Yaroslav Kavenchuk to set
default drive letters on MS Windows.
+2006-05-17 Kevin Rosenberg (kevin@rosenberg.net)
+ * Version 1.5.12
+ * src/libraries.lisp: Patch from Yaroslav Kavenchuk to set
+ default drive letters on MS Windows.
+
2006-05-11 Kevin Rosenberg (kevin@rosenberg.net)
* Version 1.5.11: Export new macro DEF-POINTER-VAR based on patch from
James Bielman to support defining variables on platforms which
2006-05-11 Kevin Rosenberg (kevin@rosenberg.net)
* Version 1.5.11: Export new macro DEF-POINTER-VAR based on patch from
James Bielman to support defining variables on platforms which
+cl-uffi (1.5.12-1) unstable; urgency=low
+
+ * New upstream
+
+ -- Kevin M. Rosenberg <kmr@debian.org> Wed, 17 May 2006 08:09:13 -0600
+
cl-uffi (1.5.11-1) unstable; urgency=low
* New upstream
cl-uffi (1.5.11-1) unstable; urgency=low
* New upstream
#-(or win32 mswindows macosx darwin ccl-5.0) '("so" "a" "o")
)
#-(or win32 mswindows macosx darwin ccl-5.0) '("so" "a" "o")
)
-(defun find-foreign-library (names directories &key types drive-letters)
+(defun find-foreign-library (names directories &key types drive-letters)
"Looks for a foreign library. directories can be a single
string or a list of strings of candidate directories. Use default
library type if type is not specified."
"Looks for a foreign library. directories can be a single
string or a list of strings of candidate directories. Use default
library type if type is not specified."
(unless (listp directories)
(setq directories (list directories)))
#+(or win32 mswindows)
(unless (listp directories)
(setq directories (list directories)))
#+(or win32 mswindows)
+ (unless drive-letters
+ (setq drive-letters (list (pathname-device directories))))
+ #+(or win32 mswindows)
(unless (listp drive-letters)
(setq drive-letters (list drive-letters)))
#-(or win32 mswindows)
(unless (listp drive-letters)
(setq drive-letters (list drive-letters)))
#-(or win32 mswindows)
(dolist (name names)
(dolist (dir directories)
(dolist (type types)
(dolist (name names)
(dolist (dir directories)
(dolist (type types)
- (let ((path (make-pathname
+ (let ((path (make-pathname
#+lispworks :host
#+lispworks (when drive-letter drive-letter)
#-lispworks :device
#-lispworks (when drive-letter drive-letter)
#+lispworks :host
#+lispworks (when drive-letter drive-letter)
#-lispworks :device
#-lispworks (when drive-letter drive-letter)
(etypecase dir
(pathname
(pathname-directory dir))
(list
dir)
(string
(etypecase dir
(pathname
(pathname-directory dir))
(list
dir)
(string
(parse-namestring dir)))))))
(when (probe-file path)
(return-from find-foreign-library path)))))))
(parse-namestring dir)))))))
(when (probe-file path)
(return-from find-foreign-library path)))))))
(probe-file filename)))
(if (pathnamep filename) ;; ensure filename is a string to check if already loaded
(setq filename (namestring (if (null (pathname-directory filename))
(probe-file filename)))
(if (pathnamep filename) ;; ensure filename is a string to check if already loaded
(setq filename (namestring (if (null (pathname-directory filename))
;; lispworks treats as UNC, so use truename
#+(and lispworks win32) (truename filename)
#-(and lispworks win32) filename))))
;; lispworks treats as UNC, so use truename
#+(and lispworks win32) (truename filename)
#-(and lispworks win32) filename))))
(if (and (not force-load)
(find filename *loaded-libraries* :test #'string-equal))
t ;; return T, but don't reload library
(if (and (not force-load)
(find filename *loaded-libraries* :test #'string-equal))
t ;; return T, but don't reload library
(let ((type (pathname-type (parse-namestring filename))))
(if (string-equal type "so")
(sys::load-object-file filename)
(let ((type (pathname-type (parse-namestring filename))))
(if (string-equal type "so")
(sys::load-object-file filename)
- (alien:load-foreign filename
+ (alien:load-foreign filename
:libraries
(convert-supporting-libraries-to-string
supporting-libraries))))
#+scl
(let ((type (pathname-type (parse-namestring filename))))
:libraries
(convert-supporting-libraries-to-string
supporting-libraries))))
#+scl
(let ((type (pathname-type (parse-namestring filename))))
- (alien:load-foreign filename
+ (alien:load-foreign filename
:libraries
(convert-supporting-libraries-to-string
supporting-libraries)))
:libraries
(convert-supporting-libraries-to-string
supporting-libraries)))
#+allegro (load filename)
#+openmcl (ccl:open-shared-library filename)
#+digitool (ccl:add-to-shared-library-search-path filename t)
#+allegro (load filename)
#+openmcl (ccl:open-shared-library filename)
#+digitool (ccl:add-to-shared-library-search-path filename t)
(push filename *loaded-libraries*)
t))))
(push filename *loaded-libraries*)
t))))