{
char c;
-#define BUFPUT(x) ( (bufsize < SIZEOF_CMD) && (buf[bufsize++] = (x)) )
+#define BUFPUT(x) do { if (bufsize < SIZEOF_CMD) buf[bufsize++] = (x); } while (0)
BUFPUT('\'');
while ((c = *src++)) {
*
* The main view::
* Is the default view, and it shows a one line summary of each commit
- * in the chosen list of revision. The summary includes commit date,
+ * in the chosen list of revisions. The summary includes commit date,
* author, and the first line of the log message. Additionally, any
* repository references, such as tags, will be shown.
*
}
static void
+update_view_title(struct view *view)
+{
+ if (view == display[current_view])
+ wbkgdset(view->title, get_line_attr(LINE_TITLE_FOCUS));
+ else
+ wbkgdset(view->title, get_line_attr(LINE_TITLE_BLUR));
+
+ werase(view->title);
+ wmove(view->title, 0, 0);
+
+ /* [main] ref: 334b506... - commit 6 of 4383 (0%) */
+
+ if (*view->ref)
+ wprintw(view->title, "[%s] %s", view->name, view->ref);
+ else
+ wprintw(view->title, "[%s]", view->name);
+
+ if (view->lines) {
+ wprintw(view->title, " - %s %d of %d (%d%%)",
+ view->ops->type,
+ view->lineno + 1,
+ view->lines,
+ (view->lineno + 1) * 100 / view->lines);
+ }
+
+ wrefresh(view->title);
+}
+
+static void
resize_display(void)
{
int offset, i;
}
static void
-update_view_title(struct view *view)
+redraw_display(void)
{
- if (view == display[current_view])
- wbkgdset(view->title, get_line_attr(LINE_TITLE_FOCUS));
- else
- wbkgdset(view->title, get_line_attr(LINE_TITLE_BLUR));
-
- werase(view->title);
- wmove(view->title, 0, 0);
-
- /* [main] ref: 334b506... - commit 6 of 4383 (0%) */
-
- if (*view->ref)
- wprintw(view->title, "[%s] %s", view->name, view->ref);
- else
- wprintw(view->title, "[%s]", view->name);
+ struct view *view;
+ int i;
- if (view->lines) {
- wprintw(view->title, " - %s %d of %d (%d%%)",
- view->ops->type,
- view->lineno + 1,
- view->lines,
- (view->lineno + 1) * 100 / view->lines);
+ foreach_view (view, i) {
+ redraw_view(view);
+ update_view_title(view);
}
-
- wrefresh(view->title);
}
+
/*
* Navigation
*/
}
case REQ_TOGGLE_LINE_NUMBERS:
opt_line_number = !opt_line_number;
- redraw_view(view);
- update_view_title(view);
+ redraw_display();
break;
case REQ_PROMPT:
resize_display();
/* Fall-through */
case REQ_SCREEN_REDRAW:
- foreach_view (view, i) {
- redraw_view(view);
- update_view_title(view);
- }
+ redraw_display();
break;
case REQ_SCREEN_UPDATE:
* Main
*/
-static void
+#if __GNUC__ >= 3
+#define __NORETURN __attribute__((__noreturn__))
+#else
+#define __NORETURN
+#endif
+
+static void __NORETURN
quit(int sig)
{
/* XXX: Restore tty modes and let the OS cleanup the rest! */
exit(0);
}
-static void die(const char *err, ...)
+static void __NORETURN
+die(const char *err, ...)
{
va_list args;
* If you are interested only in those revisions that made changes to a
* specific file (or even several files) list the files like this:
*
- * $ tig log Makefile
+ * $ tig log Makefile README
*
* To avoid ambiguity with repository references such as tag name, be sure
* to separate file names from other git options using "\--". So if you
* If you are only interested in changed that happened between two dates
* you can use:
*
- * $ tig -- --after=May.5th --before=2006-05-16.15:44
+ * $ tig -- --after="May 5th" --before="2006-05-16 15:44"
*
- * NOTE: The dot (".") is used as a separator instead of a space to avoid
- * having to quote the option value. If you prefer use `--after="May 5th"`
- * instead of `--after="May 5th"`.
+ * NOTE: If you want to avoid having to quote dates containing spaces you
+ * can use "." instead, e.g. `--after=May.5th`.
*
* Limiting by commit ranges
* ~~~~~~~~~~~~~~~~~~~~~~~~~
* link:http://www.kernel.org/pub/software/scm/git/docs/[git(7)],
* link:http://www.kernel.org/pub/software/scm/cogito/docs/[cogito(7)]
* gitk(1): git repository browser written using tcl/tk,
+ * qgit(1): git repository browser written using c++/Qt,
* gitview(1): git repository browser written using python/gtk.
**/