text processing utilities

Highlight documentation

Installation

Package contents

root of highlight-x.x
|
|-- examples            # examples for highlight scripting
|   |-- web_plugins     # plugins for various web toolkits
|   |-- tcl             # TCL extension
|   `-- swig            # SWIG interface and sample code
|-- gui_files           # supporting files for the optional GUI
|   |-- ext             # file open filter configuration
|   `-- l10n            # GUI translations
|-- langDefs            # language definitions (*.lang)
|-- man                 # man page
|-- plugins             # plug-in scripts (*.lua)
|-- src                 # source code
|   |-- cli             # command line interface code
|   |-- core            # highlight core code (builds the library)
|   |   |-- astyle      # Artistic Style code
|   |   `-- Diliculum   # Diliculum code
|   `-- gui-qt          # optional GUI code
|   `-- include         # Header files
|   |   |-- astyle      # Artistic Style headers
|   |   `-- Diliculum   # Diliculum headers
`-- themes              # color themes (*.theme)

AUTHORS                 # contributors of code and patches
ChangeLog               # list of changes
COPYING                 # license
filetypes.conf          # file type extension configuration
highlight.desktop       # desktop integration of optional GUI
INSTALL                 # this file
makefile                # basic makefile
README                  # user manual
README_DE               # German user manual
README_LANGLIST         # list of supported languages
README_REGEX            # regular expression manual
TODO                    # just ideas, no plans

Dependencies

In order to compile highlight, you need to install Lua5.x (devel package) and Boost (at least the header files).
The optional GUI requires Qt.

Installation of the source package

  1. tar xjf highlight-x.x-x.tar.bz2
  2. cd highlight-x.x-x
  3. make help
  4. make
    make gui (optional, to compile the Qt GUI)
  5. make install
    (depending on your installation destination, you need to be root)
  6. make clean (optional)
  7. Follow these hints to compile highlight on Windows.

Highlight's default data directory is /usr/share/highlight.
You may alter this directory at compile time or at run time:

Lazy pointer issue on MacOS X

Stripping the highlight binary causes program termination at runtime:

dyld: lazy symbol binding failed: lazy pointer not found
dyld: lazy pointer not found
Trace/BPT trap

To avoid this issue, edit the makefile to not strip the binary after linkage (see src/makefile, LDFLAGS variable).

Parse error at "std" - issue on Linux

When compiling the Qt interface this pops up:

usr/include/c++/6.1.1/bits/stl_relops.:67: Parse error at "std"

Delete src/gui-qt/.qmake.stash and recompile.

Static linking (to run highlight as service)

If highlight cannot be run as service because of shared linkage, link it with the -static option (see src/makefile, LDFLAGS variable).

Linux Mint

There is a system script called highlight which is located in a preferenced path:

mintsystem provides: /usr/local/bin/highlight
 highlight provides: /usr/bin/highlight

See bug tracker items: https://bugs.launchpad.net/linuxmint/+bug/593583 and
                       https://bugs.launchpad.net/linuxmint/+bug/815005

Installation instructions for Windows

Start setup program and follow the instructions.

Compilation instructions for Windows

a) Install Qt Creator IDE (www.qt.io)

b) Install MingW (gcc toolchain)

    -Download Online-Installer: 
    -Start mingw-w64-install.exe and select default options
    -Add bin directory of the downloaded files to the system PATH
    -open cmd.exe and type "g++ --version" to check

c) Compile Qt:

    -Download and extract package of qt.io -> qt-everywhere-opensource-src-5.6.0.tar.gz
    -Open cmd.exe and change into the Qt directory
    -Configure Qt. Use static if you do not want to ship Qt DLLs:
     configure -release -opensource -confirm-license -static  -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg \
               -qt-freetype -qt-sql-sqlite -no-openssl -nomake examples -opengl  desktop
    -Compile Qt:
     mingw32-make -k -j4

d) Add compiler and Qt paths (location of qmake.exe) in QtCreator

e) Install Boost

    -Download and extract package of boost.org (no compilation needed)

f) Compile Lua 

    -Download the source package
    -Open QtCreator and create a new Project ("without Qt")
    -Import all c files of the Lua package except lua.c and luac.c
    -Edit the project file like this: 
    
     TEMPLATE = lib
     CONFIG += console
     CONFIG -= app_bundle
     CONFIG -= qt
     DEFINES -= UNICODE
     SOURCES += $$files(../lua-5.3.0/src/*.c)
     SOURCES -= ../lua-5.3.0/src/lua.c ../lua-5.3.0/src/luac.c

    -Compile the Lua library

g) Install upx

h) Open the pro files in src/w32-projects and src/gui-qt in 
   QtCreator and adjust the paths of libraries and tools. Assign the kit config to the projects.
   Compile the lib project first.

i) Ship highlight with libgcc_s_dw2-1.dll (32 bit) libgcc_s_seh-1.dll (64 bit) libstdc++-6.dll libwinpthread-1.dll
   (these are located in the mingw32 installation).
Tupel7