void input_init (void) { current_file = "NONE"; current_line = 0; obstack_init (&token_stack); obstack_init (&input_stack); obstack_init (&wrapup_stack); current_input = &input_stack; obstack_1grow (&token_stack, '\0'); token_bottom = obstack_finish (&token_stack); isp = NULL; wsp = NULL; next = NULL; start_of_input_line = FALSE; lquote.string = xstrdup (DEF_LQUOTE); lquote.length = strlen (lquote.string); rquote.string = xstrdup (DEF_RQUOTE); rquote.length = strlen (rquote.string); bcomm.string = xstrdup (DEF_BCOMM); bcomm.length = strlen (bcomm.string); ecomm.string = xstrdup (DEF_ECOMM); ecomm.length = strlen (ecomm.string); #ifdef ENABLE_CHANGEWORD if (user_word_regexp) set_word_regexp (user_word_regexp); else set_word_regexp (DEFAULT_WORD_REGEXP); #endif }
void input_init (void) { current_file = ""; current_line = 0; current_input = (struct obstack *) xmalloc (sizeof (struct obstack)); obstack_init (current_input); wrapup_stack = (struct obstack *) xmalloc (sizeof (struct obstack)); obstack_init (wrapup_stack); obstack_init (&file_names); /* Allocate an object in the current chunk, so that obstack_free will always work even if the first token parsed spills to a new chunk. */ obstack_init (&token_stack); obstack_alloc (&token_stack, 1); token_bottom = obstack_base (&token_stack); isp = NULL; wsp = NULL; next = NULL; start_of_input_line = false; lquote.string = xstrdup (DEF_LQUOTE); lquote.length = strlen (lquote.string); rquote.string = xstrdup (DEF_RQUOTE); rquote.length = strlen (rquote.string); bcomm.string = xstrdup (DEF_BCOMM); bcomm.length = strlen (bcomm.string); ecomm.string = xstrdup (DEF_ECOMM); ecomm.length = strlen (ecomm.string); #ifdef ENABLE_CHANGEWORD set_word_regexp (user_word_regexp); #endif }