Beispiel #1
0
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;
}
Beispiel #2
0
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;
}
Beispiel #3
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++;
}
Beispiel #4
0
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;
}
Beispiel #5
0
static void defaultLogCallback(int level, const char *message)
{
  lou_logPrint("%s", message); // lou_logPrint takes formatting, protect against % in message
}
Beispiel #6
0
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;
}
Beispiel #7
0
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;
}