r1555: *** empty log message ***
[uffi.git] / tests / strtol.cl
index 850542223cd606a6659aeb943603c740a43d549d..8f52638bf0d744e51909b10dd4bc656b9217568e 100644 (file)
@@ -2,40 +2,29 @@
 ;;;; *************************************************************************
 ;;;; FILE IDENTIFICATION
 ;;;;
-;;;; Name:          getenv.cl
-;;;; Purpose:       UFFI Example file to strtol
+;;;; Name:          strtol.cl
+;;;; Purpose:       UFFI Example file to strtol, uses pointer arithmetic
 ;;;; Programmer:    Kevin M. Rosenberg
-;;;; Date Started:  Mar 2002
+;;;; Date Started:  Feb 2002
 ;;;;
-;;;; Copyright (c) 2002 Kevin M. Rosenberg
+;;;; $Id: strtol.cl,v 1.8 2002/03/14 21:03:12 kevin Exp $
 ;;;;
-;;;; $Id: strtol.cl,v 1.1 2002/03/09 19:55:33 kevin Exp $
+;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
-;;;; This file is part of UFFI. 
-;;;;
-;;;; UFFI is free software; you can redistribute it and/or modify
-;;;; it under the terms of the GNU General Public License (version 2) as
-;;;; published by the Free Software Foundation.
-;;;;
-;;;; UFFI is distributed in the hope that it will be useful,
-;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;;;; GNU General Public License for more details.
-;;;;
-;;;; You should have received a copy of the GNU General Public License
-;;;; along with UFFI; if not, write to the Free Software Foundation, Inc.,
-;;;; 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+;;;; UFFI users are granted the rights to distribute and use this software
+;;;; as governed by the terms of the Lisp Lesser GNU Public License
+;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
 ;;;; *************************************************************************
 
 (in-package :cl-user)
 
-(uffi:def-type char-ptr (* :char))
+(uffi:def-foreign-type char-ptr (* :char))
   
-;; This example does not use :c-string to pass the input string since
+;; This example does not use :cstring 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) 
+(uffi:def-function ("strtol" c-strtol) 
     ((nptr (* :char))
      (endptr (* char-ptr))
      (base :int))
@@ -63,3 +52,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")))
+