int initialize_contents (void) { saved_braillePageNumberFormat = ud->brl_page_num_format; widestrcpy(saved_printPageNumber, ud->print_page_number, -1); widestrcpy(saved_printPageNumberFirst, ud->print_page_number_first, -1); widestrcpy(saved_printPageNumberLast, ud->print_page_number_last, -1); ud->after_contents = 1; saved_udContents = ud->contents; saved_linesOnPage = ud->lines_on_page; saved_braillePageNumber = ud->braille_page_number; ud->contents = 1; firstHeading = NULL; lastHeading = &heading; saved_outFile = ud->outFile; strcpy (tempFileName, ud->writeable_path); strcat (tempFileName, "lbx_body.temp"); if (!(tempFile = fopen (tempFileName, "w"))) { lou_logPrint ("Can't open temporary file.\n"); return 0; } ud->outFile = tempFile; ud->lines_on_page = 0; if (ud->has_contentsheader) ud->braille_page_number = ud->beginning_braille_page_number; else ud->braille_page_number = 1; return 1; }
int other_translate (const char *trantab, const widechar * inbuf, int *inlen, widechar * outbuf, int *outlen, char *typeform, char *spacing, int *outputPos, int *inputPos, int *cursorPos, int mode) { char transSpec[MAXSTRING]; char *afterColon; int action; strcpy (transSpec, trantab); afterColon = findColon (transSpec); action = findAction (translators, transSpec); switch (action) { case -1: lou_logPrint ("There is no translator called '%s'", transSpec); return 0; case 1: return 1; case 2: return 1; case 3: return 1; default: return 0; } return 0; }
static void configureError (FileInfo * nested, char *format, ...) { char buffer[1024]; va_list arguments; va_start (arguments, format); #ifdef WIN32 _vsnprintf (buffer, sizeof (buffer), format, arguments); #else vsnprintf (buffer, sizeof (buffer), format, arguments); #endif va_end (arguments); if (nested) lou_logPrint ("File %s line %d: %s", nested->fileName, nested->lineNumber, buffer); else lou_logPrint ("%s", buffer); errorCount++; }
int change_table (xmlNode * node) { xmlNode *child; int branchCount = 0; char *oldTable; char *newTable; char completePath[MAXNAMELEN]; newTable = (char *) get_attr_value (node); if (strlen ((char *) newTable) < 5) return 0; if (!find_file (newTable, completePath)) { lou_logPrint ("Table %s cannot be found", newTable); return 0; } if (!lou_getTable (completePath)) return 0; insert_translation (ud->mainBrailleTable); oldTable = ud->mainBrailleTable; ud->mainBrailleTable = completePath; child = node->children; while (child) { switch (child->type) { case XML_ELEMENT_NODE: insert_code (node, branchCount); branchCount++; if (child->children) transcribe_paragraph (child, 1); break; case XML_TEXT_NODE: insert_text (child); break; default: break; } child = child->next; } insert_code (node, branchCount); insert_code (node, -1); insert_translation (ud->mainBrailleTable); ud->mainBrailleTable = oldTable; pop_sem_stack (); return 1; }
static void defaultLogCallback(int level, const char *message) { lou_logPrint("%s", message); // lou_logPrint takes formatting, protect against % in message }
int make_contents (void) { SaveHeading *currentHeading = NULL; int old_braillePageNumber; sem_act action; int bytesRead; StyleType *style; if (!ud->contents) return 1; old_braillePageNumber = ud->braille_page_number; fclose (tempFile); ud->outFile = saved_outFile; if (firstHeading != NULL) { ud->lines_on_page = saved_linesOnPage; ud->braille_page_number = saved_braillePageNumber; styleSpec = &ud->style_stack[ud->style_top]; styleSpec->curBrlNumFormat = saved_braillePageNumberFormat; ud->brl_page_num_format = saved_braillePageNumberFormat; widestrcpy(ud->print_page_number, saved_printPageNumber, -1); widestrcpy(ud->print_page_number_first, saved_printPageNumberFirst, -1); widestrcpy(ud->print_page_number_last, saved_printPageNumberLast, -1); do_newpage (); ud->contents = 2; currentHeading = firstHeading; while (currentHeading != NULL) { switch (currentHeading->action) { case contentsheader: default: action = currentHeading->action; break; case heading1: action = contents1; break; case heading2: action = contents2; break; case heading3: action = contents3; break; case heading4: action = contents4; break; case heading5: action = contents5; break; case heading6: action = contents6; break; case heading7: action = contents7; break; case heading8: action = contents8; break; case heading9: action = contents9; break; case heading10: action = contents10; break; } style = action_to_style (action); start_style (style); memcpy (ud->translated_buffer, currentHeading->headingChars, currentHeading->headingLength * CHARSIZE); ud->translated_length = currentHeading->headingLength; end_style (style); currentHeading = currentHeading->next; } do_newpage (); ud->prelim_pages = ud->braille_page_number; ud->braille_page_number = saved_braillePageNumber; /*Free headings */ currentHeading = firstHeading; while (currentHeading->next != NULL) { lastHeading = currentHeading; currentHeading = currentHeading->next; free (lastHeading); } ud->contents = saved_udContents; ud->braille_page_number = old_braillePageNumber; } if (!(tempFile = fopen (tempFileName, "r"))) { lou_logPrint ("Can't open temporary file.\n"); return 0; } do { bytesRead = fread (ud->translated_buffer, 1, sizeof (ud->translated_buffer), tempFile); fwrite (ud->translated_buffer, 1, bytesRead, ud->outFile); } while (bytesRead != 0); fclose (tempFile); return 1; }
int read_configuration_file (const char *const configFileList, const char const *logFileName) { /* read the configuration file and perform other initialization*/ int k; char mainFile[MAXNAMELEN]; char subFile[MAXNAMELEN]; int listLength; int currentListPos = 0; errorCount = 0; logFileNamex = logFileName; if (strcmp (oldFileList, configFileList) == 0) { ud->has_comp_code = 0; ud->has_math = 0; ud->has_chem = 0; ud->has_graphics = 0; ud->has_music = 0; ud->has_cdata = 0; ud->print_page_number[0] = '_'; ud->inFile = NULL; ud->outFile = NULL; ud->mainBrailleTable = ud->contracted_table_name; ud->outlen_so_far = 0; ud->lines_on_page = 0; ud->braille_page_number = ud->beginning_braille_page_number; return 1; } strcpy (oldFileList, configFileList); if (ud != NULL) free (ud); if (!(ud = malloc (sizeof (UserData)))) return 0; memset (ud, 0, sizeof (UserData)); errorCount = 0; entities = 0; ud->max_length = BUFSIZE - 4; ud->max_trans_length = 2 * BUFSIZE - 4; ud->top = -1; ud->input_encoding = utf8; ud->output_encoding = ascii8; *ud->print_page_number = '_'; /*Process file list*/ listLength = strlen (configFileList); for (k = 0; k < listLength; k++) if (configFileList[k] == ',') break; if (k == listLength) { /* Only one file */ initConfigFiles (configFileList, mainFile); config_compileFile (mainFile); } else { /* Compile a list of files */ strncpy (subFile, configFileList, k); subFile[k] = 0; initConfigFiles (subFile, mainFile); currentListPos = k + 1; config_compileFile (mainFile); while (currentListPos < listLength) { for (k = currentListPos; k < listLength; k++) if (configFileList[k] == ',') break; strncpy (subFile, &configFileList[currentListPos], k - currentListPos); subFile[k - currentListPos] = 0; config_compileFile (subFile); currentListPos = k + 1; } } if (errorCount) { lou_logPrint ("%d errors found", errorCount); free (ud); ud = NULL; return 0; } ud->braille_page_number = ud->beginning_braille_page_number; if (entities) strcat (ud->xml_header, "]>\n"); return 1; }