FILE *f = fopen (filename.c_str (), "rb");
if (!f)
{
- warning (_f ("can't open file: `%s'", filename.c_str ()));
+ warning (_f ("cannot open file: `%s'", filename.c_str ()));
vector<char> cxx_arr;
return cxx_arr;
while (left > 0)
{
- wchar_t multibyte[2];
-
/*
FIXME, this is apparently locale dependent.
*/
#if HAVE_MBRTOWC
+ wchar_t multibyte[2];
size_t thislen = mbrtowc (multibyte, line_chars, left, &state);
#else
size_t thislen = 1;
if (!newline_locations_.size ())
return 1;
- vsize lo = 0;
- vsize hi = newline_locations_.size ();
-
- if (newline_locations_[lo] > pos_str0)
- return 1;
-
- if (newline_locations_[hi - 1] < pos_str0)
- return hi;
-
- lo = lower_bound (newline_locations_,
- pos_str0,
- less<char const*> (),
- lo, hi);
+ /* this will find the '\n' character at the end of our line */
+ vsize lo = lower_bound (newline_locations_,
+ pos_str0,
+ less<char const*> ());
- if (*pos_str0 == '\n')
- lo--;
- return lo + 2 + line_offset_;
+ /* the return value will be indexed from 1 */
+ return lo + 1 + line_offset_;
}
void