void DirectoryHandler(Widget w, XtPointer global_pointer, XtPointer ret_val) { FILE * file; /* The manpage file. */ ManpageGlobals * man_globals = (ManpageGlobals *) global_pointer; XawListReturnStruct * ret_struct = (XawListReturnStruct *) ret_val; file = FindManualFile(man_globals, man_globals->current_directory, ret_struct->list_index); PutUpManpage(man_globals, file); }
/*ARGSUSED*/ void Search(Widget w, XEvent * event, String * params, Cardinal * num_params) { ManpageGlobals * man_globals = GetGlobals(w); FILE * file = NULL; XtPopdown( XtParent(XtParent(w)) ); /* popdown the search widget */ if ( (*num_params < 1) || (*num_params > 2) ) { XtAppWarning(XtWidgetToApplicationContext(w), "Xman - Search: This action routine requires one or two arguments."); return; } switch(params[0][0]) { case 'a': case 'A': file = DoSearch(man_globals,APROPOS); break; case 'm': case 'M': file = DoSearch(man_globals,MANUAL); break; case 'c': case 'C': file = NULL; break; default: XtAppWarning(XtWidgetToApplicationContext(w), "Xman - Search: First parameter unknown."); file = NULL; break; } if ( *num_params == 2 ) switch (params[1][0]) { case 'O': case 'o': if (file != NULL) { Widget w; char * label; w = CreateManpage(file); man_pages_shown++; /* Put title into new manual page. */ label = man_globals->manpage_title; man_globals = GetGlobals(w); strcpy(man_globals->manpage_title, label); ChangeLabel(man_globals->label, label); } break; default: XtAppWarning(XtWidgetToApplicationContext(w), "Xman - Search: Second parameter unknown."); break; } else { PutUpManpage(man_globals, file); } if (file != NULL) fclose(file); }