From: espen Date: Wed, 26 Apr 2006 19:19:14 +0000 (+0000) Subject: Modified DEFAULT-ALIEN-FNAME X-Git-Tag: clg-0-93~298 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/clg/commitdiff_plain/b04fa0321968bd334d50dcce3120260ad9b00d00 Modified DEFAULT-ALIEN-FNAME --- diff --git a/gffi/interface.lisp b/gffi/interface.lisp index 3c56e1b..7800692 100644 --- a/gffi/interface.lisp +++ b/gffi/interface.lisp @@ -20,7 +20,7 @@ ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -;; $Id: interface.lisp,v 1.1 2006/04/25 20:36:05 espen Exp $ +;; $Id: interface.lisp,v 1.2 2006/04/26 19:19:14 espen Exp $ (in-package "GFFI") @@ -53,17 +53,11 @@ (defmacro use-prefix (prefix &optional (package *package*)) (defun default-alien-fname (lisp-name) (let* ((name (substitute #\_ #\- (string-downcase lisp-name))) - (stripped-name - (cond - ((and - (char= (char name 0) #\%) - (string= "_p" name :start2 (- (length name) 2))) - (subseq name 1 (- (length name) 2))) - ((char= (char name 0) #\%) - (subseq name 1)) - ((string= "_p" name :start2 (- (length name) 2)) - (subseq name 0 (- (length name) 2))) - (name))) + (start (position-if-not #'(lambda (char) (char= char #\%)) name)) + (end (if (string= "_p" name :start2 (- (length name) 2)) + (- (length name) 2) + (length name))) + (stripped-name (subseq name start end)) (prefix (package-prefix *package*))) (if (or (not prefix) (string= prefix "")) stripped-name