diff -c orig/xregal/Imakefile ./Imakefile
*** orig/xregal/Imakefile	Fri Jan 29 08:27:44 1999
--- ./Imakefile	Sun Mar  7 23:09:36 1999
***************
*** 96,106 ****
  XREGAL_SRCS = xregal.c history.c printmovie.c printmovies.c printname.c \
  searchname.c searchtitle.c popup.c lookupname.c lookuptitle.c actions.c \
  utility.c filmbuf.c buffer.c file.c DirMgr.c Directory.c cname.c titlelist.c \
! searchHistory.c tree.c genre.c find.c
  XREGAL_OBJS = xregal.o history.o printmovie.o  printmovies.o printname.o \
  searchname.o searchtitle.o popup.o lookupname.o lookuptitle.o actions.o \
  utility.o filmbuf.o buffer.o file.o DirMgr.o Directory.o cname.o titlelist.o \
! searchHistory.o tree.o genre.o find.o
  
  #ifdef WantNameCompletion
  SRCS = $(IMOVIEDB_SRCS) $(DB_SRCS) $(WIDGET_SRCS) $(XREGAL_SRCS) completion.c
--- 96,106 ----
  XREGAL_SRCS = xregal.c history.c printmovie.c printmovies.c printname.c \
  searchname.c searchtitle.c popup.c lookupname.c lookuptitle.c actions.c \
  utility.c filmbuf.c buffer.c file.c DirMgr.c Directory.c cname.c titlelist.c \
! searchHistory.c tree.c genre.c keyword.c find.c
  XREGAL_OBJS = xregal.o history.o printmovie.o  printmovies.o printname.o \
  searchname.o searchtitle.o popup.o lookupname.o lookuptitle.o actions.o \
  utility.o filmbuf.o buffer.o file.o DirMgr.o Directory.o cname.o titlelist.o \
! searchHistory.o tree.o genre.o keyword.o find.o
  
  #ifdef WantNameCompletion
  SRCS = $(IMOVIEDB_SRCS) $(DB_SRCS) $(WIDGET_SRCS) $(XREGAL_SRCS) completion.c
diff -c orig/xregal/actions.c ./actions.c
*** orig/xregal/actions.c	Fri Oct 23 08:13:59 1998
--- ./actions.c	Sun Mar  7 23:05:57 1999
***************
*** 10,15 ****
--- 10,16 ----
  #include "searchname.h"
  #include "cname.h"
  #include "genre.h"
+ #include "keyword.h"
  #include "find.h"
  #include "file.h"
  #include "history.h"
***************
*** 26,31 ****
--- 27,38 ----
  	PopupGenre();
  	}
  
+ void Asearchkeyword(Widget w, XEvent *ev, String *s, Cardinal *num) {
+ 	if (ks_popped_up)
+ 		return;
+ 	PopupKeyword();
+ 	}
+ 
  
  void Asearchname(Widget w, XEvent *ev, String *s, Cardinal *num) {
  	if (ts_popped_up)
***************
*** 77,82 ****
--- 84,90 ----
  		{"searchtitle", (XtActionProc) Asearchtitle},
  		{"findtext", (XtActionProc) AFindText},
  		{"searchgenre", (XtActionProc) Asearchgenre},
+ 		{"searchkeyword", (XtActionProc) Asearchkeyword},
  		{"savetofile", (XtActionProc) Asavetofile}
  		};
  
diff -c orig/xregal/genre.c ./genre.c
*** orig/xregal/genre.c	Fri Oct 23 08:14:03 1998
--- ./genre.c	Sun Mar  7 23:11:18 1999
***************
*** 144,150 ****
  
  	final_message=SEARCH_OK;
  
! 	sprintf(line, "Genre/keyword: %s", genre_searchtext);
  	if (count<200)
  		addAka(head);
  	displayListOfMovies(head, line, final_message);
--- 144,150 ----
  
  	final_message=SEARCH_OK;
  
! 	sprintf(line, "Genre: %s", genre_searchtext);
  	if (count<200)
  		addAka(head);
  	displayListOfMovies(head, line, final_message);
diff -c orig/xregal/xregal.c ./xregal.c
*** orig/xregal/xregal.c	Fri Oct 23 08:14:09 1998
--- ./xregal.c	Sun Mar  7 23:08:48 1999
***************
*** 34,39 ****
--- 34,40 ----
  #include "history.h"
  #include "actions.h"
  #include "genre.h"
+ #include "keyword.h"
  #include "find.h"
  #include "filmbuf.h"
  
***************
*** 82,87 ****
--- 83,89 ----
      "   <Key>F3:         findtext()\\n"
      "   <Key>f:          goforward()\\n"
      "   <Key>g:          searchgenre()\\n"
+     "   <Key>k:          searchkeyword()\\n"
      "   <Key>h:          history()\\n"
      "   <Key>s:          savetofile()\\n"
      "   <Key>c:          searchcname()\\n"
***************
*** 95,100 ****
--- 97,107 ----
  	"*genre_list.defaultColumns: 2",
  	"*genre_label.justification: center",
  	"*genremenubutton.shapeStyle: rectangle",
+ 	"*keyword_view.height: 350",
+ 	"*keyword_list.forceColumns: true",
+ 	"*keyword_list.defaultColumns: 2",
+ 	"*keyword_label.justification: center",
+ 	"*keywordmenubutton.shapeStyle: rectangle",
  
  	/* Labels */
  
***************
*** 102,107 ****
--- 109,116 ----
  	"*find_label.label: Search for",
  	"*genre_shell.title: Genre Search",
  	"*genre_label.label: Show categories with at least",
+ 	"*keyword_shell.title: Keyword Search",
+ 	"*keyword_label.label: Show categories with at least",
  	"*fs_shell.title: Save to file",
  	"*ts_shell.title: Movie Title Search",
  	"*tse_label.label: Movie title:",
***************
*** 154,159 ****
--- 163,170 ----
  		XtOffset(AppDataPtr, imdbSite),XtRString, (XtPointer) NULL},
  	{"genreInitial","GenreInitial",XtRInt,sizeof(int),
  		XtOffset(AppDataPtr, genreInitial),XtRImmediate, (XtPointer) 3},
+ 	{"keywordInitial","KeywordInitial",XtRInt,sizeof(int),
+ 		XtOffset(AppDataPtr, keywordInitial),XtRImmediate, (XtPointer) 3},
  	};
  
  static XrmOptionDescRec options[] =
***************
*** 204,213 ****
  	"Search for Name",
  	"Search for Character Name",
  	"Search for Genre",
  	"Find ...",
  	};
  
! #define SEARCH_MENU_ITEMS 5
  
  Widget main_menu_widget[MAIN_MENU_ITEMS];
  Widget search_menu_widget[SEARCH_MENU_ITEMS];
--- 215,225 ----
  	"Search for Name",
  	"Search for Character Name",
  	"Search for Genre",
+ 	"Search for Keyword",
  	"Find ...",
  	};
  
! #define SEARCH_MENU_ITEMS 6
  
  Widget main_menu_widget[MAIN_MENU_ITEMS];
  Widget search_menu_widget[SEARCH_MENU_ITEMS];
***************
*** 262,267 ****
--- 274,282 ----
  			PopupGenre();
  			break;
  		case 4:
+ 			PopupKeyword();
+ 			break;
+ 		case 5:
  			PopupFind();
  			break;
  		default:
diff -c orig/xregal/xregal.h ./xregal.h
*** orig/xregal/xregal.h	Fri Jan 29 08:28:02 1999
--- ./xregal.h	Sun Mar  7 23:09:05 1999
***************
*** 35,40 ****
--- 35,41 ----
  	Boolean laserDisc;
  	String imdbSite;
  	int genreInitial;
+ 	int keywordInitial;
  	} AppData, *AppDataPtr;
  
  extern AppData app_data;

