Code

tig.git
15 years agoRefactor the int_map interface into new enum_map interface
Jonas Fonseca [Wed, 4 Feb 2009 13:23:10 +0000 (14:23 +0100)]
Refactor the int_map interface into new enum_map interface

Renames int_map to enum_map and set_from_int_map to map_enum, which
now uses string_enum_compare instead of strncasecmp.

15 years agoCleanup and simplify option file parsing
Jonas Fonseca [Wed, 4 Feb 2009 08:29:49 +0000 (09:29 +0100)]
Cleanup and simplify option file parsing

15 years agotig-0.14
Jonas Fonseca [Thu, 5 Feb 2009 20:20:34 +0000 (21:20 +0100)]
tig-0.14

15 years agoRead tigrc(5) options from git configuration files
Jonas Fonseca [Thu, 5 Feb 2009 11:47:48 +0000 (12:47 +0100)]
Read tigrc(5) options from git configuration files

15 years agotig(1): correct info on tree view related environment variables
Jonas Fonseca [Thu, 5 Feb 2009 11:43:24 +0000 (12:43 +0100)]
tig(1): correct info on tree view related environment variables

Was not updated during the introduction of %(directory) and move to the
IO API.

15 years agoAdd release script documenting the release procedure
Jonas Fonseca [Wed, 4 Feb 2009 17:41:12 +0000 (18:41 +0100)]
Add release script documenting the release procedure

15 years agoSpell check all text files and add dictionary to speed it up
Jonas Fonseca [Wed, 4 Feb 2009 22:20:31 +0000 (23:20 +0100)]
Spell check all text files and add dictionary to speed it up

15 years agotigrc(5): document the tree view colors
Jonas Fonseca [Wed, 4 Feb 2009 10:11:24 +0000 (11:11 +0100)]
tigrc(5): document the tree view colors

Also renames the tree-parent line to tree-head.

15 years agoRefactor file mode drawing; rename tree-mode color to mode
Jonas Fonseca [Wed, 4 Feb 2009 17:40:15 +0000 (18:40 +0100)]
Refactor file mode drawing; rename tree-mode color to mode

15 years agoReplace usage of the main-author color with the author color
Jonas Fonseca [Wed, 4 Feb 2009 12:09:12 +0000 (13:09 +0100)]
Replace usage of the main-author color with the author color

It is used in draw_author() which is used by the main, blame and tree
views.

15 years agoMove usage string near parse_options
Jonas Fonseca [Wed, 4 Feb 2009 13:59:23 +0000 (14:59 +0100)]
Move usage string near parse_options

15 years agoTree view: improve handling of empty trees
Jonas Fonseca [Tue, 3 Feb 2009 21:34:44 +0000 (22:34 +0100)]
Tree view: improve handling of empty trees

15 years agoFix reverting of unmerged status entries
Jonas Fonseca [Tue, 3 Feb 2009 14:46:07 +0000 (15:46 +0100)]
Fix reverting of unmerged status entries

... by using update-index --cacheinfo.

15 years agoAdd support for horizontal scrolling
Jonas Fonseca [Mon, 2 Feb 2009 23:34:43 +0000 (00:34 +0100)]
Add support for horizontal scrolling

It is still basically a big hack, and might need some tuning.

15 years agoExpand tabs in displayed lines to not rely on ncurses to expand them
Jonas Fonseca [Tue, 3 Feb 2009 11:50:52 +0000 (12:50 +0100)]
Expand tabs in displayed lines to not rely on ncurses to expand them

15 years agoTreat empty '/' as "find next"
Jeff King [Tue, 3 Feb 2009 05:49:08 +0000 (00:49 -0500)]
Treat empty '/' as "find next"

When the user requests a forward or backwards search, if
they provide no search string then we just abort the search.
However, many other programs (such as less and vi) treat
this as "repeat the last search", so users may have their
fingers trained to do this rather than use the explicit
"find next" feature.

This patch causes tig, if there was a previous search, to
find the next (or previous, if "?" was used) match in such a
case.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
15 years agoTODO: elaborate and regroup into 'before tig-1.0' and 'long term goals'
Jonas Fonseca [Tue, 3 Feb 2009 10:33:56 +0000 (11:33 +0100)]
TODO: elaborate and regroup into 'before tig-1.0' and 'long term goals'

15 years agoMove initial view setup into parse_options
Jonas Fonseca [Sun, 18 Jan 2009 13:47:06 +0000 (14:47 +0100)]
Move initial view setup into parse_options

15 years agoMove parse_option so it has access to view definitions
Jonas Fonseca [Sun, 18 Jan 2009 13:14:17 +0000 (14:14 +0100)]
Move parse_option so it has access to view definitions

15 years agoRemove parsing of deprecated option -S and subcommands log and diff
Jonas Fonseca [Fri, 30 Jan 2009 08:43:56 +0000 (09:43 +0100)]
Remove parsing of deprecated option -S and subcommands log and diff

15 years agoRename & move read_properties and git_properties
Jonas Fonseca [Tue, 3 Feb 2009 14:01:47 +0000 (15:01 +0100)]
Rename & move read_properties and git_properties

They should be part of the IO API and are now called io_load and
run_io_load.

15 years agoUse warn() for warnings emitted during config file loading
Jonas Fonseca [Tue, 3 Feb 2009 13:47:04 +0000 (14:47 +0100)]
Use warn() for warnings emitted during config file loading

15 years agoFix scrolling bugs in gnome-terminal and (u)xterm
Jonas Fonseca [Mon, 2 Feb 2009 14:18:12 +0000 (15:18 +0100)]
Fix scrolling bugs in gnome-terminal and (u)xterm

Introduces workarounds to fix glitches appearing after the recent screen
drawing optimizations.

15 years agoBUGS: document problem with scrolling in (u)xterm
Jonas Fonseca [Mon, 2 Feb 2009 08:24:51 +0000 (09:24 +0100)]
BUGS: document problem with scrolling in (u)xterm

15 years agoTune the view clearing to wait until 2 seconds has passed
Jonas Fonseca [Sat, 31 Jan 2009 09:06:30 +0000 (10:06 +0100)]
Tune the view clearing to wait until 2 seconds has passed

The code introduced in ec9aa4f62ae2977d598dda865e6a50b9fc799428 broke
the smoothness of updates in some cases.

15 years agoHandle all cursor positioning in get_input
Jonas Fonseca [Sat, 31 Jan 2009 10:41:01 +0000 (11:41 +0100)]
Handle all cursor positioning in get_input

Also fixes use of the C++ true keyword which crept in in commit
babaa6f7a97cbe3948588e5181de0801ce32b792 (Refactor user input handling
into separate function).

15 years agoOptimize drawing by updating the screen in one go
Jonas Fonseca [Sat, 31 Jan 2009 09:01:04 +0000 (10:01 +0100)]
Optimize drawing by updating the screen in one go

Switch to use wnoutrefresh everywhere and call doupdate in the get_input
loop. This allows multiple updates to be made while only one burst of
IO occurs.

15 years agoAbbreviate author names to initials when author-width < 6
Jonas Fonseca [Fri, 30 Jan 2009 23:49:25 +0000 (00:49 +0100)]
Abbreviate author names to initials when author-width < 6

15 years agoRefactor author drawing into draw_author
Jonas Fonseca [Fri, 30 Jan 2009 21:46:47 +0000 (22:46 +0100)]
Refactor author drawing into draw_author

15 years agoFix tokenizing when parsing ~/.tigrc
Jonas Fonseca [Mon, 2 Feb 2009 08:08:46 +0000 (09:08 +0100)]
Fix tokenizing when parsing ~/.tigrc

When moving to use argv_from_string() in set_option() a regression was
introduced causing problems with parsing of multiple spaces between
arguments. For example:

color date              yellow  default

Reported by Clifford Caoile.

15 years agoWorkaround bug exposed by the redrawwin removal in do_scroll_view
Jonas Fonseca [Fri, 30 Jan 2009 08:24:24 +0000 (09:24 +0100)]
Workaround bug exposed by the redrawwin removal in do_scroll_view

The bug means that the message from scrolling up one line when
impossible followed by scrolling down one line is not removed by the
next action.

Workaround this by inserting an extra call to report("") before the call
to wrefresh().

15 years agoMake cursor updating when resizing the display and loading a view
Jonas Fonseca [Fri, 30 Jan 2009 08:12:26 +0000 (09:12 +0100)]
Make cursor updating when resizing the display and loading a view

15 years agoChange scrollok strategy to leave it off unless when calling wscrl
Jonas Fonseca [Fri, 30 Jan 2009 08:03:11 +0000 (09:03 +0100)]
Change scrollok strategy to leave it off unless when calling wscrl

Should lead to fewer calls.

15 years agoInitialize status_empty flag to FALSE
Jonas Fonseca [Fri, 30 Jan 2009 07:54:19 +0000 (08:54 +0100)]
Initialize status_empty flag to FALSE

Fixes cursor restoring when loading the status view at startup.

15 years agoEliminate unneeded calls to redrawwin
Jonas Fonseca [Wed, 28 Jan 2009 22:10:10 +0000 (23:10 +0100)]
Eliminate unneeded calls to redrawwin

This optimize the view drawing especially when scrolling/moving down the
main view with the diff view open. Should make browsing more bareable
over slow links.

15 years agoTODO: a small commit cache should be employed at some point
Jonas Fonseca [Wed, 28 Jan 2009 22:10:45 +0000 (23:10 +0100)]
TODO: a small commit cache should be employed at some point

15 years agoHelp view: show the action name similar as in Mutt's help view
Jonas Fonseca [Wed, 28 Jan 2009 18:30:17 +0000 (19:30 +0100)]
Help view: show the action name similar as in Mutt's help view

15 years agoRemove preallocation of view lines in help_open
Jonas Fonseca [Wed, 28 Jan 2009 18:28:03 +0000 (19:28 +0100)]
Remove preallocation of view lines in help_open

15 years agocorrected doubly used ID view-manipulation in manual.txt
Stefan Naewe [Wed, 28 Jan 2009 15:44:31 +0000 (16:44 +0100)]
corrected doubly used ID view-manipulation in manual.txt

Signed-off-by: Stefan Naewe <stefan.naewe@atlas-elektronik.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
15 years agotigrc(5) & manual: move view specific actions out of the misc group
Jonas Fonseca [Sat, 24 Jan 2009 11:51:38 +0000 (12:51 +0100)]
tigrc(5) & manual: move view specific actions out of the misc group

15 years agoAdd support for loading blame for parent commits
Jonas Fonseca [Thu, 15 Jan 2009 21:41:58 +0000 (22:41 +0100)]
Add support for loading blame for parent commits

Requested by Jeff King in <20080410040213.GA29618@sigill.intra.peff.net>

15 years agoRefactor prompting for user input
Jonas Fonseca [Fri, 16 Jan 2009 13:27:13 +0000 (14:27 +0100)]
Refactor prompting for user input

15 years agoRename tree-parent action to parent
Jonas Fonseca [Sat, 24 Jan 2009 11:36:03 +0000 (12:36 +0100)]
Rename tree-parent action to parent

15 years agoMinor cleanup of the tree view code; fix enter on the first line
Jonas Fonseca [Tue, 27 Jan 2009 12:51:12 +0000 (13:51 +0100)]
Minor cleanup of the tree view code; fix enter on the first line

15 years agoTODO: remove resolved item
Jonas Fonseca [Tue, 27 Jan 2009 12:51:20 +0000 (13:51 +0100)]
TODO: remove resolved item

15 years agoTree view: improve to look less like plumbing
Jonas Fonseca [Mon, 26 Jan 2009 11:51:40 +0000 (12:51 +0100)]
Tree view: improve to look less like plumbing

It is now more like `ls` by annotating the output of ls-tree with commit
information.

15 years agoRefactor main_read to create parse_author_line
Jonas Fonseca [Tue, 27 Jan 2009 10:17:44 +0000 (11:17 +0100)]
Refactor main_read to create parse_author_line

15 years agoupdate_view: remove an unneeded goto
Jonas Fonseca [Mon, 26 Jan 2009 11:52:56 +0000 (12:52 +0100)]
update_view: remove an unneeded goto

15 years agoFix floating point bug in the blame reporting
Jonas Fonseca [Sat, 24 Jan 2009 12:24:04 +0000 (13:24 +0100)]
Fix floating point bug in the blame reporting

15 years agoAlso call end_update for views with custom open function
Jonas Fonseca [Sat, 24 Jan 2009 12:22:40 +0000 (13:22 +0100)]
Also call end_update for views with custom open function

Broken by 49dc4030694e22b7f141bfb13565783985c48b77

15 years agoAdd -O0 to the debug flags
Jonas Fonseca [Sat, 24 Jan 2009 12:22:03 +0000 (13:22 +0100)]
Add -O0 to the debug flags

15 years agoRectify arg indexes changes in blame --no-color fix
Jonas Fonseca [Sat, 24 Jan 2009 11:59:32 +0000 (12:59 +0100)]
Rectify arg indexes changes in blame --no-color fix

Introduced in 78685441f4effd81082a53abb4c1246ebd1e0e49

15 years agoFix status loading of unmerged entries to avoid access to freed memory
Jonas Fonseca [Sat, 24 Jan 2009 11:52:25 +0000 (12:52 +0100)]
Fix status loading of unmerged entries to avoid access to freed memory

15 years agoFix kill_io() to only call kill(2) when pid is non-zero
Jonas Fonseca [Fri, 23 Jan 2009 17:12:25 +0000 (18:12 +0100)]
Fix kill_io() to only call kill(2) when pid is non-zero

15 years agoBlame view: fix reloading of the diff view for changes not yet committed
Jonas Fonseca [Fri, 23 Jan 2009 11:37:08 +0000 (12:37 +0100)]
Blame view: fix reloading of the diff view for changes not yet committed

The regression was introduced in e00ea5d (Blame: do to not reload the
diff view for same commits).

15 years agoOops, always specify --no-color when using git diff
Jonas Fonseca [Fri, 23 Jan 2009 11:23:29 +0000 (12:23 +0100)]
Oops, always specify --no-color when using git diff

15 years agoBlame view: fix diffing of lines marked as not yet committed
Jonas Fonseca [Fri, 23 Jan 2009 11:11:01 +0000 (12:11 +0100)]
Blame view: fix diffing of lines marked as not yet committed

15 years agoAdd support for restoring the view position in reloadable views
Jonas Fonseca [Fri, 24 Oct 2008 08:56:51 +0000 (10:56 +0200)]
Add support for restoring the view position in reloadable views

The status view still uses its own more specialized restoring code.
There are still some cases which are not completely handled. For
example, restoring will only be done when the current line is the first
in the view, thus changing the view position will cancel the restoring.
However, if you change back to the first line restoring will be enabled.

15 years agoFix status_exists to be consistent with data displayed in the stage view
Jonas Fonseca [Thu, 22 Jan 2009 16:00:45 +0000 (17:00 +0100)]
Fix status_exists to be consistent with data displayed in the stage view

15 years agoMake it possible to call select_view_line for non-displayed views
Jonas Fonseca [Thu, 22 Jan 2009 15:59:00 +0000 (16:59 +0100)]
Make it possible to call select_view_line for non-displayed views

15 years agoRefactor find_next_line into select_view_line
Jonas Fonseca [Sun, 18 Jan 2009 01:58:47 +0000 (02:58 +0100)]
Refactor find_next_line into select_view_line

15 years agoRefactor user input handling into separate function
Jonas Fonseca [Sat, 17 Jan 2009 13:05:00 +0000 (14:05 +0100)]
Refactor user input handling into separate function

Fixes resizing while the prompt is open.

15 years agoAdd support for opening any blob in an editor
Jonas Fonseca [Sat, 17 Jan 2009 09:08:41 +0000 (10:08 +0100)]
Add support for opening any blob in an editor

15 years agoPrefer werase to wclear when possible to reduce flickering
Jonas Fonseca [Mon, 19 Jan 2009 14:50:00 +0000 (15:50 +0100)]
Prefer werase to wclear when possible to reduce flickering

Use werase instead of wclear in redraw_view and optionally make
redraw_display use wclear before calling redraw_view. After this, wclear
is only used when there is possibility that the screen could have been
corrupted.

15 years agoCleanup and improve option toggling actions to include help message
Jonas Fonseca [Mon, 19 Jan 2009 15:29:59 +0000 (16:29 +0100)]
Cleanup and improve option toggling actions to include help message

15 years agoFix stage reloading to not close when staging chunks from group diff
Jonas Fonseca [Wed, 21 Jan 2009 22:14:17 +0000 (23:14 +0100)]
Fix stage reloading to not close when staging chunks from group diff

15 years agoDo not terminate the update when switching back to a loading view
Jonas Fonseca [Wed, 21 Jan 2009 15:27:15 +0000 (16:27 +0100)]
Do not terminate the update when switching back to a loading view

Move call to end_update() to begin_update() so checks for view content
is honored in the case where no reloading is necessary.

15 years agoFix regression of main view drawing
Jonas Fonseca [Mon, 19 Jan 2009 21:46:24 +0000 (22:46 +0100)]
Fix regression of main view drawing

Hopefully last fix for dirty flag regressions.

15 years agoCleanup update_view's read loop
Jonas Fonseca [Mon, 19 Jan 2009 14:33:43 +0000 (15:33 +0100)]
Cleanup update_view's read loop

15 years agoFix regression in handling of data for non-UTF-8 locales
Jonas Fonseca [Mon, 19 Jan 2009 14:19:54 +0000 (15:19 +0100)]
Fix regression in handling of data for non-UTF-8 locales

The bug was introduced in 65498141015b6070cf5c9b5704039389dba76e90 where
the the IO API was changed from using stdio to 'raw' file descriptors.
Part of the change removed the need for cutting the ending newline from
the input line in update_view(). This caused the resulting iconv output
buffer to not be NUL terminated since the input string no longer
contained an ending NULL byte.

Reported by Pavel Roskin.

15 years agoFix another regression from the dirty flag changes causing flickering
Jonas Fonseca [Sat, 17 Jan 2009 22:10:21 +0000 (23:10 +0100)]
Fix another regression from the dirty flag changes causing flickering

Use redraw_view_from() instead of redraw_view() to avoid excessive calls
to wclear().

15 years agoFix serious bug where a stack allocated variable was returned
Jonas Fonseca [Sat, 17 Jan 2009 18:57:10 +0000 (19:57 +0100)]
Fix serious bug where a stack allocated variable was returned

Reproducable when calling tig with log arguments.

15 years agoImprove messages when preparing to load blame commits
Jonas Fonseca [Sat, 17 Jan 2009 07:31:57 +0000 (08:31 +0100)]
Improve messages when preparing to load blame commits

15 years agoFix regressions introduced in the last few dirty flag changes
Jonas Fonseca [Thu, 15 Jan 2009 19:28:04 +0000 (20:28 +0100)]
Fix regressions introduced in the last few dirty flag changes

Regressions was introduced in ddc5064c42f2adab639feeacf86729a44f06f216.

15 years agoTree view: make drawing more smooth by using the dirty flag
Jonas Fonseca [Thu, 15 Jan 2009 14:56:11 +0000 (15:56 +0100)]
Tree view: make drawing more smooth by using the dirty flag

15 years agoCleanup redrawing of views when updating by using the dirty flag
Jonas Fonseca [Wed, 14 Jan 2009 16:15:10 +0000 (17:15 +0100)]
Cleanup redrawing of views when updating by using the dirty flag

15 years agoCleanup the tree_read sorting loop
Jonas Fonseca [Thu, 15 Jan 2009 14:24:39 +0000 (15:24 +0100)]
Cleanup the tree_read sorting loop

15 years agoFix memory corruption bug in tree_read when sorting the entries
Jonas Fonseca [Thu, 15 Jan 2009 14:14:54 +0000 (15:14 +0100)]
Fix memory corruption bug in tree_read when sorting the entries

Triggered by defining ITEM_CHUNK_SIZE to 1.

15 years agoCleanup and simplify the code by introducing add_line_format
Jonas Fonseca [Thu, 15 Jan 2009 13:44:40 +0000 (14:44 +0100)]
Cleanup and simplify the code by introducing add_line_format

15 years agoCleanup the code by calling realloc_lines in add_line_data
Jonas Fonseca [Wed, 14 Jan 2009 12:31:19 +0000 (13:31 +0100)]
Cleanup the code by calling realloc_lines in add_line_data

15 years agotig-0.13
Jonas Fonseca [Tue, 13 Jan 2009 22:08:01 +0000 (23:08 +0100)]
tig-0.13

15 years agoLaunch mergetool from the project root directory
Jonas Fonseca [Tue, 13 Jan 2009 17:41:37 +0000 (18:41 +0100)]
Launch mergetool from the project root directory

Fixes problem when in a subdirectory.

15 years agoClear the view after 1 second during updates where reading takes long
Jonas Fonseca [Wed, 19 Nov 2008 11:24:22 +0000 (12:24 +0100)]
Clear the view after 1 second during updates where reading takes long

Inspired by Karl Chen.

15 years agoIO API: use select(2) to check if pipe is readable when updating a view
Jonas Fonseca [Sun, 9 Nov 2008 20:04:45 +0000 (21:04 +0100)]
IO API: use select(2) to check if pipe is readable when updating a view

15 years agoIO API: reindent status_run main loop after the rewrite
Jonas Fonseca [Tue, 13 Jan 2009 16:16:58 +0000 (17:16 +0100)]
IO API: reindent status_run main loop after the rewrite

No code change.

15 years agoIO API: replace io_gets with helper for scanning buffers
Jonas Fonseca [Tue, 13 Jan 2009 14:22:11 +0000 (15:22 +0100)]
IO API: replace io_gets with helper for scanning buffers

Use in status_run() to simplify the code.

15 years agoIO API: use fork+exec
Jonas Fonseca [Sat, 10 Jan 2009 03:21:44 +0000 (22:21 -0500)]
IO API: use fork+exec

15 years agoIO API: use argv internally
Jonas Fonseca [Fri, 9 Jan 2009 17:29:57 +0000 (12:29 -0500)]
IO API: use argv internally

15 years agoIO API: use file descriptor internally
Jonas Fonseca [Fri, 9 Jan 2009 17:17:38 +0000 (12:17 -0500)]
IO API: use file descriptor internally

15 years agoIO API: replace init_io_fd with io_open which calls fopen(3)
Jonas Fonseca [Fri, 9 Jan 2009 14:11:48 +0000 (09:11 -0500)]
IO API: replace init_io_fd with io_open which calls fopen(3)

15 years agoIO API: use in the status view
Jonas Fonseca [Mon, 12 Jan 2009 13:57:05 +0000 (14:57 +0100)]
IO API: use in the status view

15 years agoIO API: use when loading repository properties
Jonas Fonseca [Fri, 28 Nov 2008 10:27:21 +0000 (11:27 +0100)]
IO API: use when loading repository properties

This introduces an incompatibility regarding the format of the
TIG_LS_REMOTE environment variable.

15 years agoIO API: use in the stage view
Jonas Fonseca [Thu, 8 Jan 2009 19:49:25 +0000 (14:49 -0500)]
IO API: use in the stage view

15 years agoIO API: obsolete opt_pipe
Jonas Fonseca [Sun, 11 Jan 2009 22:15:00 +0000 (23:15 +0100)]
IO API: obsolete opt_pipe

15 years agoIO API: obsolete opt_cmd by using prepare_update in status_enter
Jonas Fonseca [Thu, 8 Jan 2009 18:20:04 +0000 (13:20 -0500)]
IO API: obsolete opt_cmd by using prepare_update in status_enter

15 years agoIO API: use prepare_update when parsing command line arguments
Jonas Fonseca [Thu, 27 Nov 2008 16:31:40 +0000 (17:31 +0100)]
IO API: use prepare_update when parsing command line arguments

15 years agoIO API: use in add_describe_ref
Jonas Fonseca [Wed, 31 Dec 2008 06:56:55 +0000 (01:56 -0500)]
IO API: use in add_describe_ref

15 years agoIO API: use in the blame view
Jonas Fonseca [Fri, 28 Nov 2008 11:15:50 +0000 (12:15 +0100)]
IO API: use in the blame view

15 years agoIO API: unify tree view and the default path in begin_update
Jonas Fonseca [Sat, 10 Jan 2009 21:51:54 +0000 (16:51 -0500)]
IO API: unify tree view and the default path in begin_update

15 years agoIO API: use for the main, log, diff, tree and blob views
Jonas Fonseca [Thu, 27 Nov 2008 16:45:54 +0000 (17:45 +0100)]
IO API: use for the main, log, diff, tree and blob views

This introduces an incompatibility with previous versions.