Public feed
#887998
#include <stdio.h>
//#include <sys/types.h>
#include <string.h>
//#include <stdlib.h>
#include <unistd.h>
//#include <fcntl.h>
//#include <sys/wait.h>
//#include <errno.h>
//#include <signal.h>
#define MAX_LEN 100
int allValidChars(const char * str);
int main (void)
{
while (1)
{
char *result;
char line[MAX_LEN+1];
//read line of input
result = fgets(line, MAX_LEN+1, stdin);
//check for valid input
if(!result)
{
break;
}
if(allValidChars(line) == 0)
{
printf("illegal character in line\n");
return -1;
}
printf("line looks good, parsing...\n");
//parse the line
char *token;
token = strtok(line, " ");
printf("first tolken: %s\n",token);
char * path;
int len;
path = getcwd(path, len);
printf("%s\n",path);
if(token[0]!='/')
{
printf("appending path:\n %s, %i\n",path,len);
// path = getcwd(path,len);
printf("found CWD, appending\n");
strcat(path, "/");
strcat(path,token);
printf("path appended\n");
} else
{
printf("path already present\n");
path = token;
}
printf("path: %s\n",path);
// printf("line = %s\n",line);
}
return 0;
}
int allValidChars(const char * str)
{
int len = 0;
int i = 0;
len = strlen(str);
for(i=0;i<len;i++)
{
printf("%i\n", str[i]);
if (str[i] != '-' &&
str[i] != '.' &&
str[i] != '/' &&
str[i] != '_' &&
str[i] != ' ' &&
!(48 <= str[i] <= 57)&& //numbers
!(65 <= str[i] <= 90)&& //caps
!(97 <= str[i] <= 122)) //low
{
return 0;
}
}
return 1;
}