Subversion Repositories SvarDOS

Rev

Rev 354 | Rev 357 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 354 Rev 355
Line 237... Line 237...
237
    envsiz *= 16;
237
    envsiz *= 16;
238
    printf("rmod_inpbuff at %04X:%04X, env_seg at %04X:0000 (env_size = %u bytes)\r\n", rmod_seg, RMOD_OFFSET_INPBUFF, *rmod_envseg, envsiz);
238
    printf("rmod_inpbuff at %04X:%04X, env_seg at %04X:0000 (env_size = %u bytes)\r\n", rmod_seg, RMOD_OFFSET_INPBUFF, *rmod_envseg, envsiz);
239
  }
239
  }
240
 
240
 
241
  for (;;) {
241
  for (;;) {
242
    int i, argcount;
242
    int i, n, argcount;
243
    char far *cmdline = MK_FP(rmod_seg, RMOD_OFFSET_INPBUFF + 2);
243
    char far *cmdline = MK_FP(rmod_seg, RMOD_OFFSET_INPBUFF + 2);
244
    char buff[256];
244
    char buff[256];
245
    char const *argvlist[256];
245
    char const *argvlist[256];
246
 
246
 
247
    {
247
    {
Line 290... Line 290...
290
    printf("\r\n");
290
    printf("\r\n");
291
 
291
 
292
    /* if nothing entered, loop again */
292
    /* if nothing entered, loop again */
293
    if (cmdline[-1] == 0) continue;
293
    if (cmdline[-1] == 0) continue;
294
 
294
 
295
    /* copy buffer to a near var (incl. trailing CR) */
295
    /* copy buffer to a near var (incl. trailing CR), insert a space before
-
 
296
       every slash to make sure arguments are well separated */
-
 
297
    n = 0;
296
    _fmemcpy(buff, cmdline, cmdline[-1] + 1);
298
    for (i = 0; i < cmdline[-1] + 1; i++) {
-
 
299
      if (cmdline[i] == '/') buff[n++] = ' ';
-
 
300
      buff[n++] = cmdline[i];
-
 
301
    }
-
 
302
    buff[n] = 0;
297
 
303
 
298
    argcount = explode_progparams(buff, argvlist);
304
    argcount = explode_progparams(buff, argvlist);
299
 
305
 
300
    /* if nothing args found (eg. all-spaces), loop again */
306
    /* if no args found (eg. all-spaces), loop again */
301
    if (argcount == 0) continue;
307
    if (argcount == 0) continue;
302
 
308
 
303
    printf("got %u bytes of cmdline (%d args)\r\n", cmdline[-1], argcount);
309
    printf("got %u bytes of cmdline (%d args)\r\n", cmdline[-1], argcount);
304
    for (i = 0; i < argcount; i++) {
310
    for (i = 0; i < argcount; i++) {
305
      printf("arg #%d = '%s'\r\n", i, argvlist[i]);
311
      printf("arg #%d = '%s'\r\n", i, argvlist[i]);