libfatstr -> libfatptr
This commit is contained in:
parent
565ef686c5
commit
8905d938fe
1
libfatptr/Makefile
Normal file
1
libfatptr/Makefile
Normal file
@ -0,0 +1 @@
|
|||||||
|
libfatptr.o:
|
@ -1,31 +1,31 @@
|
|||||||
#include <stdlib.h> /* free(3), malloc(3), realloc(3) */
|
#include <stdlib.h> /* free(3), malloc(3), realloc(3) */
|
||||||
#include <string.h> /* strncpy(3), size_t */
|
#include <string.h> /* strncpy(3), size_t */
|
||||||
#include "libfatstr.h"
|
#include "libfatptr.h"
|
||||||
|
|
||||||
/* quick and dirty ASCII edition */
|
/* quick and dirty ASCII edition */
|
||||||
|
|
||||||
/* Size by which to grow memory allocations. */
|
/* Size by which to grow memory allocations. */
|
||||||
static size_t FatStr_growinterval = 100; /* in sizeof chars */
|
static size_t FatPtr_growinterval = 100; /* in sizeof chars */
|
||||||
|
|
||||||
struct FatStr *
|
struct FatPtr *
|
||||||
FatStr_append(struct FatStr *p, FatStr_scalar_t c){
|
FatPtr_append(struct FatPtr *p, FatPtr_scalar_t c){
|
||||||
FatStr_vector_t t;
|
FatPtr_vector_t t;
|
||||||
|
|
||||||
if(p == NULL || (p->s + (sizeof *(p->v)) > p->a
|
if(p == NULL || (p->s + (sizeof *(p->v)) > p->a
|
||||||
&& FatStr_grow(p, FatStr_growinterval) == NULL))
|
&& FatPtr_grow(p, FatPtr_growinterval) == NULL))
|
||||||
return NULL;
|
return NULL;
|
||||||
(p->v)[(p->s)++] = c;
|
(p->v)[(p->s)++] = c;
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct FatStr *
|
struct FatPtr *
|
||||||
FatStr_construct(struct FatStr *p){
|
FatPtr_construct(struct FatPtr *p){
|
||||||
|
|
||||||
return FatStr_grow(FatStr_initialize(p), FatStr_growinterval);
|
return FatPtr_grow(FatPtr_initialize(p), FatPtr_growinterval);
|
||||||
}
|
}
|
||||||
|
|
||||||
char *
|
char *
|
||||||
FatStr_convert(struct FatStr *p){
|
FatPtr_convert(struct FatPtr *p){
|
||||||
char *r;
|
char *r;
|
||||||
|
|
||||||
/* allocation might be wrong */
|
/* allocation might be wrong */
|
||||||
@ -35,19 +35,19 @@ FatStr_convert(struct FatStr *p){
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct FatStr *
|
struct FatPtr *
|
||||||
FatStr_destruct(struct FatStr *p){
|
FatPtr_destruct(struct FatPtr *p){
|
||||||
|
|
||||||
if(p != NULL){
|
if(p != NULL){
|
||||||
free(p->v);
|
free(p->v);
|
||||||
FatStr_initialize(p);
|
FatPtr_initialize(p);
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct FatStr *
|
struct FatPtr *
|
||||||
FatStr_grow(struct FatStr *p, size_t units){
|
FatPtr_grow(struct FatPtr *p, size_t units){
|
||||||
FatStr_vector_t t;
|
FatPtr_vector_t t;
|
||||||
|
|
||||||
if(p == NULL || (t = realloc(p->v, p->a + units)) == NULL)
|
if(p == NULL || (t = realloc(p->v, p->a + units)) == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -56,8 +56,8 @@ FatStr_grow(struct FatStr *p, size_t units){
|
|||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct FatStr *
|
struct FatPtr *
|
||||||
FatStr_initialize(struct FatStr *p){
|
FatPtr_initialize(struct FatPtr *p){
|
||||||
|
|
||||||
if(p != NULL){
|
if(p != NULL){
|
||||||
p->a = 0;
|
p->a = 0;
|
||||||
@ -67,6 +67,6 @@ FatStr_initialize(struct FatStr *p){
|
|||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct FatStr *
|
struct FatPtr *
|
||||||
FatStr_trimfront(struct FatStr *p, size_t units){
|
FatPtr_trimfront(struct FatPtr *p, size_t units){
|
||||||
}
|
}
|
40
libfatptr/libfatptr.h
Normal file
40
libfatptr/libfatptr.h
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
/* #include <stdlib.h> /* size_t */
|
||||||
|
|
||||||
|
#if !defined FatPtr_size_t
|
||||||
|
# define FatPtr_size_t size_t
|
||||||
|
#endif
|
||||||
|
#if !defined FatPtr_scalar_t
|
||||||
|
# define FatPtr_scalar_t int
|
||||||
|
#endif
|
||||||
|
#define FatPtr_vector_t FatPtr_scalar_t *
|
||||||
|
|
||||||
|
struct FatPtr{
|
||||||
|
FatPtr_size_t a; /* allocation in sizeof char */
|
||||||
|
FatPtr_size_t s; /* actual size in sizeof *v */
|
||||||
|
FatPtr_vector_t v; /* vector */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* FatPtr_append
|
||||||
|
* - FatPtr *p: object to which to append
|
||||||
|
* - FatPtr_scalar_t c: scalar to be appended
|
||||||
|
* Returns NULL if the operation failed (due to malloc(3)) or if p was NULL.
|
||||||
|
* Otherwise returns p. */
|
||||||
|
struct FatPtr *FatPtr_append(struct FatPtr *p, FatPtr_scalar_t c);
|
||||||
|
|
||||||
|
struct FatPtr *FatPtr_construct(struct FatPtr *p);
|
||||||
|
|
||||||
|
/* FatPtr_convert
|
||||||
|
* - FatPtr *p: object to convert
|
||||||
|
* Returns NULL if the operation failed (due to malloc(3)) or if p was NULL.
|
||||||
|
* Otherwise returns a malloc(3)d char * with the current content of p, which
|
||||||
|
* should be free(3)d when no longer in use. */
|
||||||
|
char *FatPtr_convert(struct FatPtr *p);
|
||||||
|
|
||||||
|
/* FatPtr_destruct
|
||||||
|
* - FatPtr *p: object to destruct
|
||||||
|
* Returns NULL. */
|
||||||
|
struct FatPtr *FatPtr_destruct(struct FatPtr *p);
|
||||||
|
|
||||||
|
struct FatPtr *FatPtr_grow(struct FatPtr *p, size_t units);
|
||||||
|
struct FatPtr *FatPtr_initialize(struct FatPtr *p);
|
||||||
|
struct FatPtr *FatPtr_trimfront(struct FatPtr *p, size_t units);
|
@ -1 +0,0 @@
|
|||||||
libfatstr.o:
|
|
@ -1,37 +0,0 @@
|
|||||||
/* #include <stdlib.h> /* size_t */
|
|
||||||
/* These definitions aren't set in stone. */
|
|
||||||
typedef size_t FatStr_size_t;
|
|
||||||
typedef int FatStr_scalar_t;
|
|
||||||
typedef FatStr_scalar_t * FatStr_vector_t;
|
|
||||||
|
|
||||||
/* This definition is dependable. */
|
|
||||||
struct FatStr{
|
|
||||||
FatStr_size_t a; /* allocation in sizeof char */
|
|
||||||
FatStr_size_t s; /* actual size in sizeof *v */
|
|
||||||
FatStr_vector_t v; /* vector */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* FatStr_append
|
|
||||||
* - FatStr *p: object to which to append
|
|
||||||
* - FatStr_scalar_t c: scalar to be appended
|
|
||||||
* Returns NULL if the operation failed (due to malloc(3)) or if p was NULL.
|
|
||||||
* Otherwise returns p. */
|
|
||||||
struct FatStr *FatStr_append(struct FatStr *p, FatStr_scalar_t c);
|
|
||||||
|
|
||||||
struct FatStr *FatStr_construct(struct FatStr *p);
|
|
||||||
|
|
||||||
/* FatStr_convert
|
|
||||||
* - FatStr *p: object to convert
|
|
||||||
* Returns NULL if the operation failed (due to malloc(3)) or if p was NULL.
|
|
||||||
* Otherwise returns a malloc(3)d char * with the current content of p, which
|
|
||||||
* should be free(3)d when no longer in use. */
|
|
||||||
char *FatStr_convert(struct FatStr *p);
|
|
||||||
|
|
||||||
/* FatStr_destruct
|
|
||||||
* - FatStr *p: object to destruct
|
|
||||||
* Returns NULL. */
|
|
||||||
struct FatStr *FatStr_destruct(struct FatStr *p);
|
|
||||||
|
|
||||||
struct FatStr *FatStr_grow(struct FatStr *p, size_t units);
|
|
||||||
struct FatStr *FatStr_initialize(struct FatStr *p);
|
|
||||||
struct FatStr *FatStr_trimfront(struct FatStr *p, size_t units);
|
|
Loading…
Reference in New Issue
Block a user