This is a checkpoint of the improvements to the sqlite integration. The
data_parser stuff should be much better now and I've tried to improve
other parts of the user experience as well.
Some changes to the glog_log sql table:
* Removed the 'glog_level' field since the standard one should be able to
handle everything now.
* Changed the 'file' column to 'src_file' and added a 'src_line' column.
* Added the sample glog log content to the test directory.
* lnav.cc: Rerun searches in the text view when changing files. Fix the
scrollbar behavior when the mouse is used.
* lnav_commands.cc: Switch to the graph view when doing graphing.
* xterm_mouse.hh: The origin for mouse coordinates should be 0,0 and not 1,1 .
This change adds back support for line scrubbing and
adds a column that displays the time offset from
different points in the file. Also, try to handle
deleted files by dropping their lines from the display
view.
* help.txt: Update the help text for the new features.
* lnav.cc: Add scrub/time-offset key bindings. Also
added some more comments and added some handling for
deleted files.
* log_format_impls.cc: Add scrubbing for the generic
log format that shortens timestamps and RDNS strings.
* logfile_sub_source.cc: Add a time-offset column to
the display.
* textview_curses.cc: Some cleanup.
* grep_proc.cc: When a request is queued with the start line
== -1, we need to start searching from the highest line
ever seen and not the last line processed.
* line_buffer.cc: If a partial line was read, we need to
avoid returning another line if more data is appended
to the file.
* lnav.cc: Accept file name patterns on the command-line that
don't match any files yet. Initialize the screen before
redirecting stderr to the log file or /dev/null.
* log_format.hh: Add some comments. Start to add back support
for scrubbing.
* logfile_sub_source.cc: Move scrubbing to the format impl.
* textview_curses.hh: Add comments.
Rather than requiring the user to pass a quoted wildcard to lnav,
we should just support scanning whole directories and reading
them in. This change adds support for that by detecting the
directory and adding the wildcard to the file list automatically.
Any non-file entries in the given directory are skipped instead
of walking the whole tree, which seems like a reasonable default.
The cygwin build is pretty straightforward, but there's
still some glitches that need to be fixed.
* line_buffer.hh, line_buffer.cc: If the bzip library is not available, don't
try to open bzip files. Also, ignore ENODATA errors since they seem to
show up when pread reaches the end of the file.
* lnav.cc: The abs() function is ambiguous on windows, use std::abs instead.