- if (parse_info->cmap)
- {
- const char **mapto;
- char mapfrom[2];
- const char *mcp = mapfrom;
- mapfrom[0] = ch0;
- mapto = (*parse_info->cmap)(parse_info->cmap_data, &mcp, 1);
- assert (mapto);
- ch0 = mapto[0][0];
- }
- add_BSet (parse_info->charset, parse_info->look_chars, ch0);
- ch1 = nextchar_set (parse_info, &esc1);
+ if (!esc0 && ch0 == '-')
+ {
+ ch1 = ch0;
+ esc1 = esc0;
+ ch0 = 1;
+ add_BSet (parse_info->charset, parse_info->look_chars, ch0);
+ }
+ else
+ {
+ if (parse_info->cmap)
+ {
+ const char **mapto;
+ char mapfrom[2];
+ const char *mcp = mapfrom;
+ mapfrom[0] = ch0;
+ mapto = (*parse_info->cmap)(parse_info->cmap_data, &mcp, 1);
+ assert (mapto);
+ ch0 = mapto[0][0];
+ }
+ add_BSet (parse_info->charset, parse_info->look_chars, ch0);
+ ch1 = nextchar_set (parse_info, &esc1);
+ }