Extremely Naive Charset Analyser
Branch: master
Clone or download
nijel Merge pull request #31 from debarshiray/iconvcap-dont-leak-the-list
iconvcap: Don't leak the list of encodings
Latest commit 5de465b Oct 16, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
data Update auto* magic Oct 2, 2017
devel-docs
lib Fix conditions order Nov 1, 2017
m4
man Fixed typo in Belarusian language name Sep 30, 2013
script Update auto* magic Oct 2, 2017
src Update auto* magic Oct 2, 2017
test
tools Update auto* magic Oct 2, 2017
.gitignore Ignore compiled files Jan 4, 2016
.travis.yml Test installation in Travis CI Jan 7, 2016
AUTHORS Mention myself in AUTHORS. Aug 25, 2009
COPYING Imported enca-1.5 Aug 25, 2009
ChangeLog Document change for 2393833 Oct 21, 2016
ChangeLog.old Adjust names of Changelogs to be a bit more usable. Aug 25, 2009
ChangeLog.prelib Fix typo convertor/converter. Aug 25, 2009
DEVELOP.md Use https links for github and my website Sep 5, 2016
FAQ Setting version to 1.20-dev Sep 5, 2016
INSTALL Move install instructions to README.md Jan 4, 2016
Makefile.am Remove CVS file identifiers Jan 4, 2016
Makefile.in Update automagic Nov 1, 2017
NEWS Do not change type of NEWS file Sep 11, 2012
README
README.md Use software page for downloads Sep 5, 2016
THANKS Fixed typo in Belarusian language name Sep 30, 2013
TODO Setting version to 1.20-dev Sep 5, 2016
aclocal.m4 Update auto* magic Oct 2, 2017
autogen.sh Update auto* magic Oct 2, 2017
compile Update auto* magic Jan 4, 2016
config.guess Update auto* magic Jan 4, 2016
config.h.in Update libtool magic Jul 28, 2016
config.rpath Imported enca-1.7 Aug 25, 2009
config.sub Update auto* magic Jan 4, 2016
configure Update auto* magic Oct 2, 2017
configure.ac build make_hash with the build arch compiler Oct 21, 2016
depcomp Update auto* magic Oct 2, 2017
enca.pc.in
enca.spec.in Rename developer documentation Jan 4, 2016
iconvcap.c iconvcap: Don't leak the list of encodings Oct 16, 2018
install-sh Update auto* magic Jan 4, 2016
ltmain.sh Update auto* magic Oct 2, 2017
missing Update auto* magic Jan 4, 2016
mkinstalldirs Updat auto* files Nov 11, 2013
test-driver Update auto* magic Jan 4, 2016
topline.sh Make topline.sh sh compatible Jan 4, 2016

README.md

Enca - guess and convert encoding of text files

build status codecov.io Coverity Scan Build Status Coverage Status

Copyright

Copyright (C) 2000-2003 David Necas (Yeti) yeti@physics.muni.cz

Copyright (C) 2009-2016 Michal Cihar michal@cihar.com

Description

Enca (Extremely Naive Charset Analyser) consists of two main components:

  • libenca, an encoding detection library. It currently supports Belarusian, Bulgarian, Croatian, Czech, Estonian, Hungarian, Latvian, Lithuanian, Polish, Russian, Slovak, Slovene, Ukrainian, Chinese, and some multibyte encodings independently on language. The API should be relatively stable (to be read as `it will either change only marginally, or very drastically').

  • enca, a command line frontend, integrating libenca and several charset conversion libraries and tools (GNU recode, UNIX98 iconv, perl Unicode::Map, cstocs).

Installation

Enca should compile and work on every POSIX.1 compliant system with ISO C compiler, and actually compiles on many noncompliant systems too (see below for list dependencies). If you have some of following additional tools, Enca can use them as external converters:

  • GNU recode and the associated recoding library
  • Perl charset converters Unicode::Map8 or Unicode::Map
  • cstocs, the famous Czech charset converter

Optional features:

  • Compilation of GNU recode library interface is controlled by --with-librecode[=DIR], --without-librecode configure parameters. It is compiled in by default when found. Optionally, you can specify a DIR; librecode include files will be then searched in DIR/include and the library itself in DIR/lib.

  • Compilation of UNIX98 iconv interface is controlled by --with-libiconv=[DIR], --without-libiconv configure parameters. It is compiled in by default when found and considered usable. Optionally, you can specify a DIR; libiconv include files will be then searched in DIR/include and the library itself in DIR/lib.

  • Compilation of interface to external converter programs is controlled by --enable-external, --disable-external configure parameters. By default is is compiled in.

Don't even try to compile Enca on system not supporting following ISO C and POSIX features:

  • Function prototypes.
  • Basic ISO C headers and functions declared there:
    • assert.h, ctype.h, math.h, stdarg.h, stdio.h, stdlib.h
    • any (working) one of string.h, strings.h, memory.h
    • unistd.h, sys/stat.h, sys/types.h

For the impatient: Run

./configure
make
make check
make install

as usual.

License

Enca can be copied and/or modified under the terms of version 2 of GNU General Public License. Please see COPYING for details.

Web resources

Enca can be found at https://github.com/nijel/enca/, you can download tarballs from https://cihar.com/software/enca/.

Bugs

Report problems at https://github.com/nijel/enca/issues. Some known bugs have been collected in BUGS section of enca manual page.

Hacking (with) Enca

Please see TODO for list of things that should be fixed and features to be implemented and their priority and also for list of things that definitely shouldn't be implemented.

The file DEVELOP.md describes what needs to be done to add a new encoding or language to Enca.

The directory devel-docs/html contains Enca library API documentation in HTML form.