diff --git a/eeshow/Makefile b/eeshow/Makefile
index 9c4f74e..05e9cf9 100644
--- a/eeshow/Makefile
+++ b/eeshow/Makefile
@@ -12,7 +12,7 @@
NAME = eeshow
OBJS = main.o sch-parse.o sch-render.o lib-parse.o lib-render.o \
- gui/gui.o gui/over.o gui/style.o gui/aoi.o fmt-pango.o \
+ gui/gui.o gui/over.o gui/style.o gui/aoi.o gui/fmt-pango.o \
file.o git-util.o git-file.o git-hist.o delta.o \
style.o fig.o record.o cro.o diff.o gfx.o dwg.o text.o misc.o diag.o
diff --git a/eeshow/git-hist.c b/eeshow/git-hist.c
index 03d02d4..6f18fa8 100644
--- a/eeshow/git-hist.c
+++ b/eeshow/git-hist.c
@@ -18,7 +18,6 @@
#include "util.h"
#include "diag.h"
-#include "fmt-pango.h" /* for vcs_long_for_pango */
#include "git-util.h"
#include "git-file.h"
#include "git-hist.h"
@@ -211,7 +210,8 @@ const char *vcs_git_summary(struct hist *h)
* the very specific constraints imposed by the markup format of Pango.
*/
-char *vcs_git_long_for_pango(struct hist *h)
+char *vcs_git_long_for_pango(struct hist *h,
+ char *(*formatter)(const char *fmt, ...))
{
const git_error *e;
git_buf buf = { 0 };
@@ -225,7 +225,7 @@ char *vcs_git_long_for_pango(struct hist *h)
goto fail;
commit_time = git_commit_time(h->commit);
sig = git_commit_committer(h->commit);
- s = fmt_pango("%s %s%s <%s>\n%s",
+ s = formatter("%s %s%s <%s>\n%s",
buf.ptr, ctime(&commit_time), sig->name, sig->email,
git_commit_summary(h->commit));
git_buf_free(&buf);
diff --git a/eeshow/git-hist.h b/eeshow/git-hist.h
index 8caebfc..c26cf5d 100644
--- a/eeshow/git-hist.h
+++ b/eeshow/git-hist.h
@@ -35,7 +35,8 @@ bool vcs_git_try(const char *path);
struct hist *vcs_git_hist(const char *path);
char *vcs_git_get_rev(struct hist *h);
const char *vcs_git_summary(struct hist *hist);
-char *vcs_git_long_for_pango(struct hist *hist);
+char *vcs_git_long_for_pango(struct hist *hist,
+ char *(*formatter)(const char *fmt, ...));
void hist_iterate(struct hist *h,
void (*fn)(void *user, struct hist *h), void *user);
void dump_hist(struct hist *h);
diff --git a/eeshow/fmt-pango.c b/eeshow/gui/fmt-pango.c
similarity index 97%
rename from eeshow/fmt-pango.c
rename to eeshow/gui/fmt-pango.c
index d877b61..96deba4 100644
--- a/eeshow/fmt-pango.c
+++ b/eeshow/gui/fmt-pango.c
@@ -1,5 +1,5 @@
/*
- * fmt-pango.c - Format strings for Pango markup
+ * gui/fmt-pango.c - Format strings for Pango markup
*
* Written 2016 by Werner Almesberger
* Copyright 2016 by Werner Almesberger
@@ -20,7 +20,7 @@
#include "util.h"
#include "diag.h"
-#include "fmt-pango.h"
+#include "gui/fmt-pango.h"
unsigned vsfmt_pango(char *buf, const char *fmt, va_list ap)
diff --git a/eeshow/fmt-pango.h b/eeshow/gui/fmt-pango.h
similarity index 81%
rename from eeshow/fmt-pango.h
rename to eeshow/gui/fmt-pango.h
index 43628e4..cf4c315 100644
--- a/eeshow/fmt-pango.h
+++ b/eeshow/gui/fmt-pango.h
@@ -1,5 +1,5 @@
/*
- * fmt-pango.h - Format strings for Pango markup
+ * gui/fmt-pango.h - Format strings for Pango markup
*
* Written 2016 by Werner Almesberger
* Copyright 2016 by Werner Almesberger
@@ -11,8 +11,8 @@
*/
-#ifndef FMT_PANGO_H
-#define FMT_PANGO_H
+#ifndef GUI_FMT_PANGO_H
+#define GUI_FMT_PANGO_H
#include
@@ -22,4 +22,4 @@ char *vfmt_pango(const char *fmt, va_list ap);
char *fmt_pango(const char *fmt, ...)
__attribute__((format(printf, 1, 2)));
-#endif /* !FMT_PANGO_H */
+#endif /* !GUI_FMT_PANGO_H */
diff --git a/eeshow/gui/gui.c b/eeshow/gui/gui.c
index 5ed3e82..8bde583 100644
--- a/eeshow/gui/gui.c
+++ b/eeshow/gui/gui.c
@@ -38,6 +38,7 @@
#include "delta.h"
#include "diff.h"
#include "dwg.h"
+#include "gui/fmt-pango.h"
#include "gui/aoi.h"
#include "gui/style.h"
#include "gui/over.h"
@@ -489,7 +490,7 @@ static bool hover_history(void *user, bool on)
char *s;
if (on) {
- s = vcs_git_long_for_pango(h->vcs_hist);
+ s = vcs_git_long_for_pango(h->vcs_hist, fmt_pango);
overlay_text_raw(h->over, s);
free(s);
} else {
@@ -680,7 +681,7 @@ static bool show_history_details(void *user, bool on)
char *s;
if (on) {
- s = vcs_git_long_for_pango(h->vcs_hist);
+ s = vcs_git_long_for_pango(h->vcs_hist, fmt_pango);
overlay_text_raw(h->over, s);
free(s);
} else {
diff --git a/eeshow/gui/over.c b/eeshow/gui/over.c
index 7ee7a91..aedfd92 100644
--- a/eeshow/gui/over.c
+++ b/eeshow/gui/over.c
@@ -31,7 +31,7 @@
#include
#include "util.h"
-#include "fmt-pango.h"
+#include "gui/fmt-pango.h"
#include "gui/aoi.h"
#include "gui/style.h"
#include "gui/over.h"
diff --git a/eeshow/main.c b/eeshow/main.c
index d6ff527..e88f0f1 100644
--- a/eeshow/main.c
+++ b/eeshow/main.c
@@ -28,7 +28,7 @@
#include "file.h"
#include "lib.h"
#include "sch.h"
-#include "fmt-pango.h"
+#include "gui/fmt-pango.h"
#include "git-hist.h"
#include "gui/gui.h"
#include "main.h"