int NavHelp::help_index( navh_eHelpFile file_type, const char *file_name) { FILE *file; char line[200]; char include_file[80]; char subject[80]; int sts; char *s; lng_eCoding coding = lng_eCoding_ISO8859_1; // Open file file = navhelp_open_file( this, file_type, file_name); if ( !file) return NAV__NOFILE; sts = dcli_read_line( line, sizeof( line), file); while ( ODD(sts)) { if ( cdh_NoCaseStrncmp( line, "<coding>", 8) == 0) { char codingstr[40]; help_remove_spaces( &line[8], codingstr); if ( cdh_NoCaseStrcmp( codingstr, "ISO8859-1") == 0) { coding = lng_eCoding_ISO8859_1; } else if ( cdh_NoCaseStrcmp( codingstr, "UTF-8") == 0) { coding = lng_eCoding_UTF_8; } } else if ( cdh_NoCaseStrncmp( line, "<include>", 9) == 0) { help_remove_spaces( &line[9], include_file); sts = help_index( navh_eHelpFile_Other, include_file); } else if ( cdh_NoCaseStrncmp( line, "<topic>", 7) == 0) { if ( (s = strstr( line, "<style>")) || (s = strstr( line, "<STYLE>"))) *s = 0; help_remove_spaces( &line[7], subject); (insert_cb)( parent_ctx, navh_eItemType_HelpBold, subject, "", "", subject, "", file_name, file_type, 0, NULL, coding); } sts = dcli_read_line( line, sizeof( line), file); } fclose( file); return NAV__SUCCESS; }
static cb_ret_t help_execute_cmd (unsigned long command) { cb_ret_t ret = MSG_HANDLED; switch (command) { case CK_Help: help_help (whelp); break; case CK_Index: help_index (whelp); break; case CK_Back: help_back (whelp); break; case CK_Up: help_prev_link (TRUE); break; case CK_Down: help_next_link (TRUE); break; case CK_PageDown: move_forward (help_lines - 1); break; case CK_PageUp: move_backward (help_lines - 1); break; case CK_HalfPageDown: move_forward (help_lines / 2); break; case CK_HalfPageUp: move_backward (help_lines / 2); break; case CK_Top: move_to_top (); break; case CK_Bottom: move_to_bottom (); break; case CK_Enter: help_select_link (); break; case CK_LinkNext: help_next_link (FALSE); break; case CK_LinkPrev: help_prev_link (FALSE); break; case CK_NodeNext: help_next_node (); break; case CK_NodePrev: help_prev_node (); break; case CK_Quit: dlg_stop (whelp); break; default: ret = MSG_NOT_HANDLED; } return ret; }