Untitled diff
50 lines
#include <ctype.h>
#include <ctype.h>
#include <errno.h>
#include <errno.h>
#include <regex.h>
#include <regex.h>
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
#include <string.h>
#include <string.h>
#include <sys/types.h>
#include <sys/types.h>
#include <limits.h>
#include "main.h"
#define to_find "^[a-zA-Z0-9]+$"
int main(int argc, char * argv[])
int main(int argc, char * argv[])
{
{
int ret_val;
int ret_val;
regex_t regex;
regex_t regex;
FILE *fp;
FILE *fp;
char file[PATH_MAX];
char line[1024];
char line[1024];
if (regcomp(®ex, to_find, REG_EXTENDED) != 0)
if (regcomp(®ex, to_find, REG_EXTENDED) != 0)
{
{
fprintf(stderr, "Failed to compile regex '%s'\n", to_find);
fprintf(stderr, "Failed to compile regex '%s'\n", to_find);
return EXIT_FAILURE;
return EXIT_FAILURE;
}
}
if (argc > 2)
if (argc > 2)
{
{
printf("Usage: tree OR tree [filename]\n");
printf("Usage: tree OR tree [filename]\n");
return EXIT_FAILURE;
return EXIT_FAILURE;
}
}
else if (argc == 2)
else if (argc == 2)
{
{
fp = fopen(strcat(argv[1],".dat"), "r");
sprintf(file, "%s.dat", argv[1]);
fp = fopen(file, "r");
if( fp == NULL ) {
perror("Error");
return -1;
}
printf("file opened\n");
printf("file opened\n");
while ((fgets(line, 1024, fp)) != NULL)
while (fscanf(fp, "%1023s", line) > 0)
{
{
line[strlen(line) - 1] = '\0';
if ((ret_val = regexec(®ex, line, 0, NULL, 0)) != 0)
if ((ret_val = regexec(®ex, line, 0, NULL, 0)) != 0);
{
{
printf("Error: %s\n", line);
printf("Not match: %s\n", line);
return EXIT_FAILURE;
//return EXIT_FAILURE;
} else {
printf("Match: %s\n", line);
}
}
}
}
regfree(®ex);
fclose(fp);
fclose(fp);
printf("File closed\n");
printf("File closed\n");
}
}
return 0;
return 0;
}
}