Esempio n. 1
0
/* return parsed args number */
int utils_parse_upnp_task(char *buf, size_t size, char **argv)
{
	char *p;
	//int i;
	int argc;

	argc = 0;
	//i = 0;
	p = buf;
	while((argc < RC_MAX_ARGS - 1) && (*p != '\0')) {
		/* skip blank char */
		while(IS_BLANK(*p)) {
			*p = '\0';
			p++;
		}
		if (*p == '\0')
			break;

		/* find argv[] start */
		argv[argc] = p;
		argc++;
		p++;
		while(!IS_COLON(*p) && (*p != '\0')) p++;

		/* 0-terminated argv */
		if (IS_COLON(*p)) { *p = '\0'; p++; }
	}

	/* check if all string has been parsed */
	if (*p != '\0') {
		return -1;
	}

	/* final argv[] must be NULL */
	argv[argc] = NULL;
	return (argc);
}
Esempio n. 2
0
/* ========================================================
pagc_tools.c (establish_directory)
Determine the current working directory and path_separator
========================================================= */
int establish_directory( char * c_w_d ,
                         char * p_s ) {
   char *c_w_d_ptr ;

   c_w_d_ptr = getcwd( c_w_d , 
                       ( PATHNAME_LEN - 1 ) ) ;
   if ( c_w_d_ptr  == NULL ) {
      return FALSE ;
   }

   *p_s = FORE_SLASH ;

#ifdef MSYS_POSIX

   /* ..... transform cwd's non-POSIX directory separators to conform  ..... */

   conform_directory_separator( c_w_d ) ;

#endif

   if ( isalpha( c_w_d[ 0 ] ) ) {

      /* ..... drive letter, colon, dir_sep ..... */

      if ( IS_COLON( c_w_d[ 1 ] ) ) {
         *p_s = c_w_d[ 2 ] ;
         if ( ( *p_s != FORE_SLASH ) &&
              ( *p_s != BACK_SLASH ) ) {
            return FALSE ;
         }
      } else {
         return FALSE ;
      }
   }
   return TRUE ;
}