wrowe 01/06/27 22:45:06
Modified: lib iconv.c iconv.h iconv_ccs.c iconv_ces_euc.c
iconv_ces_iso2022.c iconv_int.c iconv_module.c
iconv_uc.c
Log:
More apr-ization (size/ssize/pools/stat etc)
Revision Changes Path
1.5 +9 -9 apr-iconv/lib/iconv.c
Index: iconv.c
===================================================================
RCS file: /home/cvs/apr-iconv/lib/iconv.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- iconv.c 2001/06/21 12:24:10 1.4
+++ iconv.c 2001/06/28 05:45:00 1.5
@@ -45,25 +45,25 @@
};
/*
- * size_t *result is what the iconv() returns but it is cleaner to return
+ * apr_size_t *result is what the iconv() returns but it is cleaner to return
* a status.
* APR_EBADF: cd is not valid.
* APR_BADARG: The ouput arguments are not valid.
*/
apr_status_t
-apr_iconv(iconv_t cd, const char **inbuf, size_t *inbytesleft,
- char **outbuf, size_t *outbytesleft, size_t *result)
+apr_iconv(iconv_t cd, const char **inbuf, apr_size_t *inbytesleft,
+ char **outbuf, apr_size_t *outbytesleft, apr_size_t *result)
{
struct iconv_converter *icp = (struct iconv_converter *)cd;
if (icp == NULL) {
- *result = (size_t) -1;
+ *result = (apr_size_t) -1;
return(APR_EBADF);
}
if (outbytesleft == NULL || *outbytesleft == 0 ||
outbuf == NULL || *outbuf == 0) {
- *result = (size_t) -1;
+ *result = (apr_size_t) -1;
return(APR_BADARG);
}
return ( icp->ic_desc->icd_conv(icp->ic_data,
@@ -123,17 +123,17 @@
const char *from_charset, apr_pool_t *ctx, iconv_t **res)
{
*res = iconv_open(to_charset, from_charset);
- if (*res == (size_t) -1)
+ if (*res == (apr_size_t) -1)
return apr_get_os_error();
return APR_SUCCESS;
}
apr_status_t apr_iconv(iconv_t cd, const char **inbuf,
- size_t *inbytesleft, char **outbuf,
- size_t *outbytesleft, size_t *result)
+ apr_size_t *inbytesleft, char **outbuf,
+ apr_size_t *outbytesleft, apr_size_t *result)
{
*result = iconv(cd , inbuf, inbytesleft, outbuf, outbytesleft);
- if (*result == (size_t) -1)
+ if (*result == (apr_size_t) -1)
return apr_get_os_error();
return APR_SUCCESS;
}
1.9 +7 -3 apr-iconv/lib/iconv.h
Index: iconv.h
===================================================================
RCS file: /home/cvs/apr-iconv/lib/iconv.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- iconv.h 2001/06/21 12:24:11 1.8
+++ iconv.h 2001/06/28 05:45:00 1.9
@@ -34,7 +34,11 @@
#include "apr.h"
#include "apr_pools.h"
+#ifdef WIN32
+#define ICONV_DEFAULT_PATH "iconv"
+#else
#include "apr_iconv_private.h" /* contains ICONV_DEFAULT_PATH */
+#endif
#include <stddef.h>
@@ -50,7 +54,7 @@
/* __BEGIN_DECLS */
apr_status_t apr_iconv_open(const char *, const char *, apr_pool_t *,
iconv_t *);
-apr_status_t apr_iconv(iconv_t, const char **, apr_size_t *, char **,
apr_size_t *, size_t *);
+apr_status_t apr_iconv(iconv_t, const char **, apr_size_t *, char **,
apr_size_t *, apr_size_t *);
apr_status_t apr_iconv_close(iconv_t, apr_pool_t *);
/* __END_DECLS */
@@ -88,7 +92,7 @@
/* _tbl_simple.c table_load_ccs() calls iconv_mod_load(...ctx) */
-typedef int iconv_mod_event_t(struct iconv_module *, int, apr_pool_t *ctx );
+typedef int iconv_mod_event_t(struct iconv_module *, int, apr_pool_t *ctx);
struct iconv_module_desc {
int imd_type;
@@ -248,7 +252,7 @@
typedef int iconv_ces_nbits_t(struct iconv_ces *);
typedef int iconv_ces_nbytes_t(struct iconv_ces *);
-typedef ssize_t iconv_ces_convert_from_ucs_t
+typedef apr_ssize_t iconv_ces_convert_from_ucs_t
(struct iconv_ces *data, ucs_t in,
unsigned char **outbuf, apr_size_t *outbytesleft);
1.5 +1 -1 apr-iconv/lib/iconv_ccs.c
Index: iconv_ccs.c
===================================================================
RCS file: /home/cvs/apr-iconv/lib/iconv_ccs.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- iconv_ccs.c 2001/06/21 12:24:11 1.4
+++ iconv_ccs.c 2001/06/28 05:45:01 1.5
@@ -34,7 +34,7 @@
#include "iconv.h" /* iconv_ccs_desc, iconv_ccs_module */
apr_status_t
-iconv_ccs_event(struct iconv_module *mod, int event)
+iconv_ccs_event(struct iconv_module *mod, int event, apr_pool_t *ctx)
{
/* struct iconv_ccs_desc *desc =
(struct iconv_ccs_desc *)mod->im_desc->imd_data;*/
1.5 +7 -7 apr-iconv/lib/iconv_ces_euc.c
Index: iconv_ces_euc.c
===================================================================
RCS file: /home/cvs/apr-iconv/lib/iconv_ces_euc.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- iconv_ces_euc.c 2001/06/21 12:24:12 1.4
+++ iconv_ces_euc.c 2001/06/28 05:45:01 1.5
@@ -50,7 +50,7 @@
{
struct iconv_module *depmod = ces->mod->im_deplist;
iconv_ces_euc_state_t *state;
- size_t stsz;
+ apr_size_t stsz;
int i;
stsz = sizeof(iconv_ces_euc_state_t) +
@@ -76,15 +76,15 @@
#define is_7_14bit(data) ((data)->nbits & 7)
#define is_7bit(data) ((data)->nbits & 1)
-ssize_t
+apr_ssize_t
iconv_euc_convert_from_ucs(struct iconv_ces *ces, ucs_t in,
- unsigned char **outbuf, size_t *outbytesleft)
+ unsigned char **outbuf, apr_size_t *outbytesleft)
{
iconv_ces_euc_state_t *euc_state = CESTOSTATE(ces);
const iconv_ces_euc_ccs_t *ccsattr;
const struct iconv_ccs_desc *ccs;
ucs_t res;
- size_t bytes;
+ apr_size_t bytes;
int i;
if (in == UCS_CHAR_NONE)
@@ -123,9 +123,9 @@
static ucs_t
cvt2ucs(const struct iconv_ccs_desc *ccs, const unsigned char *inbuf,
- size_t inbytesleft, int hi_plane, const unsigned char **bufptr)
+ apr_size_t inbytesleft, int hi_plane, const unsigned char **bufptr)
{
- size_t bytes = ccs->nbits > 8 ? 2 : 1;
+ apr_size_t bytes = ccs->nbits > 8 ? 2 : 1;
ucs_t ch = *(const unsigned char *)inbuf++;
if (inbytesleft < bytes)
@@ -145,7 +145,7 @@
ucs_t
iconv_euc_convert_to_ucs(struct iconv_ces *ces,
- const unsigned char **inbuf, size_t *inbytesleft)
+ const unsigned char **inbuf, apr_size_t *inbytesleft)
{
iconv_ces_euc_state_t *euc_state = CESTOSTATE(ces);
const iconv_ces_euc_ccs_t *ccsattr;
1.5 +13 -13 apr-iconv/lib/iconv_ces_iso2022.c
Index: iconv_ces_iso2022.c
===================================================================
RCS file: /home/cvs/apr-iconv/lib/iconv_ces_iso2022.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- iconv_ces_iso2022.c 2001/06/21 12:24:13 1.4
+++ iconv_ces_iso2022.c 2001/06/28 05:45:02 1.5
@@ -38,7 +38,7 @@
typedef struct {
const char *sequence;
- size_t length;
+ apr_size_t length;
int prefix_type;
} iconv_ces_iso2022_shift;
@@ -73,7 +73,7 @@
const struct iconv_ccs_desc *ccs;
iconv_ces_iso2022_state_t *state;
struct iconv_module *depmod;
- size_t stsz, shiftsz;
+ apr_size_t stsz, shiftsz;
int i;
shiftsz = SHIFT_LEN;
@@ -128,7 +128,7 @@
update_shift_state(const struct iconv_ces *ces, ucs_t ch)
{
struct iconv_ces_iso2022_state *iso_state = CESTOSTATE(ces);
- size_t i;
+ apr_size_t i;
if (ch == '\n' && iso_state->previous_char == '\r') {
for (i = 0; i < shift_num; i ++) {
@@ -141,15 +141,15 @@
#define is_7_14bit(ccs) ((ccs)->nbits & 7)
-static ssize_t
+static apr_ssize_t
cvt_ucs2iso(const struct iconv_ces *ces, ucs_t in,
- unsigned char **outbuf, size_t *outbytesleft, int cs)
+ unsigned char **outbuf, apr_size_t *outbytesleft, int cs)
{
struct iconv_ces_iso2022_state *iso_state = CESTOSTATE(ces);
const struct iconv_ces_iso2022_ccs *ccsattr;
const struct iconv_ccs_desc *ccs;
ucs_t res;
- size_t len = 0;
+ apr_size_t len = 0;
int need_designator, need_shift;
ccs = MODTOCCS(iso_state->ccsmod[cs]);
@@ -198,12 +198,12 @@
return 1;
}
-ssize_t
+apr_ssize_t
iconv_iso2022_convert_from_ucs(struct iconv_ces *ces,
- ucs_t in, unsigned char **outbuf, size_t *outbytesleft)
+ ucs_t in, unsigned char **outbuf, apr_size_t *outbytesleft)
{
struct iconv_ces_iso2022_state *iso_state = CESTOSTATE(ces);
- ssize_t res;
+ apr_ssize_t res;
int cs, i;
if (in == UCS_CHAR_NONE)
@@ -226,9 +226,9 @@
static ucs_t
cvt_iso2ucs(const struct iconv_ccs_desc *ccs, const unsigned char **inbuf,
- size_t *inbytesleft, int prefix_type)
+ apr_size_t *inbytesleft, int prefix_type)
{
- size_t bytes = ccs->nbits > 8 ? 2 : 1;
+ apr_size_t bytes = ccs->nbits > 8 ? 2 : 1;
ucs_t ch = **inbuf;
if (*inbytesleft < bytes)
@@ -246,14 +246,14 @@
ucs_t
iconv_iso2022_convert_to_ucs(struct iconv_ces *ces,
- const unsigned char **inbuf, size_t *inbytesleft)
+ const unsigned char **inbuf, apr_size_t *inbytesleft)
{
struct iconv_ces_iso2022_state *iso_state = CESTOSTATE(ces);
const struct iconv_ces_iso2022_ccs *ccsattr;
ucs_t res;
const unsigned char *ptr = *inbuf;
unsigned char byte;
- size_t len, left = *inbytesleft;
+ apr_size_t len, left = *inbytesleft;
int i;
while (left) {
1.5 +1 -1 apr-iconv/lib/iconv_int.c
Index: iconv_int.c
===================================================================
RCS file: /home/cvs/apr-iconv/lib/iconv_int.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- iconv_int.c 2001/06/21 12:24:13 1.4
+++ iconv_int.c 2001/06/28 05:45:02 1.5
@@ -39,7 +39,7 @@
#include "iconv.h"
apr_status_t
-iconv_malloc(size_t size, void **pp)
+iconv_malloc(apr_size_t size, void **pp)
{
void *p = malloc(size);
1.7 +12 -9 apr-iconv/lib/iconv_module.c
Index: iconv_module.c
===================================================================
RCS file: /home/cvs/apr-iconv/lib/iconv_module.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- iconv_module.c 2001/06/05 15:17:01 1.6
+++ iconv_module.c 2001/06/28 05:45:02 1.7
@@ -41,17 +41,20 @@
#include <sys/types.h>
#include <sys/stat.h>
-static int
-iconv_getpathname(char *buffer, const char *dir, const char *name)
+static apr_status_t
+iconv_getpathname(char *buffer, const char *dir, const char *name,
apr_pool_t *ctx)
{
- struct stat sb;
+ apr_status_t rv;
+ apr_finfo_t sb;
apr_snprintf(buffer, APR_PATH_MAX, "%s/%s", dir, name);
- return (stat(buffer, &sb) || ! S_ISREG(sb.st_mode)) ? EINVAL : 0;
+ if (rv = apr_stat(&sb, buffer, APR_FINFO_TYPE, ctx))
+ return rv;
+ return ((sb.filetype != APR_REG) ? APR_EINVAL : 0);
}
-static int
-iconv_getpath(char *buf, const char *name)
+static apr_status_t
+iconv_getpath(char *buf, const char *name, apr_pool_t *ctx)
{
char buffer[APR_PATH_MAX];
char *ptr;
@@ -70,7 +73,7 @@
if (p == NULL)
return ENOMEM;
for (ptr = p; (dir = strtok(p, ":")); p = NULL) {
- if (iconv_getpathname(buf, dir, buffer) == 0) {
+ if (iconv_getpathname(buf, dir, buffer, ctx) ==
0) {
free(ptr);
return 0;
}
@@ -78,7 +81,7 @@
free(ptr); /* otherwise memory leak */
}
}
- return iconv_getpathname(buf, ICONV_DEFAULT_PATH, buffer);
+ return iconv_getpathname(buf, ICONV_DEFAULT_PATH, buffer, ctx);
}
static int
@@ -112,7 +115,7 @@
void *handle;
int error;
- if (iconv_getpath(buffer, modname) != 0)
+ if (iconv_getpath(buffer, modname, ctx) != 0)
return EINVAL;
error = iconv_dlopen(buffer, "iconv_module", &handle, (void**)&mdesc,
ctx);
1.5 +6 -6 apr-iconv/lib/iconv_uc.c
Index: iconv_uc.c
===================================================================
RCS file: /home/cvs/apr-iconv/lib/iconv_uc.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- iconv_uc.c 2001/06/21 12:24:14 1.4
+++ iconv_uc.c 2001/06/28 05:45:03 1.5
@@ -67,24 +67,24 @@
}
apr_status_t
-iconv_uc_conv(void *data, const unsigned char **inbuf, size_t *inbytesleft,
- unsigned char **outbuf, size_t *outbytesleft, size_t *res)
+iconv_uc_conv(void *data, const unsigned char **inbuf, apr_size_t
*inbytesleft,
+ unsigned char **outbuf, apr_size_t *outbytesleft, apr_size_t *res)
{
struct iconv_uc *ic = (struct iconv_uc *)data;
const unsigned char *ptr;
ucs_t ch;
- ssize_t size;
+ apr_ssize_t size;
- *res = (size_t)(0);
+ *res = (apr_size_t)(0);
if (data == NULL) {
- *res = (size_t) -1;
+ *res = (apr_size_t) -1;
return APR_EBADF;
}
if (inbuf == NULL || *inbuf == NULL) {
if (ICONV_CES_CONVERT_FROM_UCS(ic->to, UCS_CHAR_NONE,
outbuf, outbytesleft) <= 0) {
- *res = (size_t) -1;
+ *res = (apr_size_t) -1;
return APR_BADARG; /* too big */
}
ICONV_CES_RESET(ic->from);