コード例 #1
0
ファイル: rssfilter.c プロジェクト: fiktivkod/rssfilter
int main(const int argc, char **argv)
{
	
	char *feed;
	Regexfilter *filterList = filter_new(NULL,".*");
	int i, j,
		timeout = 3;

	/* supply regex filter */
	if (argc > 1) {
		for (i = 1; i < argc; ++i) {
			if (strcmp(argv[i], "-e") == 0) {
				filter_set_pattern(filterList, argv[i+1]);
				
				for (j = i+2; j < argc ; j++) {

					if (argv[j][0] == '-')
						break;
					
					filter_new(filterList, argv[j]);
				}
				
			}
			if (strcmp(argv[i], "-t") == 0) {
				timeout = atoi(argv[i+1]);
			}
			if (strcmp(argv[i], "-h") == 0) {
				usage();
				return EXIT_SUCCESS;
			}
		}
	} 

	/* get feed from stdin */
	if (stdin_ready(fileno(stdin), timeout)) {
		feed = stdin_get(feed);
	} else {
		fprintf(stderr, "no feed\n");
		return EXIT_FAILURE;
	}
	
	
	/* run filters */
	feed = filter(feed, filterList);
	
	
	/* output filtered xml */
	printf("%s", feed);
	

	free(feed);
	filter_destroy(filterList);
	
	return EXIT_SUCCESS;
}
コード例 #2
0
ファイル: chat.c プロジェクト: chino/enet-c-lua-relay
int read_line( char* line )
{
	int size, c = 0;
	while( stdin_ready() )
	{
		size = strlen(line);
		c = getchar();
		if( c != EOF && c != '\n' && size < (MAX_LINE-1) )
		{
			line[size] = c;
		}
		else
		{
			line[size] = 0;
			return (size==0)?0:size+1;
		}
	}
	return 0; // don't have a full line yet
}