Index: kit/draw.c
diff -u kit/draw.c:1.246 kit/draw.c:1.248
--- kit/draw.c:1.246	Sun Feb 15 20:35:19 2009
+++ kit/draw.c	Tue May  4 07:37:28 2010
@@ -26,7 +26,7 @@
  * SUCH DAMAGE.
  */
 /*
- * $Id: draw.c,v 1.246 2009/02/15 11:35:19 nishida Exp $
+ * $Id: draw.c,v 1.248 2010/05/03 22:37:28 nishida Exp $
  */
 
 #include "mgp.h"
@@ -898,6 +898,7 @@
 
 	case CTL_NOOP:
 	case CTL_NODEF:
+	case CTL_TITLE:
 		break;
 
 	case CTL_XFONT:
@@ -5471,12 +5472,12 @@
 		    XFT_FAMILY, XftTypeString, font,
 		    XFT_ENCODING, XftTypeString, registry,
 		    XFT_STYLE, XftTypeString, style,
-		    XFT_PIXEL_SIZE, XftTypeDouble, (float)csize, 0);
+		    XFT_PIXEL_SIZE, XftTypeDouble, (float)csize, NULL);
 	} else {
 		xftfont = XftFontOpen(display, screen,
 		    XFT_FAMILY, XftTypeString, font,
 		    XFT_ENCODING, XftTypeString, registry,
-		    XFT_PIXEL_SIZE, XftTypeDouble, (float)csize, 0);
+		    XFT_PIXEL_SIZE, XftTypeDouble, (float)csize, NULL);
 	}
 	if (xftfont == 0) {
 		free(xfont);
Index: kit/globals.c
diff -u kit/globals.c:1.52 kit/globals.c:1.53
--- kit/globals.c:1.52	Sun Nov 25 02:47:28 2007
+++ kit/globals.c	Tue May  4 07:28:00 2010
@@ -26,7 +26,7 @@
  * SUCH DAMAGE.
  */
 /*
- * $Id: globals.c,v 1.52 2007/11/24 17:47:28 nishida Exp $
+ * $Id: globals.c,v 1.53 2010/05/03 22:28:00 nishida Exp $
  */
 
 #include "mgp.h"
@@ -162,5 +162,6 @@
 /*CTL*/	{ CTL_SUB,		T_VOID,	"sub", 3 },
 /*CTL*/	{ CTL_SETSUP,		T_INT,	"setsup", 6 },
 /*CTL*/	{ CTL_M17N,		T_STR2,	"m17n", 4 },
+/*CTL*/	{ CTL_TITLE,		T_STR,	"title", 5 },
 	{ 0, 0, NULL, 0 },
 };
Index: kit/grammar.y
diff -u kit/grammar.y:1.50 kit/grammar.y:1.51
--- kit/grammar.y:1.50	Sat Jan 19 02:43:20 2008
+++ kit/grammar.y	Tue May  4 07:28:00 2010
@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  */
 /*
- * $Id: grammar.y,v 1.50 2008/01/18 17:43:20 nishida Exp $
+ * $Id: grammar.y,v 1.51 2010/05/03 22:28:00 nishida Exp $
  */
 /*
  * partly derived from lbl libpcap source code, which has the following
@@ -788,6 +788,7 @@
 %token KW_OPAQUE
 %token KW_SUP KW_SUB KW_SETSUP
 %token KW_M17N
+%token KW_TITLE
 
 %type <ct> toplevel
 %type <ct> line defaultline tabline shellline deffontline
@@ -1037,6 +1038,7 @@
 #endif
 			}
 	| KW_FONT STR	{ $$ = gen_str(CTL_FONT, $2); }
+	| KW_TITLE STR	{ $$ = gen_str(CTL_TITLE, $2); }
 	| KW_TEXT STR	{ $$ = gen_str(CTL_TEXT, $2); }	/*easter egg*/
 	| KW_CHARSET STR	{ $$ = gen_str(CTL_CHARSET, $2); }
 	| KW_AREA NUM NUM { $$ = gen_area($2, $3, -1, -1); }
Index: kit/mgp.h
diff -u kit/mgp.h:1.147 kit/mgp.h:1.148
--- kit/mgp.h:1.147	Wed Feb 18 19:44:30 2009
+++ kit/mgp.h	Tue May  4 07:28:00 2010
@@ -26,7 +26,7 @@
  * SUCH DAMAGE.
  */
 /*
- * $Id: mgp.h,v 1.147 2009/02/18 10:44:30 nishida Exp $
+ * $Id: mgp.h,v 1.148 2010/05/03 22:28:00 nishida Exp $
  */
 
 #include <stdio.h>
@@ -400,6 +400,7 @@
 	u_int pg_b_numcolor;	/* background gradation number of colors */
 	u_int pg_b_dir;		/* background gradation deg */
 	u_int pg_text;		/* this page is text only */
+	char *pg_title_str;     /* a title has been defined */
 };
 extern struct page_attribute page_attribute[MAXPAGE];
 
Index: kit/parse.c
diff -u kit/parse.c:1.103 kit/parse.c:1.104
--- kit/parse.c:1.103	Sun Nov 25 02:35:28 2007
+++ kit/parse.c	Tue May  4 07:28:00 2010
@@ -26,7 +26,7 @@
  * SUCH DAMAGE.
  */
 /*
- * $Id: parse.c,v 1.103 2007/11/24 17:35:28 nishida Exp $
+ * $Id: parse.c,v 1.104 2010/05/03 22:28:00 nishida Exp $
  */
 
 #include "mgp.h"
@@ -636,6 +636,10 @@
 					page_attribute[*page].pg_flag
 						|= PGFLAG_NODEF;
 					break;
+				case CTL_TITLE:
+					page_attribute[*page].pg_title_str =
+						strdup( cp->ctc_value); 
+					break;
 				case CTL_CONT:
 					ct++;
 					break;
Index: kit/plist.c
diff -u kit/plist.c:1.23 kit/plist.c:1.24
--- kit/plist.c:1.23	Mon May 19 16:29:45 2003
+++ kit/plist.c	Tue May  4 07:28:00 2010
@@ -26,7 +26,7 @@
  * SUCH DAMAGE.
  */
 /*
- * $Id: plist.c,v 1.23 2003/05/19 07:29:45 nishida Exp $
+ * $Id: plist.c,v 1.24 2010/05/03 22:28:00 nishida Exp $
  */
 
 #include "mgp.h"
@@ -171,6 +171,10 @@
 	char *p;
 	struct ctrl *cp;
 
+	if( page_attribute[page].pg_title_str && 
+		*page_attribute[page].pg_title_str) {
+		return page_attribute[page].pg_title_str ;
+	} else {
 	p = "";
 	for (l = 0; l <= page_attribute[page].pg_linenum; l++) {
 		cp = page_control[page][l];
@@ -188,6 +192,7 @@
 		p++;
 
 	return p;
+	}
 }
 
 void
Index: kit/scanner.l
diff -u kit/scanner.l:1.28 kit/scanner.l:1.29
--- kit/scanner.l:1.28	Sun Nov 25 02:47:28 2007
+++ kit/scanner.l	Tue May  4 07:28:00 2010
@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  */
 /*
- * $Id: scanner.l,v 1.28 2007/11/24 17:47:28 nishida Exp $
+ * $Id: scanner.l,v 1.29 2010/05/03 22:28:00 nishida Exp $
  */
 /*
  * partly derived from lbl libpcap source code, which has the following
@@ -172,6 +172,7 @@
 (SETSUP|setsup)	return KW_SETSUP;
 (M17N|m17n)	return KW_M17N;
 (PSFONT|psfont) return KW_PSFONT;
+(TITLE|title)		return KW_TITLE;
 
 [ \n\t]		;
 ","		return COMMA;
