cosmetic changes
This commit is contained in:
parent
fe54b1315b
commit
f0386657be
|
@ -1,5 +1,9 @@
|
||||||
#include "picrin.h"
|
#include "picrin.h"
|
||||||
|
|
||||||
|
#ifndef EOF
|
||||||
|
# define EOF (-1)
|
||||||
|
#endif
|
||||||
|
|
||||||
xFILE *xfunopen(pic_state *pic, void *cookie, int (*read)(pic_state *, void *, char *, int), int (*write)(pic_state *, void *, const char *, int), long (*seek)(pic_state *, void *, long, int), int (*close)(pic_state *, void *)) {
|
xFILE *xfunopen(pic_state *pic, void *cookie, int (*read)(pic_state *, void *, char *, int), int (*write)(pic_state *, void *, const char *, int), long (*seek)(pic_state *, void *, long, int), int (*close)(pic_state *, void *)) {
|
||||||
xFILE *fp;
|
xFILE *fp;
|
||||||
|
|
||||||
|
@ -137,6 +141,15 @@ int xfflush(pic_state *pic, xFILE *f) {
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define xgetc(pic, p) \
|
||||||
|
((--(p)->cnt >= 0) \
|
||||||
|
? (unsigned char) *(p)->ptr++ \
|
||||||
|
: x_fillbuf((pic), p))
|
||||||
|
#define xputc(pic, x, p) \
|
||||||
|
((--(p)->cnt >= 0 && !(((p)->flag & X_LNBUF) && (x) == '\n')) \
|
||||||
|
? *(p)->ptr++ = (x) \
|
||||||
|
: x_flushbuf((pic), (x), (p)))
|
||||||
|
|
||||||
int xfputc(pic_state *pic, int x, xFILE *fp) {
|
int xfputc(pic_state *pic, int x, xFILE *fp) {
|
||||||
return xputc(pic, x, fp);
|
return xputc(pic, x, fp);
|
||||||
}
|
}
|
||||||
|
@ -174,35 +187,6 @@ char *xfgets(pic_state *pic, char *s, int size, xFILE *stream) {
|
||||||
return (c == EOF && buf == s) ? NULL : s;
|
return (c == EOF && buf == s) ? NULL : s;
|
||||||
}
|
}
|
||||||
|
|
||||||
int xputs(pic_state *pic, const char *s) {
|
|
||||||
int i = 1;
|
|
||||||
|
|
||||||
while(*s != '\0') {
|
|
||||||
if (xputchar(pic, *s++) == EOF)
|
|
||||||
return EOF;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
if (xputchar(pic, '\n') == EOF) {
|
|
||||||
return EOF;
|
|
||||||
}
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
|
|
||||||
char *xgets(pic_state *pic, char *s) {
|
|
||||||
int c;
|
|
||||||
char *buf;
|
|
||||||
|
|
||||||
xfflush(pic, NULL);
|
|
||||||
|
|
||||||
buf = s;
|
|
||||||
while ((c = xgetchar(pic)) != EOF && c != '\n') {
|
|
||||||
*buf++ = c;
|
|
||||||
}
|
|
||||||
*buf = '\0';
|
|
||||||
|
|
||||||
return (c == EOF && buf == s) ? NULL : s;
|
|
||||||
}
|
|
||||||
|
|
||||||
int xungetc(int c, xFILE *fp) {
|
int xungetc(int c, xFILE *fp) {
|
||||||
unsigned char uc = c;
|
unsigned char uc = c;
|
||||||
|
|
||||||
|
@ -270,25 +254,6 @@ long xfseek(pic_state *pic, xFILE *fp, long offset, int whence) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
long xftell(pic_state *pic, xFILE *fp) {
|
|
||||||
return xfseek(pic, fp, 0, XSEEK_CUR);
|
|
||||||
}
|
|
||||||
|
|
||||||
void xrewind(pic_state *pic, xFILE *fp) {
|
|
||||||
xfseek(pic, fp, 0, XSEEK_SET);
|
|
||||||
xclearerr(fp);
|
|
||||||
}
|
|
||||||
|
|
||||||
int xprintf(pic_state *pic, const char *fmt, ...) {
|
|
||||||
va_list ap;
|
|
||||||
int n;
|
|
||||||
|
|
||||||
va_start(ap, fmt);
|
|
||||||
n = xvfprintf(pic, xstdout, fmt, ap);
|
|
||||||
va_end(ap);
|
|
||||||
return n;
|
|
||||||
}
|
|
||||||
|
|
||||||
int xfprintf(pic_state *pic, xFILE *stream, const char *fmt, ...) {
|
int xfprintf(pic_state *pic, xFILE *stream, const char *fmt, ...) {
|
||||||
va_list ap;
|
va_list ap;
|
||||||
int n;
|
int n;
|
||||||
|
@ -435,12 +400,13 @@ file_close(pic_state PIC_UNUSED(*pic), void *cookie) {
|
||||||
}
|
}
|
||||||
|
|
||||||
xFILE *xfopen_file(pic_state *pic, FILE *fp, const char *mode) {
|
xFILE *xfopen_file(pic_state *pic, FILE *fp, const char *mode) {
|
||||||
switch (*mode) {
|
xFILE *f;
|
||||||
case 'r':
|
if (*mode == 'r') {
|
||||||
return xfunopen(pic, fp, file_read, 0, file_seek, file_close);
|
f = xfunopen(pic, fp, file_read, 0, file_seek, file_close);
|
||||||
default:
|
} else {
|
||||||
return xfunopen(pic, fp, 0, file_write, file_seek, file_close);
|
f = xfunopen(pic, fp, 0, file_write, file_seek, file_close);
|
||||||
}
|
}
|
||||||
|
return f;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -149,33 +149,35 @@ struct pic_string *pic_vstrf_value(pic_state *, const char *fmt, va_list ap);
|
||||||
struct pic_blob *pic_blob_value(pic_state *, const unsigned char *buf, int len);
|
struct pic_blob *pic_blob_value(pic_state *, const unsigned char *buf, int len);
|
||||||
struct pic_data *pic_data_value(pic_state *, void *ptr, const pic_data_type *type);
|
struct pic_data *pic_data_value(pic_state *, void *ptr, const pic_data_type *type);
|
||||||
|
|
||||||
#define PIC_TYPE_INVALID 1
|
enum {
|
||||||
#define PIC_TYPE_FLOAT 2
|
PIC_TYPE_INVALID = 1,
|
||||||
#define PIC_TYPE_INT 3
|
PIC_TYPE_FLOAT = 2,
|
||||||
#define PIC_TYPE_CHAR 4
|
PIC_TYPE_INT = 3,
|
||||||
#define PIC_TYPE_EOF 5
|
PIC_TYPE_CHAR = 4,
|
||||||
#define PIC_TYPE_UNDEF 6
|
PIC_TYPE_EOF = 5,
|
||||||
#define PIC_TYPE_TRUE 8
|
PIC_TYPE_UNDEF = 6,
|
||||||
#define PIC_TYPE_NIL 7
|
PIC_TYPE_TRUE = 8,
|
||||||
#define PIC_TYPE_FALSE 9
|
PIC_TYPE_NIL = 7,
|
||||||
#define PIC_IVAL_END 10
|
PIC_TYPE_FALSE = 9,
|
||||||
/* --------------------- */
|
PIC_IVAL_END = 10,
|
||||||
#define PIC_TYPE_STRING 16
|
/* -------------------- */
|
||||||
#define PIC_TYPE_VECTOR 17
|
PIC_TYPE_STRING = 16,
|
||||||
#define PIC_TYPE_BLOB 18
|
PIC_TYPE_VECTOR = 17,
|
||||||
#define PIC_TYPE_PROC 19
|
PIC_TYPE_BLOB = 18,
|
||||||
#define PIC_TYPE_PORT 20
|
PIC_TYPE_PROC = 19,
|
||||||
#define PIC_TYPE_ERROR 21
|
PIC_TYPE_PORT = 20,
|
||||||
#define PIC_TYPE_ID 22
|
PIC_TYPE_ERROR = 21,
|
||||||
#define PIC_TYPE_ENV 23
|
PIC_TYPE_ID = 22,
|
||||||
#define PIC_TYPE_DATA 24
|
PIC_TYPE_ENV = 23,
|
||||||
#define PIC_TYPE_DICT 25
|
PIC_TYPE_DATA = 24,
|
||||||
#define PIC_TYPE_WEAK 26
|
PIC_TYPE_DICT = 25,
|
||||||
#define PIC_TYPE_RECORD 27
|
PIC_TYPE_WEAK = 26,
|
||||||
#define PIC_TYPE_SYMBOL 28
|
PIC_TYPE_RECORD = 27,
|
||||||
#define PIC_TYPE_PAIR 29
|
PIC_TYPE_SYMBOL = 28,
|
||||||
#define PIC_TYPE_CXT 30
|
PIC_TYPE_PAIR = 29,
|
||||||
#define PIC_TYPE_CP 31
|
PIC_TYPE_CXT = 30,
|
||||||
|
PIC_TYPE_CP = 31
|
||||||
|
};
|
||||||
|
|
||||||
#define pic_undef_p(pic,v) (pic_type(pic,v) == PIC_TYPE_UNDEF)
|
#define pic_undef_p(pic,v) (pic_type(pic,v) == PIC_TYPE_UNDEF)
|
||||||
#define pic_int_p(pic,v) (pic_type(pic,v) == PIC_TYPE_INT)
|
#define pic_int_p(pic,v) (pic_type(pic,v) == PIC_TYPE_INT)
|
||||||
|
|
|
@ -5,10 +5,6 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef EOF
|
|
||||||
# define EOF (-1)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define XBUFSIZ 1024
|
#define XBUFSIZ 1024
|
||||||
#define XOPEN_MAX 1024
|
#define XOPEN_MAX 1024
|
||||||
|
|
||||||
|
@ -33,7 +29,7 @@ typedef struct {
|
||||||
#define xstdout (&pic->files[1])
|
#define xstdout (&pic->files[1])
|
||||||
#define xstderr (&pic->files[2])
|
#define xstderr (&pic->files[2])
|
||||||
|
|
||||||
enum _flags {
|
enum {
|
||||||
X_READ = 01,
|
X_READ = 01,
|
||||||
X_WRITE = 02,
|
X_WRITE = 02,
|
||||||
X_UNBUF = 04,
|
X_UNBUF = 04,
|
||||||
|
@ -45,23 +41,29 @@ enum _flags {
|
||||||
#define xclearerr(p) ((p)->flag &= ~(X_EOF | X_ERR))
|
#define xclearerr(p) ((p)->flag &= ~(X_EOF | X_ERR))
|
||||||
#define xfeof(p) (((p)->flag & X_EOF) != 0)
|
#define xfeof(p) (((p)->flag & X_EOF) != 0)
|
||||||
#define xferror(p) (((p)->flag & X_ERR) != 0)
|
#define xferror(p) (((p)->flag & X_ERR) != 0)
|
||||||
#define xfileno(p) ((p)->fd)
|
|
||||||
|
|
||||||
#define xgetc(pic, p) \
|
|
||||||
((--(p)->cnt >= 0) \
|
|
||||||
? (unsigned char) *(p)->ptr++ \
|
|
||||||
: x_fillbuf((pic), p))
|
|
||||||
#define xputc(pic, x, p) \
|
|
||||||
((--(p)->cnt >= 0 && !(((p)->flag & X_LNBUF) && (x) == '\n')) \
|
|
||||||
? *(p)->ptr++ = (x) \
|
|
||||||
: x_flushbuf((pic), (x), (p)))
|
|
||||||
#define xgetchar(pic) xgetc((pic), xstdin)
|
|
||||||
#define xputchar(pic, x) xputc((pic), (x), xstdout)
|
|
||||||
|
|
||||||
/* resource aquisition */
|
|
||||||
xFILE *xfunopen(pic_state *, void *cookie, int (*read)(pic_state *, void *, char *, int), int (*write)(pic_state *, void *, const char *, int), long (*seek)(pic_state *, void *, long, int), int (*close)(pic_state *, void *));
|
xFILE *xfunopen(pic_state *, void *cookie, int (*read)(pic_state *, void *, char *, int), int (*write)(pic_state *, void *, const char *, int), long (*seek)(pic_state *, void *, long, int), int (*close)(pic_state *, void *));
|
||||||
|
|
||||||
|
enum {
|
||||||
|
XSEEK_CUR,
|
||||||
|
XSEEK_END,
|
||||||
|
XSEEK_SET
|
||||||
|
};
|
||||||
|
|
||||||
|
size_t xfread(pic_state *, void *, size_t, size_t, xFILE *);
|
||||||
|
size_t xfwrite(pic_state *, const void *, size_t, size_t, xFILE *);
|
||||||
|
long xfseek(pic_state *, xFILE *, long, int);
|
||||||
|
int xfflush(pic_state *, xFILE *);
|
||||||
int xfclose(pic_state *, xFILE *);
|
int xfclose(pic_state *, xFILE *);
|
||||||
|
|
||||||
|
int xfputc(pic_state *, int, xFILE *);
|
||||||
|
int xfgetc(pic_state *, xFILE *);
|
||||||
|
int xfputs(pic_state *, const char *, xFILE *);
|
||||||
|
char *xfgets(pic_state *, char *, int, xFILE *);
|
||||||
|
int xungetc(int, xFILE *);
|
||||||
|
int xfprintf(pic_state *, xFILE *, const char *, ...);
|
||||||
|
int xvfprintf(pic_state *, xFILE *, const char *, va_list);
|
||||||
|
|
||||||
#if PIC_ENABLE_STDIO
|
#if PIC_ENABLE_STDIO
|
||||||
xFILE *xfopen_file(pic_state *, FILE *, const char *mode);
|
xFILE *xfopen_file(pic_state *, FILE *, const char *mode);
|
||||||
#endif
|
#endif
|
||||||
|
@ -69,39 +71,6 @@ xFILE *xfopen_buf(pic_state *, const char *buf, int len, const char *mode);
|
||||||
int xfget_buf(pic_state *, xFILE *file, const char **buf, int *len);
|
int xfget_buf(pic_state *, xFILE *file, const char **buf, int *len);
|
||||||
xFILE *xfopen_null(pic_state *, const char *mode);
|
xFILE *xfopen_null(pic_state *, const char *mode);
|
||||||
|
|
||||||
/* buffer management */
|
|
||||||
int x_fillbuf(pic_state *, xFILE *);
|
|
||||||
int x_flushbuf(pic_state *, int, xFILE *);
|
|
||||||
int xfflush(pic_state *, xFILE *);
|
|
||||||
|
|
||||||
/* direct IO */
|
|
||||||
size_t xfread(pic_state *, void *, size_t, size_t, xFILE *);
|
|
||||||
size_t xfwrite(pic_state *, const void *, size_t, size_t, xFILE *);
|
|
||||||
|
|
||||||
enum {
|
|
||||||
XSEEK_CUR,
|
|
||||||
XSEEK_END,
|
|
||||||
XSEEK_SET
|
|
||||||
};
|
|
||||||
|
|
||||||
/* indicator positioning */
|
|
||||||
long xfseek(pic_state *, xFILE *, long, int);
|
|
||||||
long xftell(pic_state *, xFILE *);
|
|
||||||
void xrewind(pic_state *, xFILE *);
|
|
||||||
|
|
||||||
/* character IO */
|
|
||||||
int xfputc(pic_state *, int, xFILE *);
|
|
||||||
int xfgetc(pic_state *, xFILE *);
|
|
||||||
int xfputs(pic_state *, const char *, xFILE *);
|
|
||||||
char *xfgets(pic_state *, char *, int, xFILE *);
|
|
||||||
int xputs(pic_state *, const char *);
|
|
||||||
int xungetc(int, xFILE *);
|
|
||||||
|
|
||||||
/* formatted I/O */
|
|
||||||
int xprintf(pic_state *, const char *, ...);
|
|
||||||
int xfprintf(pic_state *, xFILE *, const char *, ...);
|
|
||||||
int xvfprintf(pic_state *, xFILE *, const char *, va_list);
|
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
#if defined(__cplusplus)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
#include "picrin.h"
|
#include "picrin.h"
|
||||||
#include "picrin/object.h"
|
#include "picrin/object.h"
|
||||||
|
|
||||||
|
#undef EOF
|
||||||
|
#define EOF (-1)
|
||||||
|
|
||||||
struct pic_port *
|
struct pic_port *
|
||||||
pic_make_port(pic_state *pic, xFILE *file)
|
pic_make_port(pic_state *pic, xFILE *file)
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
#include "picrin.h"
|
#include "picrin.h"
|
||||||
#include "picrin/object.h"
|
#include "picrin/object.h"
|
||||||
|
|
||||||
|
#undef EOF
|
||||||
|
#define EOF (-1)
|
||||||
|
|
||||||
KHASH_DEFINE(read, int, pic_value, kh_int_hash_func, kh_int_hash_equal)
|
KHASH_DEFINE(read, int, pic_value, kh_int_hash_func, kh_int_hash_equal)
|
||||||
|
|
||||||
static pic_value read(pic_state *pic, struct pic_port *port, int c);
|
static pic_value read(pic_state *pic, struct pic_port *port, int c);
|
||||||
|
|
Loading…
Reference in New Issue