コード例 #1
0
void b_push(struct stack *balancer, struct node *n, int thresh) {
    struct stack *s = b_current_stack(balancer);
    if (s == NULL || s->n_items >= thresh) {
        s = stack_new();
        s_push(balancer,node_new(s));
    }

    s_push(s,n);
}
コード例 #2
0
ファイル: main.c プロジェクト: johnsoga/Copy
void copy_recursive() {
    
    struct Stack* paths;
    DIR *dir;
    struct dirent *entry;
    const String d_name;
    int dir_count;
    
    dir_count = 0;
    paths = malloc(sizeof (struct Stack));
    s_create(paths);
    s_push(basename(src), paths);
    strcpy(src, dirname(src));
    strcpy(dest, dirname(dest));
    printf("Source: %s\nTarget: %s\n\n", src, dest);

    
    while(!s_isEmpty(paths)) {
        strcat(src, "/");
        strcat(src, s_peek(paths));
        s_pop(paths);
        if((dir = opendir(src))) {
            while((entry = readdir(dir))) {
                d_name = entry->d_name;
                if(entry->d_type & DT_DIR) {
                    printf("Found FOLDER: %s\n", d_name);
                    if (strcmp(d_name, "..") != 0 && strcmp(d_name, ".") != 0) {
                        s_push(d_name, paths);
                        dir_count++;
                    }
                } else if (entry->d_type & DT_REG) {
                    printf("Found FILE: %s\n", d_name);
                }
            }
            if (!closedir(dir)) {
                printf("Time to copy\n");
            } else {
                fprintf(stderr, "Could not close '%s': %s\n", src, strerror(errno));
                exit(EXIT_FAILURE);
            }
        } else {
            fprintf(stderr, "Cannot open %s: %s\n", src, strerror(errno));
            exit(EXIT_FAILURE);
        }
        if(dir_count) {
            strcpy(src, dirname(src));
            dir_count--;
        }
    }
}
コード例 #3
0
ファイル: parser.c プロジェクト: Lind-Project/Lind-misc
parser_state *
PyParser_New(grammar *g, int start)
{
    parser_state *ps;

    DBP("Attempting to create new PyParser\n");

    if (!g->g_accel)
        PyGrammar_AddAccelerators(g);

    DBP("Added grammar accelerators\n");

    ps = (parser_state *)PyMem_MALLOC(sizeof(parser_state));
    
    DBP("Created parser state\n");

    if (ps == NULL)
        return NULL;
    ps->p_grammar = g;
#ifdef PY_PARSER_REQUIRES_FUTURE_KEYWORD
    ps->p_flags = 0;
#endif
    ps->p_tree = PyNode_New(start);
    if (ps->p_tree == NULL) {
        PyMem_FREE(ps);
        return NULL;
    }
    s_reset(&ps->p_stack);
    (void) s_push(&ps->p_stack, PyGrammar_FindDFA(g, start), ps->p_tree);

    DBP("Created PyParser!!\n");

    return ps;
}
コード例 #4
0
ファイル: parser.c プロジェクト: 10sr/cpython
static int
push(stack *s, int type, dfa *d, int newstate, int lineno, int col_offset)
{
    int err;
    node *n;
    n = s->s_top->s_parent;
    assert(!s_empty(s));
    err = PyNode_AddChild(n, type, (char *)NULL, lineno, col_offset);
    if (err)
        return err;
    s->s_top->s_state = newstate;
    return s_push(s, d, CHILD(n, NCH(n)-1));
}
コード例 #5
0
ファイル: stackImpArray.c プロジェクト: asantosh/Programming
int main(void)
{
    int i, val;

    for (i = 0; i < STACK_LIMIT; i+=2)
        s_push(i);

    for (i = 0; i < STACK_LIMIT; i++) {
        if(s_pop(&val) == 0)
            printf("POP: %d\n", val);
    }

    return 0;
}
コード例 #6
0
ファイル: spike_oncrpc.c プロジェクト: ChenMingHe/spike-rst
int
s_onc_push_random_bytes(uint size)
{
	uint		i = 0;
	unsigned char* 	buffer = NULL;

	buffer = malloc(size + (4 - (size % 4)));
	if (buffer == NULL) {
		return 0;
	}

	for (i = 0; i < size; i += 4) {
		*(uint*)(buffer + i) = (uint)rand();
	}

	s_push(buffer, size);
	free(buffer);
	return 1;
}
コード例 #7
0
stack_t * get_tracks(char * page)
{
    stack_t * result = NULL;

    while (page[0] != '\0')
    {
        if (is_track(page))
        {
            int length = get_line_length(page);
            s_push(&result, extract_next_substring(page, length));
            page += length;
        }
        else
        {
            page++;
        }
    }

    return result;
}
コード例 #8
0
parser_state *
PyParser_New(grammar *g, int start)
{
	parser_state *ps;
	
	if (!g->g_accel)
		PyGrammar_AddAccelerators(g);
	ps = PyMem_NEW(parser_state, 1);
	if (ps == NULL)
		return NULL;
	ps->p_grammar = g;
	ps->p_generators = 0;
	ps->p_tree = PyNode_New(start);
	if (ps->p_tree == NULL) {
		PyMem_DEL(ps);
		return NULL;
	}
	s_reset(&ps->p_stack);
	(void) s_push(&ps->p_stack, PyGrammar_FindDFA(g, start), ps->p_tree);
	return ps;
}
コード例 #9
0
ファイル: parser.c プロジェクト: Michael0x2a/typed_ast
parser_state *
Ta27Parser_New(grammar *g, int start)
{
    parser_state *ps;

    if (!g->g_accel)
        Ta27Grammar_AddAccelerators(g);
    ps = (parser_state *)PyMem_MALLOC(sizeof(parser_state));
    if (ps == NULL)
        return NULL;
    ps->p_grammar = g;
#ifdef PY_PARSER_REQUIRES_FUTURE_KEYWORD
    ps->p_flags = 0;
#endif
    ps->p_tree = Ta27Node_New(start);
    if (ps->p_tree == NULL) {
        PyMem_FREE(ps);
        return NULL;
    }
    s_reset(&ps->p_stack);
    (void) s_push(&ps->p_stack, Ta27Grammar_FindDFA(g, start), ps->p_tree);
    return ps;
}