+ /* In NO_EXTERN mode, @ is part of a string */
+ if (lf->options & LOPT_NO_EXTERN) {
+ lf->state = lex_string;
+ begin_str(lf, ch);
+ } else {
+ lf->state = lex_include;
+ begin_str(lf, 0);
+ }
+ break;
+ case 0xEF: /* probably a UTF-8 BOM */
+ case 0xFF: /* probably a UTF-16le BOM */
+ case 0xFE: /* probably a UTF-16be BOM (error)*/
+ if (lf->line_no != 1 || lf->col_no != 1)
+ {
+ lf->state = lex_string;
+ begin_str(lf, ch);
+ } else {
+ bom_bytes_seen = 1;
+ if (ch == 0xEF) {
+ lf->state = lex_utf8_bom;
+ } else if (ch == 0xFF) {
+ lf->state = lex_utf16_le_bom;
+ } else {
+ scan_err0(lf, _("This config file appears to be in an "
+ "unsupported Unicode format (UTF-16be). Please resave as UTF-8\n"));
+ return T_ERROR;
+ }
+ }
+ break;
+ default:
+ lf->state = lex_string;
+ begin_str(lf, ch);
+ break;
+ }
+ break;