]> git.sur5r.net Git - cc65/blobdiff - libsrc/common/_scanf.h
cleanups and add more comments
[cc65] / libsrc / common / _scanf.h
index a385e4ae44f35d00ca84ef2326fe8215916255c5..0a8b09b7dec24741799e971e8a6ff5a74a1ff479 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * _scanf.h
  *
- * (C) Copyright 2001 Ullrich von Bassewitz (uz@cc65.org)
+ * (c) Copyright 2004, Ullrich von Bassewitz <uz@cc65.org>
  *
  */
 
 
 
 
-/* Forward */
-struct indesc;
-
 /* Type of the function that is called to input data. The function will
  * return EOF if no more data is available.
  */
-typedef char (*infunc) (struct indesc* desc);
+typedef int __fastcall__ (*getfunc) (void* data);
+
+/* Type of the function that is called to put back unused data */
+typedef int __fastcall__ (*ungetfunc) (int c, void* data);
 
 
 
 /* Control structure passed to the low level worker function.
- * Beware: The low level functions will access the structure on the assembly
- * level, so check this when altering the structure.
+ * Beware: This structure is mirrored in the _scanf.inc assembler include
+ * file, so check this when altering the structure.
  */
-struct indesc {
-    infunc         fin;        /* Pointer to input routine */
-    unsigned       ccount;     /* Number of chars read */
-
-    /* Fields used outside of _scanf */
-    char*                  buf;        /* Pointer to input buffer */
-    unsigned       size;       /* Size of input buffer */
-    unsigned       fill;       /* Fill mark of input buffer */
-    unsigned       ridx;       /* Read index of input buffer */
+struct scanfdata {
+    getfunc     get;    /* Pointer to input routine */
+    ungetfunc   unget;  /* Pointer to pushback routine */
+    void*       data;   /* Pointer to struct. used outside of _scanf() */
 };
 
 
 
 /* Internal scanning routine */
-int _scanf (struct indesc* d, const char* format, va_list ap);
+int __fastcall__ _scanf (const struct scanfdata* d, const char* format, va_list ap);
 
 
 
@@ -49,4 +44,3 @@ int _scanf (struct indesc* d, const char* format, va_list ap);
 
 
 
-