Added detox

This commit is contained in:
thecookingsenpai 2023-12-28 09:12:53 +01:00
parent ff419ba6d9
commit e4d14a652a
76 changed files with 26837 additions and 0 deletions

View File

@ -1,3 +1,12 @@
# Dynamic and updating list of prebuilt linux binaries
## Content
### Utilities
#### detox
*ensures a filename is sanitized*
cd detox && ./install.sh
**USAGE: detox -h**

3
detox/install.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
cd latest
sudo make install

977
detox/latest/Makefile Normal file
View File

@ -0,0 +1,977 @@
# Makefile.in generated by automake 1.16.1 from Makefile.am.
# Makefile. Generated from Makefile.in by configure.
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/detox
pkgincludedir = $(includedir)/detox
pkglibdir = $(libdir)/detox
pkglibexecdir = $(libexecdir)/detox
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
$(am__configure_deps) $(dist_doc_DATA) $(dist_pkgdata_DATA) \
$(dist_sysconf_DATA) $(am__DIST_COMMON)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/src/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_$(V))
am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
am__v_at_0 = @
am__v_at_1 =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
ctags-recursive dvi-recursive html-recursive info-recursive \
install-data-recursive install-dvi-recursive \
install-exec-recursive install-html-recursive \
install-info-recursive install-pdf-recursive \
install-ps-recursive install-recursive installcheck-recursive \
installdirs-recursive pdf-recursive ps-recursive \
tags-recursive uninstall-recursive
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
man1dir = $(mandir)/man1
am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" \
"$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgdatadir)" \
"$(DESTDIR)$(sysconfdir)"
man5dir = $(mandir)/man5
NROFF = nroff
MANS = $(dist_man1_MANS) $(dist_man5_MANS)
DATA = $(dist_doc_DATA) $(dist_pkgdata_DATA) $(dist_sysconf_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
am__recursive_targets = \
$(RECURSIVE_TARGETS) \
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
cscope distdir distdir-am dist dist-all distcheck
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
CSCOPE = cscope
DIST_SUBDIRS = $(SUBDIRS)
am__DIST_COMMON = $(dist_man1_MANS) $(dist_man5_MANS) \
$(srcdir)/Makefile.in compile depcomp install-sh missing \
ylwrap
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
if test -d "$(distdir)"; then \
find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -rf "$(distdir)" \
|| { sleep 5 && rm -rf "$(distdir)"; }; \
else :; fi
am__post_remove_distdir = $(am__remove_distdir)
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
sed_rest='s,^[^/]*/*,,'; \
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
sed_butlast='s,/*[^/]*$$,,'; \
while test -n "$$dir1"; do \
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
if test "$$first" != "."; then \
if test "$$first" = ".."; then \
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
else \
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
if test "$$first2" = "$$first"; then \
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
else \
dir2="../$$dir2"; \
fi; \
dir0="$$dir0"/"$$first"; \
fi; \
fi; \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
DIST_TARGETS = dist-gzip
distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
distcleancheck_listfiles = find . -type f -print
ACLOCAL = ${SHELL} /home/tcsenpai/Downloads/detox-1.4.5/missing aclocal-1.16
AMTAR = $${TAR-tar}
AM_DEFAULT_VERBOSITY = 1
AUTOCONF = ${SHELL} /home/tcsenpai/Downloads/detox-1.4.5/missing autoconf
AUTOHEADER = ${SHELL} /home/tcsenpai/Downloads/detox-1.4.5/missing autoheader
AUTOMAKE = ${SHELL} /home/tcsenpai/Downloads/detox-1.4.5/missing automake-1.16
AWK = mawk
CC = gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPP = gcc -E
CPPFLAGS =
CYGPATH_W = echo
DEFS = -DHAVE_CONFIG_H
DEPDIR = .deps
ECHO_C =
ECHO_N = -n
ECHO_T =
EGREP = /usr/bin/grep -E
EXEEXT =
GREP = /usr/bin/grep
INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
LDFLAGS =
LEX = flex
LEXLIB = -lfl
LEX_OUTPUT_ROOT = lex.yy
LIBOBJS =
LIBS =
LTLIBOBJS =
MAKEINFO = ${SHELL} /home/tcsenpai/Downloads/detox-1.4.5/missing makeinfo
MKDIR_P = /usr/bin/mkdir -p
OBJEXT = o
PACKAGE = detox
PACKAGE_BUGREPORT = detox.dharple at gmail.com
PACKAGE_NAME = detox
PACKAGE_STRING = detox 1.4.5
PACKAGE_TARNAME = detox
PACKAGE_URL = https://github.com/dharple/detox
PACKAGE_VERSION = 1.4.5
PATH_SEPARATOR = :
SET_MAKE =
SHELL = /bin/bash
STRIP =
VERSION = 1.4.5
YACC = bison -y
YFLAGS =
abs_builddir = /home/tcsenpai/Downloads/detox-1.4.5
abs_srcdir = /home/tcsenpai/Downloads/detox-1.4.5
abs_top_builddir = /home/tcsenpai/Downloads/detox-1.4.5
abs_top_srcdir = /home/tcsenpai/Downloads/detox-1.4.5
ac_ct_CC = gcc
am__include = include
am__leading_dot = .
am__quote =
am__tar = $${TAR-tar} chof - "$$tardir"
am__untar = $${TAR-tar} xf -
bindir = ${exec_prefix}/bin
build_alias =
builddir = .
datadir = ${datarootdir}
datarootdir = ${prefix}/share
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
dvidir = ${docdir}
exec_prefix = ${prefix}
host_alias =
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
install_sh = ${SHELL} /home/tcsenpai/Downloads/detox-1.4.5/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
mandir = ${datarootdir}/man
mkdir_p = $(MKDIR_P)
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /usr/local
program_transform_name = s,x,x,
psdir = ${docdir}
runstatedir = ${localstatedir}/run
sbindir = ${exec_prefix}/sbin
sharedstatedir = ${prefix}/com
srcdir = .
sysconfdir = ${prefix}/etc
target_alias =
top_build_prefix =
top_builddir = .
top_srcdir = .
SUBDIRS = src
dist_doc_DATA = README.md
dist_man1_MANS = man/detox.1 man/inline-detox.1
dist_man5_MANS = man/detox.tbl.5 man/detoxrc.5
dist_sysconf_DATA = etc/detoxrc.sample
dist_pkgdata_DATA = table/iso8859_1.tbl.sample table/safe.tbl.sample table/unicode.tbl.sample
all: all-recursive
.SUFFIXES:
am--refresh: Makefile
@:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
$(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: $(am__configure_deps)
$(am__cd) $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
$(am__aclocal_m4_deps):
install-man1: $(dist_man1_MANS)
@$(NORMAL_INSTALL)
@list1='$(dist_man1_MANS)'; \
list2=''; \
test -n "$(man1dir)" \
&& test -n "`echo $$list1$$list2`" \
|| exit 0; \
echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
$(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
{ for i in $$list1; do echo "$$i"; done; \
if test -n "$$list2"; then \
for i in $$list2; do echo "$$i"; done \
| sed -n '/\.1[a-z]*$$/p'; \
fi; \
} | while read p; do \
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; echo "$$p"; \
done | \
sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
sed 'N;N;s,\n, ,g' | { \
list=; while read file base inst; do \
if test "$$base" = "$$inst"; then list="$$list $$file"; else \
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
fi; \
done; \
for i in $$list; do echo "$$i"; done | $(am__base_list) | \
while read files; do \
test -z "$$files" || { \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
done; }
uninstall-man1:
@$(NORMAL_UNINSTALL)
@list='$(dist_man1_MANS)'; test -n "$(man1dir)" || exit 0; \
files=`{ for i in $$list; do echo "$$i"; done; \
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
install-man5: $(dist_man5_MANS)
@$(NORMAL_INSTALL)
@list1='$(dist_man5_MANS)'; \
list2=''; \
test -n "$(man5dir)" \
&& test -n "`echo $$list1$$list2`" \
|| exit 0; \
echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \
$(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \
{ for i in $$list1; do echo "$$i"; done; \
if test -n "$$list2"; then \
for i in $$list2; do echo "$$i"; done \
| sed -n '/\.5[a-z]*$$/p'; \
fi; \
} | while read p; do \
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; echo "$$p"; \
done | \
sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
sed 'N;N;s,\n, ,g' | { \
list=; while read file base inst; do \
if test "$$base" = "$$inst"; then list="$$list $$file"; else \
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \
fi; \
done; \
for i in $$list; do echo "$$i"; done | $(am__base_list) | \
while read files; do \
test -z "$$files" || { \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \
done; }
uninstall-man5:
@$(NORMAL_UNINSTALL)
@list='$(dist_man5_MANS)'; test -n "$(man5dir)" || exit 0; \
files=`{ for i in $$list; do echo "$$i"; done; \
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir)
install-dist_docDATA: $(dist_doc_DATA)
@$(NORMAL_INSTALL)
@list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \
done
uninstall-dist_docDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir)
install-dist_pkgdataDATA: $(dist_pkgdata_DATA)
@$(NORMAL_INSTALL)
@list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(pkgdatadir)'"; \
$(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgdatadir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(pkgdatadir)" || exit $$?; \
done
uninstall-dist_pkgdataDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir)
install-dist_sysconfDATA: $(dist_sysconf_DATA)
@$(NORMAL_INSTALL)
@list='$(dist_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(sysconfdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(sysconfdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysconfdir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(sysconfdir)" || exit $$?; \
done
uninstall-dist_sysconfDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(sysconfdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run 'make' without going through this Makefile.
# To change the values of 'make' variables: instead of editing Makefiles,
# (1) if the variable is set in 'config.status', edit 'config.status'
# (which will cause the Makefiles to be regenerated when you run 'make');
# (2) otherwise, pass the desired values on the 'make' command line.
$(am__recursive_targets):
@fail=; \
if $(am__make_keepgoing); then \
failcom='fail=yes'; \
else \
failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-recursive
TAGS: tags
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: ctags-recursive
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscope: cscope.files
test ! -s cscope.files \
|| $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
clean-cscope:
-rm -f cscope.files
cscope.files: clean-cscope cscopelist
cscopelist: cscopelist-recursive
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir-am: $(DISTFILES)
$(am__remove_distdir)
test -d "$(distdir)" || mkdir "$(distdir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
$(am__make_dryrun) \
|| test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
dir1=$$subdir; dir2="$(top_distdir)"; \
$(am__relativize); \
new_top_distdir=$$reldir; \
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$new_top_distdir" \
distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
done
-test -n "$(am__skip_mode_fix)" \
|| find "$(distdir)" -type d ! -perm -755 \
-exec chmod u+rwx,go+rx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
$(am__post_remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
$(am__post_remove_distdir)
dist-lzip: distdir
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
$(am__post_remove_distdir)
dist-xz: distdir
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__post_remove_distdir)
dist-tarZ: distdir
@echo WARNING: "Support for distribution archives compressed with" \
"legacy program 'compress' is deprecated." >&2
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__post_remove_distdir)
dist-shar: distdir
@echo WARNING: "Support for shar distribution archives is" \
"deprecated." >&2
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
$(am__post_remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__post_remove_distdir)
dist dist-all:
$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
$(am__post_remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lz*) \
lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
*.tar.xz*) \
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir)
chmod u+w $(distdir)
mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build/sub \
&& ../../configure \
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
$(DISTCHECK_CONFIGURE_FLAGS) \
--srcdir=../.. --prefix="$$dc_install_base" \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
&& cd "$$am__cwd" \
|| exit 1
$(am__post_remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
@test -n '$(distuninstallcheck_dir)' || { \
echo 'ERROR: trying to run $@ with an empty' \
'$$(distuninstallcheck_dir)' >&2; \
exit 1; \
}; \
$(am__cd) '$(distuninstallcheck_dir)' || { \
echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
exit 1; \
}; \
test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-recursive
all-am: Makefile $(MANS) $(DATA)
installdirs: installdirs-recursive
installdirs-am:
for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(sysconfdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
html-am:
info: info-recursive
info-am:
install-data-am: install-dist_docDATA install-dist_pkgdataDATA \
install-man
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am: install-dist_sysconfDATA
install-html: install-html-recursive
install-html-am:
install-info: install-info-recursive
install-info-am:
install-man: install-man1 install-man5
install-pdf: install-pdf-recursive
install-pdf-am:
install-ps: install-ps-recursive
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-dist_docDATA uninstall-dist_pkgdataDATA \
uninstall-dist_sysconfDATA uninstall-man
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
uninstall-man: uninstall-man1 uninstall-man5
.MAKE: $(am__recursive_targets) install-am install-data-am \
install-strip uninstall-am
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
am--refresh check check-am clean clean-cscope clean-generic \
cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \
distcheck distclean distclean-generic distclean-tags \
distcleancheck distdir distuninstallcheck dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-data-hook install-dist_docDATA \
install-dist_pkgdataDATA install-dist_sysconfDATA install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-man1 install-man5 install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs installdirs-am maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
pdf-am ps ps-am tags tags-am uninstall uninstall-am \
uninstall-dist_docDATA uninstall-dist_pkgdataDATA \
uninstall-dist_sysconfDATA uninstall-hook uninstall-man \
uninstall-man1 uninstall-man5
.PRECIOUS: Makefile
install-data-hook:
test -f $(DESTDIR)$(sysconfdir)/detoxrc || $(INSTALL_DATA) $(DESTDIR)$(sysconfdir)/detoxrc.sample $(DESTDIR)$(sysconfdir)/detoxrc
test -f $(DESTDIR)$(pkgdatadir)/iso8859_1.tbl || $(INSTALL_DATA) $(DESTDIR)$(pkgdatadir)/iso8859_1.tbl.sample $(DESTDIR)$(pkgdatadir)/iso8859_1.tbl
test -f $(DESTDIR)$(pkgdatadir)/safe.tbl || $(INSTALL_DATA) $(DESTDIR)$(pkgdatadir)/safe.tbl.sample $(DESTDIR)$(pkgdatadir)/safe.tbl
test -f $(DESTDIR)$(pkgdatadir)/unicode.tbl || $(INSTALL_DATA) $(DESTDIR)$(pkgdatadir)/unicode.tbl.sample $(DESTDIR)$(pkgdatadir)/unicode.tbl
.PHONY: force-install
force-install: install
$(INSTALL_DATA) $(DESTDIR)$(sysconfdir)/detoxrc.sample $(DESTDIR)$(sysconfdir)/detoxrc
$(INSTALL_DATA) $(DESTDIR)$(pkgdatadir)/iso8859_1.tbl.sample $(DESTDIR)$(pkgdatadir)/iso8859_1.tbl
$(INSTALL_DATA) $(DESTDIR)$(pkgdatadir)/safe.tbl.sample $(DESTDIR)$(pkgdatadir)/safe.tbl
$(INSTALL_DATA) $(DESTDIR)$(pkgdatadir)/unicode.tbl.sample $(DESTDIR)$(pkgdatadir)/unicode.tbl
uninstall-hook:
rm $(DESTDIR)$(sysconfdir)/detoxrc
rm $(DESTDIR)$(pkgdatadir)/iso8859_1.tbl
rm $(DESTDIR)$(pkgdatadir)/safe.tbl
rm $(DESTDIR)$(pkgdatadir)/unicode.tbl
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

28
detox/latest/Makefile.am Normal file
View File

@ -0,0 +1,28 @@
SUBDIRS = src
dist_doc_DATA = README.md
dist_man1_MANS = man/detox.1 man/inline-detox.1
dist_man5_MANS = man/detox.tbl.5 man/detoxrc.5
dist_sysconf_DATA = etc/detoxrc.sample
dist_pkgdata_DATA = table/iso8859_1.tbl.sample table/safe.tbl.sample table/unicode.tbl.sample
install-data-hook:
test -f $(DESTDIR)$(sysconfdir)/detoxrc || $(INSTALL_DATA) $(DESTDIR)$(sysconfdir)/detoxrc.sample $(DESTDIR)$(sysconfdir)/detoxrc
test -f $(DESTDIR)$(pkgdatadir)/iso8859_1.tbl || $(INSTALL_DATA) $(DESTDIR)$(pkgdatadir)/iso8859_1.tbl.sample $(DESTDIR)$(pkgdatadir)/iso8859_1.tbl
test -f $(DESTDIR)$(pkgdatadir)/safe.tbl || $(INSTALL_DATA) $(DESTDIR)$(pkgdatadir)/safe.tbl.sample $(DESTDIR)$(pkgdatadir)/safe.tbl
test -f $(DESTDIR)$(pkgdatadir)/unicode.tbl || $(INSTALL_DATA) $(DESTDIR)$(pkgdatadir)/unicode.tbl.sample $(DESTDIR)$(pkgdatadir)/unicode.tbl
.PHONY: force-install
force-install: install
$(INSTALL_DATA) $(DESTDIR)$(sysconfdir)/detoxrc.sample $(DESTDIR)$(sysconfdir)/detoxrc
$(INSTALL_DATA) $(DESTDIR)$(pkgdatadir)/iso8859_1.tbl.sample $(DESTDIR)$(pkgdatadir)/iso8859_1.tbl
$(INSTALL_DATA) $(DESTDIR)$(pkgdatadir)/safe.tbl.sample $(DESTDIR)$(pkgdatadir)/safe.tbl
$(INSTALL_DATA) $(DESTDIR)$(pkgdatadir)/unicode.tbl.sample $(DESTDIR)$(pkgdatadir)/unicode.tbl
uninstall-hook:
rm $(DESTDIR)$(sysconfdir)/detoxrc
rm $(DESTDIR)$(pkgdatadir)/iso8859_1.tbl
rm $(DESTDIR)$(pkgdatadir)/safe.tbl
rm $(DESTDIR)$(pkgdatadir)/unicode.tbl

977
detox/latest/Makefile.in Normal file
View File

@ -0,0 +1,977 @@
# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
$(am__configure_deps) $(dist_doc_DATA) $(dist_pkgdata_DATA) \
$(dist_sysconf_DATA) $(am__DIST_COMMON)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/src/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
ctags-recursive dvi-recursive html-recursive info-recursive \
install-data-recursive install-dvi-recursive \
install-exec-recursive install-html-recursive \
install-info-recursive install-pdf-recursive \
install-ps-recursive install-recursive installcheck-recursive \
installdirs-recursive pdf-recursive ps-recursive \
tags-recursive uninstall-recursive
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
man1dir = $(mandir)/man1
am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" \
"$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgdatadir)" \
"$(DESTDIR)$(sysconfdir)"
man5dir = $(mandir)/man5
NROFF = nroff
MANS = $(dist_man1_MANS) $(dist_man5_MANS)
DATA = $(dist_doc_DATA) $(dist_pkgdata_DATA) $(dist_sysconf_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
am__recursive_targets = \
$(RECURSIVE_TARGETS) \
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
cscope distdir distdir-am dist dist-all distcheck
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
CSCOPE = cscope
DIST_SUBDIRS = $(SUBDIRS)
am__DIST_COMMON = $(dist_man1_MANS) $(dist_man5_MANS) \
$(srcdir)/Makefile.in compile depcomp install-sh missing \
ylwrap
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
if test -d "$(distdir)"; then \
find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -rf "$(distdir)" \
|| { sleep 5 && rm -rf "$(distdir)"; }; \
else :; fi
am__post_remove_distdir = $(am__remove_distdir)
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
sed_rest='s,^[^/]*/*,,'; \
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
sed_butlast='s,/*[^/]*$$,,'; \
while test -n "$$dir1"; do \
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
if test "$$first" != "."; then \
if test "$$first" = ".."; then \
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
else \
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
if test "$$first2" = "$$first"; then \
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
else \
dir2="../$$dir2"; \
fi; \
dir0="$$dir0"/"$$first"; \
fi; \
fi; \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
DIST_TARGETS = dist-gzip
distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LEX = @LEX@
LEXLIB = @LEXLIB@
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
YACC = @YACC@
YFLAGS = @YFLAGS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build_alias = @build_alias@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
SUBDIRS = src
dist_doc_DATA = README.md
dist_man1_MANS = man/detox.1 man/inline-detox.1
dist_man5_MANS = man/detox.tbl.5 man/detoxrc.5
dist_sysconf_DATA = etc/detoxrc.sample
dist_pkgdata_DATA = table/iso8859_1.tbl.sample table/safe.tbl.sample table/unicode.tbl.sample
all: all-recursive
.SUFFIXES:
am--refresh: Makefile
@:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
$(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: $(am__configure_deps)
$(am__cd) $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
$(am__aclocal_m4_deps):
install-man1: $(dist_man1_MANS)
@$(NORMAL_INSTALL)
@list1='$(dist_man1_MANS)'; \
list2=''; \
test -n "$(man1dir)" \
&& test -n "`echo $$list1$$list2`" \
|| exit 0; \
echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
$(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
{ for i in $$list1; do echo "$$i"; done; \
if test -n "$$list2"; then \
for i in $$list2; do echo "$$i"; done \
| sed -n '/\.1[a-z]*$$/p'; \
fi; \
} | while read p; do \
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; echo "$$p"; \
done | \
sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
sed 'N;N;s,\n, ,g' | { \
list=; while read file base inst; do \
if test "$$base" = "$$inst"; then list="$$list $$file"; else \
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
fi; \
done; \
for i in $$list; do echo "$$i"; done | $(am__base_list) | \
while read files; do \
test -z "$$files" || { \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
done; }
uninstall-man1:
@$(NORMAL_UNINSTALL)
@list='$(dist_man1_MANS)'; test -n "$(man1dir)" || exit 0; \
files=`{ for i in $$list; do echo "$$i"; done; \
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
install-man5: $(dist_man5_MANS)
@$(NORMAL_INSTALL)
@list1='$(dist_man5_MANS)'; \
list2=''; \
test -n "$(man5dir)" \
&& test -n "`echo $$list1$$list2`" \
|| exit 0; \
echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \
$(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \
{ for i in $$list1; do echo "$$i"; done; \
if test -n "$$list2"; then \
for i in $$list2; do echo "$$i"; done \
| sed -n '/\.5[a-z]*$$/p'; \
fi; \
} | while read p; do \
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; echo "$$p"; \
done | \
sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
sed 'N;N;s,\n, ,g' | { \
list=; while read file base inst; do \
if test "$$base" = "$$inst"; then list="$$list $$file"; else \
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \
fi; \
done; \
for i in $$list; do echo "$$i"; done | $(am__base_list) | \
while read files; do \
test -z "$$files" || { \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \
done; }
uninstall-man5:
@$(NORMAL_UNINSTALL)
@list='$(dist_man5_MANS)'; test -n "$(man5dir)" || exit 0; \
files=`{ for i in $$list; do echo "$$i"; done; \
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir)
install-dist_docDATA: $(dist_doc_DATA)
@$(NORMAL_INSTALL)
@list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \
done
uninstall-dist_docDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir)
install-dist_pkgdataDATA: $(dist_pkgdata_DATA)
@$(NORMAL_INSTALL)
@list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(pkgdatadir)'"; \
$(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgdatadir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(pkgdatadir)" || exit $$?; \
done
uninstall-dist_pkgdataDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir)
install-dist_sysconfDATA: $(dist_sysconf_DATA)
@$(NORMAL_INSTALL)
@list='$(dist_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(sysconfdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(sysconfdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysconfdir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(sysconfdir)" || exit $$?; \
done
uninstall-dist_sysconfDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(sysconfdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run 'make' without going through this Makefile.
# To change the values of 'make' variables: instead of editing Makefiles,
# (1) if the variable is set in 'config.status', edit 'config.status'
# (which will cause the Makefiles to be regenerated when you run 'make');
# (2) otherwise, pass the desired values on the 'make' command line.
$(am__recursive_targets):
@fail=; \
if $(am__make_keepgoing); then \
failcom='fail=yes'; \
else \
failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-recursive
TAGS: tags
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: ctags-recursive
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscope: cscope.files
test ! -s cscope.files \
|| $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
clean-cscope:
-rm -f cscope.files
cscope.files: clean-cscope cscopelist
cscopelist: cscopelist-recursive
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir-am: $(DISTFILES)
$(am__remove_distdir)
test -d "$(distdir)" || mkdir "$(distdir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
$(am__make_dryrun) \
|| test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
dir1=$$subdir; dir2="$(top_distdir)"; \
$(am__relativize); \
new_top_distdir=$$reldir; \
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$new_top_distdir" \
distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
done
-test -n "$(am__skip_mode_fix)" \
|| find "$(distdir)" -type d ! -perm -755 \
-exec chmod u+rwx,go+rx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
$(am__post_remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
$(am__post_remove_distdir)
dist-lzip: distdir
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
$(am__post_remove_distdir)
dist-xz: distdir
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__post_remove_distdir)
dist-tarZ: distdir
@echo WARNING: "Support for distribution archives compressed with" \
"legacy program 'compress' is deprecated." >&2
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__post_remove_distdir)
dist-shar: distdir
@echo WARNING: "Support for shar distribution archives is" \
"deprecated." >&2
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
$(am__post_remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__post_remove_distdir)
dist dist-all:
$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
$(am__post_remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lz*) \
lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
*.tar.xz*) \
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir)
chmod u+w $(distdir)
mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build/sub \
&& ../../configure \
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
$(DISTCHECK_CONFIGURE_FLAGS) \
--srcdir=../.. --prefix="$$dc_install_base" \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
&& cd "$$am__cwd" \
|| exit 1
$(am__post_remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
@test -n '$(distuninstallcheck_dir)' || { \
echo 'ERROR: trying to run $@ with an empty' \
'$$(distuninstallcheck_dir)' >&2; \
exit 1; \
}; \
$(am__cd) '$(distuninstallcheck_dir)' || { \
echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
exit 1; \
}; \
test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-recursive
all-am: Makefile $(MANS) $(DATA)
installdirs: installdirs-recursive
installdirs-am:
for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(sysconfdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
html-am:
info: info-recursive
info-am:
install-data-am: install-dist_docDATA install-dist_pkgdataDATA \
install-man
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am: install-dist_sysconfDATA
install-html: install-html-recursive
install-html-am:
install-info: install-info-recursive
install-info-am:
install-man: install-man1 install-man5
install-pdf: install-pdf-recursive
install-pdf-am:
install-ps: install-ps-recursive
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-dist_docDATA uninstall-dist_pkgdataDATA \
uninstall-dist_sysconfDATA uninstall-man
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
uninstall-man: uninstall-man1 uninstall-man5
.MAKE: $(am__recursive_targets) install-am install-data-am \
install-strip uninstall-am
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
am--refresh check check-am clean clean-cscope clean-generic \
cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \
distcheck distclean distclean-generic distclean-tags \
distcleancheck distdir distuninstallcheck dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-data-hook install-dist_docDATA \
install-dist_pkgdataDATA install-dist_sysconfDATA install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-man1 install-man5 install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs installdirs-am maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
pdf-am ps ps-am tags tags-am uninstall uninstall-am \
uninstall-dist_docDATA uninstall-dist_pkgdataDATA \
uninstall-dist_sysconfDATA uninstall-hook uninstall-man \
uninstall-man1 uninstall-man5
.PRECIOUS: Makefile
install-data-hook:
test -f $(DESTDIR)$(sysconfdir)/detoxrc || $(INSTALL_DATA) $(DESTDIR)$(sysconfdir)/detoxrc.sample $(DESTDIR)$(sysconfdir)/detoxrc
test -f $(DESTDIR)$(pkgdatadir)/iso8859_1.tbl || $(INSTALL_DATA) $(DESTDIR)$(pkgdatadir)/iso8859_1.tbl.sample $(DESTDIR)$(pkgdatadir)/iso8859_1.tbl
test -f $(DESTDIR)$(pkgdatadir)/safe.tbl || $(INSTALL_DATA) $(DESTDIR)$(pkgdatadir)/safe.tbl.sample $(DESTDIR)$(pkgdatadir)/safe.tbl
test -f $(DESTDIR)$(pkgdatadir)/unicode.tbl || $(INSTALL_DATA) $(DESTDIR)$(pkgdatadir)/unicode.tbl.sample $(DESTDIR)$(pkgdatadir)/unicode.tbl
.PHONY: force-install
force-install: install
$(INSTALL_DATA) $(DESTDIR)$(sysconfdir)/detoxrc.sample $(DESTDIR)$(sysconfdir)/detoxrc
$(INSTALL_DATA) $(DESTDIR)$(pkgdatadir)/iso8859_1.tbl.sample $(DESTDIR)$(pkgdatadir)/iso8859_1.tbl
$(INSTALL_DATA) $(DESTDIR)$(pkgdatadir)/safe.tbl.sample $(DESTDIR)$(pkgdatadir)/safe.tbl
$(INSTALL_DATA) $(DESTDIR)$(pkgdatadir)/unicode.tbl.sample $(DESTDIR)$(pkgdatadir)/unicode.tbl
uninstall-hook:
rm $(DESTDIR)$(sysconfdir)/detoxrc
rm $(DESTDIR)$(pkgdatadir)/iso8859_1.tbl
rm $(DESTDIR)$(pkgdatadir)/safe.tbl
rm $(DESTDIR)$(pkgdatadir)/unicode.tbl
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

42
detox/latest/README.md Normal file
View File

@ -0,0 +1,42 @@
# Overview
`detox` is a program that renames files to make them easier to work with under
Unix and related operating systems. Spaces and various other unsafe
characters (such as "$") get replaced with "_". ISO 8859-1 (Latin-1)
characters can be transliterated to ASCII, as can UTF-8 characters.
More details are contained in the `detox.1` man page.
# Runtime Notes
The most important option to learn is `-n`, aka `--dry-run`. This will let you
run `detox` without actually changing any files, so that you can get an idea
of what `detox` is all about.
The simplest way to run `detox` is to just run it on a directory containing
files that need work:
detox xfer_files/
You can also just to specify the filename:
detox my\ bad\ file.txt
You can also specify recursion (this works best on directories):
detox -r /music/transferred_from_elsewhere/
# Build
To build `detox` from source, run:
```
git clone https://github.com/dharple/detox.git
cd detox
autoreconf --install
./configure
make
```
# Contact
Doug Harple <detox.dharple@gmail.com>

1135
detox/latest/aclocal.m4 vendored Normal file

File diff suppressed because it is too large Load Diff

348
detox/latest/compile Executable file
View File

@ -0,0 +1,348 @@
#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# 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, see <https://www.gnu.org/licenses/>.
# 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@gnu.org> or send patches to
# <automake-patches@gnu.org>.
nl='
'
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent tools from complaining about whitespace usage.
IFS=" "" $nl"
file_conv=
# func_file_conv build_file lazy
# Convert a $build file to $host form and store it in $file
# Currently only supports Windows hosts. If the determined conversion
# type is listed in (the comma separated) LAZY, no conversion will
# take place.
func_file_conv ()
{
file=$1
case $file in
/ | /[!/]*) # absolute file, and not a UNC file
if test -z "$file_conv"; then
# lazily determine how to convert abs files
case `uname -s` in
MINGW*)
file_conv=mingw
;;
CYGWIN*)
file_conv=cygwin
;;
*)
file_conv=wine
;;
esac
fi
case $file_conv/,$2, in
*,$file_conv,*)
;;
mingw/*)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
cygwin/*)
file=`cygpath -m "$file" || echo "$file"`
;;
wine/*)
file=`winepath -w "$file" || echo "$file"`
;;
esac
;;
esac
}
# func_cl_dashL linkdir
# Make cl look for libraries in LINKDIR
func_cl_dashL ()
{
func_file_conv "$1"
if test -z "$lib_path"; then
lib_path=$file
else
lib_path="$lib_path;$file"
fi
linker_opts="$linker_opts -LIBPATH:$file"
}
# func_cl_dashl library
# Do a library search-path lookup for cl
func_cl_dashl ()
{
lib=$1
found=no
save_IFS=$IFS
IFS=';'
for dir in $lib_path $LIB
do
IFS=$save_IFS
if $shared && test -f "$dir/$lib.dll.lib"; then
found=yes
lib=$dir/$lib.dll.lib
break
fi
if test -f "$dir/$lib.lib"; then
found=yes
lib=$dir/$lib.lib
break
fi
if test -f "$dir/lib$lib.a"; then
found=yes
lib=$dir/lib$lib.a
break
fi
done
IFS=$save_IFS
if test "$found" != yes; then
lib=$lib.lib
fi
}
# func_cl_wrapper cl arg...
# Adjust compile command to suit cl
func_cl_wrapper ()
{
# Assume a capable shell
lib_path=
shared=:
linker_opts=
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'.
eat=1
case $2 in
*.o | *.[oO][bB][jJ])
func_file_conv "$2"
set x "$@" -Fo"$file"
shift
;;
*)
func_file_conv "$2"
set x "$@" -Fe"$file"
shift
;;
esac
;;
-I)
eat=1
func_file_conv "$2" mingw
set x "$@" -I"$file"
shift
;;
-I*)
func_file_conv "${1#-I}" mingw
set x "$@" -I"$file"
shift
;;
-l)
eat=1
func_cl_dashl "$2"
set x "$@" "$lib"
shift
;;
-l*)
func_cl_dashl "${1#-l}"
set x "$@" "$lib"
shift
;;
-L)
eat=1
func_cl_dashL "$2"
;;
-L*)
func_cl_dashL "${1#-L}"
;;
-static)
shared=false
;;
-Wl,*)
arg=${1#-Wl,}
save_ifs="$IFS"; IFS=','
for flag in $arg; do
IFS="$save_ifs"
linker_opts="$linker_opts $flag"
done
IFS="$save_ifs"
;;
-Xlinker)
eat=1
linker_opts="$linker_opts $2"
;;
-*)
set x "$@" "$1"
shift
;;
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
func_file_conv "$1"
set x "$@" -Tp"$file"
shift
;;
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
func_file_conv "$1" mingw
set x "$@" "$file"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -n "$linker_opts"; then
linker_opts="-link$linker_opts"
fi
exec "$@" $linker_opts
exit 1
}
eat=
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@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "compile $scriptversion"
exit $?
;;
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
func_cl_wrapper "$@" # Doesn't return...
;;
esac
ofile=
cfile=
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 's|^.*[\\/]||; s|^[a-zA-Z]:||; 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
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
elif test -f "${cofile}bj"; then
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
fi
rmdir "$lockdir"
exit $ret
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:

2286
detox/latest/config.log Normal file

File diff suppressed because it is too large Load Diff

1199
detox/latest/config.status Executable file

File diff suppressed because it is too large Load Diff

6078
detox/latest/configure vendored Executable file

File diff suppressed because it is too large Load Diff

19
detox/latest/configure.ac Normal file
View File

@ -0,0 +1,19 @@
# Process this file with autoconf to produce a configure script.
AC_INIT([detox], [1.4.5], [detox.dharple at gmail.com], [], [https://github.com/dharple/detox])
AM_INIT_AUTOMAKE([foreign -Wall -Werror])
AC_PROG_CC
AC_PROG_LEX([noyywrap])
AC_PROG_YACC
AC_CHECK_FUNCS([getopt_long])
AC_STRUCT_ST_BLOCKS
AC_SYS_LARGEFILE
AC_CONFIG_HEADERS([src/config.h])
AC_CONFIG_FILES([
Makefile
src/Makefile
])
AC_OUTPUT

791
detox/latest/depcomp Executable file
View File

@ -0,0 +1,791 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
# 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, see <https://www.gnu.org/licenses/>.
# 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.
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
case $1 in
'')
echo "$0: No command. Try '$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
Run PROGRAMS ARGS to compile a file, generating dependencies
as side-effects.
Environment variables:
depmode Dependency tracking mode.
source Source file read by 'PROGRAMS ARGS'.
object Object file output by 'PROGRAMS ARGS'.
DEPDIR directory where to store dependencies.
depfile Dependency file to output.
tmpdepfile Temporary file to use when outputting dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "depcomp $scriptversion"
exit $?
;;
esac
# Get the directory component of the given path, and save it in the
# global variables '$dir'. Note that this directory component will
# be either empty or ending with a '/' character. This is deliberate.
set_dir_from ()
{
case $1 in
*/*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
*) dir=;;
esac
}
# Get the suffix-stripped basename of the given path, and save it the
# global variable '$base'.
set_base_from ()
{
base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
}
# If no dependency file was actually created by the compiler invocation,
# we still have to create a dummy depfile, to avoid errors with the
# Makefile "include basename.Plo" scheme.
make_dummy_depfile ()
{
echo "#dummy" > "$depfile"
}
# Factor out some common post-processing of the generated depfile.
# Requires the auxiliary global variable '$tmpdepfile' to be set.
aix_post_process_depfile ()
{
# If the compiler actually managed to produce a dependency file,
# post-process it.
if test -f "$tmpdepfile"; then
# Each line is of the form 'foo.o: dependency.h'.
# Do two passes, one to just change these to
# $object: dependency.h
# and one to simply output
# dependency.h:
# which is needed to avoid the deleted-header problem.
{ sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
} > "$depfile"
rm -f "$tmpdepfile"
else
make_dummy_depfile
fi
}
# A tabulation character.
tab=' '
# A newline character.
nl='
'
# Character ranges might be problematic outside the C locale.
# These definitions help.
upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
lower=abcdefghijklmnopqrstuvwxyz
digits=0123456789
alpha=${upper}${lower}
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
depfile=${depfile-`echo "$object" |
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Avoid interferences from the environment.
gccflag= dashmflag=
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
cygpath_u="cygpath -u -f -"
if test "$depmode" = msvcmsys; then
# This is just like msvisualcpp but w/o cygpath translation.
# Just convert the backslash-escaped backslashes to single forward
# slashes to satisfy depend.m4
cygpath_u='sed s,\\\\,/,g'
depmode=msvisualcpp
fi
if test "$depmode" = msvc7msys; then
# This is just like msvc7 but w/o cygpath translation.
# Just convert the backslash-escaped backslashes to single forward
# slashes to satisfy depend.m4
cygpath_u='sed s,\\\\,/,g'
depmode=msvc7
fi
if test "$depmode" = xlc; then
# IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
gccflag=-qmakedep=gcc,-MF
depmode=gcc
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
## the command line argument order; so add the flags where they
## appear in depend2.am. Note that the slowdown incurred here
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
for arg
do
case $arg in
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
*) set fnord "$@" "$arg" ;;
esac
shift # fnord
shift # $arg
done
"$@"
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
## (see the conditional assignment to $gccflag above).
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say). Also, it might not be
## supported by the other compilers which use the 'gcc' depmode.
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
# The second -e expression handles DOS-style file names with drive
# letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the "deleted header file" problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
## Some versions of gcc put a space before the ':'. On the theory
## that the space means something, we add a space to the output as
## well. hp depmode also adds that space, but also prefixes the VPATH
## to the object. Take care to not repeat it in the output.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like '#:fec' to the end of the
# dependency line.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
| tr "$nl" ' ' >> "$depfile"
echo >> "$depfile"
# The second pass generates a dummy entry for each header file.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> "$depfile"
else
make_dummy_depfile
fi
rm -f "$tmpdepfile"
;;
xlc)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
# current directory. Also, the AIX compiler puts '$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
set_dir_from "$object"
set_base_from "$object"
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.u
tmpdepfile2=$base.u
tmpdepfile3=$dir.libs/$base.u
"$@" -Wc,-M
else
tmpdepfile1=$dir$base.u
tmpdepfile2=$dir$base.u
tmpdepfile3=$dir$base.u
"$@" -M
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
do
test -f "$tmpdepfile" && break
done
aix_post_process_depfile
;;
tcc)
# tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
# FIXME: That version still under development at the moment of writing.
# Make that this statement remains true also for stable, released
# versions.
# It will wrap lines (doesn't matter whether long or short) with a
# trailing '\', as in:
#
# foo.o : \
# foo.c \
# foo.h \
#
# It will put a trailing '\' even on the last line, and will use leading
# spaces rather than leading tabs (at least since its commit 0394caf7
# "Emit spaces for -MD").
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
# We have to change lines of the first kind to '$object: \'.
sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
# And for each line of the second kind, we have to emit a 'dep.h:'
# dummy dependency, to avoid the deleted-header problem.
sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
rm -f "$tmpdepfile"
;;
## The order of this option in the case statement is important, since the
## shell code in configure will try each of these formats in the order
## listed in this file. A plain '-MD' option would be understood by many
## compilers, so we must ensure this comes after the gcc and icc options.
pgcc)
# Portland's C compiler understands '-MD'.
# Will always output deps to 'file.d' where file is the root name of the
# source file under compilation, even if file resides in a subdirectory.
# The object file name does not affect the name of the '.d' file.
# pgcc 10.2 will output
# foo.o: sub/foo.c sub/foo.h
# and will wrap long lines using '\' :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
set_dir_from "$object"
# Use the source, not the object, to determine the base name, since
# that's sadly what pgcc will do too.
set_base_from "$source"
tmpdepfile=$base.d
# For projects that build the same source file twice into different object
# files, the pgcc approach of using the *source* file root name can cause
# problems in parallel builds. Use a locking strategy to avoid stomping on
# the same $tmpdepfile.
lockdir=$base.d-lock
trap "
echo '$0: caught signal, cleaning up...' >&2
rmdir '$lockdir'
exit 1
" 1 2 13 15
numtries=100
i=$numtries
while test $i -gt 0; do
# mkdir is a portable test-and-set.
if mkdir "$lockdir" 2>/dev/null; then
# This process acquired the lock.
"$@" -MD
stat=$?
# Release the lock.
rmdir "$lockdir"
break
else
# If the lock is being held by a different process, wait
# until the winning process is done or we timeout.
while test -d "$lockdir" && test $i -gt 0; do
sleep 1
i=`expr $i - 1`
done
fi
i=`expr $i - 1`
done
trap - 1 2 13 15
if test $i -le 0; then
echo "$0: failed to acquire lock after $numtries attempts" >&2
echo "$0: check lockdir '$lockdir'" >&2
exit 1
fi
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each line is of the form `foo.o: dependent.h',
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp2)
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
# compilers, which have integrated preprocessors. The correct option
# to use with these is +Maked; it writes dependencies to a file named
# 'foo.d', which lands next to the object file, wherever that
# happens to be.
# Much of this is similar to the tru64 case; see comments there.
set_dir_from "$object"
set_base_from "$object"
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir.libs/$base.d
"$@" -Wc,+Maked
else
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir$base.d
"$@" +Maked
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
# Add 'dependent.h:' lines.
sed -ne '2,${
s/^ *//
s/ \\*$//
s/$/:/
p
}' "$tmpdepfile" >> "$depfile"
else
make_dummy_depfile
fi
rm -f "$tmpdepfile" "$tmpdepfile2"
;;
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
# effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in 'foo.d' instead, so we check for that too.
# Subdirectories are respected.
set_dir_from "$object"
set_base_from "$object"
if test "$libtool" = yes; then
# Libtool generates 2 separate objects for the 2 libraries. These
# two compilations output dependencies in $dir.libs/$base.o.d and
# in $dir$base.o.d. We have to check for both files, because
# one of the two compilations can be disabled. We should prefer
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
# automatically cleaned when .libs/ is deleted, while ignoring
# the former would cause a distcleancheck panic.
tmpdepfile1=$dir$base.o.d # libtool 1.5
tmpdepfile2=$dir.libs/$base.o.d # Likewise.
tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD
else
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir$base.d
tmpdepfile3=$dir$base.d
"$@" -MD
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
do
test -f "$tmpdepfile" && break
done
# Same post-processing that is required for AIX mode.
aix_post_process_depfile
;;
msvc7)
if test "$libtool" = yes; then
showIncludes=-Wc,-showIncludes
else
showIncludes=-showIncludes
fi
"$@" $showIncludes > "$tmpdepfile"
stat=$?
grep -v '^Note: including file: ' "$tmpdepfile"
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
# The first sed program below extracts the file names and escapes
# backslashes for cygpath. The second sed program outputs the file
# name when reading, but also accumulates all include files in the
# hold buffer in order to output them again at the end. This only
# works with sed implementations that can handle large buffers.
sed < "$tmpdepfile" -n '
/^Note: including file: *\(.*\)/ {
s//\1/
s/\\/\\\\/g
p
}' | $cygpath_u | sort -u | sed -n '
s/ /\\ /g
s/\(.*\)/'"$tab"'\1 \\/p
s/.\(.*\) \\/\1:/
H
$ {
s/.*/'"$tab"'/
G
p
}' >> "$depfile"
echo >> "$depfile" # make sure the fragment doesn't end with a backslash
rm -f "$tmpdepfile"
;;
msvc7msys)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# Remove '-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
test -z "$dashmflag" && dashmflag=-M
# Require at least two characters before searching for ':'
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
"$@" $dashmflag |
sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this sed invocation
# correctly. Breaking it into two sed invocations is a workaround.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
"$@" || exit $?
# Remove any Libtool call
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# X makedepend
shift
cleared=no eat=no
for arg
do
case $cleared in
no)
set ""; shift
cleared=yes ;;
esac
if test $eat = yes; then
eat=no
continue
fi
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift ;;
# Strip any option that makedepend may not understand. Remove
# the object too, otherwise makedepend will parse it as a source file.
-arch)
eat=yes ;;
-*|$object)
;;
*)
set fnord "$@" "$arg"; shift ;;
esac
done
obj_suffix=`echo "$object" | sed 's/^.*\././'`
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
# makedepend may prepend the VPATH from the source file name to the object.
# No need to regex-escape $object, excess matching of '.' is harmless.
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process the last invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed '1,2d' "$tmpdepfile" \
| tr ' ' "$nl" \
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# Remove '-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
"$@" -E \
| sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
| sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
IFS=" "
for arg
do
case "$arg" in
-o)
shift
;;
$object)
shift
;;
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
set fnord "$@"
shift
shift
;;
*)
set fnord "$@" "$arg"
shift
shift
;;
esac
done
"$@" -E 2>/dev/null |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
echo "$tab" >> "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvcmsys)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:

View File

@ -0,0 +1,84 @@
#
# config file for detox(1)
#
#
# Default sequence
#
sequence default {
utf_8;
safe;
wipeup;
};
#
# Sequences meant primarily for detox
#
# transliterates ISO8859-1 into ASCII
sequence "iso8859_1" {
iso8859_1;
safe;
wipeup;
};
# transliterates UTF-8 into ASCII
sequence "utf_8" {
utf_8;
safe;
wipeup;
};
# decodes CGI escaped characters
sequence "uncgi" {
uncgi;
safe;
wipeup;
};
# converts files to lower case
sequence "lower" {
iso8859_1;
safe;
lower;
wipeup;
};
#
# Sequences meant primarily for inline-detox
#
# transliterates ISO8859-1 to ASCII
sequence "iso8859_1-only" {
iso8859_1;
};
# transliterates UTF-8 to ASCII
sequence "utf_8-only" {
utf_8;
};
# decodes CGI escaped characters
sequence "uncgi-only" {
uncgi;
};
# converts files to lower case
sequence "lower-only" {
lower;
};
#
# Files to ignore (detox only)
#
ignore {
filename ".arch-params";
filename ".evolution";
filename ".gnome";
filename ".mozilla";
filename ".themes";
filename "{arch}";
};

518
detox/latest/install-sh Executable file
View File

@ -0,0 +1,518 @@
#!/bin/sh
# install - install a program, script, or datafile
scriptversion=2018-03-11.20; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# 'make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch.
tab=' '
nl='
'
IFS=" $tab$nl"
# Set DOITPROG to "echo" to test this script.
doit=${DOITPROG-}
doit_exec=${doit:-exec}
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
chgrpprog=${CHGRPPROG-chgrp}
chmodprog=${CHMODPROG-chmod}
chownprog=${CHOWNPROG-chown}
cmpprog=${CMPPROG-cmp}
cpprog=${CPPROG-cp}
mkdirprog=${MKDIRPROG-mkdir}
mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
posix_mkdir=
# Desired mode of installed file.
mode=0755
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
mvcmd=$mvprog
rmcmd="$rmprog -f"
stripcmd=
src=
dst=
dir_arg=
dst_arg=
copy_on_change=false
is_target_a_directory=possibly
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
Options:
--help display this help and exit.
--version display version info and exit.
-c (ignored)
-C install only if different (preserve the last data modification time)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-s $stripprog installed files.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG
"
while test $# -ne 0; do
case $1 in
-c) ;;
-C) copy_on_change=true;;
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
case $mode in
*' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
echo "$0: invalid mode: $mode" >&2
exit 1;;
esac
shift;;
-o) chowncmd="$chownprog $2"
shift;;
-s) stripcmd=$stripprog;;
-t)
is_target_a_directory=always
dst_arg=$2
# Protect names problematic for 'test' and other utilities.
case $dst_arg in
-* | [=\(\)!]) dst_arg=./$dst_arg;;
esac
shift;;
-T) is_target_a_directory=never;;
--version) echo "$0 $scriptversion"; exit $?;;
--) shift
break;;
-*) echo "$0: invalid option: $1" >&2
exit 1;;
*) break;;
esac
shift
done
# We allow the use of options -d and -T together, by making -d
# take the precedence; this is for compatibility with GNU install.
if test -n "$dir_arg"; then
if test -n "$dst_arg"; then
echo "$0: target directory not allowed when installing a directory." >&2
exit 1
fi
fi
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dst_arg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dst_arg"
shift # fnord
fi
shift # arg
dst_arg=$arg
# Protect names problematic for 'test' and other utilities.
case $dst_arg in
-* | [=\(\)!]) dst_arg=./$dst_arg;;
esac
done
fi
if test $# -eq 0; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call 'install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
if test -z "$dir_arg"; then
if test $# -gt 1 || test "$is_target_a_directory" = always; then
if test ! -d "$dst_arg"; then
echo "$0: $dst_arg: Is not a directory." >&2
exit 1
fi
fi
fi
if test -z "$dir_arg"; then
do_exit='(exit $ret); exit $ret'
trap "ret=129; $do_exit" 1
trap "ret=130; $do_exit" 2
trap "ret=141; $do_exit" 13
trap "ret=143; $do_exit" 15
# Set umask so as not to create temps with too-generous modes.
# However, 'strip' requires both read and write access to temps.
case $mode in
# Optimize common cases.
*644) cp_umask=133;;
*755) cp_umask=22;;
*[0-7])
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
fi
for src
do
# Protect names problematic for 'test' and other utilities.
case $src in
-* | [=\(\)!]) src=./$src;;
esac
if test -n "$dir_arg"; then
dst=$src
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dst_arg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dst_arg
# If destination is a directory, append the input filename.
if test -d "$dst"; then
if test "$is_target_a_directory" = never; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
dstdir=$dst
dstbase=`basename "$src"`
case $dst in
*/) dst=$dst$dstbase;;
*) dst=$dst/$dstbase;;
esac
dstdir_status=0
else
dstdir=`dirname "$dst"`
test -d "$dstdir"
dstdir_status=$?
fi
fi
case $dstdir in
*/) dstdirslash=$dstdir;;
*) dstdirslash=$dstdir/;;
esac
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
# Create intermediate dirs using mode 755 as modified by the umask.
# This is like FreeBSD 'install' as of 1997-10-28.
umask=`umask`
case $stripcmd.$umask in
# Optimize common cases.
*[2367][2367]) mkdir_umask=$umask;;
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
*[0-7])
mkdir_umask=`expr $umask + 22 \
- $umask % 100 % 40 + $umask % 20 \
- $umask % 10 % 4 + $umask % 2
`;;
*) mkdir_umask=$umask,go-w;;
esac
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
mkdir_mode=-m$mode
else
mkdir_mode=
fi
posix_mkdir=false
case $umask in
*[123567][0-7][0-7])
# POSIX mkdir -p sets u+wx bits regardless of umask, which
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
# Note that $RANDOM variable is not portable (e.g. dash); Use it
# here however when possible just to lower collision chance.
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
# Because "mkdir -p" follows existing symlinks and we likely work
# directly in world-writeable /tmp, make sure that the '$tmpdir'
# directory is successfully created first before we actually test
# 'mkdir -p' feature.
if (umask $mkdir_umask &&
$mkdirprog $mkdir_mode "$tmpdir" &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
test_tmpdir="$tmpdir/a"
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
$mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
fi
trap '' 0;;
esac;;
esac
if
$posix_mkdir && (
umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
# The umask is ridiculous, or mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
/*) prefix='/';;
[-=\(\)!]*) prefix='./';;
*) prefix='';;
esac
oIFS=$IFS
IFS=/
set -f
set fnord $dstdir
shift
set +f
IFS=$oIFS
prefixes=
for d
do
test X"$d" = X && continue
prefix=$prefix$d
if test -d "$prefix"; then
prefixes=
else
if $posix_mkdir; then
(umask=$mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
else
case $prefix in
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
*) qprefix=$prefix;;
esac
prefixes="$prefixes '$qprefix'"
fi
fi
prefix=$prefix/
done
if test -n "$prefixes"; then
# Don't fail if two instances are running concurrently.
(umask $mkdir_umask &&
eval "\$doit_exec \$mkdirprog $prefixes") ||
test -d "$dstdir" || exit 1
obsolete_mkdir_used=true
fi
fi
fi
if test -n "$dir_arg"; then
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
else
# Make a couple of temp file names in the proper directory.
dsttmp=${dstdirslash}_inst.$$_
rmtmp=${dstdirslash}_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
rm -f "$dsttmp"
else
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
test ! -f "$dst" ||
$doit $rmcmd -f "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
} ||
{ echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
}
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
trap '' 0
fi
done
# Local variables:
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:

149
detox/latest/man/detox.1 Normal file
View File

@ -0,0 +1,149 @@
.\"
.\" This file is part of the Detox package.
.\"
.\" Copyright (c) Doug Harple <detox.dharple@gmail.com>
.\"
.\" For the full copyright and license information, please view the LICENSE
.\" file that was distributed with this source code.
.\"
.Dd February 11, 2021
.Dt DETOX 1
.Os
.Sh NAME
.Nm detox
.Nd clean up filenames
.Sh SYNOPSIS
.Nm
.Op Fl hnLrv
.Op Fl s Ar sequence
.Op Fl f Ar configfile
.Op Fl -dry-run
.Op Fl -special
.Ar
.Sh DESCRIPTION
The
.Nm
utility renames files to make them easier to work with. It removes
spaces and other such annoyances. It'll also translate or cleanup
Latin-1 (ISO 8859-1) characters encoded in 8-bit ASCII, Unicode
characters encoded in UTF-8, and CGI escaped characters.
.Ss Sequences
.Nm
is driven by a configurable series of filters, called a sequence.
Sequences are covered in more detail in
.Xr detoxrc 5
and are discoverable with the
.Fl L
option. Some examples of default sequences are
.Cm iso8859_1
and
.Cm utf_8 .
.Ss Options
The main options:
.Bl -tag -width Fl
.It Fl f Ar configfile
Use
.Ar configfile
instead of the default configuration files for loading translation
sequences. No other config file will be parsed.
.It Fl h -help
Display helpful information.
.It Fl L
List the currently available sequences. When paired with
.Fl v
this option shows what filters are used in each sequence and any
properties applied to the filters.
.It Fl n -dry-run
Doesn't actually change anything. This implies the
.Fl v
option.
.It Fl r
Recurse into subdirectories.
.It Fl s Ar sequence
Use
.Ar sequence
instead of default.
.It Fl -special
Works on special files (including links). Normally
.Nm
ignores these files.
.It Fl v
Be verbose about which files are being renamed.
.It Fl V
Show the current version of
.Nm .
.El
.Ss Deprecated Options
Deprecated Options are options that were available in earlier versions
of
.Nm
but have lost their meaning and are being phased out.
.Bl -tag -width Fl
.It Fl -remove-trailing
Removes _ and - after .'s in filenames. This was first provided in
the 0.9 series of
.Nm .
After the introduction of sequences, it lost its meaning, as you could
now determine the properties of wipeup through a particular sequence's
configuration. It presently forces all instances of the wipeup filter
to use remove trailing, regardless of what's actually in the config
files.
.El
.Sh FILES
.Bl -tag -width iso8859_1.tbl -compact
.It Pa detoxrc
The system-wide detoxrc file.
.It Pa ~/.detoxrc
A user's personal detoxrc. Normally it extends the system-wide
detoxrc, unless
.Fl f
has been specified, in which case, it is ignored.
.It Pa iso8859_1.tbl
The default ISO 8859-1 translation table.
.It Pa unicode.tbl
The default Unicode (UTF-8) translation table.
.El
.Sh EXAMPLES
.Bl -tag -width Fl
.It Nm Fl s Ar iso8859_1 Fl r Fl v Fl n Pa /tmp/new_files
Will run the sequence
.Ar iso8859_1
recursively, listing any changes, without changing anything, on the
files of
.Pa /tmp/new_files .
.It Nm Fl f Ar my_detoxrc Fl L Fl v
Will list the sequences within
.Ar my_detoxrc ,
showing their filters and options.
.El
.Sh SEE ALSO
.Xr inline-detox 1 ,
.Xr detoxrc 5 ,
.Xr detox.tbl 5 .
.Sh HISTORY
.Nm
was originally designed to clean up files that I had received from
friends which had been created using other operating systems. It's
trivial to create a filename with spaces, parenthesis, brackets, and
ampersands under some operating systems. These have special meaning
within FreeBSD and Linux, and cause problems when you go to access
them. I created
.Nm
to clean up these files.
.Sh AUTHORS
.Nm
was written by
.An "Doug Harple" .
.Sh BUGS
If, after the translation of a filename is finished, a file already
exists with that same name,
.Nm
will not rename the file. This could cause a problem with the
.Cm max_length
filter, if it was imperative that the files be cut down to a certain
length.
.Pp
Long options don't work under Solaris or Darwin.
.Pp
An error in the config file will cause a segfault as it's going to
print the offending word within the config file.

View File

@ -0,0 +1,56 @@
.\"
.\" This file is part of the Detox package.
.\"
.\" Copyright (c) Doug Harple <detox.dharple@gmail.com>
.\"
.\" For the full copyright and license information, please view the LICENSE
.\" file that was distributed with this source code.
.\"
.Dd August 3, 2004
.Dt DETOX.TBL 5
.Os
.Sh NAME
.Nm detox.tbl
.Nd translation table for
.Xr detox 1
.Sh OVERVIEW
detox allows for configuration of how the ISO 8859-1 and UTF-8
(Unicode) filters operate. Through text based translation tables, it
is possible to tune how these character sets are interpreted.
.Sh SYNTAX
The format of the translation tables is simple. There are two levels:
one containing meta data and one containing the actual translations.
.Bl -tag -width 0.25i
.It Cm default Ar _
Default specifies the default translation for a character. An empty
or nonexistent default indicates that any unknown character should
fall through to the next filter. In this manner, it is possible to
chain together multiple translation tables in a sequence.
.It Cm start
Indicates the start of a value list within the translation table.
.It Cm start Ar lang
Indicates the start of a language specific value list within the
translation table.
.It Cm end
Indicates the end of a value list within the translation table.
.It Ar value translation
Value can be specified in decimal (1), hex (0x01) or octal (01). The
same rules that apply to sscanf apply here.
.Pp
Translation can be a string or a quoted string, with either single or
double quotes.
.El
.Sh EXAMPLE
.Bd -literal
default _
start
0x0101 a
0x0102 b
end
.Ed
.Sh SEE ALSO
.Xr detox 1 ,
.Xr detoxrc 5 .
.Sh AUTHORS
detox was written by
.An "Doug Harple" .

214
detox/latest/man/detoxrc.5 Normal file
View File

@ -0,0 +1,214 @@
.\"
.\" This file is part of the Detox package.
.\"
.\" Copyright (c) Doug Harple <detox.dharple@gmail.com>
.\"
.\" For the full copyright and license information, please view the LICENSE
.\" file that was distributed with this source code.
.\"
.Dd August 3, 2004
.Dt DETOXRC 5
.Os
.Sh NAME
.Nm detoxrc
.Nd configuration file for
.Xr detox 1
.Sh OVERVIEW
detox allows for configuration of its sequences through config files.
This document describes how these files work.
.Sh IMPORTANT
When setting up a new set of rules, the
.Cm safe
and
.Cm wipeup
filters must always be run after a translating filter (or series
thereof), such as the
.Cm utf_8
or the
.Cm uncgi
filters. Otherwise, the risk of introducing illegal characters into
the filename is introduced.
.Sh SYNTAX
The format of this configuration file is C-like. It is based loosely
off named's configuration files. Each statement is semicolon
terminated, and modifiers on a particular statement are generally
contained within braces.
.Bl -tag -width 0.25i
.It Cm sequence Qo Ar name Qc Bro Ar ... Brc ;
Defines a sequence of filters to run a filename through. "name"
specifies how the user will refer to the particular sequence during
runtime. Quotes around the sequence name are generally optional, but
should be used if the sequence name does not start with a letter.
.Pp
There is a special sequence, named "default", which is the default
sequence used by detox. This can be overridden through the command
line option
.Fl s
or the environmental variable
.Ev DETOX_SEQUENCE .
.Pp
Sequence names are case sensitive and unique throughout all sequences;
that is, if a system wide file defines
.Ar normal_seq
and a user has a sequence with the same name in their
.Pa .detoxrc ,
the users'
.Ar normal_seq
will take precedence.
.It Cm iso8859_1 Bro Cm filename Qo Ar /path/to/filename Qc ; Brc ;
This translates ISO 8859-1 (aka Latin-1) characters into lower ASCII
equivalents. The output is not necessarily safe, and should also be
run through the
.Cm safe
filter.
.Pp
Under normal circumstances, the filename syntax is not needed. Detox
looks in several locations for a file called
.Pa iso8859_1.tbl ,
which is a set of rules defining how an ISO 8859-1 character should be
translated.
.Pp
In the event this table doesn't exist, you have two options. You can
download or create your own, and tell detox the location of it using
the filename syntax shown above, or you can let detox fall back on its
internal tables. The internal tables translate the same as the stock
translation tables.
.Pp
You can chain together multiple iso8859_1 translations, as long as the
default value of all but the last one is set to nothing. This is
explained in
.Xr detox.tbl 5 .
.Pp
This filter is mutually exclusive with the
.Cm utf_8
filter.
.It Cm utf_8 Bro Cm filename Qo Ar /path/to/filename Qc ; Brc ;
This translates Unicode characters, encoded by the UTF-8 translation
method, into safe equivalents.
.Pp
This operates in a manner similar to
.Cm iso8859_1 ,
except it looks for a translation table called
.Pa unicode.tbl .
.Pp
The default internal translation for Unicode characters only contains
the lower 256 characters of Unicode, which is equivalent to the set of
Basic Latin and Latin-1 characters.
.It Cm uncgi ;
This translates CGI escaped strings into their ASCII equivalents. The
output of this is not necessarily safe, and could contain ISO 8859-1
chars or potentially UTF-8 characters.
.It Cm safe Bro Cm filename Qo Ar /path/to/filename Qc ; Brc ;
This could also be called "safe for UNIX-like operating systems". It
translates characters that are difficult to work with in UNIX
environments into characters that are not.
.Pp
In earlier versions this filter was entirely internal. Starting with
1.2.0, this filter is controlled by a translation table. In the
absence of the translation table, the previous code will be employed
for the translation. Also, prior to 1.2.0, the safe filter removed
leading dashes to prevent the hassle of dealing with a filename in
the format
.Pa -filename .
This functionality is exclusively handled by the
.Cm wipeup
filter now.
.Pp
See the
.Sx SAFE
section for more details on what this filter translates by default.
.It Cm wipeup Bro Cm remove_trailing ; Brc ;
This wipes up any excessive characters. For instance, multiple
underscores or dashes will be converted into a single underscore or
dash. Any series of dash and underscore (i.e. "_-_") will be
converted into a single dash.
.Pp
The remove trailing option removes a dash or underscore followed
immediately by a period.
.Pp
See the
.Sx WIPEUP
section for more details on what this filter translates.
.It Cm max_length Bro Cm length Ar value ; Brc ;
This trims a file down to the length specified (or less). It is
conscious of extensions and attempts to preserve anything following
the last period in a filename.
.Pp
For instance, given a max length of 12, and a filename of
"this_is_my_file.txt", the filter would output "this_is_.txt".
.It Cm lower ;
This translates uppercase characters into lowercase characters.
.It Cm # Comments
Any thing after a # on any line is ignored.
.El
.Sh EXAMPLE
.Bd -literal
sequence default {
uncgi;
iso8859_1 {
filename "iso8859_1.tbl";
};
# utf_8 {
# filename "unicode.tbl";
# };
safe {
filename "safe.tbl";
};
wipeup {
remove_trailing;
};
# max_length {
# length 128;
# };
};
.Ed
.Sh SAFE
The following characters are translated by the stock
.Cm safe
filter. They can be tuned by updating safe.tbl or creating a copy of
safe.tbl and updating your rc file.
.Pp
.Ss Rules that apply anywhere in the filename:
.Bl -column -offset indent ".Sy Removed" ".Sy Original"
.It Sy Safe Ta Sy Original
.It _and_ Ta &
.It _ Ta \fIspace\fR ` \&! @ $ * \e | \&: \&; \&" ' < > \&? /
.It - Ta \&( \&) \&[ \&] { }
.El
.Pp
.Sh WIPEUP
The following characters are translated by the
.Cm wipeup
filter.
.Pp
.Ss Rules that apply anywhere in the filename:
.Bl -column -offset indent ".Sy Wipeup" ".Sy Original"
.It Sy Wipeup Ta Sy Original
.It - Ta -_
.It - Ta _-
.It - Ta --
.It _ Ta __
.El
.Pp
.Ss Rules that apply only at the beginning of a filename:
Any leading dashes are stripped to prevent programs from interpreting
these files as command line options.
.Bl -column -offset indent ".Sy removed" ".Sy Original"
.It Sy Wipeup Ta Sy Original
.It \fIremoved\fR Ta - _ #
.El
.Ss Rules that apply when remove trailing is enabled:
.Bl -column -offset indent ".Sy Wipeup" ".Sy Original"
.It Sy Wipeup Ta Sy Original
.It . Ta .-
.It . Ta -.
.It . Ta ._
.It . Ta _.
.El
.Pp
.Sh SEE ALSO
.Xr detox 1 ,
.Xr detox.tbl 5 .
.Sh AUTHORS
detox was written by
.An "Doug Harple" .

View File

@ -0,0 +1,126 @@
.\"
.\" This file is part of the Detox package.
.\"
.\" Copyright (c) Doug Harple <detox.dharple@gmail.com>
.\"
.\" For the full copyright and license information, please view the LICENSE
.\" file that was distributed with this source code.
.\"
.Dd February 11, 2021
.Dt DETOX 1
.Os
.Sh NAME
.Nm inline-detox
.Nd clean up filenames (stream-based)
.Sh SYNOPSIS
.Nm
.Op Fl hnLrv
.Op Fl s Ar sequence
.Op Fl f Ar configfile
.Ar
.Sh DESCRIPTION
The
.Nm
utility can remove spaces and other such annoyances from streams.
It'll also translate or cleanup Latin-1 (ISO 8859-1) characters encoded
in 8-bit ASCII, Unicode characters encoded in UTF-8, and CGI escaped characters.
Basically it's detox, but does not operate on files.
.Ss Sequences
.Nm
is driven by a configurable series of filters, called a sequence.
Sequences are covered in more detail in
.Xr detoxrc 5
and are discoverable with the
.Fl L
option. Some examples of default sequences are
.Cm iso8859_1
and
.Cm utf_8 .
.Ss Options
The main options:
.Bl -tag -width Fl
.It Fl f Ar configfile
Use
.Ar configfile
instead of the default configuration files for loading translation
sequences. No other config file will be parsed.
.It Fl h -help
Display helpful information.
.It Fl L
List the currently available sequences. When paired with
.Fl v
this option shows what filters are used in each sequence and any
properties applied to the filters.
.It Fl r
Recurse into subdirectories.
.It Fl s Ar sequence
Use
.Ar sequence
instead of default.
.It Fl v
Be verbose about which files are being renamed.
.It Fl V
Show the current version of
.Nm .
.El
.Ss Deprecated Options
Deprecated Options are options that were available in earlier versions
of
.Nm
but have lost their meaning and are being phased out.
.Bl -tag -width Fl
.It Fl -remove-trailing
Removes _ and - after .'s in filenames. This was first provided in
the 0.9 series of
.Nm .
After the introduction of sequences, it lost its meaning, as you could
now determine the properties of wipeup through a particular sequence's
configuration. It presently forces all instances of the wipeup filter
to use remove trailing, regardless of what's actually in the config
files.
.El
.Sh FILES
.Bl -tag -width iso8859_1.tbl -compact
.It Pa detoxrc
The system-wide detoxrc file.
.It Pa ~/.detoxrc
A user's personal detoxrc. Normally it extends the system-wide
detoxrc, unless
.Fl f
has been specified, in which case, it is ignored.
.It Pa iso8859_1.tbl
The default ISO 8859-1 translation table.
.It Pa unicode.tbl
The default Unicode (UTF-8) translation table.
.El
.Sh EXAMPLES
.Bl -tag -width Fl
.It echo "Foo Bar" | Nm Fl s Ar iso8859_1 Fl v
Will run the sequence
.Ar iso8859_1
listing any changes and returning the result to STDOUT.
.El
.Sh SEE ALSO
.Xr detox 1 ,
.Xr detoxrc 5 ,
.Xr detox.tbl 5 .
.Sh HISTORY
detox
was originally designed to clean up files that I had received from
friends which had been created using other operating systems. It's
trivial to create a filename with spaces, parenthesis, brackets, and
ampersands under some operating systems. These have special meaning
within FreeBSD and Linux, and cause problems when you go to access
them. I created
.Nm
to clean up these files.
.Sh AUTHORS
.Nm
was written by
.An "Doug Harple" .
.Sh BUGS
.Pp
Long options don't work under Solaris or Darwin.
.Pp
An error in the config file will cause a segfault as it's going to
print the offending word within the config file.

215
detox/latest/missing Executable file
View File

@ -0,0 +1,215 @@
#! /bin/sh
# Common wrapper for a few potentially missing GNU programs.
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# 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, see <https://www.gnu.org/licenses/>.
# 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.
if test $# -eq 0; then
echo 1>&2 "Try '$0 --help' for more information"
exit 1
fi
case $1 in
--is-lightweight)
# Used by our autoconf macros to check whether the available missing
# script is modern enough.
exit 0
;;
--run)
# Back-compat with the calling convention used by older automake.
shift
;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
to PROGRAM being missing or too old.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
Supported PROGRAM values:
aclocal autoconf autoheader autom4te automake makeinfo
bison yacc flex lex help2man
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
'g' are ignored when checking the name.
Send bug reports to <bug-automake@gnu.org>."
exit $?
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing $scriptversion (GNU Automake)"
exit $?
;;
-*)
echo 1>&2 "$0: unknown '$1' option"
echo 1>&2 "Try '$0 --help' for more information"
exit 1
;;
esac
# Run the given program, remember its exit status.
"$@"; st=$?
# If it succeeded, we are done.
test $st -eq 0 && exit 0
# Also exit now if we it failed (or wasn't found), and '--version' was
# passed; such an option is passed most likely to detect whether the
# program is present and works.
case $2 in --version|--help) exit $st;; esac
# Exit code 63 means version mismatch. This often happens when the user
# tries to use an ancient version of a tool on a file that requires a
# minimum version.
if test $st -eq 63; then
msg="probably too old"
elif test $st -eq 127; then
# Program was missing.
msg="missing on your system"
else
# Program was found and executed, but failed. Give up.
exit $st
fi
perl_URL=https://www.perl.org/
flex_URL=https://github.com/westes/flex
gnu_software_URL=https://www.gnu.org/software
program_details ()
{
case $1 in
aclocal|automake)
echo "The '$1' program is part of the GNU Automake package:"
echo "<$gnu_software_URL/automake>"
echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
echo "<$gnu_software_URL/autoconf>"
echo "<$gnu_software_URL/m4/>"
echo "<$perl_URL>"
;;
autoconf|autom4te|autoheader)
echo "The '$1' program is part of the GNU Autoconf package:"
echo "<$gnu_software_URL/autoconf/>"
echo "It also requires GNU m4 and Perl in order to run:"
echo "<$gnu_software_URL/m4/>"
echo "<$perl_URL>"
;;
esac
}
give_advice ()
{
# Normalize program name to check for.
normalized_program=`echo "$1" | sed '
s/^gnu-//; t
s/^gnu//; t
s/^g//; t'`
printf '%s\n' "'$1' is $msg."
configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
case $normalized_program in
autoconf*)
echo "You should only need it if you modified 'configure.ac',"
echo "or m4 files included by it."
program_details 'autoconf'
;;
autoheader*)
echo "You should only need it if you modified 'acconfig.h' or"
echo "$configure_deps."
program_details 'autoheader'
;;
automake*)
echo "You should only need it if you modified 'Makefile.am' or"
echo "$configure_deps."
program_details 'automake'
;;
aclocal*)
echo "You should only need it if you modified 'acinclude.m4' or"
echo "$configure_deps."
program_details 'aclocal'
;;
autom4te*)
echo "You might have modified some maintainer files that require"
echo "the 'autom4te' program to be rebuilt."
program_details 'autom4te'
;;
bison*|yacc*)
echo "You should only need it if you modified a '.y' file."
echo "You may want to install the GNU Bison package:"
echo "<$gnu_software_URL/bison/>"
;;
lex*|flex*)
echo "You should only need it if you modified a '.l' file."
echo "You may want to install the Fast Lexical Analyzer package:"
echo "<$flex_URL>"
;;
help2man*)
echo "You should only need it if you modified a dependency" \
"of a man page."
echo "You may want to install the GNU Help2man package:"
echo "<$gnu_software_URL/help2man/>"
;;
makeinfo*)
echo "You should only need it if you modified a '.texi' file, or"
echo "any other file indirectly affecting the aspect of the manual."
echo "You might want to install the Texinfo package:"
echo "<$gnu_software_URL/texinfo/>"
echo "The spurious makeinfo call might also be the consequence of"
echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
echo "want to install GNU make:"
echo "<$gnu_software_URL/make/>"
;;
*)
echo "You might have modified some files without having the proper"
echo "tools for further handling them. Check the 'README' file, it"
echo "often tells you about the needed prerequisites for installing"
echo "this package. You may also peek at any GNU archive site, in"
echo "case some other package contains this missing '$1' program."
;;
esac
}
give_advice "$1" | sed -e '1s/^/WARNING: /' \
-e '2,$s/^/ /' >&2
# Propagate the correct exit status (expected to be 127 for a program
# not found, 63 for a program that failed due to version mismatch).
exit $st
# Local variables:
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:

View File

@ -0,0 +1,147 @@
clean_string.o: clean_string.c /usr/include/stdc-predef.h config.h \
/usr/include/stdio.h \
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
/usr/include/features.h /usr/include/features-time64.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/bits/timesize.h \
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/long-double.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/time64.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/floatn.h \
/usr/include/x86_64-linux-gnu/bits/floatn-common.h \
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
/usr/include/x86_64-linux-gnu/sys/types.h \
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
/usr/include/x86_64-linux-gnu/bits/types/time_t.h \
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/endianness.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/bits/select-decl.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
/usr/include/strings.h \
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
/usr/include/x86_64-linux-gnu/bits/string_fortified.h \
/usr/include/ctype.h /usr/include/errno.h \
/usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/x86_64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
clean_string.h iso8859_1.h unicode.h parse_table.h table.h
/usr/include/stdc-predef.h:
config.h:
/usr/include/stdio.h:
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
/usr/include/features.h:
/usr/include/features-time64.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/bits/timesize.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/long-double.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/time64.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/floatn.h:
/usr/include/x86_64-linux-gnu/bits/floatn-common.h:
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/endianness.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/bits/select-decl.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h:
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h:
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/string.h:
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
/usr/include/strings.h:
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
/usr/include/ctype.h:
/usr/include/errno.h:
/usr/include/x86_64-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/x86_64-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
clean_string.h:
iso8859_1.h:
unicode.h:
parse_table.h:
table.h:

View File

@ -0,0 +1,134 @@
config_file_dump.o: config_file_dump.c /usr/include/stdc-predef.h \
config.h /usr/include/stdio.h \
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
/usr/include/features.h /usr/include/features-time64.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/bits/timesize.h \
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/long-double.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/time64.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/floatn.h \
/usr/include/x86_64-linux-gnu/bits/floatn-common.h \
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
/usr/include/x86_64-linux-gnu/sys/types.h \
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
/usr/include/x86_64-linux-gnu/bits/types/time_t.h \
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/endianness.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/bits/select-decl.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
/usr/include/strings.h \
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
/usr/include/x86_64-linux-gnu/bits/string_fortified.h detox.h \
config_file_dump.h clean_string.h
/usr/include/stdc-predef.h:
config.h:
/usr/include/stdio.h:
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
/usr/include/features.h:
/usr/include/features-time64.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/bits/timesize.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/long-double.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/time64.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/floatn.h:
/usr/include/x86_64-linux-gnu/bits/floatn-common.h:
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/endianness.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/bits/select-decl.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h:
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h:
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/string.h:
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
/usr/include/strings.h:
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
detox.h:
config_file_dump.h:
clean_string.h:

View File

@ -0,0 +1,166 @@
config_file_lex.o: config_file_lex.c /usr/include/stdc-predef.h \
/usr/include/stdio.h \
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
/usr/include/features.h /usr/include/features-time64.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/bits/timesize.h \
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/long-double.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/time64.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/floatn.h \
/usr/include/x86_64-linux-gnu/bits/floatn-common.h \
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
/usr/include/strings.h \
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
/usr/include/x86_64-linux-gnu/bits/string_fortified.h \
/usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
/usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
/usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
/usr/include/x86_64-linux-gnu/sys/types.h \
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
/usr/include/x86_64-linux-gnu/bits/types/time_t.h \
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/endianness.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/bits/select-decl.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/inttypes.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h /usr/include/stdint.h \
/usr/include/x86_64-linux-gnu/bits/wchar.h \
/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h config.h \
config_file_yacc.h /usr/include/unistd.h \
/usr/include/x86_64-linux-gnu/bits/posix_opt.h \
/usr/include/x86_64-linux-gnu/bits/environments.h \
/usr/include/x86_64-linux-gnu/bits/confname.h \
/usr/include/x86_64-linux-gnu/bits/getopt_posix.h \
/usr/include/x86_64-linux-gnu/bits/getopt_core.h \
/usr/include/x86_64-linux-gnu/bits/unistd.h \
/usr/include/x86_64-linux-gnu/bits/unistd-decl.h \
/usr/include/x86_64-linux-gnu/bits/unistd_ext.h
/usr/include/stdc-predef.h:
/usr/include/stdio.h:
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
/usr/include/features.h:
/usr/include/features-time64.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/bits/timesize.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/long-double.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/time64.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/floatn.h:
/usr/include/x86_64-linux-gnu/bits/floatn-common.h:
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/string.h:
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
/usr/include/strings.h:
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
/usr/include/errno.h:
/usr/include/x86_64-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/x86_64-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/endianness.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/bits/select-decl.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h:
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h:
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/inttypes.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h:
/usr/include/stdint.h:
/usr/include/x86_64-linux-gnu/bits/wchar.h:
/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
config.h:
config_file_yacc.h:
/usr/include/unistd.h:
/usr/include/x86_64-linux-gnu/bits/posix_opt.h:
/usr/include/x86_64-linux-gnu/bits/environments.h:
/usr/include/x86_64-linux-gnu/bits/confname.h:
/usr/include/x86_64-linux-gnu/bits/getopt_posix.h:
/usr/include/x86_64-linux-gnu/bits/getopt_core.h:
/usr/include/x86_64-linux-gnu/bits/unistd.h:
/usr/include/x86_64-linux-gnu/bits/unistd-decl.h:
/usr/include/x86_64-linux-gnu/bits/unistd_ext.h:

View File

@ -0,0 +1,143 @@
config_file_spoof.o: config_file_spoof.c /usr/include/stdc-predef.h \
config.h /usr/include/stdio.h \
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
/usr/include/features.h /usr/include/features-time64.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/bits/timesize.h \
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/long-double.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/time64.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/floatn.h \
/usr/include/x86_64-linux-gnu/bits/floatn-common.h \
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
/usr/include/x86_64-linux-gnu/sys/types.h \
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
/usr/include/x86_64-linux-gnu/bits/types/time_t.h \
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/endianness.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/bits/select-decl.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
/usr/include/strings.h \
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
/usr/include/x86_64-linux-gnu/bits/string_fortified.h \
/usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
/usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
detox.h config_file_spoof.h clean_string.h
/usr/include/stdc-predef.h:
config.h:
/usr/include/stdio.h:
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
/usr/include/features.h:
/usr/include/features-time64.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/bits/timesize.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/long-double.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/time64.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/floatn.h:
/usr/include/x86_64-linux-gnu/bits/floatn-common.h:
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/endianness.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/bits/select-decl.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h:
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h:
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/string.h:
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
/usr/include/strings.h:
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
/usr/include/errno.h:
/usr/include/x86_64-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/x86_64-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
detox.h:
config_file_spoof.h:
clean_string.h:

View File

@ -0,0 +1,134 @@
config_file_yacc.o: config_file_yacc.c /usr/include/stdc-predef.h \
config.h /usr/include/stdio.h \
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
/usr/include/features.h /usr/include/features-time64.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/bits/timesize.h \
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/long-double.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/time64.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/floatn.h \
/usr/include/x86_64-linux-gnu/bits/floatn-common.h \
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
/usr/include/x86_64-linux-gnu/sys/types.h \
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
/usr/include/x86_64-linux-gnu/bits/types/time_t.h \
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/endianness.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/bits/select-decl.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
/usr/include/strings.h \
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
/usr/include/x86_64-linux-gnu/bits/string_fortified.h detox.h \
clean_string.h config_file.h
/usr/include/stdc-predef.h:
config.h:
/usr/include/stdio.h:
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
/usr/include/features.h:
/usr/include/features-time64.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/bits/timesize.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/long-double.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/time64.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/floatn.h:
/usr/include/x86_64-linux-gnu/bits/floatn-common.h:
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/endianness.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/bits/select-decl.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h:
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h:
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/string.h:
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
/usr/include/strings.h:
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
detox.h:
clean_string.h:
config_file.h:

View File

@ -0,0 +1,172 @@
detox.o: detox.c /usr/include/stdc-predef.h config.h \
/usr/include/x86_64-linux-gnu/sys/types.h /usr/include/features.h \
/usr/include/features-time64.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/bits/timesize.h \
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/long-double.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/time64.h \
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
/usr/include/x86_64-linux-gnu/bits/types/time_t.h \
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/endianness.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/bits/select-decl.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \
/usr/include/x86_64-linux-gnu/sys/stat.h \
/usr/include/x86_64-linux-gnu/bits/stat.h \
/usr/include/x86_64-linux-gnu/bits/struct_stat.h /usr/include/stdio.h \
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/floatn.h \
/usr/include/x86_64-linux-gnu/bits/floatn-common.h \
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
/usr/include/strings.h \
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
/usr/include/x86_64-linux-gnu/bits/string_fortified.h \
/usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
/usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
/usr/include/unistd.h /usr/include/x86_64-linux-gnu/bits/posix_opt.h \
/usr/include/x86_64-linux-gnu/bits/environments.h \
/usr/include/x86_64-linux-gnu/bits/confname.h \
/usr/include/x86_64-linux-gnu/bits/getopt_posix.h \
/usr/include/x86_64-linux-gnu/bits/getopt_core.h \
/usr/include/x86_64-linux-gnu/bits/unistd.h \
/usr/include/x86_64-linux-gnu/bits/unistd-decl.h \
/usr/include/x86_64-linux-gnu/bits/unistd_ext.h detox.h clean_string.h \
file.h config_file.h config_file_spoof.h config_file_dump.h \
parse_table.h table.h parse_options.h
/usr/include/stdc-predef.h:
config.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/features.h:
/usr/include/features-time64.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/bits/timesize.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/long-double.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/time64.h:
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h:
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/endianness.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/bits/select-decl.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h:
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h:
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h:
/usr/include/x86_64-linux-gnu/sys/stat.h:
/usr/include/x86_64-linux-gnu/bits/stat.h:
/usr/include/x86_64-linux-gnu/bits/struct_stat.h:
/usr/include/stdio.h:
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/floatn.h:
/usr/include/x86_64-linux-gnu/bits/floatn-common.h:
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/string.h:
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
/usr/include/strings.h:
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
/usr/include/errno.h:
/usr/include/x86_64-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/x86_64-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/include/unistd.h:
/usr/include/x86_64-linux-gnu/bits/posix_opt.h:
/usr/include/x86_64-linux-gnu/bits/environments.h:
/usr/include/x86_64-linux-gnu/bits/confname.h:
/usr/include/x86_64-linux-gnu/bits/getopt_posix.h:
/usr/include/x86_64-linux-gnu/bits/getopt_core.h:
/usr/include/x86_64-linux-gnu/bits/unistd.h:
/usr/include/x86_64-linux-gnu/bits/unistd-decl.h:
/usr/include/x86_64-linux-gnu/bits/unistd_ext.h:
detox.h:
clean_string.h:
file.h:
config_file.h:
config_file_spoof.h:
config_file_dump.h:
parse_table.h:
table.h:
parse_options.h:

View File

@ -0,0 +1,180 @@
file.o: file.c /usr/include/stdc-predef.h config.h \
/usr/include/x86_64-linux-gnu/sys/stat.h /usr/include/features.h \
/usr/include/features-time64.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/bits/timesize.h \
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/long-double.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/time64.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/endianness.h \
/usr/include/x86_64-linux-gnu/bits/types/time_t.h \
/usr/include/x86_64-linux-gnu/bits/stat.h \
/usr/include/x86_64-linux-gnu/bits/struct_stat.h /usr/include/stdio.h \
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/floatn.h \
/usr/include/x86_64-linux-gnu/bits/floatn-common.h \
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
/usr/include/x86_64-linux-gnu/sys/types.h \
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/bits/select-decl.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/unistd.h \
/usr/include/x86_64-linux-gnu/bits/posix_opt.h \
/usr/include/x86_64-linux-gnu/bits/environments.h \
/usr/include/x86_64-linux-gnu/bits/confname.h \
/usr/include/x86_64-linux-gnu/bits/getopt_posix.h \
/usr/include/x86_64-linux-gnu/bits/getopt_core.h \
/usr/include/x86_64-linux-gnu/bits/unistd.h \
/usr/include/x86_64-linux-gnu/bits/unistd-decl.h \
/usr/include/x86_64-linux-gnu/bits/unistd_ext.h /usr/include/dirent.h \
/usr/include/x86_64-linux-gnu/bits/dirent.h \
/usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
/usr/include/x86_64-linux-gnu/bits/local_lim.h \
/usr/include/linux/limits.h \
/usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \
/usr/include/x86_64-linux-gnu/bits/pthread_stack_min.h \
/usr/include/x86_64-linux-gnu/bits/dirent_ext.h /usr/include/string.h \
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
/usr/include/strings.h \
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
/usr/include/x86_64-linux-gnu/bits/string_fortified.h \
/usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
/usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
clean_string.h file.h detox.h
/usr/include/stdc-predef.h:
config.h:
/usr/include/x86_64-linux-gnu/sys/stat.h:
/usr/include/features.h:
/usr/include/features-time64.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/bits/timesize.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/long-double.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/time64.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/endianness.h:
/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
/usr/include/x86_64-linux-gnu/bits/stat.h:
/usr/include/x86_64-linux-gnu/bits/struct_stat.h:
/usr/include/stdio.h:
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/floatn.h:
/usr/include/x86_64-linux-gnu/bits/floatn-common.h:
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/bits/select-decl.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h:
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h:
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/unistd.h:
/usr/include/x86_64-linux-gnu/bits/posix_opt.h:
/usr/include/x86_64-linux-gnu/bits/environments.h:
/usr/include/x86_64-linux-gnu/bits/confname.h:
/usr/include/x86_64-linux-gnu/bits/getopt_posix.h:
/usr/include/x86_64-linux-gnu/bits/getopt_core.h:
/usr/include/x86_64-linux-gnu/bits/unistd.h:
/usr/include/x86_64-linux-gnu/bits/unistd-decl.h:
/usr/include/x86_64-linux-gnu/bits/unistd_ext.h:
/usr/include/dirent.h:
/usr/include/x86_64-linux-gnu/bits/dirent.h:
/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
/usr/include/x86_64-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h:
/usr/include/x86_64-linux-gnu/bits/pthread_stack_min.h:
/usr/include/x86_64-linux-gnu/bits/dirent_ext.h:
/usr/include/string.h:
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
/usr/include/strings.h:
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
/usr/include/errno.h:
/usr/include/x86_64-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/x86_64-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
clean_string.h:
file.h:
detox.h:

View File

@ -0,0 +1,168 @@
parse_options.o: parse_options.c /usr/include/stdc-predef.h config.h \
/usr/include/x86_64-linux-gnu/sys/stat.h /usr/include/features.h \
/usr/include/features-time64.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/bits/timesize.h \
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/long-double.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/time64.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/endianness.h \
/usr/include/x86_64-linux-gnu/bits/types/time_t.h \
/usr/include/x86_64-linux-gnu/bits/stat.h \
/usr/include/x86_64-linux-gnu/bits/struct_stat.h /usr/include/stdio.h \
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/floatn.h \
/usr/include/x86_64-linux-gnu/bits/floatn-common.h \
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
/usr/include/x86_64-linux-gnu/sys/types.h \
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/bits/select-decl.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
/usr/include/strings.h \
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
/usr/include/x86_64-linux-gnu/bits/string_fortified.h \
/usr/include/unistd.h /usr/include/x86_64-linux-gnu/bits/posix_opt.h \
/usr/include/x86_64-linux-gnu/bits/environments.h \
/usr/include/x86_64-linux-gnu/bits/confname.h \
/usr/include/x86_64-linux-gnu/bits/getopt_posix.h \
/usr/include/x86_64-linux-gnu/bits/getopt_core.h \
/usr/include/x86_64-linux-gnu/bits/unistd.h \
/usr/include/x86_64-linux-gnu/bits/unistd-decl.h \
/usr/include/x86_64-linux-gnu/bits/unistd_ext.h /usr/include/errno.h \
/usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/x86_64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
/usr/include/libgen.h detox.h parse_options.h /usr/include/getopt.h \
/usr/include/x86_64-linux-gnu/bits/getopt_ext.h
/usr/include/stdc-predef.h:
config.h:
/usr/include/x86_64-linux-gnu/sys/stat.h:
/usr/include/features.h:
/usr/include/features-time64.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/bits/timesize.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/long-double.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/time64.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/endianness.h:
/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
/usr/include/x86_64-linux-gnu/bits/stat.h:
/usr/include/x86_64-linux-gnu/bits/struct_stat.h:
/usr/include/stdio.h:
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/floatn.h:
/usr/include/x86_64-linux-gnu/bits/floatn-common.h:
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/bits/select-decl.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h:
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h:
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/string.h:
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
/usr/include/strings.h:
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
/usr/include/unistd.h:
/usr/include/x86_64-linux-gnu/bits/posix_opt.h:
/usr/include/x86_64-linux-gnu/bits/environments.h:
/usr/include/x86_64-linux-gnu/bits/confname.h:
/usr/include/x86_64-linux-gnu/bits/getopt_posix.h:
/usr/include/x86_64-linux-gnu/bits/getopt_core.h:
/usr/include/x86_64-linux-gnu/bits/unistd.h:
/usr/include/x86_64-linux-gnu/bits/unistd-decl.h:
/usr/include/x86_64-linux-gnu/bits/unistd_ext.h:
/usr/include/errno.h:
/usr/include/x86_64-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/x86_64-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/include/libgen.h:
detox.h:
parse_options.h:
/usr/include/getopt.h:
/usr/include/x86_64-linux-gnu/bits/getopt_ext.h:

View File

@ -0,0 +1,151 @@
parse_table.o: parse_table.c /usr/include/stdc-predef.h config.h \
/usr/include/x86_64-linux-gnu/sys/types.h /usr/include/features.h \
/usr/include/features-time64.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/bits/timesize.h \
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/long-double.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/time64.h \
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
/usr/include/x86_64-linux-gnu/bits/types/time_t.h \
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/endianness.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/bits/select-decl.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \
/usr/include/x86_64-linux-gnu/sys/stat.h \
/usr/include/x86_64-linux-gnu/bits/stat.h \
/usr/include/x86_64-linux-gnu/bits/struct_stat.h /usr/include/stdio.h \
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/floatn.h \
/usr/include/x86_64-linux-gnu/bits/floatn-common.h \
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
/usr/include/strings.h \
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
/usr/include/x86_64-linux-gnu/bits/string_fortified.h \
/usr/include/ctype.h /usr/include/errno.h \
/usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/x86_64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
/usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h \
table.h
/usr/include/stdc-predef.h:
config.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/features.h:
/usr/include/features-time64.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/bits/timesize.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/long-double.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/time64.h:
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h:
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/endianness.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/bits/select-decl.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h:
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h:
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h:
/usr/include/x86_64-linux-gnu/sys/stat.h:
/usr/include/x86_64-linux-gnu/bits/stat.h:
/usr/include/x86_64-linux-gnu/bits/struct_stat.h:
/usr/include/stdio.h:
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/floatn.h:
/usr/include/x86_64-linux-gnu/bits/floatn-common.h:
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/string.h:
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
/usr/include/strings.h:
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
/usr/include/ctype.h:
/usr/include/errno.h:
/usr/include/x86_64-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/x86_64-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/include/locale.h:
/usr/include/x86_64-linux-gnu/bits/locale.h:
table.h:

View File

@ -0,0 +1,142 @@
table.o: table.c /usr/include/stdc-predef.h config.h /usr/include/stdio.h \
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
/usr/include/features.h /usr/include/features-time64.h \
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
/usr/include/x86_64-linux-gnu/bits/timesize.h \
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
/usr/include/x86_64-linux-gnu/bits/long-double.h \
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h \
/usr/include/x86_64-linux-gnu/bits/time64.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/floatn.h \
/usr/include/x86_64-linux-gnu/bits/floatn-common.h \
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \
/usr/include/x86_64-linux-gnu/bits/stdio.h \
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
/usr/include/x86_64-linux-gnu/sys/types.h \
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
/usr/include/x86_64-linux-gnu/bits/types/time_t.h \
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/x86_64-linux-gnu/bits/endian.h \
/usr/include/x86_64-linux-gnu/bits/endianness.h \
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
/usr/include/x86_64-linux-gnu/sys/select.h \
/usr/include/x86_64-linux-gnu/bits/select.h \
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/x86_64-linux-gnu/bits/select2.h \
/usr/include/x86_64-linux-gnu/bits/select-decl.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
/usr/include/strings.h \
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
/usr/include/x86_64-linux-gnu/bits/string_fortified.h \
/usr/include/ctype.h /usr/include/errno.h \
/usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/x86_64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
table.h
/usr/include/stdc-predef.h:
config.h:
/usr/include/stdio.h:
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
/usr/include/features.h:
/usr/include/features-time64.h:
/usr/include/x86_64-linux-gnu/bits/wordsize.h:
/usr/include/x86_64-linux-gnu/bits/timesize.h:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:
/usr/include/x86_64-linux-gnu/bits/long-double.h:
/usr/include/x86_64-linux-gnu/gnu/stubs.h:
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h:
/usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h:
/usr/include/x86_64-linux-gnu/bits/types.h:
/usr/include/x86_64-linux-gnu/bits/typesizes.h:
/usr/include/x86_64-linux-gnu/bits/time64.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h:
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h:
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
/usr/include/x86_64-linux-gnu/bits/floatn.h:
/usr/include/x86_64-linux-gnu/bits/floatn-common.h:
/usr/include/x86_64-linux-gnu/bits/stdio2-decl.h:
/usr/include/x86_64-linux-gnu/bits/stdio.h:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:
/usr/include/stdlib.h:
/usr/include/x86_64-linux-gnu/bits/waitflags.h:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
/usr/include/x86_64-linux-gnu/sys/types.h:
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
/usr/include/endian.h:
/usr/include/x86_64-linux-gnu/bits/endian.h:
/usr/include/x86_64-linux-gnu/bits/endianness.h:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
/usr/include/x86_64-linux-gnu/sys/select.h:
/usr/include/x86_64-linux-gnu/bits/select.h:
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
/usr/include/x86_64-linux-gnu/bits/select2.h:
/usr/include/x86_64-linux-gnu/bits/select-decl.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h:
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h:
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h:
/usr/include/alloca.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
/usr/include/x86_64-linux-gnu/bits/stdlib.h:
/usr/include/string.h:
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
/usr/include/strings.h:
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
/usr/include/ctype.h:
/usr/include/errno.h:
/usr/include/x86_64-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/x86_64-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
table.h:

676
detox/latest/src/Makefile Normal file
View File

@ -0,0 +1,676 @@
# Makefile.in generated by automake 1.16.1 from Makefile.am.
# src/Makefile. Generated from Makefile.in by configure.
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/detox
pkgincludedir = $(includedir)/detox
pkglibdir = $(libdir)/detox
pkglibexecdir = $(libexecdir)/detox
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
bin_PROGRAMS = detox$(EXEEXT) inline-detox$(EXEEXT)
subdir = src
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__installdirs = "$(DESTDIR)$(bindir)"
PROGRAMS = $(bin_PROGRAMS)
am_detox_OBJECTS = detox.$(OBJEXT) file.$(OBJEXT) \
clean_string.$(OBJEXT) table.$(OBJEXT) parse_table.$(OBJEXT) \
config_file_yacc.$(OBJEXT) config_file_lex.$(OBJEXT) \
config_file_spoof.$(OBJEXT) config_file_dump.$(OBJEXT) \
parse_options.$(OBJEXT)
detox_OBJECTS = $(am_detox_OBJECTS)
detox_LDADD = $(LDADD)
am__objects_1 = detox.$(OBJEXT) file.$(OBJEXT) clean_string.$(OBJEXT) \
table.$(OBJEXT) parse_table.$(OBJEXT) \
config_file_yacc.$(OBJEXT) config_file_lex.$(OBJEXT) \
config_file_spoof.$(OBJEXT) config_file_dump.$(OBJEXT) \
parse_options.$(OBJEXT)
am_inline_detox_OBJECTS = $(am__objects_1)
inline_detox_OBJECTS = $(am_inline_detox_OBJECTS)
inline_detox_LDADD = $(LDADD)
AM_V_P = $(am__v_P_$(V))
am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__maybe_remake_depfiles = depfiles
am__depfiles_remade = ./$(DEPDIR)/clean_string.Po \
./$(DEPDIR)/config_file_dump.Po ./$(DEPDIR)/config_file_lex.Po \
./$(DEPDIR)/config_file_spoof.Po \
./$(DEPDIR)/config_file_yacc.Po ./$(DEPDIR)/detox.Po \
./$(DEPDIR)/file.Po ./$(DEPDIR)/parse_options.Po \
./$(DEPDIR)/parse_table.Po ./$(DEPDIR)/table.Po
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_$(V))
am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
am__v_CC_0 = @echo " CC " $@;
am__v_CC_1 =
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_$(V))
am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS)
AM_V_LEX = $(am__v_LEX_$(V))
am__v_LEX_ = $(am__v_LEX_$(AM_DEFAULT_VERBOSITY))
am__v_LEX_0 = @echo " LEX " $@;
am__v_LEX_1 =
YLWRAP = $(top_srcdir)/ylwrap
am__yacc_c2h = sed -e s/cc$$/hh/ -e s/cpp$$/hpp/ -e s/cxx$$/hxx/ \
-e s/c++$$/h++/ -e s/c$$/h/
YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS)
AM_V_YACC = $(am__v_YACC_$(V))
am__v_YACC_ = $(am__v_YACC_$(AM_DEFAULT_VERBOSITY))
am__v_YACC_0 = @echo " YACC " $@;
am__v_YACC_1 =
SOURCES = $(detox_SOURCES) $(inline_detox_SOURCES)
DIST_SOURCES = $(detox_SOURCES) $(inline_detox_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
$(LISP)config.h.in
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/depcomp $(top_srcdir)/ylwrap config_file_lex.c \
config_file_yacc.c config_file_yacc.h
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = ${SHELL} /home/tcsenpai/Downloads/detox-1.4.5/missing aclocal-1.16
AMTAR = $${TAR-tar}
AM_DEFAULT_VERBOSITY = 1
AUTOCONF = ${SHELL} /home/tcsenpai/Downloads/detox-1.4.5/missing autoconf
AUTOHEADER = ${SHELL} /home/tcsenpai/Downloads/detox-1.4.5/missing autoheader
AUTOMAKE = ${SHELL} /home/tcsenpai/Downloads/detox-1.4.5/missing automake-1.16
AWK = mawk
CC = gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPP = gcc -E
CPPFLAGS =
CYGPATH_W = echo
DEFS = -DHAVE_CONFIG_H
DEPDIR = .deps
ECHO_C =
ECHO_N = -n
ECHO_T =
EGREP = /usr/bin/grep -E
EXEEXT =
GREP = /usr/bin/grep
INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
LDFLAGS =
LEX = flex
LEXLIB = -lfl
LEX_OUTPUT_ROOT = lex.yy
LIBOBJS =
LIBS =
LTLIBOBJS =
MAKEINFO = ${SHELL} /home/tcsenpai/Downloads/detox-1.4.5/missing makeinfo
MKDIR_P = /usr/bin/mkdir -p
OBJEXT = o
PACKAGE = detox
PACKAGE_BUGREPORT = detox.dharple at gmail.com
PACKAGE_NAME = detox
PACKAGE_STRING = detox 1.4.5
PACKAGE_TARNAME = detox
PACKAGE_URL = https://github.com/dharple/detox
PACKAGE_VERSION = 1.4.5
PATH_SEPARATOR = :
SET_MAKE =
SHELL = /bin/bash
STRIP =
VERSION = 1.4.5
YACC = bison -y
YFLAGS =
abs_builddir = /home/tcsenpai/Downloads/detox-1.4.5/src
abs_srcdir = /home/tcsenpai/Downloads/detox-1.4.5/src
abs_top_builddir = /home/tcsenpai/Downloads/detox-1.4.5
abs_top_srcdir = /home/tcsenpai/Downloads/detox-1.4.5
ac_ct_CC = gcc
am__include = include
am__leading_dot = .
am__quote =
am__tar = $${TAR-tar} chof - "$$tardir"
am__untar = $${TAR-tar} xf -
bindir = ${exec_prefix}/bin
build_alias =
builddir = .
datadir = ${datarootdir}
datarootdir = ${prefix}/share
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
dvidir = ${docdir}
exec_prefix = ${prefix}
host_alias =
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
install_sh = ${SHELL} /home/tcsenpai/Downloads/detox-1.4.5/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
mandir = ${datarootdir}/man
mkdir_p = $(MKDIR_P)
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /usr/local
program_transform_name = s,x,x,
psdir = ${docdir}
runstatedir = ${localstatedir}/run
sbindir = ${exec_prefix}/sbin
sharedstatedir = ${prefix}/com
srcdir = .
sysconfdir = ${prefix}/etc
target_alias =
top_build_prefix = ../
top_builddir = ..
top_srcdir = ..
BUILT_SOURCES = config_file.h
AM_YFLAGS = -d
AM_CPPFLAGS = -DDATADIR=\"$(datadir)\" -DSYSCONFDIR=\"$(sysconfdir)\"
detox_SOURCES = detox.c file.c clean_string.c table.c parse_table.c config_file_yacc.y config_file_lex.l config_file_spoof.c config_file_dump.c parse_options.c
inline_detox_SOURCES = $(detox_SOURCES)
EXTRA_DIST = *.h
all: $(BUILT_SOURCES) config.h
$(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
.SUFFIXES: .c .l .o .obj .y
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign src/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
config.h: stamp-h1
@test -f $@ || rm -f stamp-h1
@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status src/config.h
$(srcdir)/config.h.in: $(am__configure_deps)
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
rm -f stamp-h1
touch $@
distclean-hdr:
-rm -f config.h stamp-h1
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
$(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p \
; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
sed -e 'p;s,.*/,,;n;h' \
-e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
if ($$2 == $$4) files[d] = files[d] " " $$1; \
else { print "f", $$3 "/" $$4, $$1; } } \
END { for (d in files) print "f", d, files[d] }' | \
while read type dir files; do \
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
test -z "$$files" || { \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
} \
; done
uninstall-binPROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-e 's/$$/$(EXEEXT)/' \
`; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
config_file_yacc.h: config_file_yacc.c
@if test ! -f $@; then rm -f config_file_yacc.c; else :; fi
@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) config_file_yacc.c; else :; fi
detox$(EXEEXT): $(detox_OBJECTS) $(detox_DEPENDENCIES) $(EXTRA_detox_DEPENDENCIES)
@rm -f detox$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(detox_OBJECTS) $(detox_LDADD) $(LIBS)
inline-detox$(EXEEXT): $(inline_detox_OBJECTS) $(inline_detox_DEPENDENCIES) $(EXTRA_inline_detox_DEPENDENCIES)
@rm -f inline-detox$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(inline_detox_OBJECTS) $(inline_detox_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
include ./$(DEPDIR)/clean_string.Po # am--include-marker
include ./$(DEPDIR)/config_file_dump.Po # am--include-marker
include ./$(DEPDIR)/config_file_lex.Po # am--include-marker
include ./$(DEPDIR)/config_file_spoof.Po # am--include-marker
include ./$(DEPDIR)/config_file_yacc.Po # am--include-marker
include ./$(DEPDIR)/detox.Po # am--include-marker
include ./$(DEPDIR)/file.Po # am--include-marker
include ./$(DEPDIR)/parse_options.Po # am--include-marker
include ./$(DEPDIR)/parse_table.Po # am--include-marker
include ./$(DEPDIR)/table.Po # am--include-marker
$(am__depfiles_remade):
@$(MKDIR_P) $(@D)
@echo '# dummy' >$@-t && $(am__mv) $@-t $@
am--depfiles: $(am__depfiles_remade)
.c.o:
$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
# $(AM_V_CC)source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(AM_V_CC_no)$(COMPILE) -c -o $@ $<
.c.obj:
$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
# $(AM_V_CC)source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.l.c:
$(AM_V_LEX)$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE)
.y.c:
$(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h `echo $@ | $(am__yacc_c2h)` y.output $*.output -- $(YACCCOMPILE)
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: ctags-am
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) check-am
all-am: Makefile $(PROGRAMS) config.h
installdirs:
for dir in "$(DESTDIR)$(bindir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-rm -f config_file_lex.c
-rm -f config_file_yacc.c
-rm -f config_file_yacc.h
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
clean: clean-am
clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
distclean: distclean-am
-rm -f ./$(DEPDIR)/clean_string.Po
-rm -f ./$(DEPDIR)/config_file_dump.Po
-rm -f ./$(DEPDIR)/config_file_lex.Po
-rm -f ./$(DEPDIR)/config_file_spoof.Po
-rm -f ./$(DEPDIR)/config_file_yacc.Po
-rm -f ./$(DEPDIR)/detox.Po
-rm -f ./$(DEPDIR)/file.Po
-rm -f ./$(DEPDIR)/parse_options.Po
-rm -f ./$(DEPDIR)/parse_table.Po
-rm -f ./$(DEPDIR)/table.Po
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-hdr distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am:
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am: install-binPROGRAMS
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f ./$(DEPDIR)/clean_string.Po
-rm -f ./$(DEPDIR)/config_file_dump.Po
-rm -f ./$(DEPDIR)/config_file_lex.Po
-rm -f ./$(DEPDIR)/config_file_spoof.Po
-rm -f ./$(DEPDIR)/config_file_yacc.Po
-rm -f ./$(DEPDIR)/detox.Po
-rm -f ./$(DEPDIR)/file.Po
-rm -f ./$(DEPDIR)/parse_options.Po
-rm -f ./$(DEPDIR)/parse_table.Po
-rm -f ./$(DEPDIR)/table.Po
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-binPROGRAMS
.MAKE: all check install install-am install-strip
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \
distclean distclean-compile distclean-generic distclean-hdr \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-binPROGRAMS install-data \
install-data-am install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-man install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
uninstall-am uninstall-binPROGRAMS
.PRECIOUS: Makefile
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,10 @@
BUILT_SOURCES = config_file.h
AM_YFLAGS = -d
AM_CPPFLAGS = -DDATADIR=\"$(datadir)\" -DSYSCONFDIR=\"$(sysconfdir)\"
bin_PROGRAMS = detox inline-detox
detox_SOURCES = detox.c file.c clean_string.c table.c parse_table.c config_file_yacc.y config_file_lex.l config_file_spoof.c config_file_dump.c parse_options.c
inline_detox_SOURCES = $(detox_SOURCES)
EXTRA_DIST = *.h

View File

@ -0,0 +1,676 @@
# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
bin_PROGRAMS = detox$(EXEEXT) inline-detox$(EXEEXT)
subdir = src
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__installdirs = "$(DESTDIR)$(bindir)"
PROGRAMS = $(bin_PROGRAMS)
am_detox_OBJECTS = detox.$(OBJEXT) file.$(OBJEXT) \
clean_string.$(OBJEXT) table.$(OBJEXT) parse_table.$(OBJEXT) \
config_file_yacc.$(OBJEXT) config_file_lex.$(OBJEXT) \
config_file_spoof.$(OBJEXT) config_file_dump.$(OBJEXT) \
parse_options.$(OBJEXT)
detox_OBJECTS = $(am_detox_OBJECTS)
detox_LDADD = $(LDADD)
am__objects_1 = detox.$(OBJEXT) file.$(OBJEXT) clean_string.$(OBJEXT) \
table.$(OBJEXT) parse_table.$(OBJEXT) \
config_file_yacc.$(OBJEXT) config_file_lex.$(OBJEXT) \
config_file_spoof.$(OBJEXT) config_file_dump.$(OBJEXT) \
parse_options.$(OBJEXT)
am_inline_detox_OBJECTS = $(am__objects_1)
inline_detox_OBJECTS = $(am_inline_detox_OBJECTS)
inline_detox_LDADD = $(LDADD)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__maybe_remake_depfiles = depfiles
am__depfiles_remade = ./$(DEPDIR)/clean_string.Po \
./$(DEPDIR)/config_file_dump.Po ./$(DEPDIR)/config_file_lex.Po \
./$(DEPDIR)/config_file_spoof.Po \
./$(DEPDIR)/config_file_yacc.Po ./$(DEPDIR)/detox.Po \
./$(DEPDIR)/file.Po ./$(DEPDIR)/parse_options.Po \
./$(DEPDIR)/parse_table.Po ./$(DEPDIR)/table.Po
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_@AM_V@)
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
am__v_CC_0 = @echo " CC " $@;
am__v_CC_1 =
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS)
AM_V_LEX = $(am__v_LEX_@AM_V@)
am__v_LEX_ = $(am__v_LEX_@AM_DEFAULT_V@)
am__v_LEX_0 = @echo " LEX " $@;
am__v_LEX_1 =
YLWRAP = $(top_srcdir)/ylwrap
am__yacc_c2h = sed -e s/cc$$/hh/ -e s/cpp$$/hpp/ -e s/cxx$$/hxx/ \
-e s/c++$$/h++/ -e s/c$$/h/
YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS)
AM_V_YACC = $(am__v_YACC_@AM_V@)
am__v_YACC_ = $(am__v_YACC_@AM_DEFAULT_V@)
am__v_YACC_0 = @echo " YACC " $@;
am__v_YACC_1 =
SOURCES = $(detox_SOURCES) $(inline_detox_SOURCES)
DIST_SOURCES = $(detox_SOURCES) $(inline_detox_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
$(LISP)config.h.in
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/depcomp $(top_srcdir)/ylwrap config_file_lex.c \
config_file_yacc.c config_file_yacc.h
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LEX = @LEX@
LEXLIB = @LEXLIB@
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
YACC = @YACC@
YFLAGS = @YFLAGS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build_alias = @build_alias@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
BUILT_SOURCES = config_file.h
AM_YFLAGS = -d
AM_CPPFLAGS = -DDATADIR=\"$(datadir)\" -DSYSCONFDIR=\"$(sysconfdir)\"
detox_SOURCES = detox.c file.c clean_string.c table.c parse_table.c config_file_yacc.y config_file_lex.l config_file_spoof.c config_file_dump.c parse_options.c
inline_detox_SOURCES = $(detox_SOURCES)
EXTRA_DIST = *.h
all: $(BUILT_SOURCES) config.h
$(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
.SUFFIXES: .c .l .o .obj .y
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign src/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
config.h: stamp-h1
@test -f $@ || rm -f stamp-h1
@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status src/config.h
$(srcdir)/config.h.in: $(am__configure_deps)
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
rm -f stamp-h1
touch $@
distclean-hdr:
-rm -f config.h stamp-h1
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
$(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p \
; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
sed -e 'p;s,.*/,,;n;h' \
-e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
if ($$2 == $$4) files[d] = files[d] " " $$1; \
else { print "f", $$3 "/" $$4, $$1; } } \
END { for (d in files) print "f", d, files[d] }' | \
while read type dir files; do \
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
test -z "$$files" || { \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
} \
; done
uninstall-binPROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-e 's/$$/$(EXEEXT)/' \
`; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
config_file_yacc.h: config_file_yacc.c
@if test ! -f $@; then rm -f config_file_yacc.c; else :; fi
@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) config_file_yacc.c; else :; fi
detox$(EXEEXT): $(detox_OBJECTS) $(detox_DEPENDENCIES) $(EXTRA_detox_DEPENDENCIES)
@rm -f detox$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(detox_OBJECTS) $(detox_LDADD) $(LIBS)
inline-detox$(EXEEXT): $(inline_detox_OBJECTS) $(inline_detox_DEPENDENCIES) $(EXTRA_inline_detox_DEPENDENCIES)
@rm -f inline-detox$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(inline_detox_OBJECTS) $(inline_detox_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clean_string.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config_file_dump.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config_file_lex.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config_file_spoof.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config_file_yacc.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/detox.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse_options.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse_table.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/table.Po@am__quote@ # am--include-marker
$(am__depfiles_remade):
@$(MKDIR_P) $(@D)
@echo '# dummy' >$@-t && $(am__mv) $@-t $@
am--depfiles: $(am__depfiles_remade)
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.l.c:
$(AM_V_LEX)$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE)
.y.c:
$(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h `echo $@ | $(am__yacc_c2h)` y.output $*.output -- $(YACCCOMPILE)
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: ctags-am
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) check-am
all-am: Makefile $(PROGRAMS) config.h
installdirs:
for dir in "$(DESTDIR)$(bindir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-rm -f config_file_lex.c
-rm -f config_file_yacc.c
-rm -f config_file_yacc.h
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
clean: clean-am
clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
distclean: distclean-am
-rm -f ./$(DEPDIR)/clean_string.Po
-rm -f ./$(DEPDIR)/config_file_dump.Po
-rm -f ./$(DEPDIR)/config_file_lex.Po
-rm -f ./$(DEPDIR)/config_file_spoof.Po
-rm -f ./$(DEPDIR)/config_file_yacc.Po
-rm -f ./$(DEPDIR)/detox.Po
-rm -f ./$(DEPDIR)/file.Po
-rm -f ./$(DEPDIR)/parse_options.Po
-rm -f ./$(DEPDIR)/parse_table.Po
-rm -f ./$(DEPDIR)/table.Po
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-hdr distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am:
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am: install-binPROGRAMS
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f ./$(DEPDIR)/clean_string.Po
-rm -f ./$(DEPDIR)/config_file_dump.Po
-rm -f ./$(DEPDIR)/config_file_lex.Po
-rm -f ./$(DEPDIR)/config_file_spoof.Po
-rm -f ./$(DEPDIR)/config_file_yacc.Po
-rm -f ./$(DEPDIR)/detox.Po
-rm -f ./$(DEPDIR)/file.Po
-rm -f ./$(DEPDIR)/parse_options.Po
-rm -f ./$(DEPDIR)/parse_table.Po
-rm -f ./$(DEPDIR)/table.Po
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-binPROGRAMS
.MAKE: all check install install-am install-strip
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \
distclean distclean-compile distclean-generic distclean-hdr \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-binPROGRAMS install-data \
install-data-am install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-man install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
uninstall-am uninstall-binPROGRAMS
.PRECIOUS: Makefile
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,773 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include "clean_string.h"
/* translation array for ISO8859.1 characters */
#include "iso8859_1.h"
/* translation array for unicode characters */
#include "unicode.h"
#include "parse_table.h"
#include "table.h"
/*
* Translates ISO8859.1 characters (Latin-1) into lower ASCII characters.
*/
unsigned char *clean_iso8859_1_basic(unsigned char *s, void *opts)
{
unsigned char *output, *input_walk, *output_walk, *replace_walk;
int replace_pos;
if (s == NULL) {
return NULL;
}
output = malloc((strlen(s) * ISO8859_1_MAXLEN) + 1);
if (output == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
return NULL;
}
input_walk = s;
output_walk = output;
while (*input_walk != '\0') {
if (*input_walk >= ISO8859_1_OFFSET) {
replace_pos = *input_walk - ISO8859_1_OFFSET;
replace_walk = (unsigned char *)&iso8859_1_trans[replace_pos];
while (*replace_walk != '\0') {
*output_walk++ = *replace_walk++;
}
input_walk++;
}
else {
*output_walk++ = *input_walk++;
}
}
*output_walk = '\0';
return output;
}
/*
* Translates ISO8859.1 characters (Latin-1) into lower ASCII characters.
*/
unsigned char *clean_iso8859_1(unsigned char *s, void *opts)
{
unsigned char *output, *input_walk, *output_walk, *replace_walk;
struct translation_table *table = NULL;
struct clean_string_options *options = NULL;
if (s == NULL) {
return NULL;
}
if (opts == NULL) {
fprintf(stderr, "this shouldn't happen\n");
exit(EXIT_FAILURE);
}
options = (struct clean_string_options *)opts;
table = options->translation_table;
output = malloc((strlen(s) * table->max_data_length) + 1);
if (output == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
return NULL;
}
input_walk = s;
output_walk = output;
while (*input_walk != '\0') {
if (*input_walk >= ISO8859_1_OFFSET) {
replace_walk = table_get(table, *input_walk);
if (replace_walk == NULL) {
if (table->default_translation == NULL) {
/*
* Null translation == leave it alone
*/
*output_walk++ = *input_walk++;
continue;
}
else {
replace_walk = table->default_translation;
}
}
while (*replace_walk != '\0') {
*output_walk++ = *replace_walk++;
}
input_walk++;
}
else {
*output_walk++ = *input_walk++;
}
}
*output_walk = '\0';
return output;
}
/*
* Cleans up any unsafe characters.
*
* The rules are:
* Leave alone:
* - # ~ % ^ _ , . + =
*
* Translate:
* & into _and_
*
* Replace with _:
* ` ! @ $ * \ | : ; " ' < ? / '\n' '\r' '\t'
*
* Replace with -:
* ( ) [ ] { }
*
*/
unsigned char *clean_safe_basic(unsigned char *s, void *opts)
{
unsigned char *output, *input_walk, *output_walk;
if (s == NULL) {
return NULL;
}
output = malloc((strlen(s) * 5) + 1);
if (output == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
return NULL;
}
input_walk = s;
output_walk = output;
while (*input_walk != '\0') {
if (isalnum(*input_walk)) {
*output_walk++ = *input_walk++;
continue;
}
switch (*input_walk) {
case '-':
case '#':
case '~':
case '%':
case '^':
case '_':
case ',':
case '.':
case '+':
case '=':
*output_walk++ = *input_walk;
break;
case '&':
*output_walk++ = '_';
*output_walk++ = 'a';
*output_walk++ = 'n';
*output_walk++ = 'd';
*output_walk++ = '_';
break;
case ' ':
case '`':
case '!':
case '@':
case '$':
case '*':
case '\\':
case '|':
case ':':
case ';':
case '"':
case '\'':
case '<':
case '>':
case '?':
case '/':
case '\n':
case '\r':
case '\t':
*output_walk++ = '_';
break;
case '(':
case ')':
case '[':
case ']':
case '{':
case '}':
*output_walk++ = '-';
break;
}
input_walk++;
}
*output_walk = '\0';
return output;
}
/*
* Translates unsafe characters
*/
unsigned char *clean_safe(unsigned char *s, void *opts)
{
unsigned char *output, *input_walk, *output_walk, *replace_walk;
struct translation_table *table = NULL;
struct clean_string_options *options = NULL;
if (s == NULL) {
return NULL;
}
if (opts == NULL) {
fprintf(stderr, "this shouldn't happen\n");
exit(EXIT_FAILURE);
}
options = (struct clean_string_options *)opts;
table = options->translation_table;
output = malloc((strlen(s) * table->max_data_length) + 1);
if (output == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
return NULL;
}
input_walk = s;
output_walk = output;
while (*input_walk != '\0') {
replace_walk = table_get(table, *input_walk);
if (replace_walk == NULL) {
if (table->default_translation == NULL) {
/*
* Null translation == leave it alone
*/
*output_walk++ = *input_walk++;
continue;
}
else {
replace_walk = table->default_translation;
}
}
while (*replace_walk != '\0') {
*output_walk++ = *replace_walk++;
}
input_walk++;
}
*output_walk = '\0';
return output;
}
/*
* Cleans up any CGI encoded characters, in the form "%" followed by 2 hex
* digits.
*/
unsigned char *clean_uncgi(unsigned char *s, void *opts)
{
unsigned char *output, *input_walk, *output_walk;
unsigned char conv[3];
if (s == NULL) {
return NULL;
}
output = malloc(strlen(s) + 1);
if (output == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
return NULL;
}
input_walk = s;
output_walk = output;
while (*input_walk != '\0') {
if (input_walk[0] == '%' && isxdigit(input_walk[1]) && isxdigit(input_walk[2])) {
conv[0] = input_walk[1];
conv[1] = input_walk[2];
conv[2] = 0;
*output_walk++ = (unsigned char)strtol(conv, NULL, 16);
input_walk += 3;
}
else {
*output_walk++ = *input_walk++;
}
}
*output_walk = '\0';
return output;
}
/*
* Reduces any series of "_" and "-" to a single character. "-" takes
* precedence.
*
* If "remove_trailing" is set to non-zero, then "." is added to the
* comparison, and takes precedence. This has the effect of reducing "-." or
* "._", etc, to ".".
*
* Strips any "-", "_" or "#" from the beginning of a string.
*
*/
unsigned char *clean_wipeup(unsigned char *s, void *opts)
{
unsigned char *output, *input_walk, *output_walk;
int matched;
int remove_trailing;
if (s == NULL) {
return NULL;
}
remove_trailing = 0;
if (opts != NULL) {
remove_trailing = ((struct clean_string_options *)opts)->remove_trailing;
}
/* remove any -, _, or # at beginning of string */
while (*s == '-' || *s == '_' || *s == '#') {
s++;
}
output = malloc(strlen(s) + 1);
if (output == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
return NULL;
}
input_walk = s;
output_walk = output;
matched = 0;
while (*input_walk != '\0') {
switch (*input_walk) {
case '-':
if (matched) {
if (*output_walk == '_') {
*output_walk = '-';
}
}
else {
*output_walk = '-';
}
matched = 1;
break;
case '_':
if (!matched) {
*output_walk = '_';
}
matched = 1;
break;
case '.':
if (remove_trailing) {
*output_walk = '.';
matched = 1;
break;
} /* else fall through */
default:
if (matched) {
output_walk++;
matched = 0;
}
*output_walk++ = *input_walk;
}
input_walk++;
}
if (matched) {
output_walk++;
}
*output_walk = '\0';
return output;
}
#define UTF_8_ENCODED 0x80
#define UTF_8_ENCODED_4_CHARS 0xf0
#define UTF_8_ENCODED_3_CHARS 0xe0
#define UTF_8_ENCODED_2_CHARS 0xc0
/*
* Translates UTF-8 characters (Unicode Translation Format - 8 Bit) into
* Unicode and then lower ASCII characters.
*/
unsigned char *clean_utf_8_basic(unsigned char *s, void *opts)
{
unsigned char *output, *input_walk, *output_walk, *replace_walk;
int new_value, expected_chars;
if (s == NULL) {
return NULL;
}
output = malloc((strlen(s) * UNICODE_MAXLEN) + 1);
if (output == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
return NULL;
}
input_walk = s;
output_walk = output;
while (*input_walk != '\0') {
if ((*input_walk & UTF_8_ENCODED) == 0) {
*output_walk++ = *input_walk++;
continue;
}
new_value = 0;
expected_chars = 0;
/*
* Needs to be done in descending orders due to the fact that
* the 2 char mask will match on the 4 char mask, but not
* vice versa.
*/
if ((*input_walk & UTF_8_ENCODED_4_CHARS) == UTF_8_ENCODED_4_CHARS) {
/*
* 11110aaa 10bbbbbb 10cccccc 10dddddd
*/
new_value = *input_walk & 0x07;
expected_chars = 3;
}
else if ((*input_walk & UTF_8_ENCODED_3_CHARS) == UTF_8_ENCODED_3_CHARS) {
/*
* 1110aaaa 10bbbbbb 10cccccc
*/
new_value = *input_walk & 0x0f;
expected_chars = 2;
}
else if ((*input_walk & UTF_8_ENCODED_2_CHARS) == UTF_8_ENCODED_2_CHARS) {
/*
* 110aaaaa 10bbbbbb
*/
new_value = *input_walk & 0x1f;
expected_chars = 1;
}
else {
input_walk++;
continue;
}
while (expected_chars > 0) {
new_value <<= 6;
input_walk++;
if (*input_walk == '\0') {
new_value = -1;
break;
}
if ((*input_walk & UTF_8_ENCODED) == 0) {
new_value = -1;
break;
}
new_value += *input_walk & 0x3f;
expected_chars--;
}
if (new_value == -1) {
continue;
}
if (new_value >= UNICODE_COUNT) {
*output_walk++ = '_';
continue;
}
replace_walk = (unsigned char *)&unicode_trans[new_value];
while (*replace_walk != '\0') {
*output_walk++ = *replace_walk++;
}
}
*output_walk = '\0';
return output;
}
/*
* Translates UTF-8 characters (Unicode Translation Format - 8 Bit) into
* Unicode and then runs the translation table.
*/
unsigned char *clean_utf_8(unsigned char *s, void *opts)
{
unsigned char *output, *input_walk, *output_walk, *replace_walk;
int new_value, expected_chars;
struct translation_table *table = NULL;
struct clean_string_options *options = NULL;
int characters_eaten;
if (s == NULL) {
return NULL;
}
if (opts == NULL) {
fprintf(stderr, "this shouldn't happen\n");
exit(EXIT_FAILURE);
}
options = (struct clean_string_options *)opts;
table = options->translation_table;
output = malloc((strlen(s) * table->max_data_length) + 1);
if (output == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
return NULL;
}
input_walk = s;
output_walk = output;
while (*input_walk != '\0') {
new_value = 0;
expected_chars = 0;
characters_eaten = 0;
/*
* Needs to be done in descending orders due to the fact that
* the 2 char mask will match on the 4 char mask, but not
* vice versa.
*/
if ((*input_walk & UTF_8_ENCODED_4_CHARS) == UTF_8_ENCODED_4_CHARS) {
/*
* 11110aaa 10bbbbbb 10cccccc 10dddddd
*/
new_value = *input_walk & 0x07;
expected_chars = 3;
characters_eaten = 4;
}
else if ((*input_walk & UTF_8_ENCODED_3_CHARS) == UTF_8_ENCODED_3_CHARS) {
/*
* 1110aaaa 10bbbbbb 10cccccc
*/
new_value = *input_walk & 0x0f;
expected_chars = 2;
characters_eaten = 3;
}
else if ((*input_walk & UTF_8_ENCODED_2_CHARS) == UTF_8_ENCODED_2_CHARS) {
/*
* 110aaaaa 10bbbbbb
*/
new_value = *input_walk & 0x1f;
expected_chars = 1;
characters_eaten = 2;
}
else if ((*input_walk & UTF_8_ENCODED) == UTF_8_ENCODED) {
fprintf(stderr, "unsupported unicode length\n");
exit(EXIT_FAILURE);
}
else {
new_value = *input_walk;
expected_chars = 0;
characters_eaten = 1;
}
while (expected_chars > 0) {
new_value <<= 6;
input_walk++;
if (*input_walk == '\0') {
new_value = -1;
break;
}
if ((*input_walk & UTF_8_ENCODED) == 0) {
new_value = -1;
break;
}
new_value += *input_walk & 0x3f;
expected_chars--;
}
input_walk++;
if (new_value == -1) {
continue;
}
replace_walk = table_get(table, new_value);
if (replace_walk == NULL) {
replace_walk = table->default_translation;
}
if (replace_walk == NULL) {
/*
* Null translation == leave it alone
*/
input_walk -= characters_eaten;
while (characters_eaten > 0) {
*output_walk++ = *input_walk++;
characters_eaten--;
}
continue;
}
while (*replace_walk != '\0') {
*output_walk++ = *replace_walk++;
}
}
*output_walk = '\0';
return output;
}
/*
* Trims a file down to specified length.
*/
unsigned char *clean_max_length(unsigned char *s, void *opts)
{
unsigned char *output, *input_walk, *output_walk;
size_t max_length;
size_t s_length;
size_t ext_length;
if (s == NULL) {
return NULL;
}
max_length = 256;
if (opts != NULL) {
max_length = ((struct clean_string_options *)opts)->max_length;
}
s_length = strlen(s);
output = malloc(max_length + 1);
if (output == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
return NULL;
}
snprintf(output, max_length + 1, "%s", s);
if (s_length <= max_length) {
return output;
}
input_walk = strrchr(s, '.');
if (input_walk == NULL) {
return output;
}
ext_length = strlen(input_walk);
output_walk = output;
output_walk += max_length - ext_length;
while (*(output_walk - 1) == '.' && output_walk > output) {
output_walk--;
}
snprintf(output_walk, ext_length + 1, "%s", input_walk);
return output;
}
/*
* Converts all characters to lowercase.
*/
unsigned char *clean_lower(unsigned char *s, void *opts)
{
unsigned char *output, *input_walk, *output_walk;
if (s == NULL) {
return NULL;
}
output = malloc(strlen(s) + 1);
if (output == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
return NULL;
}
input_walk = s;
output_walk = output;
while (*input_walk != '\0') {
if (isupper(*input_walk)) {
*output_walk++ = tolower(*input_walk++);
}
else {
*output_walk++ = *input_walk++;
}
}
*output_walk = '\0';
return output;
}

View File

@ -0,0 +1,33 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#ifndef __CLEAN_STRING_H
#define __CLEAN_STRING_H
struct clean_string_options {
char *filename;
int remove_trailing;
size_t max_length;
void *misc;
void *translation_table;
};
extern unsigned char *clean_iso8859_1_basic(unsigned char *s, void *options);
extern unsigned char *clean_iso8859_1(unsigned char *s, void *options);
extern unsigned char *clean_safe_basic(unsigned char *s, void *options);
extern unsigned char *clean_safe(unsigned char *s, void *options);
extern unsigned char *clean_uncgi(unsigned char *s, void *options);
extern unsigned char *clean_wipeup(unsigned char *s, void *options);
extern unsigned char *clean_utf_8_basic(unsigned char *s, void *options);
extern unsigned char *clean_utf_8(unsigned char *s, void *options);
extern unsigned char *clean_max_length(unsigned char *s, void *opts);
extern unsigned char *clean_lower(unsigned char *s, void *opts);
#endif /* __CLEAN_STRING_H */

Binary file not shown.

81
detox/latest/src/config.h Normal file
View File

@ -0,0 +1,81 @@
/* src/config.h. Generated from config.h.in by configure. */
/* src/config.h.in. Generated from configure.ac by autoheader. */
/* Define to 1 if you have the `getopt_long' function. */
#define HAVE_GETOPT_LONG 1
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if `st_blocks' is a member of `struct stat'. */
#define HAVE_STRUCT_STAT_ST_BLOCKS 1
/* Define to 1 if your `struct stat' has `st_blocks'. Deprecated, use
`HAVE_STRUCT_STAT_ST_BLOCKS' instead. */
#define HAVE_ST_BLOCKS 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Name of package */
#define PACKAGE "detox"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "detox.dharple at gmail.com"
/* Define to the full name of this package. */
#define PACKAGE_NAME "detox"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "detox 1.4.5"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "detox"
/* Define to the home page for this package. */
#define PACKAGE_URL "https://github.com/dharple/detox"
/* Define to the version of this package. */
#define PACKAGE_VERSION "1.4.5"
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Version number of package */
#define VERSION "1.4.5"
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
`char[]'. */
#define YYTEXT_POINTER 1
/* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _DARWIN_USE_64_BIT_INODE
# define _DARWIN_USE_64_BIT_INODE 1
#endif
/* Number of bits in a file offset, on hosts where this is settable. */
/* #undef _FILE_OFFSET_BITS */
/* Define for large files, on AIX-style hosts. */
/* #undef _LARGE_FILES */

View File

@ -0,0 +1,80 @@
/* src/config.h.in. Generated from configure.ac by autoheader. */
/* Define to 1 if you have the `getopt_long' function. */
#undef HAVE_GETOPT_LONG
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define to 1 if `st_blocks' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_BLOCKS
/* Define to 1 if your `struct stat' has `st_blocks'. Deprecated, use
`HAVE_STRUCT_STAT_ST_BLOCKS' instead. */
#undef HAVE_ST_BLOCKS
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Name of package */
#undef PACKAGE
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the home page for this package. */
#undef PACKAGE_URL
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Version number of package */
#undef VERSION
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
`char[]'. */
#undef YYTEXT_POINTER
/* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _DARWIN_USE_64_BIT_INODE
# define _DARWIN_USE_64_BIT_INODE 1
#endif
/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS
/* Define for large files, on AIX-style hosts. */
#undef _LARGE_FILES

View File

@ -0,0 +1,19 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#ifndef __CONFIG_FILE_H
#define __CONFIG_FILE_H
#include "detox.h"
extern int config_file_lineno;
extern struct detox_parse_results *parse_config_file(char *filename, struct detox_parse_results *previous_list, struct detox_options *main_options);
#endif /* __CONFIG_FILE_H */

View File

@ -0,0 +1,112 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "detox.h"
#include "config_file_dump.h"
#include "clean_string.h"
void dump_config_file(struct detox_parse_results *parse_results, struct detox_options *main_options)
{
struct detox_sequence_list *list_work = NULL;
struct detox_sequence_entry *work = NULL;
struct detox_ignore_entry *ignore_walk = NULL;
if (!main_options->verbose) {
printf("available sequences:\n");
}
list_work = parse_results->sequences;
while (list_work != NULL) {
if (main_options->verbose) {
printf("sequence name: ");
}
else {
printf("\t");
}
printf("%s%s\n", list_work->name, (main_options->sequence_to_use == list_work->head) ? " (*)" : "");
if (main_options->verbose) {
printf("\tsource file: %s\n", list_work->source_filename);
work = list_work->head;
while (work != NULL) {
if (work->cleaner == &clean_uncgi) {
printf("\tcleaner: uncgi\n");
}
else if (work->cleaner == &clean_safe) {
printf("\tcleaner: safe\n");
if (work->options != NULL) {
struct clean_string_options *opts = work->options;
if (opts->filename != NULL) {
printf("\t\ttranslation table: %s\n", opts->filename);
}
}
}
else if (work->cleaner == &clean_wipeup) {
printf("\tcleaner: wipeup\n");
if (work->options != NULL) {
struct clean_string_options *opts = work->options;
printf("\t\tremove trailing: %s\n", opts->remove_trailing ? "yes" : "no");
}
}
else if (work->cleaner == &clean_iso8859_1) {
printf("\tcleaner: iso8859_1\n");
if (work->options != NULL) {
struct clean_string_options *opts = work->options;
if (opts->filename != NULL) {
printf("\t\ttranslation table: %s\n", opts->filename);
}
}
}
else if (work->cleaner == &clean_utf_8) {
printf("\tcleaner: utf_8\n");
if (work->options != NULL) {
struct clean_string_options *opts = work->options;
if (opts->filename != NULL) {
printf("\t\ttranslation table: %s\n", opts->filename);
}
}
}
else if (work->cleaner == &clean_max_length) {
printf("\tcleaner: max length\n");
if (work->options != NULL) {
struct clean_string_options *opts = work->options;
printf("\t\tlength: %d\n", (unsigned int)opts->max_length);
}
}
if (work->cleaner == &clean_lower) {
printf("\tcleaner: lower\n");
}
work = work->next;
}
}
list_work = list_work->next;
}
if (parse_results->files_to_ignore) {
printf("\nfiles to ignore:\n");
ignore_walk = parse_results->files_to_ignore;
while (ignore_walk != NULL) {
printf("\t%s\n", ignore_walk->filename);
ignore_walk = ignore_walk->next;
}
}
}

View File

@ -0,0 +1,17 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#ifndef __CONFIG_FILE_DUMP_H
#define __CONFIG_FILE_DUMP_H
#include "detox.h"
extern void dump_config_file(struct detox_parse_results *parse_results, struct detox_options *main_options);
#endif /* __CONFIG_FILE_DUMP_H */

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,86 @@
%{
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#include "config.h"
#include <string.h>
#include <stdlib.h>
#include "config_file_yacc.h"
int config_file_lineno = 1;
%}
%option noyywrap
%%
[\t ]+ { /* ignore whitespace */ }
#.* { /* ignore comments */ }
\n { config_file_lineno++; }
[Ss][Ee][Qq][Uu][Ee][Nn][Cc][Ee] { return SEQUENCE; }
[Ii][Gg][Nn][Oo][Rr][Ee] { return IGNORE; }
[Uu][Nn][Cc][Gg][Ii] { return UNCGI; }
[Ii][Ss][Oo]8859_1 { return ISO8859_1; }
[Uu][Tt][Ff]_8 { return UTF_8; }
[Ss][Aa][Ff][Ee] { return SAFE; }
[Ww][Ii][Pp][Ee][Uu][Pp] { return WIPEUP; }
[Mm][Aa][Xx]_[Ll][Ee][Nn][Gg][Tt][Hh] { return MAX_LENGTH; }
[Ll][Oo][Ww][Ee][Rr] { return LOWER; }
[Ll][Ee][Nn][Gg][Tt][Hh] { return LENGTH; }
[Ff][Ii][Ll][Ee][Nn][Aa][Mm][Ee] { return FILENAME; }
[Rr][Ee][Mm][Oo][Vv][Ee]_[Tt][Rr][Aa][Ii][Ll][Ii][Nn][Gg] { return REMOVE_TRAILING; }
[{] { return OPEN; }
[}] { return CLOSE; }
\"[^\"\n]*[\"\n] {
yylval.string = strdup(yytext+1);
if (yylval.string[yyleng-2] != '"') {
printf("Unterminated character string\n");
}
else {
yylval.string[yyleng-2] = '\0';
}
return QSTRING;
}
[a-zA-Z][a-zA-Z0-9_]* {
yylval.string = strdup(yytext);
return ID;
}
[0-9]+ {
yylval.nvalue = atoi(yytext);
return NVALUE;
}
[;] { return EOL; }
%%

Binary file not shown.

View File

@ -0,0 +1,124 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include "detox.h"
#include "config_file_spoof.h"
#include "clean_string.h"
struct detox_parse_results *spoof_config_file(struct detox_options *main_options)
{
struct detox_parse_results *ret = NULL;
struct detox_sequence_list *sequences = NULL;
struct detox_sequence_entry *work = NULL;
/*
* Initialize return
*/
ret = malloc(sizeof(struct detox_parse_results));
if (ret == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}
memset(ret, 0, sizeof(struct detox_parse_results));
/*
* Head of sequence
*/
sequences = malloc(sizeof(struct detox_sequence_list));
if (sequences == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}
memset(sequences, 0, sizeof(struct detox_sequence_list));
sequences->name = strdup("default");
sequences->source_filename = strdup("inside the beast");
/*
* Step 1 - ISO8859_1
*/
sequences->head = malloc(sizeof(struct detox_sequence_entry));
if (sequences->head == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}
work = sequences->head;
memset(work, 0, sizeof(struct detox_sequence_entry));
work->cleaner = &clean_iso8859_1;
/*
* Step 2 - Safe
*/
work->next = malloc(sizeof(struct detox_sequence_entry));
if (work->next == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}
work = work->next;
memset(work, 0, sizeof(struct detox_sequence_entry));
work->cleaner = &clean_safe;
/*
* Step 3 - Wipe Up
*/
work->next = malloc(sizeof(struct detox_sequence_entry));
if (work->next == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}
work = work->next;
memset(work, 0, sizeof(struct detox_sequence_entry));
work->cleaner = &clean_wipeup;
/*
* Deprecated
*/
if (main_options->remove_trailing) {
static struct clean_string_options *csopts;
csopts = malloc(sizeof(struct clean_string_options));
if (csopts == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}
memset(csopts, 0, sizeof(struct clean_string_options));
csopts->remove_trailing = 1;
work->options = csopts;
}
/*
*
*/
ret->sequences = sequences;
return ret;
}

View File

@ -0,0 +1,17 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#ifndef __CONFIG_FILE_SPOOF_H
#define __CONFIG_FILE_SPOOF_H
#include "detox.h"
extern struct detox_parse_results *spoof_config_file(struct detox_options *main_options);
#endif /* __CONFIG_FILE_SPOOF_H */

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,113 @@
/* A Bison parser, made by GNU Bison 3.0.4. */
/* Bison interface for Yacc-like parsers in C
Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
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 3 of the License, 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, see <http://www.gnu.org/licenses/>. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
under terms of your choice, so long as that work isn't itself a
parser generator using the skeleton or a modified version thereof
as a parser skeleton. Alternatively, if you modify or redistribute
the parser skeleton itself, you may (at your option) remove this
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
#ifndef YY_YY_CONFIG_FILE_YACC_H_INCLUDED
# define YY_YY_CONFIG_FILE_YACC_H_INCLUDED
/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#if YYDEBUG
extern int yydebug;
#endif
/* Token type. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
enum yytokentype
{
QSTRING = 258,
ID = 259,
SEQUENCE = 260,
IGNORE = 261,
UNCGI = 262,
ISO8859_1 = 263,
UTF_8 = 264,
SAFE = 265,
WIPEUP = 266,
MAX_LENGTH = 267,
LOWER = 268,
FILENAME = 269,
REMOVE_TRAILING = 270,
LENGTH = 271,
OPEN = 272,
CLOSE = 273,
EOL = 274,
NVALUE = 275
};
#endif
/* Tokens. */
#define QSTRING 258
#define ID 259
#define SEQUENCE 260
#define IGNORE 261
#define UNCGI 262
#define ISO8859_1 263
#define UTF_8 264
#define SAFE 265
#define WIPEUP 266
#define MAX_LENGTH 267
#define LOWER 268
#define FILENAME 269
#define REMOVE_TRAILING 270
#define LENGTH 271
#define OPEN 272
#define CLOSE 273
#define EOL 274
#define NVALUE 275
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
union YYSTYPE
{
#line 66 "config_file_yacc.y" /* yacc.c:1909 */
char *string; /* string buffer */
int cmd; /* command value */
struct detox_sequence_entry *seq; /* sequence */
int nvalue; /* nvalue */
#line 101 "config_file_yacc.h" /* yacc.c:1909 */
};
typedef union YYSTYPE YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
#endif
extern YYSTYPE yylval;
int yyparse (void);
#endif /* !YY_YY_CONFIG_FILE_YACC_H_INCLUDED */

Binary file not shown.

View File

@ -0,0 +1,412 @@
%{
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "detox.h"
#include "clean_string.h"
#include "config_file.h"
/*
* I must apologize in advance for the cryptic, global variable names.
*/
static struct detox_sequence_list *cf_sl_ret, *cf_sl_current;
static struct detox_sequence_entry *cf_seq_ret, *cf_seq_current;
static struct detox_ignore_entry *cf_ignore_ret, *cf_ignore_current;
static struct clean_string_options *csopts;
static char *current_name = NULL;
static char *current_filename = NULL;
static struct detox_options *current_options;
void cf_append_sequence_list(void);
void cf_append_sequence_entry(void *ptr, void *opts);
void cf_append_ignore_entry(int token, void *str);
void yyerror (char *s);
int yylex (void);
%}
%union {
char *string; /* string buffer */
int cmd; /* command value */
struct detox_sequence_entry *seq; /* sequence */
int nvalue; /* nvalue */
}
%token <string> QSTRING ID
%token <cmd> SEQUENCE IGNORE
%token <cmd> UNCGI ISO8859_1 UTF_8 SAFE WIPEUP
%token <cmd> MAX_LENGTH LOWER
%token <cmd> FILENAME REMOVE_TRAILING LENGTH
%token <cmd> OPEN CLOSE EOL
%token <nvalue> NVALUE
%type <string> string
%%
configfile:
|
configfile rule
;
rule: sequence
|
ignore
;
sequence: sequence_open method_list sequence_close
;
sequence_open: SEQUENCE string OPEN { current_name = $2; }
;
sequence_close: CLOSE EOL { cf_append_sequence_list(); }
;
method_list: method |
method_list method
;
method: UNCGI EOL { cf_append_sequence_entry(&clean_uncgi, NULL); }
|
LOWER EOL { cf_append_sequence_entry(&clean_lower, NULL); }
|
wipeup EOL
|
iso8859_1 EOL
|
utf_8 EOL
|
safe EOL
|
max_length EOL
;
iso8859_1: ISO8859_1 { cf_append_sequence_entry(&clean_iso8859_1, NULL); }
|
ISO8859_1 OPEN CLOSE { cf_append_sequence_entry(&clean_iso8859_1, NULL); }
|
ISO8859_1 OPEN FILENAME string EOL CLOSE {
csopts = malloc(sizeof(struct clean_string_options));
memset(csopts, 0, sizeof(struct clean_string_options));
csopts->filename = $4;
cf_append_sequence_entry(&clean_iso8859_1, csopts);
}
;
utf_8: UTF_8 { cf_append_sequence_entry(&clean_utf_8, NULL); }
|
UTF_8 OPEN CLOSE { cf_append_sequence_entry(&clean_utf_8, NULL); }
|
UTF_8 OPEN FILENAME string EOL CLOSE {
csopts = malloc(sizeof(struct clean_string_options));
memset(csopts, 0, sizeof(struct clean_string_options));
csopts->filename = $4;
cf_append_sequence_entry(&clean_utf_8, csopts);
}
;
safe: SAFE { cf_append_sequence_entry(&clean_safe, NULL); }
|
SAFE OPEN CLOSE { cf_append_sequence_entry(&clean_safe, NULL); }
|
SAFE OPEN FILENAME string EOL CLOSE {
csopts = malloc(sizeof(struct clean_string_options));
memset(csopts, 0, sizeof(struct clean_string_options));
csopts->filename = $4;
cf_append_sequence_entry(&clean_safe, csopts);
}
;
wipeup: WIPEUP {
if (current_options->remove_trailing) {
csopts = malloc(sizeof(struct clean_string_options));
memset(csopts, 0, sizeof(struct clean_string_options));
csopts->remove_trailing = 1;
}
else {
csopts = NULL;
}
cf_append_sequence_entry(&clean_wipeup, csopts);
}
|
WIPEUP OPEN CLOSE {
if (current_options->remove_trailing) {
csopts = malloc(sizeof(struct clean_string_options));
memset(csopts, 0, sizeof(struct clean_string_options));
csopts->remove_trailing = 1;
}
else {
csopts = NULL;
}
cf_append_sequence_entry(&clean_wipeup, csopts);
}
|
WIPEUP OPEN REMOVE_TRAILING EOL CLOSE {
csopts = malloc(sizeof(struct clean_string_options));
memset(csopts, 0, sizeof(struct clean_string_options));
csopts->remove_trailing = 1;
cf_append_sequence_entry(&clean_wipeup, csopts);
}
;
max_length: MAX_LENGTH { cf_append_sequence_entry(&clean_max_length, NULL); }
|
MAX_LENGTH OPEN CLOSE { cf_append_sequence_entry(&clean_max_length, NULL); }
|
MAX_LENGTH OPEN LENGTH NVALUE EOL CLOSE {
csopts = malloc(sizeof(struct clean_string_options));
memset(csopts, 0, sizeof(struct clean_string_options));
csopts->max_length = (size_t)$4;
cf_append_sequence_entry(&clean_max_length, csopts);
}
;
ignore: ignore_open ignore_list ignore_close
;
ignore_open: IGNORE OPEN
;
ignore_close: CLOSE EOL
;
ignore_list: ignore_filename |
ignore_list ignore_filename
;
ignore_filename: FILENAME string EOL {
cf_append_ignore_entry(FILENAME, $2);
}
;
string: QSTRING { $$ = $1; }
|
ID { $$ = $1; }
;
%%
extern FILE *yyin;
extern FILE *yyout;
struct detox_parse_results *parse_config_file(char *filename, struct detox_parse_results *previous_results, struct detox_options *main_options) {
struct detox_parse_results *ret = NULL;
current_filename = filename;
current_options = main_options;
/*
* XXX - Should we be closing the default yyin/yyout? If so, should we
* be setting them to NULL at the end of this function?
*/
yyin = fopen(filename, "r");
if (yyin == NULL) {
return previous_results;
}
yyout = fopen("/dev/null", "w");
/*
* Initialize the return variable
*/
if (previous_results) {
ret = previous_results;
}
else {
ret = malloc(sizeof(struct detox_parse_results));
memset(ret, 0, sizeof(struct detox_parse_results));
}
/*
* Initialize the sequence list
*/
cf_sl_ret = NULL;
cf_sl_current = NULL;
if (previous_results && previous_results->sequences) {
cf_sl_ret = previous_results->sequences;
cf_sl_current = cf_sl_ret;
while (cf_sl_current->next != NULL) {
cf_sl_current = cf_sl_current->next;
}
}
/*
* Initialize the ignore list
*/
cf_ignore_ret = NULL;
cf_ignore_current = NULL;
if (previous_results && previous_results->files_to_ignore) {
cf_ignore_ret = previous_results->files_to_ignore;
cf_ignore_current = cf_ignore_ret;
while (cf_ignore_current->next != NULL) {
cf_ignore_current = cf_ignore_current->next;
}
}
/*
* Reset the sequence entry holding vars
*/
cf_seq_ret = NULL;
cf_seq_current = NULL;
do {
yyparse();
}
while (!feof(yyin));
fclose(yyin);
fclose(yyout);
/*
* Populate returns
*/
ret->sequences = cf_sl_ret;
ret->files_to_ignore = cf_ignore_ret;
return ret;
}
void yyerror(char *s) {
/*
* XXX - Is extern valid here? Does it do what I'm expecting?
*/
extern char *yytext;
fprintf(stderr, "detox: error parsing config file %s: %s\n", current_filename, s);
fprintf(stderr, "\tline %d", config_file_lineno);
if (yytext != NULL) {
fprintf(stderr, ": %s", yytext);
}
fprintf(stderr, "\n");
exit(EXIT_FAILURE);
}
void cf_append_sequence_list(void) {
struct detox_sequence_list *work;
if (current_name == NULL) {
current_name = strdup("default");
}
work = NULL;
if (cf_sl_ret != NULL) {
work = cf_sl_ret;
while (work != NULL) {
if (strcmp(work->name, current_name) == 0) {
break;
}
work = work->next;
}
}
if (work != NULL) {
/*
* XXX - Free Old Tree
*/
}
else {
work = malloc(sizeof(struct detox_sequence_list));
memset(work, 0, sizeof(struct detox_sequence_list));
work->name = strdup(current_name);
/*
* Append to the tree first. If we don't, we could create a
* circular reference.
*/
if (cf_sl_ret == NULL) {
cf_sl_ret = cf_sl_current = work;
}
else {
cf_sl_current->next = work;
cf_sl_current = work;
}
}
work->head = cf_seq_ret;
work->source_filename = strdup(current_filename);
cf_seq_ret = cf_seq_current = NULL;
}
void cf_append_sequence_entry(void *ptr, void *opts) {
struct detox_sequence_entry *work;
work = malloc(sizeof(struct detox_sequence_entry));
memset(work, 0, sizeof(struct detox_sequence_entry));
work->cleaner = ptr;
work->options = opts;
if (cf_seq_ret == NULL) {
cf_seq_ret = cf_seq_current = work;
}
else {
cf_seq_current->next = work;
cf_seq_current = work;
}
}
void cf_append_ignore_entry(int token, void *str) {
struct detox_ignore_entry *work;
work = malloc(sizeof(struct detox_ignore_entry));
memset(work, 0, sizeof(struct detox_ignore_entry));
switch(token) {
case FILENAME:
work->filename = str;
break;
default:
break;
}
if (cf_ignore_ret == NULL) {
cf_ignore_ret = cf_ignore_current = work;
}
else {
cf_ignore_current->next = work;
cf_ignore_current = work;
}
}

BIN
detox/latest/src/detox Executable file

Binary file not shown.

356
detox/latest/src/detox.c Normal file
View File

@ -0,0 +1,356 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#include "config.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include "detox.h"
#include "clean_string.h"
#include "file.h"
#include "config_file.h"
#include "config_file_spoof.h"
#include "config_file_dump.h"
#include "parse_table.h"
#include "parse_options.h"
#define MAX_PATH_LEN 256
int main(int argc, char **argv)
{
struct stat stat_info;
int err;
struct detox_parse_results *parse_results = NULL;
struct detox_sequence_list *list_work = NULL;
struct detox_sequence_entry *which_sequence = NULL;
struct detox_sequence_entry *work = NULL;
struct detox_options *main_options;
char *check_config_file = NULL;
char *file_work = NULL;
char **file_walk;
main_options = parse_options_getopt(argc, argv);
if (main_options == NULL) {
fprintf(stderr, "detox: an error occurred while parsing command line arguments\n");
exit(EXIT_FAILURE);
}
if (main_options->check_config_file) {
check_config_file = strdup(main_options->check_config_file);
}
if (check_config_file != NULL) {
parse_results = parse_config_file(check_config_file, NULL, main_options);
if (parse_results == NULL) {
fprintf(stderr, "detox: unable to open: %s\n", check_config_file);
exit(EXIT_FAILURE);
}
}
else {
check_config_file = malloc(MAX_PATH_LEN);
if (check_config_file == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}
#ifdef SYSCONFDIR
err = snprintf(check_config_file, MAX_PATH_LEN, "%s/detoxrc", SYSCONFDIR);
if (err < MAX_PATH_LEN)
parse_results = parse_config_file(check_config_file, NULL, main_options);
#endif
if (parse_results == NULL) {
parse_results = parse_config_file("/etc/detoxrc", NULL, main_options);
}
if (parse_results == NULL) {
parse_results = parse_config_file("/usr/local/etc/detoxrc", NULL, main_options);
}
file_work = getenv("HOME");
if (file_work != NULL) {
err = snprintf(check_config_file, MAX_PATH_LEN, "%s/.detoxrc", file_work);
if (err < MAX_PATH_LEN)
parse_results = parse_config_file(check_config_file, parse_results, main_options);
file_work = NULL;
}
if (parse_results == NULL) {
parse_results = spoof_config_file(main_options);
}
free(check_config_file);
}
if (parse_results == NULL) {
fprintf(stderr, "detox: no config file to work with\n");
exit(EXIT_FAILURE);
}
/*
* Store the files_to_ignore array in the main_options struct for use in
* parse_dir/file/special
*/
main_options->files_to_ignore = parse_results->files_to_ignore;
/*
* Determine which sequence to use
*/
which_sequence = NULL;
list_work = parse_results->sequences;
while (list_work != NULL) {
if (strcmp(list_work->name, (main_options->sequence_name == NULL) ? "default" : main_options->sequence_name) == 0) {
which_sequence = list_work->head;
break;
}
list_work = list_work->next;
}
/*
* If no sequence was found, and the user didn't specify a sequence
* to use, just use the first sequence.
*/
if (which_sequence == NULL && main_options->sequence_name == NULL) {
if (parse_results->sequences != NULL) {
which_sequence = parse_results->sequences->head;
}
}
main_options->sequence_to_use = which_sequence;
/*
* List sequences
*/
if (main_options->list_sequences) {
dump_config_file(parse_results, main_options);
exit(EXIT_SUCCESS);
}
/*
* Fail if no sequence is available
*/
if (main_options->sequence_to_use == NULL) {
/*
* XXX - Explain this better
*/
fprintf(stderr, "detox: no sequence to work with\n");
exit(EXIT_FAILURE);
}
/*
* Check translation tables
*/
work = main_options->sequence_to_use;
while (work != NULL) {
char *check_filename = NULL;
int do_search = 0;
struct translation_table *table = NULL;
struct clean_string_options *opts;
if (work->cleaner == &clean_iso8859_1) {
if (work->options != NULL) {
opts = work->options;
if (opts->filename != NULL) {
check_filename = opts->filename;
}
}
if (!check_filename) {
check_filename = "iso8859_1.tbl";
do_search = 1;
}
}
else if (work->cleaner == &clean_utf_8) {
if (work->options != NULL) {
opts = work->options;
if (opts->filename != NULL) {
check_filename = opts->filename;
}
}
if (!check_filename) {
check_filename = "unicode.tbl";
do_search = 1;
}
}
else if (work->cleaner == &clean_safe) {
if (work->options != NULL) {
opts = work->options;
if (opts->filename != NULL) {
check_filename = opts->filename;
}
}
if (!check_filename) {
check_filename = "safe.tbl";
do_search = 1;
}
}
if (check_filename || do_search) {
table = NULL;
if (do_search) {
check_config_file = malloc(MAX_PATH_LEN);
if (check_config_file == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}
#ifdef DATADIR
err = snprintf(check_config_file, MAX_PATH_LEN, "%s/detox/%s", DATADIR, check_filename);
if (err < MAX_PATH_LEN)
table = parse_table(check_config_file);
#endif
if (table == NULL) {
err = snprintf(check_config_file, MAX_PATH_LEN, "/usr/share/detox/%s", check_filename);
if (err < MAX_PATH_LEN)
table = parse_table(check_config_file);
}
if (table == NULL) {
err = snprintf(check_config_file, MAX_PATH_LEN, "/usr/local/share/detox/%s", check_filename);
if (err < MAX_PATH_LEN)
table = parse_table(check_config_file);
}
if (table == NULL) {
/*
* Fall back to the non-file based
* cleaner
*/
if (work->cleaner == &clean_iso8859_1) {
work->cleaner = &clean_iso8859_1_basic;
}
else if (work->cleaner == &clean_utf_8) {
work->cleaner = &clean_utf_8_basic;
}
else if (work->cleaner == &clean_safe) {
work->cleaner = &clean_safe_basic;
}
else {
fprintf(stderr, "detox: unable to locate translation table or fall back\n");
exit(EXIT_FAILURE);
}
}
else {
/*
* Allocate an options
*/
opts = malloc(sizeof(struct clean_string_options));
if (opts == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}
memset(opts, 0, sizeof(struct clean_string_options));
opts->translation_table = table;
work->options = opts;
}
free(check_config_file);
}
else {
table = parse_table(check_filename);
if (table == NULL) {
fprintf(stderr, "detox: unable to parse file: %s\n", check_filename);
exit(EXIT_FAILURE);
}
opts = work->options;
opts->translation_table = table;
}
}
work = work->next;
}
/*
* Do some actual work
*/
if (!main_options->is_inline_mode) {
file_walk = main_options->files;
while (*file_walk) {
if (main_options->verbose) {
printf("Scanning: %s\n", *file_walk);
}
err = lstat(*file_walk, &stat_info);
if (err == -1) {
fprintf(stderr, "%s: %s\n", *file_walk, strerror(errno));
}
else {
if (S_ISDIR(stat_info.st_mode)) {
file_work = parse_file(*file_walk, main_options);
parse_dir(file_work, main_options);
free(file_work);
}
else if (S_ISREG(stat_info.st_mode)) {
parse_file(*file_walk, main_options);
}
else if (main_options->special) {
parse_special(*file_walk, main_options);
}
}
file_walk++;
}
} else {
if (main_options->files[0] != NULL) {
file_walk = main_options->files;
while (*file_walk) {
err = lstat(*file_walk, &stat_info);
if (err == -1) {
fprintf(stderr, "%s: %s\n", *file_walk, strerror(errno));
}
else {
if (S_ISDIR(stat_info.st_mode)) {
fprintf(stderr, "%s: is a directory\n", *file_walk);
}
else {
parse_inline(*file_walk, main_options);
}
}
file_walk++;
}
}
else {
parse_inline(NULL, main_options);
}
}
return 0;
}

79
detox/latest/src/detox.h Normal file
View File

@ -0,0 +1,79 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#ifndef __DETOX_H
#define __DETOX_H
/*
* Holds information about all of the defined sequences
*/
struct detox_sequence_list {
struct detox_sequence_list *next;
char *name;
/*
* The top of the linked list of entries for this sequence
*/
struct detox_sequence_entry *head;
char *source_filename;
};
/*
* Holds information about an entry within a specific sequence
*/
struct detox_sequence_entry {
struct detox_sequence_entry *next;
unsigned char *(*cleaner) (unsigned char *str, void *options);
void *options;
};
/*
* Holds information about files the user has asked us to ignore
*/
struct detox_ignore_entry {
struct detox_ignore_entry *next;
unsigned char *filename;
};
/*
* Holds the result of a config file parse
*/
struct detox_parse_results {
struct detox_sequence_list *sequences;
struct detox_ignore_entry *files_to_ignore;
};
/*
* Holds command line options
*/
struct detox_options {
int dry_run;
int is_inline_bin;
int is_inline_mode;
int list_sequences;
int recurse;
int remove_trailing;
int special;
int verbose;
struct detox_sequence_entry *sequence_to_use;
struct detox_ignore_entry *files_to_ignore;
char *sequence_name;
char *check_config_file;
char **files;
};
#endif /* __DETOX_H */

BIN
detox/latest/src/detox.o Normal file

Binary file not shown.

378
detox/latest/src/file.c Normal file
View File

@ -0,0 +1,378 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#include "config.h"
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <dirent.h>
#include <string.h>
#include <errno.h>
#include "clean_string.h"
#include "file.h"
#include "detox.h"
static char badfiles[3][30] = {
".",
"..",
""
};
#define BUF_SIZE 1024
/*
* Internal function declarations
*/
static int ignore_file(unsigned char *filename, struct detox_options *options);
/*
* Renames file to a safe filename.
*/
unsigned char *parse_file(unsigned char *filename, struct detox_options *options)
{
unsigned char *old_filename, *old_filename_ptr, *new_filename;
unsigned char *work, *hold;
struct stat stat_info_old;
struct stat stat_info_new;
int err;
size_t len;
struct detox_sequence_entry *sequence;
len = strlen(filename) + 1;
old_filename = malloc(len);
if (old_filename == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
return NULL;
}
memcpy(old_filename, filename, len);
old_filename_ptr = strrchr(old_filename, '/');
if (old_filename_ptr != NULL) {
old_filename_ptr++;
}
else {
old_filename_ptr = old_filename;
}
/*
* Check for files that need to be ignored
*/
if (ignore_file(old_filename_ptr, options)) {
return old_filename;
}
/*
* Do the actual filename cleaning
*/
sequence = options->sequence_to_use;
work = strdup(old_filename_ptr);
while (sequence != NULL && work != NULL) {
hold = sequence->cleaner(work, sequence->options);
if (work != NULL) {
free(work);
}
work = hold;
sequence = sequence->next;
}
if (work == NULL) {
return old_filename;
}
/* check to see if nothing changed */
if (strcmp(old_filename_ptr, work) == 0) {
return old_filename;
}
len = (old_filename_ptr - old_filename);
new_filename = malloc(len + strlen(work) + 1);
if (new_filename == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
free(work);
free(old_filename);
return NULL;
}
strncpy(new_filename, old_filename, len);
strcpy(new_filename + len, work);
free(work);
err = lstat(old_filename, &stat_info_old);
if (err == -1) {
free(new_filename);
return old_filename;
}
err = lstat(new_filename, &stat_info_new);
if (err != -1) { // New file exists
if (stat_info_old.st_dev != stat_info_new.st_dev || // Different device
stat_info_old.st_ino != stat_info_new.st_ino || // Different inode
stat_info_old.st_nlink > 1) // More than one hard link
{
fprintf(stderr, "Cannot rename %s to %s: file already exists\n", old_filename, new_filename);
free(new_filename);
return old_filename;
}
}
if (options->verbose || options->dry_run) {
printf("%s -> %s\n", old_filename, new_filename);
}
if (options->dry_run) {
free(new_filename);
return old_filename;
}
err = rename(old_filename, new_filename);
if (err == -1) {
fprintf(stderr, "Cannot rename %s to %s: %s\n", old_filename, new_filename, strerror(errno));
free(new_filename);
return old_filename;
}
free(old_filename);
return new_filename;
}
/*
* Handles directory.
*/
void parse_dir(unsigned char *indir, struct detox_options *options)
{
unsigned char *new_file, *work;
DIR *dir_handle;
struct dirent *dir_entry;
struct stat stat_info;
int check_file;
int err;
size_t new_file_length;
err = lstat(indir, &stat_info);
if (err == -1) {
return;
}
if (!S_ISDIR(stat_info.st_mode)) {
return;
}
new_file_length = strlen(indir) + 1024;
new_file = (char *)malloc(new_file_length);
if (new_file == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
return;
}
/*
* Parse directory
*/
dir_handle = opendir(indir);
if (dir_handle == NULL) {
fprintf(stderr, "unable to parse: %s\n", strerror(errno));
free(new_file);
return;
}
dir_entry = readdir(dir_handle);
while (dir_entry != NULL) {
/*
* Check for files that need to be ignored
*/
check_file = !ignore_file(dir_entry->d_name, options);
if (check_file) {
snprintf(new_file, new_file_length, "%s/%s", indir, dir_entry->d_name);
lstat(new_file, &stat_info);
if (S_ISDIR(stat_info.st_mode)) {
work = parse_file(new_file, options);
if (options->recurse) {
parse_dir(work, options);
}
free(work);
}
else if (S_ISREG(stat_info.st_mode)) {
work = parse_file(new_file, options);
free(work);
}
else if (options->special) {
parse_special(new_file, options);
}
}
dir_entry = readdir(dir_handle);
}
closedir(dir_handle);
}
/*
* Handles a special file.
*/
void parse_special(unsigned char *in, struct detox_options *options)
{
struct stat stat_info;
char *new_file, *work;
int err;
/* detox, then parse_dir if a symlink to a dir */
new_file = parse_file(in, options);
if (!new_file) {
return;
}
err = lstat(new_file, &stat_info);
if (err == -1) {
fprintf(stderr, "Unable to stat %s\n", in);
free(new_file);
return;
}
if (options->recurse && S_ISLNK(stat_info.st_mode)) {
work = malloc(1024);
if (!work) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
free(new_file);
return;
}
memset(work, 0, 1024);
err = readlink(new_file, work, 1023);
if (err == -1) {
fprintf(stderr, "Unable to read symbolic link %s\n", in);
free(work);
free(new_file);
return;
}
err = lstat(work, &stat_info);
if (err == -1) {
fprintf(stderr, "Unable to follow symbolic link %s\n", in);
free(work);
free(new_file);
return;
}
if (S_ISDIR(stat_info.st_mode)) {
parse_dir(work, options);
}
free(work);
}
free(new_file);
}
/*
* Determines if the file should be ignored
*/
static int ignore_file(unsigned char *filename, struct detox_options *options)
{
struct detox_ignore_entry *ignore_walk;
int x;
for (x = 0; badfiles[x][0] != 0; x++) {
if (strcmp(filename, badfiles[x]) == 0) {
return 1;
}
}
ignore_walk = options->files_to_ignore;
while (ignore_walk != NULL) {
if (strcmp(filename, ignore_walk->filename) == 0) {
return 1;
}
ignore_walk = ignore_walk->next;
}
return 0;
}
/*
* Renames file to a safe filename.
*/
void parse_inline(unsigned char *filename, struct detox_options *options)
{
struct detox_sequence_entry *sequence;
FILE *fp;
unsigned char *base, *work, *hold;
size_t buf_size;
if (filename != NULL) {
if (!(fp = fopen(filename, "r"))) {
fprintf(stderr, "%s: %s\n", filename, strerror(errno));
return;
}
}
else {
fp = stdin;
}
buf_size = BUF_SIZE;
base = malloc(buf_size);
if (base == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
return;
}
while (fgets(base, buf_size, fp)) {
while (strrchr(base, '\n') == NULL) {
work = realloc(base, buf_size + BUF_SIZE - 1);
if (!fgets(work + buf_size - 1, BUF_SIZE, fp)) {
base = work;
break;
}
base = work;
buf_size += BUF_SIZE - 1;
}
hold = strrchr(base, '\n');
if (hold == NULL) {
fprintf(stderr, "Unable to parse input\n");
exit(EXIT_FAILURE);
}
*hold = '\0';
work = strdup(base);
sequence = options->sequence_to_use;
while (sequence != NULL && work != NULL) {
hold = sequence->cleaner(work, sequence->options);
if (work != NULL) {
free(work);
}
work = hold;
sequence = sequence->next;
}
if (work != NULL) {
printf("%s\n", work);
}
else {
printf("\n");
}
}
}

23
detox/latest/src/file.h Normal file
View File

@ -0,0 +1,23 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#ifndef __FILE_H
#define __FILE_H
#include "detox.h"
extern unsigned char *parse_file(unsigned char *filename, struct detox_options *options);
extern void parse_dir(unsigned char *indir, struct detox_options *options);
extern void parse_special(unsigned char *in, struct detox_options *options);
extern void parse_inline(unsigned char *filename, struct detox_options *options);
#endif /* __FILE_H */

BIN
detox/latest/src/file.o Normal file

Binary file not shown.

BIN
detox/latest/src/inline-detox Executable file

Binary file not shown.

View File

@ -0,0 +1,149 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
*/
/**
* Special thanks to: http://www.bbsinc.com/iso8859.html
*/
#define ISO8859_1_OFFSET 0x80
#define ISO8859_1_COUNT 128
#define ISO8859_1_MAXLEN 8
/* starts at 80 */
char iso8859_1_trans[ISO8859_1_COUNT][ISO8859_1_MAXLEN] = {
"_", /* 0x0080 */
"_", /* 0x0081 */
"_", /* 0x0082 */
"_", /* 0x0083 */
"_", /* 0x0084 */
"...", /* 0x0085 */
"_", /* 0x0086 */
"_", /* 0x0087 */
"^", /* 0x0088 */
"_", /* 0x0089 */
"S", /* 0x008A */
"_", /* 0x008B */
"OE", /* 0x008C */
"_", /* 0x008D */
"_", /* 0x008E */
"_", /* 0x008F */
"_", /* 0x0090 */
"_", /* 0x0091 */
"_", /* 0x0092 */
"_", /* 0x0093 */
"_", /* 0x0094 */
"_", /* 0x0095 */
"-", /* 0x0096 */
"-", /* 0x0097 */
"_", /* 0x0098 */
"_tm_", /* 0x0099 */
"s", /* 0x009A */
"_", /* 0x009B */
"oe", /* 0x009C */
"_", /* 0x009D */
"_", /* 0x009E */
"Y", /* 0x009F */
"_", /* 0x00A0 */
"_", /* 0x00A1 */
"_cent_", /* 0x00A2 */
"_pound_", /* 0x00A3 */
"_", /* 0x00A4 */
"_yen_", /* 0x00A5 */
"_", /* 0x00A6 */
"_", /* 0x00A7 */
"_", /* 0x00A8 */
"_copy_", /* 0x00A9 */
"_", /* 0x00AA */
"_", /* 0x00AB */
"_", /* 0x00AC */
"_", /* 0x00AD */
"_reg_", /* 0x00AE */
"_", /* 0x00AF */
"_", /* 0x00B0 */
"_", /* 0x00B1 */
"2", /* 0x00B2 */
"3", /* 0x00B3 */
"_", /* 0x00B4 */
"b", /* 0x00B5 */
"_pp_", /* 0x00B6 */
"_", /* 0x00B7 */
"_", /* 0x00B8 */
"1", /* 0x00B9 */
"_", /* 0x00BA */
"_", /* 0x00BB */
"_", /* 0x00BC */
"_", /* 0x00BD */
"_", /* 0x00BE */
"_", /* 0x00BF */
"A", /* 0x00C0 */
"A", /* 0x00C1 */
"A", /* 0x00C2 */
"A", /* 0x00C3 */
"A", /* 0x00C4 */
"A", /* 0x00C5 */
"AE", /* 0x00C6 */
"C", /* 0x00C7 */
"E", /* 0x00C8 */
"E", /* 0x00C9 */
"E", /* 0x00CA */
"E", /* 0x00CB */
"I", /* 0x00CC */
"I", /* 0x00CD */
"I", /* 0x00CE */
"I", /* 0x00CF */
"TH", /* 0x00D0 */
"N", /* 0x00D1 */
"O", /* 0x00D2 */
"O", /* 0x00D3 */
"O", /* 0x00D4 */
"O", /* 0x00D5 */
"O", /* 0x00D6 */
"x", /* 0x00D7 */
"O", /* 0x00D8 */
"U", /* 0x00D9 */
"U", /* 0x00DA */
"U", /* 0x00DB */
"U", /* 0x00DC */
"Y", /* 0x00DD */
"TH", /* 0x00DE */
"ss", /* 0x00DF */
"a", /* 0x00E0 */
"a", /* 0x00E1 */
"a", /* 0x00E2 */
"a", /* 0x00E3 */
"a", /* 0x00E4 */
"a", /* 0x00E5 */
"ae", /* 0x00E6 */
"c", /* 0x00E7 */
"e", /* 0x00E8 */
"e", /* 0x00E9 */
"e", /* 0x00EA */
"e", /* 0x00EB */
"i", /* 0x00EC */
"i", /* 0x00ED */
"i", /* 0x00EE */
"i", /* 0x00EF */
"th", /* 0x00F0 */
"n", /* 0x00F1 */
"o", /* 0x00F2 */
"o", /* 0x00F3 */
"o", /* 0x00F4 */
"o", /* 0x00F5 */
"o", /* 0x00F6 */
"_", /* 0x00F7 */
"o", /* 0x00F8 */
"u", /* 0x00F9 */
"u", /* 0x00FA */
"u", /* 0x00FB */
"u", /* 0x00FC */
"y", /* 0x00FD */
"th", /* 0x00FE */
"y", /* 0x00FF */
};

View File

@ -0,0 +1,282 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#include "config.h"
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <libgen.h>
#include "detox.h"
#include "config.h"
#include "parse_options.h"
#ifdef HAVE_GETOPT_LONG
#include <getopt.h>
#endif
enum {
LONG_OPTION_DRY_RUN = 1,
LONG_OPTION_INLINE,
LONG_OPTION_REMOVE_TRAILING,
LONG_OPTION_SPECIAL
};
#define INLINE_DETOX_BIN "inline-detox"
/* expect this to be overwritten! */
static int long_option = 0;
#ifdef HAVE_GETOPT_LONG
static struct option longopts[] = {
/* long options with equivalents */
{"help", no_argument, 0, 'h'},
{"dry-run", no_argument, 0, 'n'},
/* long options without */
{"inline", no_argument, &long_option, LONG_OPTION_INLINE},
{"special", no_argument, &long_option, LONG_OPTION_SPECIAL},
/* deprecated long opts without */
{"remove-trailing", no_argument, &long_option, LONG_OPTION_REMOVE_TRAILING},
/* done */
{0, 0, 0, 0}
};
#endif
/* *INDENT-OFF* */
char usage_message[] = {
"usage: detox [-hLnrvV] [-f configfile] [-s sequence]"
#ifdef HAVE_GETOPT_LONG
" [--dry-run] [--inline] [--special]"
"\n\t "
#endif
" file [file ...]\n"
};
char help_message[] = {
" -f configfile choose which config file to use\n"
#ifdef HAVE_GETOPT_LONG
" -h --help this message\n"
#else
" -h this message\n"
#endif
#ifdef HAVE_GETOPT_LONG
" --inline run inline mode\n"
#endif
" -L list available sequences and exit\n"
" with -v ... dump sequence contents\n"
#ifdef HAVE_GETOPT_LONG
" -n --dry-run do a dry run (don't actually do anything)\n"
#else
" -n do a dry run (don't actually do anything)\n"
#endif
" -r be recursive (descend into subdirectories)\n"
#ifdef HAVE_GETOPT_LONG
" --remove-trailing (deprecated)\n"
" remove trailing _ and - before a period\n"
#endif
" -s sequence choose which sequence to detox with\n"
#ifdef HAVE_GETOPT_LONG
" --special work on links and special files\n"
#endif
" -v be verbose\n"
" -V show the current version\n"
};
char usage_message_inline[] = {
"usage: inline-detox [-hLvV] [-f configfile] [-s sequence] [file]\n"
};
char help_message_inline[] = {
" -f configfile choose which config file to use\n"
#ifdef HAVE_GETOPT_LONG
" -h --help this message\n"
#else
" -h this message\n"
#endif
" -L list available sequences and exit\n"
" with -v ... dump sequence contents\n"
#ifdef HAVE_GETOPT_LONG
" --remove-trailing (deprecated)\n"
" remove trailing _ and - before a period\n"
#endif
" -s sequence choose which sequence to detox with\n"
" -v be verbose\n"
" -V show the current version\n"
};
/* *INDENT-ON* */
struct detox_options *initialize_main_options(void)
{
struct detox_options *main_options;
main_options = malloc(sizeof(struct detox_options));
if (main_options == NULL) {
fprintf(stderr, "out of memory: %s\n", strerror(errno));
return NULL;
}
memset(main_options, 0, sizeof(struct detox_options));
/*
* XXX - handle blank strings better
*/
main_options->sequence_name = getenv("DETOX_SEQUENCE");
return main_options;
}
struct detox_options *parse_options_getopt(int argc, char **argv)
{
int optcode;
struct detox_options *main_options;
int i;
int max = 10;
char *binname;
main_options = initialize_main_options();
if (main_options == NULL) {
return NULL;
}
binname = basename(argv[0]);
main_options->is_inline_bin = main_options->is_inline_mode =
(strcmp(binname, INLINE_DETOX_BIN) == 0);
#ifdef HAVE_GETOPT_LONG
while ((optcode = getopt_long(argc, argv, "hrvV?Ls:f:n", longopts, NULL)) != -1) {
#else
while ((optcode = getopt(argc, argv, "hrvV?Ls:f:n")) != -1) {
#endif
switch (optcode) {
case 'h':
printf("%s", !main_options->is_inline_bin ? usage_message :
usage_message_inline);
printf("\n");
printf("%s", !main_options->is_inline_bin ? help_message :
help_message_inline);
exit(EXIT_SUCCESS);
case 'f':
/*
* XXX - free multiple check_config_files
*/
main_options->check_config_file = strdup(optarg);
break;
case 'L':
main_options->list_sequences = 1;
break;
case 'n':
main_options->dry_run = 1;
break;
case 'r':
main_options->recurse = 1;
break;
case 's':
/*
* XXX - free multiple sequence name opts
*/
main_options->sequence_name = strdup(optarg);
break;
case 'v':
main_options->verbose++;
break;
case 'V':
printf("%s\n", PACKAGE_STRING);
exit(EXIT_SUCCESS);
case '?':
printf("%s", !main_options->is_inline_bin ? usage_message :
usage_message_inline);
exit(EXIT_SUCCESS);
case 0:
switch (long_option) {
case LONG_OPTION_INLINE:
main_options->is_inline_mode = 1;
break;
case LONG_OPTION_REMOVE_TRAILING:
main_options->remove_trailing = 1;
break;
case LONG_OPTION_SPECIAL:
main_options->special = 1;
break;
default:
/*
* getopt_long shouldn't let us get here...
* verify?
*/
printf("unknown option: %s\n", optarg);
break;
}
long_option = 0; /* clean up! */
break;
default:
fprintf(stderr, "unknown option: %c\n", optcode);
exit(EXIT_FAILURE);
}
}
if (main_options->list_sequences) {
/*
* Early Retirement
*/
return main_options;
}
main_options->files = malloc(sizeof(char *) * 10);
i = 0;
max = 10;
if (optind < argc) {
while (optind < argc) {
/* not enough space for the next file and
possible ending NULL -> realloc */
if (i + 2 > max) {
main_options->files = realloc(main_options->files, sizeof(char *) * (10 + max));
max += 10;
}
main_options->files[i++] = strdup(argv[optind]);
optind++;
}
main_options->files[i] = NULL;
}
else if (!main_options->is_inline_mode) {
printf("%s", !main_options->is_inline_bin ? usage_message :
usage_message_inline);
exit(EXIT_FAILURE);
}
return main_options;
}

View File

@ -0,0 +1,25 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
*/
#ifndef __PARSE_OPTIONS_H
#define __PARSE_OPTIONS_H
#include "detox.h"
extern char usage_message[];
extern char help_message[];
extern char usage_message_inline[];
extern char help_message_inline[];
extern struct detox_options *initialize_main_options(void);
extern struct detox_options *parse_options_getopt(int argc, char **argv);
#endif /* __PARSE_OPTIONS_H */

Binary file not shown.

View File

@ -0,0 +1,222 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#include "config.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include <locale.h>
#include "table.h"
#define LINE_LENGTH 6
enum {
BASE_STATE,
INSIDE_STATE
};
struct translation_table *parse_table(char *filename)
{
FILE *ttable_file;
char *work;
int code;
int offset;
char *parsed;
int err;
int size;
int max_data_length;
int ret;
int state;
char *system_ctype;
struct translation_table *table;
struct stat ttable_stat;
err = stat(filename, &ttable_stat);
if (err == -1) {
return NULL;
}
system_ctype = setlocale(LC_CTYPE, "");
if (system_ctype == NULL) {
system_ctype = ""; // I don't think we can free the return from setlocale()
}
size = 0;
if (ttable_stat.st_size > 0) {
size = ttable_stat.st_size / LINE_LENGTH;
}
#ifdef HAVE_STRUCT_STAT_ST_BLOCKS
else {
size = (512 * ttable_stat.st_blocks) / LINE_LENGTH;
}
#endif
if (size < 500) {
size = 500;
}
table = table_init(size);
if (table == NULL) {
return NULL;
}
ttable_file = fopen(filename, "r");
if (ttable_file == NULL) {
fprintf(stderr, "Unable to open translation table: %s\n", strerror(errno));
return NULL;
}
work = malloc(1024);
if (work == NULL) {
fprintf(stderr, "Unable to allocate memory: %s\n", strerror(errno));
return NULL;
}
parsed = malloc(1024);
if (parsed == NULL) {
fprintf(stderr, "Unable to allocate memory: %s\n", strerror(errno));
return NULL;
}
max_data_length = 1;
state = BASE_STATE;
while (fgets(work, 1024, ttable_file) != NULL) {
if (*work == '#') {
/*
* Don't even bother
*/
continue;
}
parsed[0] = '\0';
if (state == BASE_STATE) {
ret = sscanf(work, " %s %n", parsed, &offset);
if (ret == 0) {
continue;
}
if (strncasecmp(parsed, "start", 5) == 0) {
if (work[offset] == '\0') {
// All languages
state = INSIDE_STATE;
continue;
}
if (work[offset] == '"') {
sscanf(work + offset + 1, "%[^\"]", parsed);
}
else if (work[offset] == '\'') {
sscanf(work + offset + 1, "%[^']", parsed);
}
else {
sscanf(work + offset, "%s", parsed);
}
if (strncasecmp(parsed, system_ctype, strlen(parsed)) == 0) {
state = INSIDE_STATE;
}
// else ignore this start/end block
continue;
}
if (strncasecmp(parsed, "default", 7) == 0) {
if (work[offset] == '\0') {
table->default_translation = NULL;
continue;
}
if (work[offset] == '"') {
sscanf(work + offset + 1, "%[^\"]", parsed);
}
else if (work[offset] == '\'') {
sscanf(work + offset + 1, "%[^']", parsed);
}
else {
sscanf(work + offset, "%s", parsed);
}
table->default_translation = strdup(parsed);
if (strlen(parsed) > max_data_length) {
max_data_length = strlen(parsed);
}
continue;
}
continue;
}
/*
* Inside state
*/
code = -1;
ret = sscanf(work, "%i %n", &code, &offset);
if (ret == 0 || code < 0 || offset < 0) {
/*
* Check for end
*/
ret = sscanf(work, " %s %n", parsed, &offset);
if (ret > 0 && strncasecmp(parsed, "end", 5) == 0) {
state = BASE_STATE;
}
continue;
}
if (work[offset] == '\0') {
continue;
}
if (work[offset] == '"') {
sscanf(work + offset + 1, "%[^\"]", parsed);
}
else if (work[offset] == '\'') {
sscanf(work + offset + 1, "%[^']", parsed);
}
else {
sscanf(work + offset, "%s", parsed);
}
table_put(table, code, parsed);
if (strlen(parsed) > max_data_length) {
max_data_length = strlen(parsed);
}
}
table->max_data_length = max_data_length;
free(work);
free(parsed);
fclose(ttable_file);
return table;
}

View File

@ -0,0 +1,18 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
*/
#ifndef __PARSE_TABLE_H
#define __PARSE_TABLE_H
#include "table.h"
extern struct translation_table *parse_table(char *filename);
#endif /* __PARSE_TABLE_H */

Binary file not shown.

View File

@ -0,0 +1 @@
timestamp for src/config.h

177
detox/latest/src/table.c Normal file
View File

@ -0,0 +1,177 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include "table.h"
/*
* Internal function declarations
*/
static int table_hash1(int table_length, unsigned int key);
static int table_hash2(int table_length, unsigned int key);
struct translation_table *table_init(int max_rows)
{
struct translation_table *ret;
size_t row_length;
if (max_rows <= 0) {
max_rows = 500;
}
row_length = max_rows * sizeof(struct translation_table_row);
ret = malloc(sizeof(struct translation_table));
if (ret == NULL) {
return NULL;
}
memset(ret, 0, sizeof(struct translation_table));
ret->rows = malloc(row_length);
if (ret->rows == NULL) {
free(ret);
return NULL;
}
memset(ret->rows, 0, row_length);
ret->length = max_rows;
return ret;
}
struct translation_table *table_resize(struct translation_table *table, int rows)
{
struct translation_table *ret;
int i;
ret = table_init(rows);
if (ret == NULL)
return table;
if (table == NULL)
return ret;
for (i = 0; i < table->length; i++) {
if (table->rows[i].key > 0 && table->rows[i].data != NULL) {
table_put(ret, table->rows[i].key, table->rows[i].data);
}
}
return ret;
}
void table_free(struct translation_table *table)
{
int i;
if (table == NULL)
return;
for (i = 0; i < table->length; i++) {
if (table->rows[i].key > 0 && table->rows[i].data != NULL) {
free(table->rows[i].data);
}
}
free(table->rows);
free(table);
}
static int table_hash1(int table_length, unsigned int key)
{
return key % table_length;
}
static int table_hash2(int table_length, unsigned int key)
{
return (key >> 8) % table_length;
}
/*
* 0 is an invalid key (sorry)
*/
int table_put(struct translation_table *table, unsigned int key, char *data)
{
int hashed;
int hashed2;
int i;
if (table->length == table->used) {
return -1;
}
hashed = table_hash1(table->length, key);
if (table->rows[hashed].key != 0 && table->rows[hashed].key != key) {
hashed2 = table_hash2(table->length, key);
i = 0;
while (table->rows[hashed].key != 0 && table->rows[hashed].key != key) {
hashed += i + hashed2;
hashed %= table->length;
}
}
if (table->rows[hashed].key == key) {
table->overwrites++;
}
table->rows[hashed].key = key;
table->rows[hashed].data = strdup(data);
table->used++;
return hashed;
}
/*
* 0 is an invalid key (sorry)
*/
char *table_get(struct translation_table *table, unsigned int key)
{
int hashed;
int hashed2;
int i;
if (table == NULL) {
return NULL;
}
hashed = table_hash1(table->length, key);
if (table->rows[hashed].key == 0) {
return NULL;
}
if (table->rows[hashed].key != key) {
hashed2 = table_hash2(table->length, key);
i = 0;
while (table->rows[hashed].key != key && table->rows[hashed].key != 0) {
table->misses++;
hashed += i + hashed2;
hashed %= table->length;
}
}
if (table->rows[hashed].key == 0) {
return NULL;
}
table->hits++;
return table->rows[hashed].data;
}

37
detox/latest/src/table.h Normal file
View File

@ -0,0 +1,37 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#ifndef __TABLE_H
#define __TABLE_H
struct translation_table_row {
unsigned int key;
char *data;
};
struct translation_table {
int length;
int used;
int max_data_length;
char *default_translation;
struct translation_table_row *rows;
int hits, misses, overwrites;
};
extern struct translation_table *table_init(int max_rows);
extern struct translation_table *table_resize(struct translation_table *table, int rows);
extern void table_free(struct translation_table *table);
extern int table_put(struct translation_table *table, unsigned int key, char *data);
extern char *table_get(struct translation_table *table, unsigned int key);
#endif /* __TABLE_H */

BIN
detox/latest/src/table.o Normal file

Binary file not shown.

275
detox/latest/src/unicode.h Normal file
View File

@ -0,0 +1,275 @@
/**
* This file is part of the Detox package.
*
* Copyright (c) Doug Harple <detox.dharple@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
*/
/**
* Special thanks to: http://www.unicode.org/Public/UNIDATA/UnicodeData.txt
*/
#define UNICODE_COUNT 256
#define UNICODE_MAXLEN 8
char unicode_trans[UNICODE_COUNT][UNICODE_MAXLEN] = {
"_", /* 0x0000 */
"_", /* 0x0001 */
"_", /* 0x0002 */
"_", /* 0x0003 */
"_", /* 0x0004 */
"_", /* 0x0005 */
"_", /* 0x0006 */
"_", /* 0x0007 */
"_", /* 0x0008 */
"_", /* 0x0009 */
"_", /* 0x000A */
"_", /* 0x000B */
"_", /* 0x000C */
"_", /* 0x000D */
"_", /* 0x000E */
"_", /* 0x000F */
"_", /* 0x0010 */
"_", /* 0x0011 */
"_", /* 0x0012 */
"_", /* 0x0013 */
"_", /* 0x0014 */
"_", /* 0x0015 */
"_", /* 0x0016 */
"_", /* 0x0017 */
"_", /* 0x0018 */
"_", /* 0x0019 */
"_", /* 0x001A */
"_", /* 0x001B */
"_", /* 0x001C */
"_", /* 0x001D */
"_", /* 0x001E */
"_", /* 0x001F */
"_", /* 0x0020 */
"_", /* 0x0021 */
"_", /* 0x0022 */
"#", /* 0x0023 */
"_", /* 0x0024 */
"%", /* 0x0025 */
"_and_", /* 0x0026 */
"_", /* 0x0027 */
"_", /* 0x0028 */
"_", /* 0x0029 */
"_", /* 0x002A */
"+", /* 0x002B */
",", /* 0x002C */
"-", /* 0x002D */
".", /* 0x002E */
"_", /* 0x002F */
"0", /* 0x0030 */
"1", /* 0x0031 */
"2", /* 0x0032 */
"3", /* 0x0033 */
"4", /* 0x0034 */
"5", /* 0x0035 */
"6", /* 0x0036 */
"7", /* 0x0037 */
"8", /* 0x0038 */
"9", /* 0x0039 */
"_", /* 0x003A */
"_", /* 0x003B */
"_", /* 0x003C */
"=", /* 0x003D */
"_", /* 0x003E */
"_", /* 0x003F */
"_", /* 0x0040 */
"A", /* 0x0041 */
"B", /* 0x0042 */
"C", /* 0x0043 */
"D", /* 0x0044 */
"E", /* 0x0045 */
"F", /* 0x0046 */
"G", /* 0x0047 */
"H", /* 0x0048 */
"I", /* 0x0049 */
"J", /* 0x004A */
"K", /* 0x004B */
"L", /* 0x004C */
"M", /* 0x004D */
"N", /* 0x004E */
"O", /* 0x004F */
"P", /* 0x0050 */
"Q", /* 0x0051 */
"R", /* 0x0052 */
"S", /* 0x0053 */
"T", /* 0x0054 */
"U", /* 0x0055 */
"V", /* 0x0056 */
"W", /* 0x0057 */
"X", /* 0x0058 */
"Y", /* 0x0059 */
"Z", /* 0x005A */
"_", /* 0x005B */
"_", /* 0x005C */
"_", /* 0x005D */
"^", /* 0x005E */
"_", /* 0x005F */
"_", /* 0x0060 */
"a", /* 0x0061 */
"b", /* 0x0062 */
"c", /* 0x0063 */
"d", /* 0x0064 */
"e", /* 0x0065 */
"f", /* 0x0066 */
"g", /* 0x0067 */
"h", /* 0x0068 */
"i", /* 0x0069 */
"j", /* 0x006A */
"k", /* 0x006B */
"l", /* 0x006C */
"m", /* 0x006D */
"n", /* 0x006E */
"o", /* 0x006F */
"p", /* 0x0070 */
"q", /* 0x0071 */
"r", /* 0x0072 */
"s", /* 0x0073 */
"t", /* 0x0074 */
"u", /* 0x0075 */
"v", /* 0x0076 */
"w", /* 0x0077 */
"x", /* 0x0078 */
"y", /* 0x0079 */
"z", /* 0x007A */
"_", /* 0x007B */
"_", /* 0x007C */
"_", /* 0x007D */
"~", /* 0x007E */
"_", /* 0x007F */
"_", /* 0x0080 */
"_", /* 0x0081 */
"_", /* 0x0082 */
"_", /* 0x0083 */
"_", /* 0x0084 */
"...", /* 0x0085 */
"_", /* 0x0086 */
"_", /* 0x0087 */
"^", /* 0x0088 */
"_", /* 0x0089 */
"S", /* 0x008A */
"_", /* 0x008B */
"OE", /* 0x008C */
"_", /* 0x008D */
"_", /* 0x008E */
"_", /* 0x008F */
"_", /* 0x0090 */
"_", /* 0x0091 */
"_", /* 0x0092 */
"_", /* 0x0093 */
"_", /* 0x0094 */
"_", /* 0x0095 */
"-", /* 0x0096 */
"-", /* 0x0097 */
"_", /* 0x0098 */
"_tm_", /* 0x0099 */
"s", /* 0x009A */
"_", /* 0x009B */
"oe", /* 0x009C */
"_", /* 0x009D */
"_", /* 0x009E */
"Y", /* 0x009F */
"_", /* 0x00A0 */
"_", /* 0x00A1 */
"_cent_", /* 0x00A2 */
"_pound_", /* 0x00A3 */
"_", /* 0x00A4 */
"_yen_", /* 0x00A5 */
"_", /* 0x00A6 */
"_", /* 0x00A7 */
"_", /* 0x00A8 */
"_copy_", /* 0x00A9 */
"_", /* 0x00AA */
"_", /* 0x00AB */
"_", /* 0x00AC */
"_", /* 0x00AD */
"_reg_", /* 0x00AE */
"_", /* 0x00AF */
"_", /* 0x00B0 */
"_", /* 0x00B1 */
"2", /* 0x00B2 */
"3", /* 0x00B3 */
"_", /* 0x00B4 */
"b", /* 0x00B5 */
"_pp_", /* 0x00B6 */
"_", /* 0x00B7 */
"_", /* 0x00B8 */
"1", /* 0x00B9 */
"_", /* 0x00BA */
"_", /* 0x00BB */
"_", /* 0x00BC */
"_", /* 0x00BD */
"_", /* 0x00BE */
"_", /* 0x00BF */
"A", /* 0x00C0 */
"A", /* 0x00C1 */
"A", /* 0x00C2 */
"A", /* 0x00C3 */
"A", /* 0x00C4 */
"A", /* 0x00C5 */
"AE", /* 0x00C6 */
"C", /* 0x00C7 */
"E", /* 0x00C8 */
"E", /* 0x00C9 */
"E", /* 0x00CA */
"E", /* 0x00CB */
"I", /* 0x00CC */
"I", /* 0x00CD */
"I", /* 0x00CE */
"I", /* 0x00CF */
"TH", /* 0x00D0 */
"N", /* 0x00D1 */
"O", /* 0x00D2 */
"O", /* 0x00D3 */
"O", /* 0x00D4 */
"O", /* 0x00D5 */
"O", /* 0x00D6 */
"x", /* 0x00D7 */
"O", /* 0x00D8 */
"U", /* 0x00D9 */
"U", /* 0x00DA */
"U", /* 0x00DB */
"U", /* 0x00DC */
"Y", /* 0x00DD */
"TH", /* 0x00DE */
"ss", /* 0x00DF */
"a", /* 0x00E0 */
"a", /* 0x00E1 */
"a", /* 0x00E2 */
"a", /* 0x00E3 */
"a", /* 0x00E4 */
"a", /* 0x00E5 */
"ae", /* 0x00E6 */
"c", /* 0x00E7 */
"e", /* 0x00E8 */
"e", /* 0x00E9 */
"e", /* 0x00EA */
"e", /* 0x00EB */
"i", /* 0x00EC */
"i", /* 0x00ED */
"i", /* 0x00EE */
"i", /* 0x00EF */
"th", /* 0x00F0 */
"n", /* 0x00F1 */
"o", /* 0x00F2 */
"o", /* 0x00F3 */
"o", /* 0x00F4 */
"o", /* 0x00F5 */
"o", /* 0x00F6 */
"_", /* 0x00F7 */
"o", /* 0x00F8 */
"u", /* 0x00F9 */
"u", /* 0x00FA */
"u", /* 0x00FB */
"u", /* 0x00FC */
"y", /* 0x00FD */
"th", /* 0x00FE */
"y", /* 0x00FF */
};

View File

@ -0,0 +1,131 @@
# This file is part of the Detox package.
#
# Copyright (c) Doug Harple <detox.dharple@gmail.com>
#
# For the full copyright and license information, please view the LICENSE
# file that was distributed with this source code.
#
# Special thanks to: http://www.bbsinc.com/iso8859.html
#
default _
start
#
# CP 1252
#
0x85 ... # HORIZONTAL ELLIPSIS
0x88 ^ # MODIFIER LETTER CIRCUMFLEX ACCENT
0x8A S # LATIN CAPITAL LETTER S WITH CARON
0x8C OE # LATIN CAPITAL LIGATURE OE
0x96 - # EN DASH
0x97 - # EM DASH
0x99 _tm_ # TRADE MARK SIGN
0x9A s # LATIN SMALL LETTER S WITH CARON
0x9C oe # LATIN SMALL LIGATURE OE
0x9F Y # LATIN CAPITAL LETTER Y WITH DIAERESIS
#
# Latin 1
#
0xA2 _cent_
0xA3 _pound_
0xA5 _yen_
0xA9 _copy_
0xAE _reg_
0xB2 2
0xB3 3
0xB5 b
0xB6 _pp_
0xB9 1
0xC0 A # LATIN CAPITAL LETTER A WITH GRAVE
0xC1 A # LATIN CAPITAL LETTER A WITH ACUTE
0xC2 A # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xC3 A # LATIN CAPITAL LETTER A WITH TILDE
0xC4 A # LATIN CAPITAL LETTER A WITH DIAERESIS
0xC5 A # LATIN CAPITAL LETTER A WITH RING ABOVE
0xC6 AE # LATIN CAPITAL LETTER AE
0xC7 C # LATIN CAPITAL LETTER C WITH CEDILLA
0xC8 E # LATIN CAPITAL LETTER E WITH GRAVE
0xC9 E # LATIN CAPITAL LETTER E WITH ACUTE
0xCA E # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xCB E # LATIN CAPITAL LETTER E WITH DIAERESIS
0xCC I # LATIN CAPITAL LETTER I WITH GRAVE
0xCD I # LATIN CAPITAL LETTER I WITH ACUTE
0xCE I # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xCF I # LATIN CAPITAL LETTER I WITH DIAERESIS
0xD0 TH # LATIN CAPITAL LETTER ETH (Icelandic)
0xD1 N # LATIN CAPITAL LETTER N WITH TILDE
0xD2 O # LATIN CAPITAL LETTER O WITH GRAVE
0xD3 O # LATIN CAPITAL LETTER O WITH ACUTE
0xD4 O # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xD5 O # LATIN CAPITAL LETTER O WITH TILDE
0xD6 O # LATIN CAPITAL LETTER O WITH DIAERESIS
0xD7 x # MULTIPLICATION SIGN
0xD8 O # LATIN CAPITAL LETTER O WITH STROKE
0xD9 U # LATIN CAPITAL LETTER U WITH GRAVE
0xDA U # LATIN CAPITAL LETTER U WITH ACUTE
0xDB U # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xDC U # LATIN CAPITAL LETTER U WITH DIAERESIS
0xDD Y # LATIN CAPITAL LETTER Y WITH ACUTE
0xDE TH # LATIN CAPITAL LETTER THORN (Icelandic)
0xDF ss # LATIN SMALL LETTER SHARP S (German)
0xE0 a # LATIN SMALL LETTER A WITH GRAVE
0xE1 a # LATIN SMALL LETTER A WITH ACUTE
0xE2 a # LATIN SMALL LETTER A WITH CIRCUMFLEX
0xE3 a # LATIN SMALL LETTER A WITH TILDE
0xE4 a # LATIN SMALL LETTER A WITH DIAERESIS
0xE5 a # LATIN SMALL LETTER A WITH RING ABOVE
0xE6 ae # LATIN SMALL LETTER AE
0xE7 c # LATIN SMALL LETTER C WITH CEDILLA
0xE8 e # LATIN SMALL LETTER E WITH GRAVE
0xE9 e # LATIN SMALL LETTER E WITH ACUTE
0xEA e # LATIN SMALL LETTER E WITH CIRCUMFLEX
0xEB e # LATIN SMALL LETTER E WITH DIAERESIS
0xEC i # LATIN SMALL LETTER I WITH GRAVE
0xED i # LATIN SMALL LETTER I WITH ACUTE
0xEE i # LATIN SMALL LETTER I WITH CIRCUMFLEX
0xEF i # LATIN SMALL LETTER I WITH DIAERESIS
0xF0 th # LATIN SMALL LETTER ETH (Icelandic)
0xF1 n # LATIN SMALL LETTER N WITH TILDE
0xF2 o # LATIN SMALL LETTER O WITH GRAVE
0xF3 o # LATIN SMALL LETTER O WITH ACUTE
0xF4 o # LATIN SMALL LETTER O WITH CIRCUMFLEX
0xF5 o # LATIN SMALL LETTER O WITH TILDE
0xF6 o # LATIN SMALL LETTER O WITH DIAERESIS
0xF8 o # LATIN SMALL LETTER O WITH STROKE
0xF9 u # LATIN SMALL LETTER U WITH GRAVE
0xFA u # LATIN SMALL LETTER U WITH ACUTE
0xFB u # LATIN SMALL LETTER U WITH CIRCUMFLEX
0xFC u # LATIN SMALL LETTER U WITH DIAERESIS
0xFD y # LATIN SMALL LETTER Y WITH ACUTE
0xFE th # LATIN SMALL LETTER THORN (Icelandic)
0xFF y # LATIN SMALL LETTER Y WITH DIAERESIS
end
#
# German specific conversions
#
start de
0xC4 AE # LATIN CAPITAL LETTER A WITH UMLAUT
0xD6 OE # LATIN CAPITAL LETTER O WITH UMLAUT
0xDC UE # LATIN CAPITAL LETTER U WITH UMLAUT
0xE4 ae # LATIN SMALL LETTER A WITH UMLAUT
0xF6 oe # LATIN SMALL LETTER O WITH UMLAUT
0xFC ue # LATIN SMALL LETTER U WITH UMLAUT
end

View File

@ -0,0 +1,136 @@
# This file is part of the Detox package.
#
# Copyright (c) Doug Harple <detox.dharple@gmail.com>
#
# For the full copyright and license information, please view the LICENSE
# file that was distributed with this source code.
start
#
# Alphanumeric
#
0x30 0
0x31 1
0x32 2
0x33 3
0x34 4
0x35 5
0x36 6
0x37 7
0x38 8
0x39 9
0x41 A
0x42 B
0x43 C
0x44 D
0x45 E
0x46 F
0x47 G
0x48 H
0x49 I
0x4a J
0x4b K
0x4c L
0x4d M
0x4e N
0x4f O
0x50 P
0x51 Q
0x52 R
0x53 S
0x54 T
0x55 U
0x56 V
0x57 W
0x58 X
0x59 Y
0x5a Z
0x61 a
0x62 b
0x63 c
0x64 d
0x65 e
0x66 f
0x67 g
0x68 h
0x69 i
0x6a j
0x6b k
0x6c l
0x6d m
0x6e n
0x6f o
0x70 p
0x71 q
0x72 r
0x73 s
0x74 t
0x75 u
0x76 v
0x77 w
0x78 x
0x79 y
0x7a z
#
# Chars to leave alone
#
0x23 '#'
0x25 %
0x2b +
0x2c ,
0x2d -
0x2e .
0x3d =
0x5e ^
0x5f _
0x7e ~
#
# Chars to translate to _
#
0x09 _ # tab
0x0A _ # new line
0x0D _ # carriage return
0x20 _ # space
0x21 _ # !
0x22 _ # "
0x24 _ # $
0x27 _ # '
0x2a _ # *
0x2f _ # /
0x3a _ # :
0x3b _ # ;
0x3c _ # <
0x3e _ # >
0x3f _ # ?
0x40 _ # @
0x5c _ # \
0x60 _ # `
0x7c _ # |
#
# Chars to translate to -
#
0x28 - # (
0x29 - # )
0x5b - # [
0x5d - # ]
0x7b - # {
0x7d - # }
#
# Other
#
0x26 _and_ # &
end

View File

@ -0,0 +1,386 @@
# This file is part of the Detox package.
#
# Copyright (c) Doug Harple <detox.dharple@gmail.com>
#
# For the full copyright and license information, please view the LICENSE
# file that was distributed with this source code.
#
# Special thanks to: http://www.unicode.org/Public/UNIDATA/UnicodeData.txt
#
# Used for translating Icelandic:
# http://www.bartleby.com/65/th/Thingval.html
# http://www.wordiq.com/definition/Thorn_%28letter%29
# http://www.wordiq.com/definition/Edh
#
# Greenlandic:
# http://std.dkuug.dk/cultreg/registrations/narrative/da_DK,_4.3.html
#
# Sami:
# http://www.wordiq.com/definition/Sami_languages
#
# Germanic:
# http://www.wordiq.com/definition/%DF
#
default _
start
#
# Basic Latin - This is a subset of the basic 7-bit ASCII table, with unsafe
# characters removed.
#
0x0023 # # NUMBER SIGN
0x0025 % # PERCENT SIGN
0x0026 _and_ # AMPERSAND
0x002B + # PLUS SIGN
0x002C , # COMMA
0x002D - # HYPHEN-MINUS
0x002E . # FULL STOP
0x0030 0 # DIGIT ZERO
0x0031 1 # DIGIT ONE
0x0032 2 # DIGIT TWO
0x0033 3 # DIGIT THREE
0x0034 4 # DIGIT FOUR
0x0035 5 # DIGIT FIVE
0x0036 6 # DIGIT SIX
0x0037 7 # DIGIT SEVEN
0x0038 8 # DIGIT EIGHT
0x0039 9 # DIGIT NINE
0x003D = # EQUALS SIGN
0x0041 A # LATIN CAPITAL LETTER A
0x0042 B # LATIN CAPITAL LETTER B
0x0043 C # LATIN CAPITAL LETTER C
0x0044 D # LATIN CAPITAL LETTER D
0x0045 E # LATIN CAPITAL LETTER E
0x0046 F # LATIN CAPITAL LETTER F
0x0047 G # LATIN CAPITAL LETTER G
0x0048 H # LATIN CAPITAL LETTER H
0x0049 I # LATIN CAPITAL LETTER I
0x004A J # LATIN CAPITAL LETTER J
0x004B K # LATIN CAPITAL LETTER K
0x004C L # LATIN CAPITAL LETTER L
0x004D M # LATIN CAPITAL LETTER M
0x004E N # LATIN CAPITAL LETTER N
0x004F O # LATIN CAPITAL LETTER O
0x0050 P # LATIN CAPITAL LETTER P
0x0051 Q # LATIN CAPITAL LETTER Q
0x0052 R # LATIN CAPITAL LETTER R
0x0053 S # LATIN CAPITAL LETTER S
0x0054 T # LATIN CAPITAL LETTER T
0x0055 U # LATIN CAPITAL LETTER U
0x0056 V # LATIN CAPITAL LETTER V
0x0057 W # LATIN CAPITAL LETTER W
0x0058 X # LATIN CAPITAL LETTER X
0x0059 Y # LATIN CAPITAL LETTER Y
0x005A Z # LATIN CAPITAL LETTER Z
0x005E ^ # CIRCUMFLEX ACCENT
0x0061 a # LATIN SMALL LETTER A
0x0062 b # LATIN SMALL LETTER B
0x0063 c # LATIN SMALL LETTER C
0x0064 d # LATIN SMALL LETTER D
0x0065 e # LATIN SMALL LETTER E
0x0066 f # LATIN SMALL LETTER F
0x0067 g # LATIN SMALL LETTER G
0x0068 h # LATIN SMALL LETTER H
0x0069 i # LATIN SMALL LETTER I
0x006A j # LATIN SMALL LETTER J
0x006B k # LATIN SMALL LETTER K
0x006C l # LATIN SMALL LETTER L
0x006D m # LATIN SMALL LETTER M
0x006E n # LATIN SMALL LETTER N
0x006F o # LATIN SMALL LETTER O
0x0070 p # LATIN SMALL LETTER P
0x0071 q # LATIN SMALL LETTER Q
0x0072 r # LATIN SMALL LETTER R
0x0073 s # LATIN SMALL LETTER S
0x0074 t # LATIN SMALL LETTER T
0x0075 u # LATIN SMALL LETTER U
0x0076 v # LATIN SMALL LETTER V
0x0077 w # LATIN SMALL LETTER W
0x0078 x # LATIN SMALL LETTER X
0x0079 y # LATIN SMALL LETTER Y
0x007A z # LATIN SMALL LETTER Z
0x007E ~ # TILDE
#
# CP 1252
#
0x0085 ... # HORIZONTAL ELLIPSIS
0x0088 ^ # MODIFIER LETTER CIRCUMFLEX ACCENT
0x008A S # LATIN CAPITAL LETTER S WITH CARON
0x008C OE # LATIN CAPITAL LIGATURE OE
0x0096 - # EN DASH
0x0097 - # EM DASH
0x0099 _tm_ # TRADE MARK SIGN
0x009A s # LATIN SMALL LETTER S WITH CARON
0x009C oe # LATIN SMALL LIGATURE OE
0x009F Y # LATIN CAPITAL LETTER Y WITH DIAERESIS
#
# Latin 1
#
0x00A2 _cent_
0x00A3 _pound_
0x00A5 _yen_
0x00A9 _copy_
0x00AE _reg_
0x00B2 2
0x00B3 3
0x00B5 b
0x00B6 _pp_
0x00B9 1
0x00C0 A # LATIN CAPITAL LETTER A WITH GRAVE
0x00C1 A # LATIN CAPITAL LETTER A WITH ACUTE
0x00C2 A # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0x00C3 A # LATIN CAPITAL LETTER A WITH TILDE
0x00C4 A # LATIN CAPITAL LETTER A WITH DIAERESIS
0x00C5 A # LATIN CAPITAL LETTER A WITH RING ABOVE
0x00C6 AE # LATIN CAPITAL LETTER AE
0x00C7 C # LATIN CAPITAL LETTER C WITH CEDILLA
0x00C8 E # LATIN CAPITAL LETTER E WITH GRAVE
0x00C9 E # LATIN CAPITAL LETTER E WITH ACUTE
0x00CA E # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0x00CB E # LATIN CAPITAL LETTER E WITH DIAERESIS
0x00CC I # LATIN CAPITAL LETTER I WITH GRAVE
0x00CD I # LATIN CAPITAL LETTER I WITH ACUTE
0x00CE I # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0x00CF I # LATIN CAPITAL LETTER I WITH DIAERESIS
0x00D0 TH # LATIN CAPITAL LETTER ETH (Icelandic)
0x00D1 N # LATIN CAPITAL LETTER N WITH TILDE
0x00D2 O # LATIN CAPITAL LETTER O WITH GRAVE
0x00D3 O # LATIN CAPITAL LETTER O WITH ACUTE
0x00D4 O # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0x00D5 O # LATIN CAPITAL LETTER O WITH TILDE
0x00D6 O # LATIN CAPITAL LETTER O WITH DIAERESIS
0x00D7 x # MULTIPLICATION SIGN
0x00D8 O # LATIN CAPITAL LETTER O WITH STROKE
0x00D9 U # LATIN CAPITAL LETTER U WITH GRAVE
0x00DA U # LATIN CAPITAL LETTER U WITH ACUTE
0x00DB U # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0x00DC U # LATIN CAPITAL LETTER U WITH DIAERESIS
0x00DD Y # LATIN CAPITAL LETTER Y WITH ACUTE
0x00DE TH # LATIN CAPITAL LETTER THORN (Icelandic)
0x00DF ss # LATIN SMALL LETTER SHARP S (German)
0x00E0 a # LATIN SMALL LETTER A WITH GRAVE
0x00E1 a # LATIN SMALL LETTER A WITH ACUTE
0x00E2 a # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x00E3 a # LATIN SMALL LETTER A WITH TILDE
0x00E4 a # LATIN SMALL LETTER A WITH DIAERESIS
0x00E5 a # LATIN SMALL LETTER A WITH RING ABOVE
0x00E6 ae # LATIN SMALL LETTER AE
0x00E7 c # LATIN SMALL LETTER C WITH CEDILLA
0x00E8 e # LATIN SMALL LETTER E WITH GRAVE
0x00E9 e # LATIN SMALL LETTER E WITH ACUTE
0x00EA e # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x00EB e # LATIN SMALL LETTER E WITH DIAERESIS
0x00EC i # LATIN SMALL LETTER I WITH GRAVE
0x00ED i # LATIN SMALL LETTER I WITH ACUTE
0x00EE i # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x00EF i # LATIN SMALL LETTER I WITH DIAERESIS
0x00F0 th # LATIN SMALL LETTER ETH (Icelandic)
0x00F1 n # LATIN SMALL LETTER N WITH TILDE
0x00F2 o # LATIN SMALL LETTER O WITH GRAVE
0x00F3 o # LATIN SMALL LETTER O WITH ACUTE
0x00F4 o # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x00F5 o # LATIN SMALL LETTER O WITH TILDE
0x00F6 o # LATIN SMALL LETTER O WITH DIAERESIS
0x00F8 o # LATIN SMALL LETTER O WITH STROKE
0x00F9 u # LATIN SMALL LETTER U WITH GRAVE
0x00FA u # LATIN SMALL LETTER U WITH ACUTE
0x00FB u # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x00FC u # LATIN SMALL LETTER U WITH DIAERESIS
0x00FD y # LATIN SMALL LETTER Y WITH ACUTE
0x00FE th # LATIN SMALL LETTER THORN (Icelandic)
0x00FF y # LATIN SMALL LETTER Y WITH DIAERESIS
#
# Latin Extended A
#
0x0100 A # LATIN CAPITAL LETTER A WITH MACRON
0x0101 a # LATIN SMALL LETTER A WITH MACRON
0x0102 A # LATIN CAPITAL LETTER A WITH BREVE
0x0103 a # LATIN SMALL LETTER A WITH BREVE
0x0104 A # LATIN CAPITAL LETTER A WITH OGONEK
0x0105 a # LATIN SMALL LETTER A WITH OGONEK
0x0106 C # LATIN CAPITAL LETTER C WITH ACUTE
0x0107 c # LATIN SMALL LETTER C WITH ACUTE
0x0108 C # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
0x0109 c # LATIN SMALL LETTER C WITH CIRCUMFLEX
0x010A C # LATIN CAPITAL LETTER C WITH DOT ABOVE
0x010B c # LATIN SMALL LETTER C WITH DOT ABOVE
0x010C C # LATIN CAPITAL LETTER C WITH CARON
0x010D c # LATIN SMALL LETTER C WITH CARON
0x010E D # LATIN CAPITAL LETTER D WITH CARON
0x010F d # LATIN SMALL LETTER D WITH CARON
0x0110 D # LATIN CAPITAL LETTER D WITH STROKE
0x0111 d # LATIN SMALL LETTER D WITH STROKE
0x0112 E # LATIN CAPITAL LETTER E WITH MACRON
0x0113 e # LATIN SMALL LETTER E WITH MACRON
0x0114 E # LATIN CAPITAL LETTER E WITH BREVE
0x0115 e # LATIN SMALL LETTER E WITH BREVE
0x0116 E # LATIN CAPITAL LETTER E WITH DOT ABOVE
0x0117 e # LATIN SMALL LETTER E WITH DOT ABOVE
0x0118 E # LATIN CAPITAL LETTER E WITH OGONEK
0x0119 e # LATIN SMALL LETTER E WITH OGONEK
0x011A E # LATIN CAPITAL LETTER E WITH CARON
0x011B e # LATIN SMALL LETTER E WITH CARON
0x011C G # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
0x011D g # LATIN SMALL LETTER G WITH CIRCUMFLEX
0x011E G # LATIN CAPITAL LETTER G WITH BREVE
0x011F g # LATIN SMALL LETTER G WITH BREVE
0x0120 G # LATIN CAPITAL LETTER G WITH DOT ABOVE
0x0121 g # LATIN SMALL LETTER G WITH DOT ABOVE
0x0122 G # LATIN CAPITAL LETTER G WITH CEDILLA
0x0123 g # LATIN SMALL LETTER G WITH CEDILLA
0x0124 H # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
0x0125 h # LATIN SMALL LETTER H WITH CIRCUMFLEX
0x0126 H # LATIN CAPITAL LETTER H WITH STROKE
0x0127 h # LATIN SMALL LETTER H WITH STROKE
0x0128 I # LATIN CAPITAL LETTER I WITH TILDE
0x0129 i # LATIN SMALL LETTER I WITH TILDE
0x012A I # LATIN CAPITAL LETTER I WITH MACRON
0x012B i # LATIN SMALL LETTER I WITH MACRON
0x012C I # LATIN CAPITAL LETTER I WITH BREVE
0x012D i # LATIN SMALL LETTER I WITH BREVE
0x012E I # LATIN CAPITAL LETTER I WITH OGONEK
0x012F i # LATIN SMALL LETTER I WITH OGONEK
0x0130 I # LATIN CAPITAL LETTER I WITH DOT ABOVE
0x0131 i # LATIN SMALL LETTER DOTLESS I
0x0132 IJ # LATIN CAPITAL LIGATURE IJ
0x0133 ij # LATIN SMALL LIGATURE IJ
0x0134 J # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
0x0135 j # LATIN SMALL LETTER J WITH CIRCUMFLEX
0x0136 K # LATIN CAPITAL LETTER K WITH CEDILLA
0x0137 k # LATIN SMALL LETTER K WITH CEDILLA
0x0138 q # LATIN SMALL LETTER KRA (Greenlandic)
0x0139 L # LATIN CAPITAL LETTER L WITH ACUTE
0x013A l # LATIN SMALL LETTER L WITH ACUTE
0x013B L # LATIN CAPITAL LETTER L WITH CEDILLA
0x013C l # LATIN SMALL LETTER L WITH CEDILLA
0x013D L # LATIN CAPITAL LETTER L WITH CARON
0x013E l # LATIN SMALL LETTER L WITH CARON
0x013F L # LATIN CAPITAL LETTER L WITH MIDDLE DOT
0x0140 l # LATIN SMALL LETTER L WITH MIDDLE DOT
0x0141 L # LATIN CAPITAL LETTER L WITH STROKE
0x0142 l # LATIN SMALL LETTER L WITH STROKE
0x0143 N # LATIN CAPITAL LETTER N WITH ACUTE
0x0144 n # LATIN SMALL LETTER N WITH ACUTE
0x0145 N # LATIN CAPITAL LETTER N WITH CEDILLA
0x0146 n # LATIN SMALL LETTER N WITH CEDILLA
0x0147 N # LATIN CAPITAL LETTER N WITH CARON
0x0148 n # LATIN SMALL LETTER N WITH CARON
0x0149 n # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
0x014A NG # LATIN CAPITAL LETTER ENG (Sami)
0x014B ng # LATIN SMALL LETTER ENG (Sami)
0x014C O # LATIN CAPITAL LETTER O WITH MACRON
0x014D o # LATIN SMALL LETTER O WITH MACRON
0x014E O # LATIN CAPITAL LETTER O WITH BREVE
0x014F o # LATIN SMALL LETTER O WITH BREVE
0x0150 O # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
0x0151 o # LATIN SMALL LETTER O WITH DOUBLE ACUTE
0x0152 OE # LATIN CAPITAL LIGATURE OE
0x0153 oe # LATIN SMALL LIGATURE OE
0x0154 R # LATIN CAPITAL LETTER R WITH ACUTE
0x0155 r # LATIN SMALL LETTER R WITH ACUTE
0x0156 R # LATIN CAPITAL LETTER R WITH CEDILLA
0x0157 r # LATIN SMALL LETTER R WITH CEDILLA
0x0158 R # LATIN CAPITAL LETTER R WITH CARON
0x0159 r # LATIN SMALL LETTER R WITH CARON
0x015A S # LATIN CAPITAL LETTER S WITH ACUTE
0x015B s # LATIN SMALL LETTER S WITH ACUTE
0x015C S # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
0x015D s # LATIN SMALL LETTER S WITH CIRCUMFLEX
0x015E S # LATIN CAPITAL LETTER S WITH CEDILLA
0x015F s # LATIN SMALL LETTER S WITH CEDILLA
0x0160 S # LATIN CAPITAL LETTER S WITH CARON
0x0161 s # LATIN SMALL LETTER S WITH CARON
0x0162 T # LATIN CAPITAL LETTER T WITH CEDILLA
0x0163 t # LATIN SMALL LETTER T WITH CEDILLA
0x0164 T # LATIN CAPITAL LETTER T WITH CARON
0x0165 t # LATIN SMALL LETTER T WITH CARON
0x0166 T # LATIN CAPITAL LETTER T WITH STROKE
0x0167 t # LATIN SMALL LETTER T WITH STROKE
0x0168 U # LATIN CAPITAL LETTER U WITH TILDE
0x0169 u # LATIN SMALL LETTER U WITH TILDE
0x016A U # LATIN CAPITAL LETTER U WITH MACRON
0x016B u # LATIN SMALL LETTER U WITH MACRON
0x016C U # LATIN CAPITAL LETTER U WITH BREVE
0x016D u # LATIN SMALL LETTER U WITH BREVE
0x016E U # LATIN CAPITAL LETTER U WITH RING ABOVE
0x016F u # LATIN SMALL LETTER U WITH RING ABOVE
0x0170 U # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
0x0171 u # LATIN SMALL LETTER U WITH DOUBLE ACUTE
0x0172 U # LATIN CAPITAL LETTER U WITH OGONEK
0x0173 u # LATIN SMALL LETTER U WITH OGONEK
0x0174 W # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
0x0175 w # LATIN SMALL LETTER W WITH CIRCUMFLEX
0x0176 Y # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
0x0177 y # LATIN SMALL LETTER Y WITH CIRCUMFLEX
0x0178 Y # LATIN CAPITAL LETTER Y WITH DIAERESIS
0x0179 Z # LATIN CAPITAL LETTER Z WITH ACUTE
0x017A z # LATIN SMALL LETTER Z WITH ACUTE
0x017B Z # LATIN CAPITAL LETTER Z WITH DOT ABOVE
0x017C z # LATIN SMALL LETTER Z WITH DOT ABOVE
0x017D Z # LATIN CAPITAL LETTER Z WITH CARON
0x017E z # LATIN SMALL LETTER Z WITH CARON
0x017F s # LATIN SMALL LETTER LONG S
#
# Dunno where
#
0x02C6 ^ # MODIFIER LETTER CIRCUMFLEX ACCENT
0x2010 - # HYPHEN
0x2011 - # NON-BREAKING HYPHEN
0x2012 - # FIGURE DASH
0x2013 - # EN DASH
0x2014 - # EM DASH
0x2015 - # HORIZONTAL BAR
0x2026 ... # HORIZONTAL ELLIPSIS
0x2122 _tm_ # TRADE MARK SIGN
end
#
# German specific conversions
#
start de
0x00C4 AE # LATIN CAPITAL LETTER A WITH UMLAUT
0x00D6 OE # LATIN CAPITAL LETTER O WITH UMLAUT
0x00DC UE # LATIN CAPITAL LETTER U WITH UMLAUT
0x00E4 ae # LATIN SMALL LETTER A WITH UMLAUT
0x00F6 oe # LATIN SMALL LETTER O WITH UMLAUT
0x00FC ue # LATIN SMALL LETTER U WITH UMLAUT
end

247
detox/latest/ylwrap Executable file
View File

@ -0,0 +1,247 @@
#! /bin/sh
# ylwrap - wrapper for lex/yacc invocations.
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
#
# Written by Tom Tromey <tromey@cygnus.com>.
#
# 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, see <https://www.gnu.org/licenses/>.
# 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@gnu.org> or send patches to
# <automake-patches@gnu.org>.
get_dirname ()
{
case $1 in
*/*|*\\*) printf '%s\n' "$1" | sed -e 's|\([\\/]\)[^\\/]*$|\1|';;
# Otherwise, we want the empty string (not ".").
esac
}
# guard FILE
# ----------
# The CPP macro used to guard inclusion of FILE.
guard ()
{
printf '%s\n' "$1" \
| sed \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g' \
-e 's/__*/_/g'
}
# quote_for_sed [STRING]
# ----------------------
# Return STRING (or stdin) quoted to be used as a sed pattern.
quote_for_sed ()
{
case $# in
0) cat;;
1) printf '%s\n' "$1";;
esac \
| sed -e 's|[][\\.*]|\\&|g'
}
case "$1" in
'')
echo "$0: No files given. Try '$0 --help' for more information." 1>&2
exit 1
;;
--basedir)
basedir=$2
shift 2
;;
-h|--h*)
cat <<\EOF
Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
Wrapper for lex/yacc invocations, renaming files as desired.
INPUT is the input file
OUTPUT is one file PROG generates
DESIRED is the file we actually want instead of OUTPUT
PROGRAM is program to run
ARGS are passed to PROG
Any number of OUTPUT,DESIRED pairs may be used.
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v|--v*)
echo "ylwrap $scriptversion"
exit $?
;;
esac
# The input.
input=$1
shift
# We'll later need for a correct munging of "#line" directives.
input_sub_rx=`get_dirname "$input" | quote_for_sed`
case $input in
[\\/]* | ?:[\\/]*)
# Absolute path; do nothing.
;;
*)
# Relative path. Make it absolute.
input=`pwd`/$input
;;
esac
input_rx=`get_dirname "$input" | quote_for_sed`
# Since DOS filename conventions don't allow two dots,
# the DOS version of Bison writes out y_tab.c instead of y.tab.c
# and y_tab.h instead of y.tab.h. Test to see if this is the case.
y_tab_nodot=false
if test -f y_tab.c || test -f y_tab.h; then
y_tab_nodot=true
fi
# The parser itself, the first file, is the destination of the .y.c
# rule in the Makefile.
parser=$1
# A sed program to s/FROM/TO/g for all the FROM/TO so that, for
# instance, we rename #include "y.tab.h" into #include "parse.h"
# during the conversion from y.tab.c to parse.c.
sed_fix_filenames=
# Also rename header guards, as Bison 2.7 for instance uses its header
# guard in its implementation file.
sed_fix_header_guards=
while test $# -ne 0; do
if test x"$1" = x"--"; then
shift
break
fi
from=$1
# Handle y_tab.c and y_tab.h output by DOS
if $y_tab_nodot; then
case $from in
"y.tab.c") from=y_tab.c;;
"y.tab.h") from=y_tab.h;;
esac
fi
shift
to=$1
shift
sed_fix_filenames="${sed_fix_filenames}s|"`quote_for_sed "$from"`"|$to|g;"
sed_fix_header_guards="${sed_fix_header_guards}s|"`guard "$from"`"|"`guard "$to"`"|g;"
done
# The program to run.
prog=$1
shift
# Make any relative path in $prog absolute.
case $prog in
[\\/]* | ?:[\\/]*) ;;
*[\\/]*) prog=`pwd`/$prog ;;
esac
dirname=ylwrap$$
do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit $ret'
trap "ret=129; $do_exit" 1
trap "ret=130; $do_exit" 2
trap "ret=141; $do_exit" 13
trap "ret=143; $do_exit" 15
mkdir $dirname || exit 1
cd $dirname
case $# in
0) "$prog" "$input" ;;
*) "$prog" "$@" "$input" ;;
esac
ret=$?
if test $ret -eq 0; then
for from in *
do
to=`printf '%s\n' "$from" | sed "$sed_fix_filenames"`
if test -f "$from"; then
# If $2 is an absolute path name, then just use that,
# otherwise prepend '../'.
case $to in
[\\/]* | ?:[\\/]*) target=$to;;
*) target=../$to;;
esac
# Do not overwrite unchanged header files to avoid useless
# recompilations. Always update the parser itself: it is the
# destination of the .y.c rule in the Makefile. Divert the
# output of all other files to a temporary file so we can
# compare them to existing versions.
if test $from != $parser; then
realtarget=$target
target=tmp-`printf '%s\n' "$target" | sed 's|.*[\\/]||g'`
fi
# Munge "#line" or "#" directives. Don't let the resulting
# debug information point at an absolute srcdir. Use the real
# output file name, not yy.lex.c for instance. Adjust the
# include guards too.
sed -e "/^#/!b" \
-e "s|$input_rx|$input_sub_rx|" \
-e "$sed_fix_filenames" \
-e "$sed_fix_header_guards" \
"$from" >"$target" || ret=$?
# Check whether files must be updated.
if test "$from" != "$parser"; then
if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then
echo "$to is unchanged"
rm -f "$target"
else
echo "updating $to"
mv -f "$target" "$realtarget"
fi
fi
else
# A missing file is only an error for the parser. This is a
# blatant hack to let us support using "yacc -d". If -d is not
# specified, don't fail when the header file is "missing".
if test "$from" = "$parser"; then
ret=1
fi
fi
done
fi
# Remove the directory.
cd ..
rm -rf $dirname
exit $ret
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End: