[liblouis-liblouisxml] [liblouisutdml] 2 new revisions pushed by mwhapples on 2014-06-19 08:52 GMT

  • From: liblouisutdml@xxxxxxxxxxxxxx
  • To: liblouis-liblouisxml@xxxxxxxxxxxxx
  • Date: Thu, 19 Jun 2014 08:52:33 +0000

2 new revisions:

Revision: d1a1bdb45903
Branch:   default
Author:   Michael Whapples
Date:     Thu Jun 19 09:01:21 2014 UTC
Log:      Start of UTD output for boxline style stuff.
http://code.google.com/p/liblouisutdml/source/detail?r=d1a1bdb45903

Revision: 93a2e0eac344
Branch:   default
Author:   Michael Whapples
Date:     Thu Jun 19 09:02:37 2014 UTC
Log:      Merge
http://code.google.com/p/liblouisutdml/source/detail?r=93a2e0eac344

==============================================================================
Revision: d1a1bdb45903
Branch:   default
Author:   Michael Whapples
Date:     Thu Jun 19 09:01:21 2014 UTC
Log:      Start of UTD output for boxline style stuff.
http://code.google.com/p/liblouisutdml/source/detail?r=d1a1bdb45903

Modified:
 /liblouisutdml/transcriber.c

=======================================
--- /liblouisutdml/transcriber.c        Wed Jun 18 09:29:21 2014 UTC
+++ /liblouisutdml/transcriber.c        Thu Jun 19 09:01:21 2014 UTC
@@ -40,7 +40,24 @@
 static StyleType *style;
 static StyleType *prevStyle;
 static int styleBody ();
-static int addBoxline(const char *boxChar);
+static xmlNode *brlNode;
+/*
+ * addBoxline adds a boxline to the document using the character given.
+ * boxChar: The character to fill the line with.
+ * beforeAfter: Whether the line is before or after content. Value 1 for after
+ *              and -1 for before.
+ */
+static int addBoxline(const char *boxChar, int beforeAfter);
+/*
+ * utd_addBoxline, UTD version of addBoxline
+ * boxChar: The character to fill the line with.
+ * beforeAfter: Whether the boxline should be before or after the content.
+ *              Value 1 for after and value -1 for before.
+ */
+static int utd_addBoxline(const char *boxChar, int beforeAfter);
+
+static int utd_startLine();
+static int utd_finishLine(int number, int beforeAfter);

 int
 fineFormat ()
@@ -2867,7 +2884,7 @@
     }
   if (style->topBoxline[0])
   {
-    addBoxline(style->topBoxline);
+    addBoxline(style->topBoxline, -1);
   }
   writeOutbuf ();
   ud->blank_lines = maximum (ud->blank_lines, style->lines_before);
@@ -2994,7 +3011,7 @@
     return utd_finishStyle ();
   if (style->bottomBoxline[0])
   {
-    addBoxline(style->bottomBoxline);
+    addBoxline(style->bottomBoxline, 1);
   }
   if (ud->braille_pages)
     {
@@ -3499,12 +3516,15 @@
 }

 static int
-addBoxline(const char *boxChar)
+addBoxline(const char *boxChar, int beforeAfter)
 {
   int k;
   int availableCells = 0;
   widechar wTmpBuf = (widechar)boxChar[0];
+  if (ud->format_for == utd)
+    return utd_addBoxline(boxChar, beforeAfter);
   logMessage(LOG_DEBUG, "Begin addBoxline");
+  logMessage(LOG_DEBUG, "styleSpec->node->name=%s", styleSpec->node->name);
   while (availableCells != ud->cells_per_line)
   {
     finishLine();
@@ -3521,6 +3541,64 @@
   logMessage(LOG_DEBUG, "Finished addBoxline");
   return 1;
 }
+
+static int
+utd_addBoxline(const char *boxChar, int beforeAfter)
+{
+  int k;
+  int availableCells = 0;
+  int inlen = CHARSIZE * (ud->cells_per_line);
+  int outlen = 10 * (ud->cells_per_line + 1);
+  xmlNode *tmpBrlNode;
+  xmlNode *lineNode;
+  xmlNode *textNode;
+  widechar wTmpBuf = (widechar)boxChar[0];
+  widechar *lineBuf;
+  char *chContent;
+  // Make sure that styleSpec relates to a node
+  if (styleSpec->node == NULL)
+    return 0;
+  logMessage(LOG_DEBUG, "Begin utd_addBoxline");
+  // We should catch the current brlNode so we can restore afterwards
+  tmpBrlNode = brlNode;
+  // Find a complete blank line
+  while (availableCells != ud->cells_per_line)
+  {
+    utd_finishLine(0, 0);
+  availableCells = utd_startLine();
+  }
+  // Create the line of characters
+  lineBuf = malloc(inlen);
+  chContent = malloc(outlen);
+  for (k = 0; k < availableCells; k++)
+  {
+    lineBuf[k] = wTmpBuf;
+  }
+  inlen = availableCells;
+  wc_string_to_utf8(lineBuf, &inlen, chContent, &outlen);
+  // Create new brl node at the start of the styled node
+  lineNode = xmlNewNode(NULL, (xmlChar *)"brl");
+  textNode = xmlNewText(chContent);
+  xmlAddChild(lineNode, textNode);
+  free(lineBuf);
+  free(chContent);
+  if (styleSpec->node->children && beforeAfter == -1)
+  {
+    brlNode = xmlAddPrevSibling(styleSpec->node->children, lineNode);
+  }
+  else if (styleSpec->node->children && beforeAfter == 1)
+  {
+    brlNode = xmlAddNextSibling(styleSpec->node->last, lineNode);
+  }
+  else
+  {
+    brlNode = xmlAddChild(styleSpec->node, lineNode);
+  }
+  // Restore original brlNode
+  brlNode = tmpBrlNode;
+  logMessage(LOG_DEBUG, "Finish utd_addBoxline");
+  return 1;
+}

 int
 do_newpage ()
@@ -3700,7 +3778,7 @@
 static int *backIndices;
 static widechar *backBuf;
 static int backLength;
-static xmlNode *brlNode;
+
 static xmlNode *firstBrlNode;
 static xmlNode *prevBrlNode;
 static xmlNode *documentNode = NULL;
@@ -4954,7 +5032,7 @@
       else
        availableCells = ud->cells_per_line;
     }
-  logMessage(LOG_DEBUG, "Begin utd_startLine");
+  logMessage(LOG_DEBUG, "Finished utd_startLine");
   return availableCells;
 }

@@ -5410,6 +5488,10 @@
       ud->vert_line_pos = ud->page_top;
       return 1;
     }
+  if (style->topBoxline[0] && styleSpec->node)
+  {
+    utd_addBoxline(style->topBoxline, -1);
+  }
   if (!ud->paragraphs)
     return 1;
   if ((style->lines_before ||
@@ -5522,6 +5604,10 @@
 {
   PageStatus curPageStatus = checkPageStatus ();
   logMessage(LOG_DEBUG, "Begin utd_finishStyle");
+  if (style->bottomBoxline[0])
+  {
+    utd_addBoxline(style->bottomBoxline, 1);
+  }
   if (!ud->paragraphs)
     return 1;
   if (style->newpage_after)

==============================================================================
Revision: 93a2e0eac344
Branch:   default
Author:   Michael Whapples
Date:     Thu Jun 19 09:02:37 2014 UTC
Log:      Merge
http://code.google.com/p/liblouisutdml/source/detail?r=93a2e0eac344

Deleted:
 /build-aux/compile
 /liblouisutdml/Makesemnames
 /liblouisutdml/README
 /liblouisutdml/make_sem_names
 /liblouisutdml/make_sem_names.c
 /liblouisutdml/sem_names.h

=======================================
--- /build-aux/compile  Sun Nov 25 17:51:23 2012 UTC
+++ /dev/null
@@ -1,142 +0,0 @@
-#! /bin/sh
-# Wrapper for compilers which do not understand `-c -o'.
-
-scriptversion=2005-05-14.22
-
-# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
-# Written by Tom Tromey <tromey@xxxxxxxxxx>.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# This file is maintained in Automake, please report
-# bugs to <bug-automake@xxxxxxx> or send patches to
-# <automake-patches@xxxxxxx>.
-
-case $1 in
-  '')
-     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
-     exit 1;
-     ;;
-  -h | --h*)
-    cat <<\EOF
-Usage: compile [--help] [--version] PROGRAM [ARGS]
-
-Wrapper for compilers which do not understand `-c -o'.
-Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
-arguments, and rename the output as expected.
-
-If you are trying to build a whole package this is not the
-right script to run: please start by reading the file `INSTALL'.
-
-Report bugs to <bug-automake@xxxxxxx>.
-EOF
-    exit $?
-    ;;
-  -v | --v*)
-    echo "compile $scriptversion"
-    exit $?
-    ;;
-esac
-
-ofile=
-cfile=
-eat=
-
-for arg
-do
-  if test -n "$eat"; then
-    eat=
-  else
-    case $1 in
-      -o)
-       # configure might choose to run compile as `compile cc -o foo foo.c'.
-       # So we strip `-o arg' only if arg is an object.
-       eat=1
-       case $2 in
-         *.o | *.obj)
-           ofile=$2
-           ;;
-         *)
-           set x "$@" -o "$2"
-           shift
-           ;;
-       esac
-       ;;
-      *.c)
-       cfile=$1
-       set x "$@" "$1"
-       shift
-       ;;
-      *)
-       set x "$@" "$1"
-       shift
-       ;;
-    esac
-  fi
-  shift
-done
-
-if test -z "$ofile" || test -z "$cfile"; then
-  # If no `-o' option was seen then we might have been invoked from a
-  # pattern rule where we don't need one.  That is ok -- this is a
-  # normal compilation that the losing compiler can handle.  If no
-  # `.c' file was seen then we are probably linking.  That is also
-  # ok.
-  exec "$@"
-fi
-
-# Name of file we expect compiler to create.
-cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
-
-# Create the lock directory.
-# Note: use `[/.-]' here to ensure that we don't use the same name
-# that we are using for the .o file.  Also, base the name on the expected
-# object file name, since that is what matters with a parallel build.
-lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
-while true; do
-  if mkdir "$lockdir" >/dev/null 2>&1; then
-    break
-  fi
-  sleep 1
-done
-# FIXME: race condition here if user kills between mkdir and trap.
-trap "rmdir '$lockdir'; exit 1" 1 2 15
-
-# Run the compile.
-"$@"
-ret=$?
-
-if test -f "$cofile"; then
-  mv "$cofile" "$ofile"
-elif test -f "${cofile}bj"; then
-  mv "${cofile}bj" "$ofile"
-fi
-
-rmdir "$lockdir"
-exit $ret
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
=======================================
--- /liblouisutdml/Makesemnames Sat Jul  3 16:32:58 2010 UTC
+++ /dev/null
@@ -1,7 +0,0 @@
-# If you change sem_enum.h run this file with
-# make -f Makesemnames
-
-sem_names.h : sem_enum.h make_sem_names
-       ./make_sem_names
-make_sem_names : make_sem_names.c
-       gcc -O2 -Wall -o make_sem_names make_sem_names.c
=======================================
--- /liblouisutdml/README       Sat Jul  3 16:32:58 2010 UTC
+++ /dev/null
@@ -1,3 +0,0 @@
-If you change sem_enum.h be sure to run
-make -f Makesemnames
-
=======================================
--- /liblouisutdml/make_sem_names       Tue Aug 31 22:51:30 2010 UTC
+++ /dev/null   
Binary file, no diff available.
=======================================
--- /liblouisutdml/make_sem_names.c     Sat Jul  3 16:32:58 2010 UTC
+++ /dev/null
@@ -1,86 +0,0 @@
-/* liblouisutdml Braille Transcription Library
-
-   This file may contain code borrowed from the Linux screenreader
-   BRLTTY, copyright (C) 1999-2006 by
-   the BRLTTY Team
-
-   Copyright (C) 2004, 2005, 2006
-   ViewPlus Technologies, Inc. www.viewplus.com
-   and
-   JJB Software, Inc. www.jjb-software.com
-   All rights reserved
-
-   This file is free software; you can redistribute it and/or modify it
-   under the terms of the Lesser or Library GNU General Public License
-   as published by the
-   Free Software Foundation; either version 3, or (at your option) any
-   later version.
-
-   This file is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   Library GNU General Public License for more details.
-
-   You should have received a copy of the Library GNU General Public
-   License along with this program; see the file COPYING.  If not, write to
-   the Free Software Foundation, 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.
-
-   Maintained by John J. Boyer john.boyer@xxxxxxxxxxxxxxxx
-   */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-int
-main (void)
-{
-  FILE *semIn;
-  FILE *semOut;
-  char inbuf[128];
-  char *curchar;
-  int ch;
-  int ignoreLine = 1;
-  char *name;
-  int nameLength;
-  if ((semIn = fopen ("sem_enum.h", "r")) == NULL)
-    {
-      fprintf (stderr, "Cannot open sem_enum.h file.\n");
-      exit (1);
-    }
-  if ((semOut = fopen ("sem_names.h", "w")) == NULL)
-    {
-      fprintf (stderr, "Cannot open sem_names.h file.\n");
-      exit (1);
-    }
-  fprintf (semOut, "#ifndef __SEM_NAMES_h\n");
-  fprintf (semOut, "#define __SEM_NAMES_h\n");
-  fprintf (semOut, "static const char *semNames[] = {\n");
-  while ((fgets (inbuf, sizeof (inbuf), semIn)))
-    {
-      curchar = inbuf;
-      while ((ch = *curchar++) <= 32 && ch != 0);
-  if (ch == '/')
-continue;
-      if (ignoreLine)
-       {
-         if (ch == '{')
-           ignoreLine = 0;
-         continue;
-       }
-      if (ch == '}')
-       break;
-      name = curchar - 1;
-      while ((ch = *curchar++) > 32 && ch != ',' && ch != '=');
-      nameLength = curchar - name - 1;
-      name[nameLength] = 0;
-      fprintf (semOut, "  \"%s\",\n", name);
-    }
-  fclose (semIn);
-  fprintf (semOut, "NULL\n");
-  fprintf (semOut, "};\n");
-  fprintf (semOut, "#endif /*__SEM_NAMES_H*/\n");
-  fclose (semOut);
-  return 0;
-}
=======================================
--- /liblouisutdml/sem_names.h  Wed Jun 18 09:23:57 2014 UTC
+++ /dev/null
@@ -1,107 +0,0 @@
-#ifndef __SEM_NAMES_h
-#define __SEM_NAMES_h
-static const char *semNames[] = {
-  "no",
-  "skip",
-  "generic",
-  "cdata",
-  "htmllink",
-  "htmltarget",
-  "changetable",
-  "reverse",
-  "configfile",
-  "configstring",
-  "configtweak",
-  "document",
-  "para",
-  "heading1",
-  "heading2",
-  "heading3",
-  "heading4",
-  "heading5",
-  "heading6",
-  "heading7",
-  "heading8",
-  "heading9",
-  "heading10",
-  "contentsheader",
-  "contents1",
-  "contents2",
-  "contents3",
-  "contents4",
-  "contents5",
-  "contents6",
-  "contents7",
-  "contents8",
-  "contents9",
-  "contents10",
-  "notranslate",
-  "compbrl",
-  "uncontracted",
-  "contracted",
-  "pagenum",
-  "genpurp1",
-  "genpurp2",
-  "pagebreak",
-  "attrtotext",
-  "runninghead",
-  "footer",
-  "italicx",
-  "boldx",
-  "underlinex",
-  "linespacing",
-  "blankline",
-  "softreturn",
-  "newpage",
-  "righthandpage",
-  "code",
-  "music",
-  "math",
-  "mi",
-  "mn",
-  "mo",
-  "mtext",
-  "mspace",
-  "ms",
-  "mglyph",
-  "mrow",
-  "mfrac",
-  "msqrt",
-  "mroot",
-  "mstyle",
-  "merror",
-  "mpadded",
-  "mphantom",
-  "mfenced",
-  "menclose",
-  "msub",
-  "msup",
-  "msubsup",
-  "munder",
-  "mover",
-  "munderover",
-  "mmultiscripts",
-  "none",
-  "semantics",
-  "mprescripts",
-  "mtable",
-  "mtr",
-  "mtd",
-  "maligngroup",
-  "malignmark",
-  "mlabeledtr",
-  "maction",
-  "chemistry",
-  "graphic",
-  "markhead",
-  "utdmeta",
-  "utdbrl",
-  "utdnewpage",
-  "utdnewline",
-  "utdbrlonly",
-  "utddispimg",
-  "utdinlnimg",
-  "end_all",
-NULL
-};
-#endif /*__SEM_NAMES_H*/
For a description of the software, to download it and links to
project pages go to http://www.abilitiessoft.com

Other related posts:

  • » [liblouis-liblouisxml] [liblouisutdml] 2 new revisions pushed by mwhapples on 2014-06-19 08:52 GMT - liblouisutdml