//*********************************** //*********************************** //********** MAIN FUNCTION ********** //*********************************** //*********************************** int main (void) { BYTE display_html_file_name[12]; DWORD file_size; //********************** //********************** //***** INITIALISE ***** //********************** //********************** initialise(); //********************* //********************* //***** MAIN LOOP ***** //********************* //********************* while(1) //(Do forever) { //----- RESET THE WATCHDOG TIMEOUT TIMER ----- ClearWDT(); switches_1_new = 0; if (do_10ms_functions) { do_10ms_functions = 0; //----- READ SWITCHES ----- read_switches(); } //------------------------------------ //----- CHECK FOR SWITCH PRESSES ----- //------------------------------------ if (SWITCH_UP_NEW_PRESS) { //----- UP PRESSED ----- //Load the index.htm file if (display_html_setup_read_file(index_htm, 0, &file_size)) //Find HTML file ready to display it display_html_file(file_size); } else if (SWITCH_DOWN_NEW_PRESS) { //----- DOWN PRESSED ----- //Load text1.htm using name as a variable to demonstrate finding file by name at run time display_html_file_name[0] = 'T'; display_html_file_name[1] = 'E'; display_html_file_name[2] = 'X'; display_html_file_name[3] = 'T'; display_html_file_name[4] = '1'; display_html_file_name[5] = '.'; display_html_file_name[6] = 'H'; display_html_file_name[7] = 'T'; display_html_file_name[8] = 'M'; display_html_file_name[9] = 0x00; if (display_html_setup_read_file(0, display_html_file_name, &file_size)) { display_html_file(file_size); } } else if (SWITCH_LEFT_NEW_PRESS) { //----- LEFT PRESSED ----- //Load dynamic text demo HTML file - the text is added by the html_get_dynamic_text_character function below if (display_html_setup_read_file(dyntext_htm, 0, &file_size)) display_html_file(file_size); } else if (SWITCH_RIGHT_NEW_PRESS) { //----- RIGHT PRESSED ----- //Load text2.htm if (display_html_setup_read_file(text2_htm, 0, &file_size)) display_html_file(file_size); } else if (SWITCH_FIRE_NEW_PRESS) { //----- FIRE PRESSED ----- //Generate content using code instead of HTML display_clear_screen(DISPLAY_COLOUR_WHITE); display_bitmap(indeximg_bmp, 0, 0, 0x00ffffff); //p_bitmap, x_coord, y_coord, transparency_colour(0xffffffff to not use) display_foreground_colour = DISPLAY_COLOUR_RED; display_background_colour = DISPLAY_COLOUR_TURQUOISE; display_const_string (disp_font_5w_7h, DISPLAY_TEXT_ALIGN_LEFT, //Font, Options 2, 2, //Hoz padding, vertical padding 20, 50, //X start coord, Y start coord 0, 0, //X end coord, Y end coord (0 if area containment not required) string1); //Text display_const_string(disp_font_5w_11h, DISPLAY_TEXT_ALIGN_LEFT, //Font, Options 2, 2, //Hoz padding, vertical padding 20, 70, //X start coord, Y start coord 0, 0, //X end coord, Y end coord (0 if area containment not required) string1); //Text display_foreground_colour = DISPLAY_COLOUR_VIOLET; display_background_colour = DISPLAY_COLOUR_YELLOW; display_const_string(disp_font_22h, DISPLAY_TEXT_ALIGN_CENTRE, //Font, Options 2, 2, //Hoz padding, vertical padding 20, 105, //X start coord, Y start coord 200, 160, //X end coord, Y end coord (0 if area containment not required) string1); //Text display_foreground_colour = DISPLAY_COLOUR_BLACK; display_background_colour = DISPLAY_COLOUR_NULL; //(DISPLAY_COLOUR_NULL == no background colour / leave existing colour) display_const_string(disp_font_15h, DISPLAY_TEXT_ALIGN_LEFT, //Font, Options 2, 2, //Hoz padding, vertical padding 176, 134, //X start coord, Y start coord 0, 0, //X end coord, Y end coord (0 if area containment not required) string1); //Text display_foreground_colour = DISPLAY_COLOUR_WHITE; display_background_colour = DISPLAY_COLOUR_BLUE; display_const_string(disp_font_42h, DISPLAY_TEXT_ALIGN_CENTRE, //Font, Options 2, 2, //Hoz padding, vertical padding 0, 170, //X start coord, Y start coord 319, 0, //X end coord, Y end coord (0 if area containment not required) string1); //Text } } }
/* * Search for manual pages. * * If preformatted manual pages are supported, look for the formatted * file first, then the man page source file. If they both exist and * the man page source file is newer, or only the source file exists, * try to reformat it and write the results in the cat directory. If * it is not possible to write the cat file, simply format and display * the man file. * * If preformatted pages are not supported, or the troff option is * being used, only look for the man page source file. * * Note that globbing is necessary also if the section is given, * since a preformatted man page might be compressed. * */ static int man (const char *name, const char *section) { int found, type, flags; struct manpage *mp; found = 0; /* allow man ./manpage for formatting explicitly given man pages */ if (index(name, '/')) { char fullname[BUFSIZE]; char fullpath[BUFSIZE]; char *path; char *cp; FILE *fp = fopen(name, "r"); if (!fp) { perror(name); return 0; } fclose (fp); if (*name != '/' && getcwd(fullname, sizeof(fullname)) && strlen(fullname) + strlen(name) + 3 < sizeof(fullname)) { strcat (fullname, "/"); strcat (fullname, name); } else if (strlen(name) + 2 < sizeof(fullname)) { strcpy (fullname, name); } else { fprintf(stderr, "%s: name too long\n", name); return 0; } strcpy (fullpath, fullname); if ((cp = rindex(fullpath, '/')) != NULL && cp-fullpath+4 < sizeof(fullpath)) { strcpy(cp+1, ".."); path = fullpath; } else path = "."; name = ultimate_source (fullname); if (!name) return 0; if (print_where) { printf("%s\n", name); return 1; } return display_man_file (path, name); } fflush (stdout); init_manpath(); can_use_cache = nocache ? 0 : (preformat || print_where || (isatty(0) && isatty(1) && !setll())); if (do_troff) { const char *t = getval("TROFF"); if (!t || !*t) return 0; /* don't know how to format */ type = TYPE_MAN; } else { const char *n = getval("NROFF"); type = 0; if (can_use_cache) type |= TYPE_CAT; if (n && *n) type |= TYPE_MAN; if (fhs || fsstnd) type |= TYPE_SCAT; n = getval("BROWSER"); if (n && *n) type |= TYPE_HTML; } flags = type; if (!findall) flags |= ONLY_ONE; if (fsstnd) flags |= FSSTND; else if (fhs) flags |= FHS; if (dohp) flags |= DO_HP; if (do_irix) flags |= DO_IRIX; if (do_win32) flags |= DO_WIN32; mp = manfile(name, section, flags, section_list, mandirlist, convert_to_cat); found = 0; while (mp) { if (mp->type == TYPE_MAN) { found = format_and_display(mp->filename); } else if (mp->type == TYPE_CAT || mp->type == TYPE_SCAT) { if (print_where) { printf ("%s\n", mp->filename); found = 1; } else found = display_cat_file(mp->filename); } else if (mp->type == TYPE_HTML) { if (print_where) { printf ("%s\n", mp->filename); found = 1; } else found = display_html_file(mp->filename); } else /* internal error */ break; if (found && !findall) break; mp = mp->next; } return found; }