mirror of
https://github.com/lunarmodules/luasocket.git
synced 2024-12-26 12:28:21 +01:00
Got rid of some of the typecasts...
This commit is contained in:
parent
32a3b93512
commit
f210508b22
38
src/mime.c
38
src/mime.c
@ -21,8 +21,8 @@
|
|||||||
#define SP 0x20
|
#define SP 0x20
|
||||||
|
|
||||||
typedef unsigned char UC;
|
typedef unsigned char UC;
|
||||||
static const UC CRLF[2] = {CR, LF};
|
static const char CRLF[2] = {CR, LF};
|
||||||
static const UC EQCRLF[3] = {'=', CR, LF};
|
static const char EQCRLF[3] = {'=', CR, LF};
|
||||||
|
|
||||||
/*=========================================================================*\
|
/*=========================================================================*\
|
||||||
* Internal function prototypes.
|
* Internal function prototypes.
|
||||||
@ -44,7 +44,7 @@ static void qpfill(UC *qpclass, UC *qpunbase);
|
|||||||
static void qpquote(UC c, luaL_Buffer *buffer);
|
static void qpquote(UC c, luaL_Buffer *buffer);
|
||||||
static size_t qpdecode(UC c, UC *input, size_t size, luaL_Buffer *buffer);
|
static size_t qpdecode(UC c, UC *input, size_t size, luaL_Buffer *buffer);
|
||||||
static size_t qpencode(UC c, UC *input, size_t size,
|
static size_t qpencode(UC c, UC *input, size_t size,
|
||||||
const UC *marker, luaL_Buffer *buffer);
|
const char *marker, luaL_Buffer *buffer);
|
||||||
|
|
||||||
/* code support functions */
|
/* code support functions */
|
||||||
static luaL_reg func[] = {
|
static luaL_reg func[] = {
|
||||||
@ -118,18 +118,18 @@ static int mime_global_fmt(lua_State *L)
|
|||||||
const UC *last = input + size;
|
const UC *last = input + size;
|
||||||
int length = (int) luaL_checknumber(L, 2);
|
int length = (int) luaL_checknumber(L, 2);
|
||||||
int left = (int) luaL_optnumber(L, 3, length);
|
int left = (int) luaL_optnumber(L, 3, length);
|
||||||
const UC *marker = (UC *) luaL_optstring(L, 4, (char *) CRLF);
|
const char *marker = luaL_optstring(L, 4, CRLF);
|
||||||
luaL_Buffer buffer;
|
luaL_Buffer buffer;
|
||||||
luaL_buffinit(L, &buffer);
|
luaL_buffinit(L, &buffer);
|
||||||
while (input < last) {
|
while (input < last) {
|
||||||
luaL_putchar(&buffer, *input++);
|
luaL_putchar(&buffer, *input++);
|
||||||
if (--left <= 0) {
|
if (--left <= 0) {
|
||||||
luaL_addstring(&buffer, (char *) marker);
|
luaL_addstring(&buffer, marker);
|
||||||
left = length;
|
left = length;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!input && left < length) {
|
if (!input && left < length) {
|
||||||
luaL_addstring(&buffer, (char *) marker);
|
luaL_addstring(&buffer, marker);
|
||||||
left = length;
|
left = length;
|
||||||
}
|
}
|
||||||
luaL_pushresult(&buffer);
|
luaL_pushresult(&buffer);
|
||||||
@ -352,7 +352,7 @@ static void qpquote(UC c, luaL_Buffer *buffer)
|
|||||||
* Once we are sure, output the to the buffer, in the correct form.
|
* Once we are sure, output the to the buffer, in the correct form.
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
static size_t qpencode(UC c, UC *input, size_t size,
|
static size_t qpencode(UC c, UC *input, size_t size,
|
||||||
const UC *marker, luaL_Buffer *buffer)
|
const char *marker, luaL_Buffer *buffer)
|
||||||
{
|
{
|
||||||
input[size++] = c;
|
input[size++] = c;
|
||||||
/* deal with all characters we can have */
|
/* deal with all characters we can have */
|
||||||
@ -362,7 +362,7 @@ static size_t qpencode(UC c, UC *input, size_t size,
|
|||||||
case QP_CR:
|
case QP_CR:
|
||||||
if (size < 2) return size;
|
if (size < 2) return size;
|
||||||
if (input[1] == LF) {
|
if (input[1] == LF) {
|
||||||
luaL_addstring(buffer, (char *) marker);
|
luaL_addstring(buffer, marker);
|
||||||
return 0;
|
return 0;
|
||||||
} else qpquote(input[0], buffer);
|
} else qpquote(input[0], buffer);
|
||||||
break;
|
break;
|
||||||
@ -372,7 +372,7 @@ static size_t qpencode(UC c, UC *input, size_t size,
|
|||||||
/* if it is the last, quote it and we are done */
|
/* if it is the last, quote it and we are done */
|
||||||
if (input[1] == CR && input[2] == LF) {
|
if (input[1] == CR && input[2] == LF) {
|
||||||
qpquote(input[0], buffer);
|
qpquote(input[0], buffer);
|
||||||
luaL_addstring(buffer, (char *) marker);
|
luaL_addstring(buffer, marker);
|
||||||
return 0;
|
return 0;
|
||||||
} else luaL_putchar(buffer, input[0]);
|
} else luaL_putchar(buffer, input[0]);
|
||||||
break;
|
break;
|
||||||
@ -401,7 +401,7 @@ static void qppad(UC *input, size_t size, luaL_Buffer *buffer)
|
|||||||
if (qpclass[input[i]] == QP_PLAIN) luaL_putchar(buffer, input[i]);
|
if (qpclass[input[i]] == QP_PLAIN) luaL_putchar(buffer, input[i]);
|
||||||
else qpquote(input[i], buffer);
|
else qpquote(input[i], buffer);
|
||||||
}
|
}
|
||||||
luaL_addstring(buffer, (char *) EQCRLF);
|
luaL_addstring(buffer, EQCRLF);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*\
|
/*-------------------------------------------------------------------------*\
|
||||||
@ -420,7 +420,7 @@ static int mime_global_qp(lua_State *L)
|
|||||||
const UC *input = (UC *) (lua_isnil(L, 1) ? NULL:
|
const UC *input = (UC *) (lua_isnil(L, 1) ? NULL:
|
||||||
luaL_checklstring(L, 1, &isize));
|
luaL_checklstring(L, 1, &isize));
|
||||||
const UC *last = input + isize;
|
const UC *last = input + isize;
|
||||||
const UC *marker = (UC *) luaL_optstring(L, 3, (char *) CRLF);
|
const char *marker = luaL_optstring(L, 3, CRLF);
|
||||||
luaL_Buffer buffer;
|
luaL_Buffer buffer;
|
||||||
luaL_buffinit(L, &buffer);
|
luaL_buffinit(L, &buffer);
|
||||||
while (input < last)
|
while (input < last)
|
||||||
@ -530,7 +530,7 @@ static int mime_global_qpfmt(lua_State *L)
|
|||||||
/* if there's no room in this line for the quoted char,
|
/* if there's no room in this line for the quoted char,
|
||||||
* output a soft line break now */
|
* output a soft line break now */
|
||||||
if (left <= 3) {
|
if (left <= 3) {
|
||||||
luaL_addstring(&buffer, (char *) EQCRLF);
|
luaL_addstring(&buffer, EQCRLF);
|
||||||
left = length;
|
left = length;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -543,7 +543,7 @@ static int mime_global_qpfmt(lua_State *L)
|
|||||||
default:
|
default:
|
||||||
/* if in last column, output a soft line break */
|
/* if in last column, output a soft line break */
|
||||||
if (left <= 1) {
|
if (left <= 1) {
|
||||||
luaL_addstring(&buffer, (char *) EQCRLF);
|
luaL_addstring(&buffer, EQCRLF);
|
||||||
left = length;
|
left = length;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -551,7 +551,7 @@ static int mime_global_qpfmt(lua_State *L)
|
|||||||
input++;
|
input++;
|
||||||
}
|
}
|
||||||
if (!input && left < length) {
|
if (!input && left < length) {
|
||||||
luaL_addstring(&buffer, (char *) EQCRLF);
|
luaL_addstring(&buffer, EQCRLF);
|
||||||
left = length;
|
left = length;
|
||||||
}
|
}
|
||||||
luaL_pushresult(&buffer);
|
luaL_pushresult(&buffer);
|
||||||
@ -569,15 +569,15 @@ static int mime_global_qpfmt(lua_State *L)
|
|||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
#define eolcandidate(c) (c == CR || c == LF)
|
#define eolcandidate(c) (c == CR || c == LF)
|
||||||
static size_t eolconvert(UC c, UC *input, size_t size,
|
static size_t eolconvert(UC c, UC *input, size_t size,
|
||||||
const UC *marker, luaL_Buffer *buffer)
|
const char *marker, luaL_Buffer *buffer)
|
||||||
{
|
{
|
||||||
input[size++] = c;
|
input[size++] = c;
|
||||||
/* deal with all characters we can deal */
|
/* deal with all characters we can deal */
|
||||||
if (eolcandidate(input[0])) {
|
if (eolcandidate(input[0])) {
|
||||||
if (size < 2) return size;
|
if (size < 2) return size;
|
||||||
luaL_addstring(buffer, (char *) marker);
|
luaL_addstring(buffer, marker);
|
||||||
if (eolcandidate(input[1])) {
|
if (eolcandidate(input[1])) {
|
||||||
if (input[0] == input[1]) luaL_addstring(buffer, (char *) marker);
|
if (input[0] == input[1]) luaL_addstring(buffer, marker);
|
||||||
} else luaL_putchar(buffer, input[1]);
|
} else luaL_putchar(buffer, input[1]);
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
@ -600,7 +600,7 @@ static int mime_global_eol(lua_State *L)
|
|||||||
const UC *input = (UC *) (lua_isnil(L, 1)? NULL:
|
const UC *input = (UC *) (lua_isnil(L, 1)? NULL:
|
||||||
luaL_checklstring(L, 1, &isize));
|
luaL_checklstring(L, 1, &isize));
|
||||||
const UC *last = input + isize;
|
const UC *last = input + isize;
|
||||||
const UC *marker = (UC *) luaL_optstring(L, 3, (char *) CRLF);
|
const char *marker = luaL_optstring(L, 3, CRLF);
|
||||||
luaL_Buffer buffer;
|
luaL_Buffer buffer;
|
||||||
luaL_buffinit(L, &buffer);
|
luaL_buffinit(L, &buffer);
|
||||||
while (input < last)
|
while (input < last)
|
||||||
@ -612,7 +612,7 @@ static int mime_global_eol(lua_State *L)
|
|||||||
asize = eolconvert(*input++, atom, asize, marker, &buffer);
|
asize = eolconvert(*input++, atom, asize, marker, &buffer);
|
||||||
/* if there is something in atom, it's one character, and it
|
/* if there is something in atom, it's one character, and it
|
||||||
* is a candidate. so we output a new line */
|
* is a candidate. so we output a new line */
|
||||||
} else if (asize > 0) luaL_addstring(&buffer, (char *) marker);
|
} else if (asize > 0) luaL_addstring(&buffer, marker);
|
||||||
luaL_pushresult(&buffer);
|
luaL_pushresult(&buffer);
|
||||||
lua_pushlstring(L, (char *) atom, asize);
|
lua_pushlstring(L, (char *) atom, asize);
|
||||||
return 2;
|
return 2;
|
||||||
|
Loading…
Reference in New Issue
Block a user