+ lexer = lex_create ();
+ the_session = session_create (NULL);
+ dataset_create (the_session, "");
+
+ parser = argv_parser_create ();
+ terminal_opts = terminal_opts_init (parser, &syntax_mode, &process_statrc,
+ &syntax_encoding);
+ source_init_register_argv_parser (parser);
+ if (!argv_parser_run (parser, argc, argv))
+ exit (EXIT_FAILURE);
+ terminal_opts_done (terminal_opts, argc, argv);
+ argv_parser_destroy (parser);
+
+ msg_set_handler (output_msg, lexer);
+ session_set_default_syntax_encoding (the_session, syntax_encoding);
+
+ /* Add syntax files to source stream. */
+ if (process_statrc)
+ {
+ char *rc = include_path_search ("rc");
+ if (rc != NULL)
+ {
+ add_syntax_reader (lexer, rc, "Auto", LEX_SYNTAX_AUTO);
+ free (rc);
+ }
+ }
+ if (optind < argc)
+ {
+ int i;
+
+ for (i = optind; i < argc; i++)
+ add_syntax_reader (lexer, argv[i], syntax_encoding, syntax_mode);
+ }
+ else
+ add_syntax_reader (lexer, "-", syntax_encoding, syntax_mode);
+
+ /* Parse and execute syntax. */
+ lex_get (lexer);
+ for (;;)