--- texfont.c.orig	2017-03-28 20:17:28.558428139 -0500
+++ texfont.c	2017-03-28 21:37:44.222277364 -0500
@@ -740,35 +740,51 @@
     if (!cache->string)
       {
         cache->string     = strdup (string);
         cache->extents    = overall;
         cache->tex_width  = tex_width;
         cache->tex_height = tex_height;
       }
   }
 }
 
-
 /* Draws the string on the window at the given pixel position.
    Newlines and tab stops are honored.
    Any numbers inside [] will be rendered as a subscript.
    Assumes the font has been loaded as with load_texture_font().
 
    Position is 0 for center, 1 for top left, 2 for bottom left.
  */
 void
 print_texture_label (Display *dpy,
                      texture_font_data *data,
                      int window_width, int window_height,
                      int position,
                      const char *string)
 {
+  print_texture_label_with_offset(dpy, data, window_width, window_height, position, string, 0, 0);
+}
+/* Draws the string on the window at the given pixel position.
+   Newlines and tab stops are honored.
+   Any numbers inside [] will be rendered as a subscript.
+   Assumes the font has been loaded as with load_texture_font().
+
+   Position is 0 for center, 1 for top left, 2 for bottom left.
+ */
+void
+print_texture_label_with_offset (Display *dpy,
+                     texture_font_data *data,
+                     int window_width, int window_height,
+                     int position,
+                     const char *string,
+                     int x_offset, int y_offset)
+{
   GLfloat color[4];
 
   Bool tex_p   = glIsEnabled (GL_TEXTURE_2D);
   Bool texs_p  = glIsEnabled (GL_TEXTURE_GEN_S);
   Bool text_p  = glIsEnabled (GL_TEXTURE_GEN_T);
   Bool depth_p = glIsEnabled (GL_DEPTH_TEST);
   Bool cull_p  = glIsEnabled (GL_CULL_FACE);
   Bool fog_p   = glIsEnabled (GL_FOG);
   GLint ovp[4];
 
@@ -870,20 +886,22 @@
         x = ascent;
         y = window_height - ascent*2;
         break;
       case 2:					/* bottom */
         x = ascent;
         y = h;
         break;
       default:
         abort();
       }
+      x += x_offset;
+      y += y_offset;
 
       glTranslatef (x, y, 0);
 
       /* draw the text five times, to give it a border. */
       {
         const XPoint offsets[] = {{ -1, -1 },
                                   { -1,  1 },
                                   {  1,  1 },
                                   {  1, -1 },
                                   {  0,  0 }};
