src/windows/bin/cmdtoargs.c

Print this page




  87                 quotes++;
  88                 *dest++ = ch; // emit every other consecutive quote
  89             } else if (quotes == 0) {
  90                 quotes++; // starting quote
  91             } else {
  92                 quotes--; // matching quote
  93             }
  94             slashes = 0;
  95             break;
  96 
  97         case '\\':
  98             slashes++;
  99             if (separator) {
 100                 done = JNI_TRUE;
 101                 separator = JNI_FALSE;
 102             }
 103             break;
 104 
 105         case ' ':
 106         case '\t':






 107             if (quotes % 2 == 1) {
 108                 *dest++ = ch;
 109             } else {
 110                 separator = JNI_TRUE;
 111             }
 112             slashes = 0;
 113             break;
 114 
 115         case '*':
 116         case '?':
 117             if (separator) {
 118                 done = JNI_TRUE;
 119                 separator = JNI_FALSE;
 120                 break;
 121             }
 122             if (quotes % 2 == 0) {
 123                 *wildcard = JNI_TRUE;
 124             }
 125             if (prev == '\\') {
 126                 *dest++ = prev;




  87                 quotes++;
  88                 *dest++ = ch; // emit every other consecutive quote
  89             } else if (quotes == 0) {
  90                 quotes++; // starting quote
  91             } else {
  92                 quotes--; // matching quote
  93             }
  94             slashes = 0;
  95             break;
  96 
  97         case '\\':
  98             slashes++;
  99             if (separator) {
 100                 done = JNI_TRUE;
 101                 separator = JNI_FALSE;
 102             }
 103             break;
 104 
 105         case ' ':
 106         case '\t':
 107             if (prev == '\\') {
 108                 for (i = 0 ; i < slashes; i++) {
 109                    *dest++ = prev;
 110 
 111                 }
 112             }
 113             if (quotes % 2 == 1) {
 114                 *dest++ = ch;
 115             } else {
 116                 separator = JNI_TRUE;
 117             }
 118             slashes = 0;
 119             break;
 120 
 121         case '*':
 122         case '?':
 123             if (separator) {
 124                 done = JNI_TRUE;
 125                 separator = JNI_FALSE;
 126                 break;
 127             }
 128             if (quotes % 2 == 0) {
 129                 *wildcard = JNI_TRUE;
 130             }
 131             if (prev == '\\') {
 132                 *dest++ = prev;