mirror of
https://github.com/curl/curl.git
synced 2025-03-31 16:00:35 +08:00
parent
50aa325742
commit
8c040ca3d3
@ -36,20 +36,17 @@
|
||||
#define CURLPGM "CURL"
|
||||
#endif
|
||||
|
||||
|
||||
/* Variable-length string, with 16-bit length. */
|
||||
typedef struct {
|
||||
struct vary2 {
|
||||
short len;
|
||||
char string[5000];
|
||||
} vary2;
|
||||
|
||||
};
|
||||
|
||||
/* Arguments from CL command. */
|
||||
typedef struct {
|
||||
char * pgm; /* Program name. */
|
||||
vary2 * cmdargs; /* Command line arguments. */
|
||||
} arguments;
|
||||
|
||||
struct arguments {
|
||||
char *pgm; /* Program name. */
|
||||
struct vary2 *cmdargs; /* Command line arguments. */
|
||||
};
|
||||
|
||||
static int
|
||||
is_ifs(char c)
|
||||
@ -130,7 +127,7 @@ parse_command_line(const char *cmdargs, size_t len,
|
||||
|
||||
|
||||
int
|
||||
main(int argsc, arguments *args)
|
||||
main(int argsc, struct arguments *args)
|
||||
{
|
||||
size_t argc;
|
||||
char **argv;
|
||||
@ -152,7 +149,7 @@ main(int argsc, arguments *args)
|
||||
|
||||
/* Measure arguments size. */
|
||||
exitcode = parse_command_line(args->cmdargs->string, args->cmdargs->len,
|
||||
&argc, NULL, &argsize, NULL);
|
||||
&argc, NULL, &argsize, NULL);
|
||||
|
||||
if(!exitcode) {
|
||||
/* Allocate space for parsed arguments. */
|
||||
@ -166,7 +163,7 @@ main(int argsc, arguments *args)
|
||||
_LU_Work_Area_T *luwrka = (_LU_Work_Area_T *) _LUWRKA();
|
||||
|
||||
parse_command_line(args->cmdargs->string, args->cmdargs->len,
|
||||
&argc, argv, &argsize, (char *) (argv + argc + 1));
|
||||
&argc, argv, &argsize, (char *) (argv + argc + 1));
|
||||
|
||||
/* Call program. */
|
||||
_CALLPGMV((void *) &pgmptr, argv, argc);
|
||||
|
@ -50,16 +50,14 @@ int ebcdic_argc;
|
||||
char ** ebcdic_argv;
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
iconv_t cd;
|
||||
size_t bytecount = 0;
|
||||
char * inbuf;
|
||||
char * outbuf;
|
||||
char *inbuf;
|
||||
char *outbuf;
|
||||
size_t inbytesleft;
|
||||
size_t outbytesleft;
|
||||
char dummybuf[128];
|
||||
@ -70,8 +68,8 @@ main(int argc, char **argv)
|
||||
ebcdic_argv = argv;
|
||||
|
||||
/* Build the encoding converter. */
|
||||
strncpy(tocode, "IBMCCSID01208", sizeof tocode); /* Use UTF-8. */
|
||||
strncpy(fromcode, "IBMCCSID000000000010", sizeof fromcode);
|
||||
strncpy(tocode, "IBMCCSID01208", sizeof(tocode)); /* Use UTF-8. */
|
||||
strncpy(fromcode, "IBMCCSID000000000010", sizeof(fromcode));
|
||||
cd = iconv_open(tocode, fromcode);
|
||||
|
||||
/* Measure the arguments. */
|
||||
@ -80,7 +78,7 @@ main(int argc, char **argv)
|
||||
do {
|
||||
inbytesleft = 0;
|
||||
outbuf = dummybuf;
|
||||
outbytesleft = sizeof dummybuf;
|
||||
outbytesleft = sizeof(dummybuf);
|
||||
j = iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
|
||||
bytecount += outbuf - dummybuf;
|
||||
} while(j == -1 && errno == E2BIG);
|
||||
@ -90,7 +88,7 @@ main(int argc, char **argv)
|
||||
}
|
||||
|
||||
/* Allocate memory for the ASCII arguments and vector. */
|
||||
argv = (char **) malloc((argc + 1) * sizeof *argv + bytecount);
|
||||
argv = (char **) malloc((argc + 1) * sizeof(*argv) + bytecount);
|
||||
|
||||
/* Build the vector and convert argument encoding. */
|
||||
outbuf = (char *) (argv + argc + 1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user