r1525: *** empty log message ***
[uffi.git] / examples / strtol.cl
index 850542223cd606a6659aeb943603c740a43d549d..387d23b26b639b4a8fbf7705d1ecc1a20ccf0b14 100644 (file)
@@ -9,7 +9,7 @@
 ;;;;
 ;;;; Copyright (c) 2002 Kevin M. Rosenberg
 ;;;;
-;;;; $Id: strtol.cl,v 1.1 2002/03/09 19:55:33 kevin Exp $
+;;;; $Id: strtol.cl,v 1.4 2002/03/10 04:36:04 kevin Exp $
 ;;;;
 ;;;; This file is part of UFFI. 
 ;;;;
 
 (in-package :cl-user)
 
-(uffi:def-type char-ptr (* :char))
+(uffi:def-type char-ptr (* :unsigned-char))
   
 ;; This example does not use :c-string to pass the input string since
 ;; the routine needs to do pointer arithmetic to see how many characters
 ;; were parsed
 
-(uffi:def-routine ("strtol" c-strtol) 
-    ((nptr (* :char))
+(uffi:def-function ("strtol" c-strtol) 
+    ((nptr (* :unsigned-char))
      (endptr (* char-ptr))
      (base :int))
   :returning :long)
@@ -63,3 +63,13 @@ of first non-valid character"
      (t
       (values value chars-parsed)))))
 
+
+#+test-uffi
+(progn
+  (flet ((print-results (str)
+          (multiple-value-bind (result flag) (strtol str)
+            (format t "~&(strtol ~S) => ~S,~S" str result flag))))
+    (print-results "55")
+    (print-results "55.3")
+    (print-results "a")))
+