Fix pager mode regressions
This fixes both a segfault when starting tig in pager mode, caused by no
view being setup before calling report(). Introduced in: "Add notice
about empty pager view" (5c4358d1b309381997a5c4780a432140fefa5bcb).
Reported by Lars Noschinski in debian bug 429448.
Also, a fix for actually reading from stdin, caused by comparison of
view->vid and view->id being reported as equal leading to no actual
update. Introduced in: "Improve management of view->ref and the title
line" (035ba11f40c0a045989ed861e72327012af022b4). Now, the title line in
pager mode will say "stdin" when reading from externally piped input.
This fixes both a segfault when starting tig in pager mode, caused by no
view being setup before calling report(). Introduced in: "Add notice
about empty pager view" (5c4358d1b309381997a5c4780a432140fefa5bcb).
Reported by Lars Noschinski in debian bug 429448.
Also, a fix for actually reading from stdin, caused by comparison of
view->vid and view->id being reported as equal leading to no actual
update. Introduced in: "Improve management of view->ref and the title
line" (035ba11f40c0a045989ed861e72327012af022b4). Now, the title line in
pager mode will say "stdin" when reading from externally piped input.
Fix (another) integer type mismatch on 64-bit systems
Similar to previous commit, use int type as the first parameter to
printf field width specifier (%.*s).
Similar to previous commit, use int type as the first parameter to
printf field width specifier (%.*s).
Fix integer type mismatch on 64-bit systems
fprintf wants an int parameter for the field width of a "%.*s" expression, but
the code was passing a size_t instead. This potentially broke systems where
sizeof(size_t) != sizeof(int). And even on systems where it did't break,
it still caused a compiler warning.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
fprintf wants an int parameter for the field width of a "%.*s" expression, but
the code was passing a size_t instead. This potentially broke systems where
sizeof(size_t) != sizeof(int). And even on systems where it did't break,
it still caused a compiler warning.
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Add TODO about using non-blocking I/O for incremental view loading
Seems to be the fix for debian bug #427093.
Seems to be the fix for debian bug #427093.
Only emit one "Not a git repository" error message
Allow CFLAGS to be overridden while preserving VERSION
If someone defined their own CFLAGS, they would have to include a -DVERSION=
as well (or else get unknown-version as the version).
Signed-off-by: James Bowes <jbowes@dangerouslyinc.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
If someone defined their own CFLAGS, they would have to include a -DVERSION=
as well (or else get unknown-version as the version).
Signed-off-by: James Bowes <jbowes@dangerouslyinc.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Grab path to the git directory; use it when listing untracked files
read_properties: use size_t instead of int for callback
Fix wrong uses of string_copy() with pointer instead of buffer
Follow up to commit 751e27c90eea47b4eacdd7b657731712712f7356 that
caused these bugs to be revealed.
Follow up to commit 751e27c90eea47b4eacdd7b657731712712f7356 that
caused these bugs to be revealed.
Fix use of the status view from subdirectories
Fix string_copy macro to use sizeof(src) for the source buffer
Merge branch 'jn/rpm-updates'
Conflicts:
Makefile
Conflicts:
Makefile
Refresh VERSION file when building distribution tarball in "make dist"
Overwrite contents of VERSION file from the HEAD revision with the
current version (at the time of building), so VERSION file in the
tarball generated by "make dist" (and which follows also rpm package
generated by "make rpm") is up to date.
Otherwise for example when building rpm it will be compiled with wrong
version string.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Overwrite contents of VERSION file from the HEAD revision with the
current version (at the time of building), so VERSION file in the
tarball generated by "make dist" (and which follows also rpm package
generated by "make rpm") is up to date.
Otherwise for example when building rpm it will be compiled with wrong
version string.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Include documentation sources for rpmbuild with '--without docs'
This includes _all_ documentation sources (and not only manual.txt) in
the rpm file build with '--without docs' option.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
This includes _all_ documentation sources (and not only manual.txt) in
the rpm file build with '--without docs' option.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Remove PDF version of manual from being build and installed
Because PDF version of "The tig Manual" doesn't offer anything new
that is not present in HTML version, and building PDF requires
additional tools (docbook2pdf) and their dependencies present, remove
it from tig rpm.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Because PDF version of "The tig Manual" doesn't offer anything new
that is not present in HTML version, and building PDF requires
additional tools (docbook2pdf) and their dependencies present, remove
it from tig rpm.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Make dist rule more robust using '&&'; create .tar.gz.md5 file
Fix typo the INSTALL file
The make command to build the documentation "make install-doc", not
"make install-docs".
Kindly pointed out by Michael G. Noll.
The make command to build the documentation "make install-doc", not
"make install-docs".
Kindly pointed out by Michael G. Noll.
Supply explicit permission bits to 'install'
'install' will install files with permissions set to '0755' if the
permissions are not specified on the command line. Having the execute
bits set on non-executable content is not desireable. Specify mode
0644 for non-executable content as well as specify mode 0755 for
executable content (in case the defaults change or are different on
different systems). Also tell 'install' to preserve timestamps.
[ Updated to also do it when installing HTML files. --jonas ]
Signed-off-by: Jeffrey C. Ollie <jeff@ocjtech.us>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
'install' will install files with permissions set to '0755' if the
permissions are not specified on the command line. Having the execute
bits set on non-executable content is not desireable. Specify mode
0644 for non-executable content as well as specify mode 0755 for
executable content (in case the defaults change or are different on
different systems). Also tell 'install' to preserve timestamps.
[ Updated to also do it when installing HTML files. --jonas ]
Signed-off-by: Jeffrey C. Ollie <jeff@ocjtech.us>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
tig-0.7.git
tig-0.7
Rename sync-docs to release-doc; add release-dist rule
Additionally, allow VERSION to be overwritten from the command
line by setting DIST_VERSION.
Additionally, allow VERSION to be overwritten from the command
line by setting DIST_VERSION.
Various random Makefile cleanups
Update sync-docs target to use git porcelain instead of cogito
Infrastructure for tig rpm builds
Adds RPM_VERSION to Makefile and new make targets: tig.spec, dist, and
rpm. A simple 'make rpm' will build the rpm. Also adds tig.spec.in
which is used to generate tig.spec.
Accidentally VERSION (and adding -DVERSION=$(VERSION) to CFLAGS) is
now defined always, even if we do not compile from the "live" tig
repository.
Minimally tested (meaning "make rpm" from tig repository works).
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Adds RPM_VERSION to Makefile and new make targets: tig.spec, dist, and
rpm. A simple 'make rpm' will build the rpm. Also adds tig.spec.in
which is used to generate tig.spec.
Accidentally VERSION (and adding -DVERSION=$(VERSION) to CFLAGS) is
now defined always, even if we do not compile from the "live" tig
repository.
Minimally tested (meaning "make rpm" from tig repository works).
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Move "static" version info to VERSION file
Cleanup dynamic version acquiring via git.
Cleanup dynamic version acquiring via git.
Add version information to man pages
Inspired and copied from git 7ef195ba3efe0ffa815e12afc4cb1e39a21ddfb4:
Override the [header] macro of asciidoc's docbook
backend to add version information to the generated
man pages.
by Frank Lichtenheld <frank@lichtenheld.de>. Slightly improved to
use asciidoc {version} macro to avoid having to invoke sed.
Inspired and copied from git 7ef195ba3efe0ffa815e12afc4cb1e39a21ddfb4:
Override the [header] macro of asciidoc's docbook
backend to add version information to the generated
man pages.
by Frank Lichtenheld <frank@lichtenheld.de>. Slightly improved to
use asciidoc {version} macro to avoid having to invoke sed.
Add manpage XSL from git and enhance with literallayout fixes
It ensures that .sp tags will be properly output so they do not appear
in the rendered manpages. Grabed from git's Documentation/callouts.xsl
file. From the git's commit 7ef0435088f41165ece95b6f226d3c15438505a5:
This is just a random hack to work around problems people seem
to be seeing in manpage backend of xmlto (it appears we are
getting ".sp" at the end of line without line break).
Additionally, output an empty line after literallayout blocks (.nf .fi)
so that any text following it will appear in a separate block.
It ensures that .sp tags will be properly output so they do not appear
in the rendered manpages. Grabed from git's Documentation/callouts.xsl
file. From the git's commit 7ef0435088f41165ece95b6f226d3c15438505a5:
This is just a random hack to work around problems people seem
to be seeing in manpage backend of xmlto (it appears we are
getting ".sp" at the end of line without line break).
Additionally, output an empty line after literallayout blocks (.nf .fi)
so that any text following it will appear in a separate block.
Add status view
The new view supports staging, unstaging, and adding of
untracked files. It is still only very basic. The colors
might need a few tweaks.
Bound to 'S' by default.
The new view supports staging, unstaging, and adding of
untracked files. It is still only very basic. The colors
might need a few tweaks.
Bound to 'S' by default.
main_read: cleanup and simplify
Refactor add_line_text parts into add_line_data; use it in main_read
Add open method to view_ops
Use it to turn open_help_view into help_open and make a backend for the
help view.
Use it to turn open_help_view into help_open and make a backend for the
help view.
Add notice about empty pager view
Similar to notice for blob view, mention when there is no pager content
to view and suggest the user to open the prompt to run a command.
Similar to notice for blob view, mention when there is no pager content
to view and suggest the user to open the prompt to run a command.
Add notice about empty pager view
Similar to notice for blob view, mention when there is no pager content
to view and suggest the user to open the prompt to run a command.
Similar to notice for blob view, mention when there is no pager content
to view and suggest the user to open the prompt to run a command.
Make keybinding reference more dynamic
It doesn't honor any key map info, however, hardcoding key information
seems wrong when get_key already exists. Used for the notice when blob
view is requested and no blob ID has yet been assigned to ref_blob.
It doesn't honor any key map info, however, hardcoding key information
seems wrong when get_key already exists. Used for the notice when blob
view is requested and no blob ID has yet been assigned to ref_blob.
Move space separator from get_key to formatting in open_help_view
Improve managment of view->ref and the title line
This removes a blob view specific hack needed for keeping the title line
synchronized with the current blob ID. It further also changes the pager
view to show the actual command that was run, regardless of whether
a commit line has been hovered.
This removes a blob view specific hack needed for keeping the title line
synchronized with the current blob ID. It further also changes the pager
view to show the actual command that was run, regardless of whether
a commit line has been hovered.
Be more paranoid about paths when updating the tree view
Shell quote the path always.
Shell quote the path always.
move_view: fix view->offset overflow bug
Reproducable by opening the tree view, then maximizing the blob view,
move up, and then closing the blob view, causing the view->offset to
have "wrapped around" and nothing to be displayed in the tree view.
The invalid update of view->offset only happend when moving
non-displayed views. Instead use the checked scroll_steps variable
instead of the steps variable. Add a guarding assert after the update.
Reproducable by opening the tree view, then maximizing the blob view,
move up, and then closing the blob view, causing the view->offset to
have "wrapped around" and nothing to be displayed in the tree view.
The invalid update of view->offset only happend when moving
non-displayed views. Instead use the checked scroll_steps variable
instead of the steps variable. Add a guarding assert after the update.
Introduce add_line_text to simplify pager based rendering
Fix revision graph visualization during incremental updating
This caused certain commit lines in the main view to not have have a
visual revision graph.
The reason is that revision graph visualization requires knowledge about
the parent commit. This causes a further one-off needed to be redrawn
for incremental updates.
This caused certain commit lines in the main view to not have have a
visual revision graph.
The reason is that revision graph visualization requires knowledge about
the parent commit. This causes a further one-off needed to be redrawn
for incremental updates.
Add TODO item about diff chunk staging/unstaging
Requested by Pasky.
Requested by Pasky.
Make it possible to install man pages and html files separately
[ Fixed typo and finally corrected the manual.html dependency on
manual.toc. --jonas ]
[ Fixed typo and finally corrected the manual.html dependency on
manual.toc. --jonas ]
tig-0.6.git
Bump the version number to 0.6
Oops, remove -liconv from LDFLAGS
Disable show-rev-graph by default
It can be enabled by adding
set show-rev-graph = yes
to ~/.tigrc or toggled by pressing 'g' when in the main viewer.
It can be enabled by adding
set show-rev-graph = yes
to ~/.tigrc or toggled by pressing 'g' when in the main viewer.
Merge with master
Improve handling of remotes
Hightlight remotes similar to how tags are highlighted.
Colors are configurable via main-remote.
Hightlight remotes similar to how tags are highlighted.
Colors are configurable via main-remote.
TODO: use autoconf to detect newer git and git-config availability
Make tig handle GIT_DIR better
The problem was caused by load_refs() calling "git-ls-remote ." completely
ignoring GIT_DIR. This is fixed by using git-rev-parse --git-dir to extract
the path to the requested git repository.
The problem was caused by load_refs() calling "git-ls-remote ." completely
ignoring GIT_DIR. This is fixed by using git-rev-parse --git-dir to extract
the path to the requested git repository.
Drop --stat usage from the main command assembled during option parsing
This is a follow up to commit fa187d6c87100b0c5d626eceb4369eef79176138
which removes one more useless use of --stat, which is very costly
especially for the main view.
A big thanks to Miciah for reporting this.
This is a follow up to commit fa187d6c87100b0c5d626eceb4369eef79176138
which removes one more useless use of --stat, which is very costly
especially for the main view.
A big thanks to Miciah for reporting this.
Add note about using autoconf to detect iconv(3) presence in libc
... and other build dependencies.
... and other build dependencies.
Fix parameter warning for iconv(3)
[ This reverts commit d9c49e6ec76ac311bbe9a1d0d3699ff4be79e64f that tried
to fix compile warning on Mac OS X. ]
Signed-off-by: Horst H. von Brand <vonbrand@inf.utfsm.cl>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
[ This reverts commit d9c49e6ec76ac311bbe9a1d0d3699ff4be79e64f that tried
to fix compile warning on Mac OS X. ]
Signed-off-by: Horst H. von Brand <vonbrand@inf.utfsm.cl>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Fix SITES URLs; promote git://repo.or.cz/tig.git mirror more
Discard error messages from git-describe
Fix commit author line parsing for when the name is empty
This is also a nice cleanup so the code uses chomp_string() instead of
"custom" removal of spaces.
This is also a nice cleanup so the code uses chomp_string() instead of
"custom" removal of spaces.
Merge with master
Never split the tree view when opening another tree view
The resulting bogus display[] state ment that the blob view was not
initialized causing segmentation faults in the redrawing code.
Reported by Alexey Tourbin <at@altlinux.ru>
The resulting bogus display[] state ment that the blob view was not
initialized causing segmentation faults in the redrawing code.
Reported by Alexey Tourbin <at@altlinux.ru>
Cast second arg to iconv to remove warning
main_read: handle titles that start with whitespace
Increase commit.title size from 75 to 128
Courtesy of Dmitry Levin, my current aterm session has COLUMNS=141
(1280x1024 with standard 9x15 font). So in the main view I can see
some commit headlines truncated. Changing hedline size from 75 to 128
characters seems to be reasonable.
Courtesy of Dmitry Levin, my current aterm session has COLUMNS=141
(1280x1024 with standard 9x15 font). So in the main view I can see
some commit headlines truncated. Changing hedline size from 75 to 128
characters seems to be reasonable.
Hardwire ERR to mean REQ_NONE in the main loop
add_keybinding: always allocate the new keybinding
Fixes infinite loop repoted by Miciah. Also simply continue when wgetch
returns ERR (-1) instead of calling get_keybinding() etc.
Fixes infinite loop repoted by Miciah. Also simply continue when wgetch
returns ERR (-1) instead of calling get_keybinding() etc.
tig-0.5.git
Crap, forgot to update the VERSION string again.
Crap, forgot to update the VERSION string again.
SITES: Point to pasky's git proxy repo.or.cz
INSTALL: mention possible iconv problems and workarounds
manual: document the tree/blob environment variables
Always clear the status window after prompting
Use wclrtoeol instead of werase
Fix clearing of the status window after prompting
parse_option: check for '-' first and break if it is not an option
Improve the "input mode" so the cursor is correctly positioned
add_keybinding: plug memory leak
TODO: repository status view, better text-input support
tigrc(5): mention tree/blob view actions; use dash in favour of underscore
Run the documentation through aspell
push_rev_graph: iterate all graph revs when looking for duplicates
Now atleast there will not be unconnected lines at the end of the graph.
Now atleast there will not be unconnected lines at the end of the graph.
BUGS: Merge locale support with utf8-only bug, add horizontal scrolling
Merge with master
Abbreviate the view reference in the view title for small widths
update_view_title: format load seconds as part of the state string
update_view_title: use string_format_from instead of wprintw
A simple fix of the bad wrapping bugs
This was surprisingly simple to fix by just turning off scrolling in
draw_view_line. From the BUGS file:
- If the screen width is very small the main view can draw outside the
current view causing bad wrapping. Same goes for title and status
windows.
- The cursor can wrap-around on the last line and cause the window to
scroll.
This was surprisingly simple to fix by just turning off scrolling in
draw_view_line. From the BUGS file:
- If the screen width is very small the main view can draw outside the
current view causing bad wrapping. Same goes for title and status
windows.
- The cursor can wrap-around on the last line and cause the window to
scroll.
update_display_cursor: take view as arg
Make the rev graph visualization have a one rev look-ahead
update_rev_graph: move code to prepare_rev_graph
Allow view readers to 'finalize' by calling with NULL line before closing
append_to_rev_graph: use local variable
Always draw the space between end of rev graph and start of commit title
The rev graph may have been increased so the old title should be
overwritten.
The rev graph may have been increased so the old title should be
overwritten.
Refactor (separator, line) chtype management to use 'fillers'
More graph_parent_is_merge usage
draw_rev_graph: refactor stuff to get_rev_graph_symbol
Improve comments
Use 'graph' instead of 'stack' in the rev graph code
Move rev graph code to own section
Move stuff to reset_rev_graph and rename it to done_rev_graph
Simplify the update_rev_graph end-game
Add graph_parent_is_merge
Now it actually starts looking like something