Linux polon 4.19.0-27-amd64 #1 SMP Debian 4.19.316-1 (2024-06-25) x86_64
Apache/2.4.59 (Debian)
: 10.2.73.233 | : 216.73.216.105
Cant Read [ /etc/named.conf ]
5.6.40-64+0~20230107.71+debian10~1.gbp673146
ifk
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
bin /
[ HOME SHELL ]
Name
Size
Permission
Action
X11
[ DIR ]
drwxr-xr-x
2to3-2.7
96
B
-rwxr-xr-x
GET
15.82
KB
-rwxr-xr-x
HEAD
15.82
KB
-rwxr-xr-x
Mail
110.24
KB
-rwxr-xr-x
POST
15.82
KB
-rwxr-xr-x
[
58.66
KB
-rwxr-xr-x
aa-enabled
30.21
KB
-rwxr-xr-x
aa-exec
30.21
KB
-rwxr-xr-x
ab
54.18
KB
-rwxr-xr-x
aclocal
35.62
KB
-rwxr-xr-x
aclocal-1.16
35.62
KB
-rwxr-xr-x
acpi
23.43
KB
-rwxr-xr-x
acpi_listen
14.27
KB
-rwxr-xr-x
add-apt-repository
6.21
KB
-rwxr-xr-x
addpart
26.08
KB
-rwxr-xr-x
addr2line
31.09
KB
-rwxr-xr-x
appletviewer
6.34
KB
-rwxr-xr-x
appres
10.23
KB
-rwxr-xr-x
apropos
54.98
KB
-rwxr-xr-x
apt
18.09
KB
-rwxr-xr-x
apt-add-repository
6.21
KB
-rwxr-xr-x
apt-cache
82.16
KB
-rwxr-xr-x
apt-cdrom
26.16
KB
-rwxr-xr-x
apt-config
26.09
KB
-rwxr-xr-x
apt-extracttemplates
22.16
KB
-rwxr-xr-x
apt-ftparchive
238.16
KB
-rwxr-xr-x
apt-get
46.16
KB
-rwxr-xr-x
apt-key
27.08
KB
-rwxr-xr-x
apt-listchanges
10.61
KB
-rwxr-xr-x
apt-mark
54.16
KB
-rwxr-xr-x
apt-sortpkgs
46.09
KB
-rwxr-xr-x
aptitude
4.18
MB
-rwxr-xr-x
aptitude-create-state-bundle
1.89
KB
-rwxr-xr-x
aptitude-curses
4.18
MB
-rwxr-xr-x
aptitude-run-state-bundle
2.78
KB
-rwxr-xr-x
ar
63.07
KB
-rwxr-xr-x
arch
38.66
KB
-rwxr-xr-x
aria_chk
4.54
MB
-rwxr-xr-x
aria_dump_log
4.35
MB
-rwxr-xr-x
aria_ftdump
4.37
MB
-rwxr-xr-x
aria_pack
4.39
MB
-rwxr-xr-x
aria_read_log
4.5
MB
-rwxr-xr-x
as
872.93
KB
-rwxr-xr-x
aspell
150.34
KB
-rwxr-xr-x
aspell-import
2
KB
-rwxr-xr-x
at
54.26
KB
-rwsr-sr-x
atq
54.26
KB
-rwsr-sr-x
atrm
54.26
KB
-rwsr-sr-x
autoconf
14.42
KB
-rwxr-xr-x
autoheader
8.34
KB
-rwxr-xr-x
autom4te
31.91
KB
-rwxr-xr-x
automake
251.9
KB
-rwxr-xr-x
automake-1.16
251.9
KB
-rwxr-xr-x
autopoint
25.97
KB
-rwxr-xr-x
autoreconf
20.67
KB
-rwxr-xr-x
autoscan
16.73
KB
-rwxr-xr-x
autoupdate
33.08
KB
-rwxr-xr-x
awk
658.81
KB
-rwxr-xr-x
b2sum
58.78
KB
-rwxr-xr-x
base32
42.69
KB
-rwxr-xr-x
base64
42.69
KB
-rwxr-xr-x
basename
38.59
KB
-rwxr-xr-x
bashbug
6.63
KB
-rwxr-xr-x
batch
152
B
-rwxr-xr-x
bc
86.7
KB
-rwxr-xr-x
bootctl
46.23
KB
-rwxr-xr-x
broadwayd
118.08
KB
-rwxr-xr-x
bsd-from
10.24
KB
-rwxr-xr-x
bsd-mailx
110.24
KB
-rwxr-xr-x
bsd-write
14.39
KB
-rwxr-sr-x
buildhash
38.38
KB
-rwxr-xr-x
busctl
78.19
KB
-rwxr-xr-x
c++
1.05
MB
-rwxr-xr-x
c++filt
30.69
KB
-rwxr-xr-x
c89
428
B
-rwxr-xr-x
c89-gcc
428
B
-rwxr-xr-x
c99
454
B
-rwxr-xr-x
c99-gcc
454
B
-rwxr-xr-x
c_rehash
6.13
KB
-rwxr-xr-x
cal
29.15
KB
-rwxr-xr-x
calendar
31.15
KB
-rwxr-xr-x
captoinfo
86.11
KB
-rwxr-xr-x
catchsegv
3.23
KB
-rwxr-xr-x
catman
38.46
KB
-rwxr-xr-x
cc
1.05
MB
-rwxr-xr-x
cd-create-profile
21.99
KB
-rwxr-xr-x
cd-fix-profile
25.99
KB
-rwxr-xr-x
cd-iccdump
13.99
KB
-rwxr-xr-x
cd-it8
21.99
KB
-rwxr-xr-x
chacl
13.99
KB
-rwxr-xr-x
chage
70.13
KB
-rwxr-sr-x
chardet
389
B
-rwxr-xr-x
chardet3
389
B
-rwxr-xr-x
chardetect
389
B
-rwxr-xr-x
chardetect3
389
B
-rwxr-xr-x
chattr
14
KB
-rwxr-xr-x
chcon
62.91
KB
-rwxr-xr-x
checkgid
13.99
KB
-rwxr-xr-x
chfn
52.83
KB
-rwsr-xr-x
choom
50.08
KB
-rwxr-xr-x
chrt
34.08
KB
-rwxr-xr-x
chsh
43.48
KB
-rwsr-xr-x
ckbcomp
146.38
KB
-rwxr-xr-x
cksum
38.63
KB
-rwxr-xr-x
clear
14
KB
-rwxr-xr-x
clear_console
14.3
KB
-rwxr-xr-x
clhsdb
6.35
KB
-rwxr-xr-x
cmp
50.64
KB
-rwxr-xr-x
codepage
14.21
KB
-rwxr-xr-x
col
10.23
KB
-rwxr-xr-x
colcrt
10.2
KB
-rwxr-xr-x
colormgr
53.99
KB
-rwxr-xr-x
colrm
10.19
KB
-rwxr-xr-x
column
10.34
KB
-rwxr-xr-x
comm
42.69
KB
-rwxr-xr-x
compose
17.74
KB
-rwxr-xr-x
corelist
14.73
KB
-rwxr-xr-x
cpan
7.96
KB
-rwxr-xr-x
cpan5.28-x86_64-linux-gnu
7.99
KB
-rwxr-xr-x
cpio-filter
1.22
KB
-rwxr-xr-x
cpp
1.05
MB
-rwxr-xr-x
cpp-4.9
814.43
KB
-rwxr-xr-x
cpp-6
930.77
KB
-rwxr-xr-x
cpp-8
1.05
MB
-rwxr-xr-x
crc32
1.04
KB
-rwxr-xr-x
crontab
42.55
KB
-rwxr-sr-x
csplit
54.84
KB
-rwxr-xr-x
ctstat
22.74
KB
-rwxr-xr-x
curl
226.07
KB
-rwxr-xr-x
cut
42.75
KB
-rwxr-xr-x
cvtsudoers
250.29
KB
-rwxr-xr-x
dbilogstrip
1.35
KB
-rwxr-xr-x
dbiprof
6.06
KB
-rwxr-xr-x
dbiproxy
5.27
KB
-rwxr-xr-x
dbus-cleanup-sockets
13.98
KB
-rwxr-xr-x
dbus-daemon
235.04
KB
-rwxr-xr-x
dbus-monitor
25.99
KB
-rwxr-xr-x
dbus-run-session
13.98
KB
-rwxr-xr-x
dbus-send
29.98
KB
-rwxr-xr-x
dbus-update-activation-environ...
13.98
KB
-rwxr-xr-x
dbus-uuidgen
13.98
KB
-rwxr-xr-x
dc
46.09
KB
-rwxr-xr-x
deallocvt
14.31
KB
-rwxr-xr-x
deb-systemd-helper
20.83
KB
-rwxr-xr-x
deb-systemd-invoke
4.33
KB
-rwxr-xr-x
debconf
2.79
KB
-rwxr-xr-x
debconf-apt-progress
11.27
KB
-rwxr-xr-x
debconf-communicate
608
B
-rwxr-xr-x
debconf-copydb
1.68
KB
-rwxr-xr-x
debconf-escape
647
B
-rwxr-xr-x
debconf-gettextize
15.97
KB
-rwxr-xr-x
debconf-set-selections
2.87
KB
-rwxr-xr-x
debconf-show
1.78
KB
-rwxr-xr-x
debconf-updatepo
4.46
KB
-rwxr-xr-x
debianbts
413
B
-rwxr-xr-x
defmt-c
5.99
KB
-rwxr-xr-x
defmt-sh
5.99
KB
-rwxr-xr-x
delpart
26.08
KB
-rwxr-xr-x
delv
44.83
KB
-rwxr-xr-x
dh
30.77
KB
-rwxr-xr-x
dh_auto_build
1.37
KB
-rwxr-xr-x
dh_auto_clean
1.51
KB
-rwxr-xr-x
dh_auto_configure
1.63
KB
-rwxr-xr-x
dh_auto_install
2.8
KB
-rwxr-xr-x
dh_auto_test
1.65
KB
-rwxr-xr-x
dh_autoreconf
6.46
KB
-rwxr-xr-x
dh_autoreconf_clean
2.1
KB
-rwxr-xr-x
dh_autotools-dev_restoreconfig
1.79
KB
-rwxr-xr-x
dh_autotools-dev_updateconfig
1.81
KB
-rwxr-xr-x
dh_bash-completion
2.39
KB
-rwxr-xr-x
dh_bugfiles
3.58
KB
-rwxr-xr-x
dh_builddeb
4.96
KB
-rwxr-xr-x
dh_clean
4.91
KB
-rwxr-xr-x
dh_compress
7.58
KB
-rwxr-xr-x
dh_dkms
4.2
KB
-rwxr-xr-x
dh_dwz
3.84
KB
-rwxr-xr-x
dh_fixperms
5.28
KB
-rwxr-xr-x
dh_gconf
2.78
KB
-rwxr-xr-x
dh_gencontrol
5.85
KB
-rwxr-xr-x
dh_icons
2.04
KB
-rwxr-xr-x
dh_install
11.24
KB
-rwxr-xr-x
dh_installcatalogs
3.25
KB
-rwxr-xr-x
dh_installchangelogs
9
KB
-rwxr-xr-x
dh_installcron
1.6
KB
-rwxr-xr-x
dh_installdeb
7.8
KB
-rwxr-xr-x
dh_installdebconf
3.21
KB
-rwxr-xr-x
dh_installdirs
3
KB
-rwxr-xr-x
dh_installdocs
14.67
KB
-rwxr-xr-x
dh_installemacsen
3.74
KB
-rwxr-xr-x
dh_installexamples
5.33
KB
-rwxr-xr-x
dh_installgsettings
2.24
KB
-rwxr-xr-x
dh_installifupdown
1.47
KB
-rwxr-xr-x
dh_installinfo
2.87
KB
-rwxr-xr-x
dh_installinit
14.31
KB
-rwxr-xr-x
dh_installinitramfs
2.18
KB
-rwxr-xr-x
dh_installlogcheck
1.94
KB
-rwxr-xr-x
dh_installlogrotate
1.14
KB
-rwxr-xr-x
dh_installman
11.07
KB
-rwxr-xr-x
dh_installmanpages
4.89
KB
-rwxr-xr-x
dh_installmenu
2.15
KB
-rwxr-xr-x
dh_installmime
1.3
KB
-rwxr-xr-x
dh_installmodules
2.63
KB
-rwxr-xr-x
dh_installpam
1.13
KB
-rwxr-xr-x
dh_installppp
1.38
KB
-rwxr-xr-x
dh_installsystemd
13.06
KB
-rwxr-xr-x
dh_installsystemduser
7.41
KB
-rwxr-xr-x
dh_installtex
17.95
KB
-rwxr-xr-x
dh_installudev
2.1
KB
-rwxr-xr-x
dh_installwm
3.25
KB
-rwxr-xr-x
dh_installxfonts
2.91
KB
-rwxr-xr-x
dh_link
4.24
KB
-rwxr-xr-x
dh_lintian
1.29
KB
-rwxr-xr-x
dh_listpackages
824
B
-rwxr-xr-x
dh_makeshlibs
10.87
KB
-rwxr-xr-x
dh_md5sums
3.4
KB
-rwxr-xr-x
dh_missing
6.32
KB
-rwxr-xr-x
dh_movefiles
4.69
KB
-rwxr-xr-x
dh_perl
4.23
KB
-rwxr-xr-x
dh_perl_dbi
1.04
KB
-rwxr-xr-x
dh_perl_openssl
1.36
KB
-rwxr-xr-x
dh_phpcomposer
3.01
KB
-rwxr-xr-x
dh_phppear
5.63
KB
-rwxr-xr-x
dh_prep
1.87
KB
-rwxr-xr-x
dh_pysupport
11.95
KB
-rwxr-xr-x
dh_python2
1.03
KB
-rwxr-xr-x
dh_shlibdeps
6.13
KB
-rwxr-xr-x
dh_strip
14.45
KB
-rwxr-xr-x
dh_strip_nondeterminism
2.68
KB
-rwxr-xr-x
dh_systemd_enable
8.97
KB
-rwxr-xr-x
dh_systemd_start
8.57
KB
-rwxr-xr-x
dh_testdir
1.3
KB
-rwxr-xr-x
dh_testroot
2.86
KB
-rwxr-xr-x
dh_ucf
2.29
KB
-rwxr-xr-x
dh_update_autotools_config
1.84
KB
-rwxr-xr-x
dh_usrlocal
4.2
KB
-rwxr-xr-x
diff
215.28
KB
-rwxr-xr-x
diff3
66.84
KB
-rwxr-xr-x
dig
146.51
KB
-rwxr-xr-x
dircolors
46.66
KB
-rwxr-xr-x
dirmngr
553.55
KB
-rwxr-xr-x
dirmngr-client
114.76
KB
-rwxr-xr-x
dirname
34.59
KB
-rwxr-xr-x
discover-config
2.86
KB
-rwxr-xr-x
dnstap-read
18.01
KB
-rwxr-xr-x
dos2unix
50.02
KB
-rwxr-xr-x
dotlockfile
18.5
KB
-rwxr-sr-x
dpkg
298.53
KB
-rwxr-xr-x
dpkg-architecture
12.55
KB
-rwxr-xr-x
dpkg-buildflags
7.39
KB
-rwxr-xr-x
dpkg-buildpackage
29.89
KB
-rwxr-xr-x
dpkg-checkbuilddeps
7.45
KB
-rwxr-xr-x
dpkg-deb
162.38
KB
-rwxr-xr-x
dpkg-distaddfile
2.72
KB
-rwxr-xr-x
dpkg-divert
150.44
KB
-rwxr-xr-x
dpkg-genbuildinfo
16.4
KB
-rwxr-xr-x
dpkg-genchanges
17.08
KB
-rwxr-xr-x
dpkg-gencontrol
13.82
KB
-rwxr-xr-x
dpkg-gensymbols
10.65
KB
-rwxr-xr-x
dpkg-maintscript-helper
20.03
KB
-rwxr-xr-x
dpkg-mergechangelogs
8.35
KB
-rwxr-xr-x
dpkg-name
6.63
KB
-rwxr-xr-x
dpkg-parsechangelog
4.46
KB
-rwxr-xr-x
dpkg-query
158.43
KB
-rwxr-xr-x
dpkg-scanpackages
8.49
KB
-rwxr-xr-x
dpkg-scansources
8.95
KB
-rwxr-xr-x
dpkg-shlibdeps
30.68
KB
-rwxr-xr-x
dpkg-source
22.48
KB
-rwxr-xr-x
dpkg-split
122.34
KB
-rwxr-xr-x
dpkg-statoverride
62.12
KB
-rwxr-xr-x
dpkg-trigger
78.34
KB
-rwxr-xr-x
dpkg-vendor
3.19
KB
-rwxr-xr-x
du
107.09
KB
-rwxr-xr-x
dumpkeys
174.91
KB
-rwxr-xr-x
dvipdf
1023
B
-rwxr-xr-x
dwp
2.74
MB
-rwxr-xr-x
dwz
164.09
KB
-rwxr-xr-x
edit
17.74
KB
-rwxr-xr-x
editor
240.39
KB
-rwxr-xr-x
editres
69.38
KB
-rwxr-xr-x
eject
30.69
KB
-rwxr-xr-x
elfedit
38.84
KB
-rwxr-xr-x
enc2xs
41.12
KB
-rwxr-xr-x
encguess
2.99
KB
-rwxr-xr-x
enchant
22.07
KB
-rwxr-xr-x
enchant-lsmod
13.99
KB
-rwxr-xr-x
env
42.66
KB
-rwxr-xr-x
envsubst
42.64
KB
-rwxr-xr-x
eps2eps
639
B
-rwxr-xr-x
eqn
201.19
KB
-rwxr-xr-x
ex
2.58
MB
-rwxr-xr-x
expand
42.69
KB
-rwxr-xr-x
expiry
30.27
KB
-rwxr-sr-x
expr
50.72
KB
-rwxr-xr-x
extcheck
6.34
KB
-rwxr-xr-x
factor
74.75
KB
-rwxr-xr-x
faillog
22.29
KB
-rwxr-xr-x
faked-sysv
26.56
KB
-rwxr-xr-x
faked-tcp
30.58
KB
-rwxr-xr-x
fakeroot
3.76
KB
-rwxr-xr-x
fakeroot-sysv
3.76
KB
-rwxr-xr-x
fakeroot-tcp
3.76
KB
-rwxr-xr-x
fallocate
30.08
KB
-rwxr-xr-x
fc-cache
18.51
KB
-rwxr-xr-x
fc-cat
18.46
KB
-rwxr-xr-x
fc-conflist
14.27
KB
-rwxr-xr-x
fc-list
14.34
KB
-rwxr-xr-x
fc-match
14.4
KB
-rwxr-xr-x
fc-pattern
14.33
KB
-rwxr-xr-x
fc-query
14.3
KB
-rwxr-xr-x
fc-scan
14.34
KB
-rwxr-xr-x
fc-validate
14.34
KB
-rwxr-xr-x
fcgistarter
13.99
KB
-rwxr-xr-x
filan
83.78
KB
-rwxr-xr-x
file
26.31
KB
-rwxr-xr-x
fincore
30.13
KB
-rwxr-xr-x
find
308.5
KB
-rwxr-xr-x
findaffix
11.74
KB
-rwxr-xr-x
finger
27.08
KB
-rwxr-xr-x
firewall-cmd
113.47
KB
-rwxr-xr-x
firewall-offline-cmd
101.17
KB
-rwxr-xr-x
flock
34.16
KB
-rwxr-xr-x
fmt
42.66
KB
-rwxr-xr-x
fold
38.66
KB
-rwxr-xr-x
formail
46.59
KB
-rwxr-xr-x
free
18.08
KB
-rwxr-xr-x
from
10.24
KB
-rwxr-xr-x
ftp
99.62
KB
-rwxr-xr-x
funzip
22.26
KB
-rwxr-xr-x
g++
1.05
MB
-rwxr-xr-x
g++-8
1.05
MB
-rwxr-xr-x
galera_new_cluster
917
B
-rwxr-xr-x
galera_recovery
3.28
KB
-rwxr-xr-x
gamma4scanimage
13.99
KB
-rwxr-xr-x
gapplication
22.07
KB
-rwxr-xr-x
gawk
658.81
KB
-rwxr-xr-x
gcc
1.05
MB
-rwxr-xr-x
gcc-4.9
813.49
KB
-rwxr-xr-x
gcc-6
926.77
KB
-rwxr-xr-x
gcc-8
1.05
MB
-rwxr-xr-x
gcc-ar
34.47
KB
-rwxr-xr-x
gcc-ar-4.9
24.25
KB
-rwxr-xr-x
gcc-ar-6
26.53
KB
-rwxr-xr-x
gcc-ar-8
34.47
KB
-rwxr-xr-x
gcc-nm
34.47
KB
-rwxr-xr-x
gcc-nm-4.9
24.19
KB
-rwxr-xr-x
gcc-nm-6
26.53
KB
-rwxr-xr-x
gcc-nm-8
34.47
KB
-rwxr-xr-x
gcc-ranlib
34.47
KB
-rwxr-xr-x
gcc-ranlib-4.9
24.19
KB
-rwxr-xr-x
gcc-ranlib-6
26.53
KB
-rwxr-xr-x
gcc-ranlib-8
34.47
KB
-rwxr-xr-x
gcov
672.09
KB
-rwxr-xr-x
gcov-4.9
440.43
KB
-rwxr-xr-x
gcov-6
507.93
KB
-rwxr-xr-x
gcov-8
672.09
KB
-rwxr-xr-x
gcov-dump
511.95
KB
-rwxr-xr-x
gcov-dump-6
439.86
KB
-rwxr-xr-x
gcov-dump-8
511.95
KB
-rwxr-xr-x
gcov-tool
548.02
KB
-rwxr-xr-x
gcov-tool-6
463.92
KB
-rwxr-xr-x
gcov-tool-8
548.02
KB
-rwxr-xr-x
gdbus
50.08
KB
-rwxr-xr-x
gdk-pixbuf-csource
14.01
KB
-rwxr-xr-x
gdk-pixbuf-pixdata
13.99
KB
-rwxr-xr-x
gdk-pixbuf-thumbnailer
18.08
KB
-rwxr-xr-x
gencat
26.6
KB
-rwxr-xr-x
geqn
201.19
KB
-rwxr-xr-x
getconf
34.37
KB
-rwxr-xr-x
getent
35.34
KB
-rwxr-xr-x
getfacl
30.62
KB
-rwxr-xr-x
getkeycodes
14.3
KB
-rwxr-xr-x
getopt
22.07
KB
-rwxr-xr-x
gettext
42.62
KB
-rwxr-xr-x
gettext.sh
4.52
KB
-rwxr-xr-x
gettextize
42.73
KB
-rwxr-xr-x
ghostscript
14.18
KB
-rwxr-xr-x
ginstall-info
47.73
KB
-rwxr-xr-x
gio
86.09
KB
-rwxr-xr-x
gio-querymodules
13.99
KB
-rwxr-xr-x
glib-compile-schemas
46.07
KB
-rwxr-xr-x
gold
2.97
MB
-rwxr-xr-x
gpasswd
82.05
KB
-rwsr-xr-x
gpg
1021.73
KB
-rwxr-xr-x
gpg-agent
396.73
KB
-rwxr-xr-x
gpg-connect-agent
158.85
KB
-rwxr-xr-x
gpg-wks-server
199.05
KB
-rwxr-xr-x
gpg-zip
3.43
KB
-rwxr-xr-x
gpg2
1021.73
KB
-rwxr-xr-x
gpgcompose
853.98
KB
-rwxr-xr-x
gpgconf
166.32
KB
-rwxr-xr-x
gpgparsemail
30.07
KB
-rwxr-xr-x
gpgsm
495.09
KB
-rwxr-xr-x
gpgsplit
82.45
KB
-rwxr-xr-x
gpgtar
151.32
KB
-rwxr-xr-x
gpgv
434.99
KB
-rwxr-xr-x
gpic
208.03
KB
-rwxr-xr-x
gprof
96.39
KB
-rwxr-xr-x
gresource
21.99
KB
-rwxr-xr-x
groff
117.22
KB
-rwxr-xr-x
grog
2.71
KB
-rwxr-xr-x
grops
177.63
KB
-rwxr-xr-x
grotty
129.25
KB
-rwxr-xr-x
groups
38.66
KB
-rwxr-xr-x
grub-editenv
369.96
KB
-rwxr-xr-x
grub-file
801.21
KB
-rwxr-xr-x
grub-fstest
922.9
KB
-rwxr-xr-x
grub-glue-efi
244.77
KB
-rwxr-xr-x
grub-kbdcomp
1.64
KB
-rwxr-xr-x
grub-menulst2cfg
228.85
KB
-rwxr-xr-x
grub-mkfont
269.46
KB
-rwxr-xr-x
grub-mkimage
349.96
KB
-rwxr-xr-x
grub-mklayout
249.09
KB
-rwxr-xr-x
grub-mknetdir
402.76
KB
-rwxr-xr-x
grub-mkpasswd-pbkdf2
249.15
KB
-rwxr-xr-x
grub-mkrelpath
240.49
KB
-rwxr-xr-x
grub-mkrescue
979.63
KB
-rwxr-xr-x
grub-mkstandalone
487.09
KB
-rwxr-xr-x
grub-mount
745.85
KB
-rwxr-xr-x
grub-ntldr-img
38.38
KB
-rwxr-xr-x
grub-render-label
817.77
KB
-rwxr-xr-x
grub-script-check
264.62
KB
-rwxr-xr-x
grub-syslinux2cfg
766.29
KB
-rwxr-xr-x
gs
14.18
KB
-rwxr-xr-x
gsbj
350
B
-rwxr-xr-x
gsdj
352
B
-rwxr-xr-x
gsdj500
352
B
-rwxr-xr-x
gsettings
30.07
KB
-rwxr-xr-x
gslj
353
B
-rwxr-xr-x
gslp
350
B
-rwxr-xr-x
gsnd
277
B
-rwxr-xr-x
gtbl
138.2
KB
-rwxr-xr-x
gtk-builder-tool
34.42
KB
-rwxr-xr-x
gtk-launch
18.15
KB
-rwxr-xr-x
gtk-query-settings
13.99
KB
-rwxr-xr-x
gtk-update-icon-cache
38.47
KB
-rwxr-xr-x
h2ph
28.54
KB
-rwxr-xr-x
h2xs
59.44
KB
-rwxr-xr-x
hd
26.55
KB
-rwxr-xr-x
head
46.72
KB
-rwxr-xr-x
helpztags
2.46
KB
-rwxr-xr-x
hexdump
26.55
KB
-rwxr-xr-x
host
126.63
KB
-rwxr-xr-x
hostid
34.59
KB
-rwxr-xr-x
hostnamectl
26.07
KB
-rwxr-xr-x
hsdb
6.35
KB
-rwxr-xr-x
htcacheclean
34
KB
-rwxr-xr-x
htdbm
25.99
KB
-rwxr-xr-x
htdigest
13.99
KB
-rwxr-xr-x
htpasswd
25.99
KB
-rwxr-xr-x
i386
22.34
KB
-rwxr-xr-x
icombine
34.38
KB
-rwxr-xr-x
iconv
59.01
KB
-rwxr-xr-x
id
42.78
KB
-rwxr-xr-x
idlj
6.34
KB
-rwxr-xr-x
ifnames
4.03
KB
-rwxr-xr-x
ijoin
14.03
KB
-rwxr-xr-x
info
242.79
KB
-rwxr-xr-x
infobrowser
242.79
KB
-rwxr-xr-x
infocmp
62.07
KB
-rwxr-xr-x
infotocap
86.11
KB
-rwxr-xr-x
innochecksum
3.46
MB
-rwxr-xr-x
innotop
445.81
KB
-rwxr-xr-x
install
151.6
KB
-rwxr-xr-x
install-info
47.73
KB
-rwxr-xr-x
instmodsh
4.27
KB
-rwxr-xr-x
ionice
30.08
KB
-rwxr-xr-x
ipcmk
30.14
KB
-rwxr-xr-x
ipcrm
30.08
KB
-rwxr-xr-x
ipcs
66.08
KB
-rwxr-xr-x
iptables-xml
100.68
KB
-rwxr-xr-x
ischroot
14.23
KB
-rwxr-xr-x
ispell
94.46
KB
-rwxr-xr-x
ispell-wrapper
7.05
KB
-rwxr-xr-x
jar
6.34
KB
-rwxr-xr-x
jarsigner
6.34
KB
-rwxr-xr-x
java
6.3
KB
-rwxr-xr-x
javac
6.34
KB
-rwxr-xr-x
javadoc
6.34
KB
-rwxr-xr-x
javah
6.34
KB
-rwxr-xr-x
javap
6.34
KB
-rwxr-xr-x
jcmd
6.34
KB
-rwxr-xr-x
jconsole
6.36
KB
-rwxr-xr-x
jdb
6.35
KB
-rwxr-xr-x
jdeps
6.34
KB
-rwxr-xr-x
jexec
10.33
KB
-rwxr-xr-x
jfr
6.34
KB
-rwxr-xr-x
jhat
6.34
KB
-rwxr-xr-x
jinfo
6.38
KB
-rwxr-xr-x
jjs
6.34
KB
-rwxr-xr-x
jmap
6.38
KB
-rwxr-xr-x
join
50.75
KB
-rwxr-xr-x
jps
6.34
KB
-rwxr-xr-x
jrunscript
6.34
KB
-rwxr-xr-x
jsadebugd
6.35
KB
-rwxr-xr-x
json_pp
4.28
KB
-rwxr-xr-x
jstack
6.38
KB
-rwxr-xr-x
jstat
6.34
KB
-rwxr-xr-x
jstatd
6.34
KB
-rwxr-xr-x
kbdinfo
14.31
KB
-rwxr-xr-x
kbxutil
162.66
KB
-rwxr-xr-x
kernel-install
4.53
KB
-rwxr-xr-x
keytool
6.34
KB
-rwxr-xr-x
killall
31.72
KB
-rwxr-xr-x
laptop-detect
3.73
KB
-rwxr-xr-x
last
46.08
KB
-rwxr-xr-x
lastb
46.08
KB
-rwxr-xr-x
lastlog
22.07
KB
-rwxr-xr-x
lcf
7.6
KB
-rwxr-xr-x
ld
1.7
MB
-rwxr-xr-x
ld.bfd
1.7
MB
-rwxr-xr-x
ld.gold
2.97
MB
-rwxr-xr-x
ldd
5.27
KB
-rwxr-xr-x
less
166.76
KB
-rwxr-xr-x
lessecho
14.02
KB
-rwxr-xr-x
lessfile
8.36
KB
-rwxr-xr-x
lesskey
23.39
KB
-rwxr-xr-x
lesspipe
8.36
KB
-rwxr-xr-x
lexgrog
94.57
KB
-rwxr-xr-x
lft
2.43
KB
-rwxr-xr-x
lft.db
2.43
KB
-rwxr-xr-x
libnetcfg
15.41
KB
-rwxr-xr-x
libtoolize
128.26
KB
-rwxr-xr-x
link
34.59
KB
-rwxr-xr-x
linux-boot-prober
1.54
KB
-rwxr-xr-x
linux-check-removal
4.56
KB
-rwxr-xr-x
linux-update-symlinks
6.17
KB
-rwxr-xr-x
linux-version
2.63
KB
-rwxr-xr-x
linux32
22.34
KB
-rwxr-xr-x
linux64
22.34
KB
-rwxr-xr-x
listres
10.62
KB
-rwxr-xr-x
lnstat
22.74
KB
-rwxr-xr-x
loadkeys
207.14
KB
-rwxr-xr-x
loadunimap
34.61
KB
-rwxr-xr-x
locale
54.04
KB
-rwxr-xr-x
localectl
26.07
KB
-rwxr-xr-x
localedef
299.75
KB
-rwxr-xr-x
locate
38.68
KB
-rwxr-sr-x
lockfile
18.25
KB
-rwxr-sr-x
logger
46.67
KB
-rwxr-xr-x
logname
34.59
KB
-rwxr-xr-x
logresolve
14
KB
-rwxr-xr-x
look
10.49
KB
-rwxr-xr-x
lorder
2.82
KB
-rwxr-xr-x
lsattr
14
KB
-rwxr-xr-x
lsb_release
3.55
KB
-rwxr-xr-x
lscpu
86.08
KB
-rwxr-xr-x
lsinitramfs
706
B
-rwxr-xr-x
lsipc
90.08
KB
-rwxr-xr-x
lslocks
34.41
KB
-rwxr-xr-x
lslogins
66.08
KB
-rwxr-xr-x
lsmem
62.08
KB
-rwxr-xr-x
lsns
50.08
KB
-rwxr-xr-x
lsof
171.47
KB
-rwxr-xr-x
lspci
80.31
KB
-rwxr-xr-x
lspgpot
1.06
KB
-rwxr-xr-x
luit
48.72
KB
-rwxr-xr-x
lwp-download
10.05
KB
-rwxr-xr-x
lwp-dump
2.65
KB
-rwxr-xr-x
lwp-mirror
2.36
KB
-rwxr-xr-x
lwp-request
15.82
KB
-rwxr-xr-x
lzcat
79.29
KB
-rwxr-xr-x
lzcmp
6.48
KB
-rwxr-xr-x
lzdiff
6.48
KB
-rwxr-xr-x
lzegrep
5.76
KB
-rwxr-xr-x
lzfgrep
5.76
KB
-rwxr-xr-x
lzgrep
5.76
KB
-rwxr-xr-x
lzless
1.76
KB
-rwxr-xr-x
lzma
79.29
KB
-rwxr-xr-x
lzmainfo
14.31
KB
-rwxr-xr-x
lzmore
2.11
KB
-rwxr-xr-x
m-a
57.17
KB
-rwxr-xr-x
m4
159.18
KB
-rwxr-xr-x
mac2unix
50.02
KB
-rwxr-xr-x
mail
110.24
KB
-rwxr-xr-x
mailq
1.13
MB
-rwsr-xr-x
mailstat
5.72
KB
-rwxr-xr-x
mailx
110.24
KB
-rwxr-xr-x
make
226.59
KB
-rwxr-xr-x
make-first-existing-target
4.79
KB
-rwxr-xr-x
makeinfo
52.78
KB
-rwxr-xr-x
man
112.5
KB
-rwxr-xr-x
mandb
134.72
KB
-rwxr-xr-x
manpath
34.47
KB
-rwxr-xr-x
mapscrn
26.58
KB
-rwxr-xr-x
mariadb
3.91
MB
-rwxr-xr-x
mariadb-check
3.67
MB
-rwxr-xr-x
mariadb-service-convert
2.45
KB
-rwxr-xr-x
mawk
119.12
KB
-rwxr-xr-x
mc
1011.96
KB
-rwxr-xr-x
mcdiff
1011.96
KB
-rwxr-xr-x
mcedit
1011.96
KB
-rwxr-xr-x
mcookie
34.14
KB
-rwxr-xr-x
mcview
1011.96
KB
-rwxr-xr-x
md5sum
46.72
KB
-rwxr-xr-x
md5sum.textutils
46.72
KB
-rwxr-xr-x
mdig
46.09
KB
-rwxr-xr-x
mesg
14.07
KB
-rwxr-xr-x
migrate-pubring-from-classic-g...
2.99
KB
-rwxr-xr-x
mk_modmap
15.78
KB
-rwxr-xr-x
mkfifo
62.91
KB
-rwxr-xr-x
mkpasswd
26.47
KB
-rwxr-xr-x
mlocate
38.68
KB
-rwxr-sr-x
mlock
14.3
KB
-rwxr-sr-x
module-assistant
57.17
KB
-rwxr-xr-x
msgattrib
26.45
KB
-rwxr-xr-x
msgcat
22.45
KB
-rwxr-xr-x
msgcmp
26.56
KB
-rwxr-xr-x
msgcomm
22.43
KB
-rwxr-xr-x
msgconv
22.41
KB
-rwxr-xr-x
msgen
22.41
KB
-rwxr-xr-x
msgexec
18.45
KB
-rwxr-xr-x
msgfilter
34.54
KB
-rwxr-xr-x
msgfmt
83.37
KB
-rwxr-xr-x
msggrep
42.79
KB
-rwxr-xr-x
msginit
67.17
KB
-rwxr-xr-x
msgmerge
71.39
KB
-rwxr-xr-x
msgunfmt
30.64
KB
-rwxr-xr-x
msguniq
22.42
KB
-rwxr-xr-x
msql2mysql
1.41
KB
-rwxr-xr-x
mtrace
6.32
KB
-rwxr-xr-x
munchlist
31.23
KB
-rwxr-xr-x
mutt
1.02
MB
-rwxr-xr-x
mutt_dotlock
14.01
KB
-rwxr-sr-x
my_print_defaults
3.37
MB
-rwxr-xr-x
myisam_ftdump
3.64
MB
-rwxr-xr-x
myisamchk
3.75
MB
-rwxr-xr-x
myisamlog
3.62
MB
-rwxr-xr-x
myisampack
3.65
MB
-rwxr-xr-x
mysql
3.91
MB
-rwxr-xr-x
mysql_convert_table_format
4.12
KB
-rwxr-xr-x
mysql_embedded
18.94
MB
-rwxr-xr-x
mysql_find_rows
3.21
KB
-rwxr-xr-x
mysql_fix_extensions
1.22
KB
-rwxr-xr-x
mysql_install_db
19.74
KB
-rwxr-xr-x
mysql_plugin
3.37
MB
-rwxr-xr-x
mysql_secure_installation
12.23
KB
-rwxr-xr-x
mysql_setpermission
17.13
KB
-rwxr-xr-x
mysql_tzinfo_to_sql
3.37
MB
-rwxr-xr-x
mysql_upgrade
3.46
MB
-rwxr-xr-x
mysql_waitpid
3.36
MB
-rwxr-xr-x
mysqlaccess
109.3
KB
-rwxr-xr-x
mysqladmin
3.7
MB
-rwxr-xr-x
mysqlanalyze
3.67
MB
-rwxr-xr-x
mysqlbinlog
3.92
MB
-rwxr-xr-x
mysqlcheck
3.67
MB
-rwxr-xr-x
mysqld_multi
26.67
KB
-rwxr-xr-x
mysqld_safe
30.08
KB
-rwxr-xr-x
mysqld_safe_helper
3.33
MB
-rwxr-xr-x
mysqldump
3.75
MB
-rwxr-xr-x
mysqldumpslow
8.05
KB
-rwxr-xr-x
mysqlhotcopy
34.14
KB
-rwxr-xr-x
mysqlimport
3.66
MB
-rwxr-xr-x
mysqloptimize
3.67
MB
-rwxr-xr-x
mysqlrepair
3.67
MB
-rwxr-xr-x
mysqlreport
50.03
KB
-rwxr-xr-x
mysqlshow
3.66
MB
-rwxr-xr-x
mysqlslap
3.68
MB
-rwxr-xr-x
mytop
63.3
KB
-rwxr-xr-x
namei
34.08
KB
-rwxr-xr-x
native2ascii
6.34
KB
-rwxr-xr-x
nawk
658.81
KB
-rwxr-xr-x
ncal
29.15
KB
-rwxr-xr-x
neqn
913
B
-rwxr-xr-x
netkit-ftp
99.62
KB
-rwxr-xr-x
newaliases
1.13
MB
-rwsr-xr-x
newgrp
43.4
KB
-rwsr-xr-x
ngettext
42.63
KB
-rwxr-xr-x
nice
38.63
KB
-rwxr-xr-x
nl
42.78
KB
-rwxr-xr-x
nload
138.03
KB
-rwxr-xr-x
nm
47.91
KB
-rwxr-xr-x
nohup
38.66
KB
-rwxr-xr-x
nproc
38.66
KB
-rwxr-xr-x
nroff
3.22
KB
-rwxr-xr-x
nsenter
34.28
KB
-rwxr-xr-x
nslookup
134.51
KB
-rwxr-xr-x
nstat
79.14
KB
-rwxr-xr-x
nsupdate
70.02
KB
-rwxr-xr-x
numfmt
62.81
KB
-rwxr-xr-x
objcopy
175.42
KB
-rwxr-xr-x
objdump
345.55
KB
-rwxr-xr-x
od
70.78
KB
-rwxr-xr-x
openssl
719.52
KB
-rwxr-xr-x
orbd
6.39
KB
-rwxr-xr-x
os-prober
4.44
KB
-rwxr-xr-x
pack200
6.34
KB
-rwxr-xr-x
pager
166.76
KB
-rwxr-xr-x
paperconf
14.29
KB
-rwxr-xr-x
parsechangelog
8.63
KB
-rwxr-xr-x
partx
106.08
KB
-rwxr-xr-x
passwd
62.24
KB
-rwsr-xr-x
paste
38.66
KB
-rwxr-xr-x
patch
183.44
KB
-rwxr-xr-x
pathchk
38.63
KB
-rwxr-xr-x
pcimodules
14.59
KB
-rwxr-xr-x
pcre-config
2.29
KB
-rwxr-xr-x
pcre2-config
1.93
KB
-rwxr-xr-x
pdb
45.02
KB
-rwxr-xr-x
pdb2
45.02
KB
-rwxr-xr-x
pdb2.7
45.02
KB
-rwxr-xr-x
pdb3
61.08
KB
-rwxr-xr-x
pdb3.7
61.08
KB
-rwxr-xr-x
pdf2dsc
698
B
-rwxr-xr-x
pdf2ps
909
B
-rwxr-xr-x
pdftexi2dvi
1.27
KB
-rwxr-xr-x
pear
793
B
-rwxr-xr-x
peardev
814
B
-rwxr-xr-x
pecl
727
B
-rwxr-xr-x
peekfd
14.28
KB
-rwxr-xr-x
perf
528
B
-rwxr-xr-x
perl
3.05
MB
-rwxr-xr-x
perl5.28-x86_64-linux-gnu
14.17
KB
-rwxr-xr-x
perl5.28.1
3.05
MB
-rwxr-xr-x
perlbug
45.28
KB
-rwxr-xr-x
perldoc
125
B
-rwxr-xr-x
perlivp
10.61
KB
-rwxr-xr-x
perlthanks
45.28
KB
-rwxr-xr-x
perror
3.55
MB
-rwxr-xr-x
pf2afm
498
B
-rwxr-xr-x
pfbtopfa
516
B
-rwxr-xr-x
pftp
99.62
KB
-rwxr-xr-x
pgrep
26.09
KB
-rwxr-xr-x
phar
14.88
KB
-rwxr-xr-x
phar.phar
14.88
KB
-rwxr-xr-x
phar.phar5.6
14.48
KB
-rwxr-xr-x
phar.phar7.0
14.48
KB
-rwxr-xr-x
phar.phar7.2
14.47
KB
-rwxr-xr-x
phar.phar7.3
14.47
KB
-rwxr-xr-x
phar.phar7.4
14.54
KB
-rwxr-xr-x
phar.phar8.2
14.88
KB
-rwxr-xr-x
phar5
14.48
KB
-rwxr-xr-x
phar5.6
14.48
KB
-rwxr-xr-x
phar7.0
14.48
KB
-rwxr-xr-x
phar7.2
14.47
KB
-rwxr-xr-x
phar7.3
14.47
KB
-rwxr-xr-x
phar7.4
14.54
KB
-rwxr-xr-x
phar7.4.phar
14.54
KB
-rwxr-xr-x
phar8.2
14.88
KB
-rwxr-xr-x
phar8.2.phar
14.88
KB
-rwxr-xr-x
php
4.53
MB
-rwxr-xr-x
php-cgi
4.43
MB
-rwxr-xr-x
php-cgi7.2
4.68
MB
-rwxr-xr-x
php-cgi7.3
4.47
MB
-rwxr-xr-x
php-cgi7.4
4.43
MB
-rwxr-xr-x
php-config
4.24
KB
-rwxr-xr-x
php-config7.2
4.14
KB
-rwxr-xr-x
php-config7.3
4.11
KB
-rwxr-xr-x
php-config7.4
4.24
KB
-rwxr-xr-x
php5
8.66
MB
-rwxr-xr-x
php5.6
4.3
MB
-rwxr-xr-x
php7.0
4.3
MB
-rwxr-xr-x
php7.2
4.79
MB
-rwxr-xr-x
php7.3
4.57
MB
-rwxr-xr-x
php7.4
4.53
MB
-rwxr-xr-x
php8.2
5.37
MB
-rwxr-xr-x
phpdbg
4.65
MB
-rwxr-xr-x
phpdbg7.2
4.91
MB
-rwxr-xr-x
phpdbg7.3
4.69
MB
-rwxr-xr-x
phpdbg7.4
4.65
MB
-rwxr-xr-x
phpize
4.81
KB
-rwxr-xr-x
phpize7.2
4.84
KB
-rwxr-xr-x
phpize7.3
4.87
KB
-rwxr-xr-x
phpize7.4
4.81
KB
-rwxr-xr-x
pic
208.03
KB
-rwxr-xr-x
pico
240.39
KB
-rwxr-xr-x
piconv
8.16
KB
-rwxr-xr-x
pigz
114.2
KB
-rwxr-xr-x
pinentry
86.49
KB
-rwxr-xr-x
pinentry-gtk-2
86.49
KB
-rwxr-xr-x
pinentry-x11
86.49
KB
-rwxr-xr-x
pinky
42.81
KB
-rwxr-xr-x
pkaction
14.31
KB
-rwxr-xr-x
pkcheck
22.66
KB
-rwxr-xr-x
pkcon
71.71
KB
-rwxr-xr-x
pkg-config
54.83
KB
-rwxr-xr-x
pkgtools
1.34
KB
-rwxr-xr-x
pkill
26.09
KB
-rwxr-xr-x
pkmon
22.49
KB
-rwxr-xr-x
pkttyagent
18.37
KB
-rwxr-xr-x
pl2pm
4.43
KB
-rwxr-xr-x
pldd
22.57
KB
-rwxr-xr-x
pmap
30.09
KB
-rwxr-xr-x
po2debconf
8.47
KB
-rwxr-xr-x
pod2html
4.04
KB
-rwxr-xr-x
pod2man
14.86
KB
-rwxr-xr-x
pod2texi
19.65
KB
-rwxr-xr-x
pod2text
10.85
KB
-rwxr-xr-x
pod2usage
3.86
KB
-rwxr-xr-x
podchecker
3.57
KB
-rwxr-xr-x
podebconf-display-po
12.67
KB
-rwxr-xr-x
podebconf-report-po
31.76
KB
-rwxr-xr-x
podselect
2.47
KB
-rwxr-xr-x
policytool
6.34
KB
-rwxr-xr-x
pphs
404
B
-rwxr-xr-x
pr
74.94
KB
-rwxr-xr-x
precat
5.52
KB
-rwxr-xr-x
preconv
66.2
KB
-rwxr-xr-x
preunzip
5.52
KB
-rwxr-xr-x
prezip
5.52
KB
-rwxr-xr-x
prezip-bin
13.99
KB
-rwxr-xr-x
print
17.74
KB
-rwxr-xr-x
printafm
395
B
-rwxr-xr-x
printenv
34.59
KB
-rwxr-xr-x
printerbanner
22.23
KB
-rwxr-xr-x
printf
54.69
KB
-rwxr-xr-x
prlimit
38.59
KB
-rwxr-xr-x
procan
71.68
KB
-rwxr-xr-x
procmail
95.2
KB
-rwsr-sr-x
prove
13.33
KB
-rwxr-xr-x
prtstat
18.36
KB
-rwxr-xr-x
ps2ascii
631
B
-rwxr-xr-x
ps2epsi
2.69
KB
-rwxr-xr-x
ps2pdf
272
B
-rwxr-xr-x
ps2pdf12
215
B
-rwxr-xr-x
ps2pdf13
215
B
-rwxr-xr-x
ps2pdf14
215
B
-rwxr-xr-x
ps2pdfwr
1.07
KB
-rwxr-xr-x
ps2ps
647
B
-rwxr-xr-x
ps2ps2
669
B
-rwxr-xr-x
ps2txt
631
B
-rwxr-xr-x
psfaddtable
22.31
KB
-rwxr-xr-x
psfgettable
22.31
KB
-rwxr-xr-x
psfstriptable
22.31
KB
-rwxr-xr-x
psfxtable
22.31
KB
-rwxr-xr-x
pslog
14.23
KB
-rwxr-xr-x
pstree
31.48
KB
-rwxr-xr-x
pstree.x11
31.48
KB
-rwxr-xr-x
ptar
3.47
KB
-rwxr-xr-x
ptardiff
2.57
KB
-rwxr-xr-x
ptargrep
4.29
KB
-rwxr-xr-x
ptx
74.91
KB
-rwxr-xr-x
pwdx
10.07
KB
-rwxr-xr-x
py3clean
7.62
KB
-rwxr-xr-x
py3compile
11.83
KB
-rwxr-xr-x
py3versions
11.44
KB
-rwxr-xr-x
pyclean
4.03
KB
-rwxr-xr-x
pycompile
11.62
KB
-rwxr-xr-x
pydoc
79
B
-rwxr-xr-x
pydoc2
79
B
-rwxr-xr-x
pydoc2.7
79
B
-rwxr-xr-x
pydoc3
79
B
-rwxr-xr-x
pydoc3.7
79
B
-rwxr-xr-x
pygettext
21.56
KB
-rwxr-xr-x
pygettext2
21.56
KB
-rwxr-xr-x
pygettext2.7
21.56
KB
-rwxr-xr-x
pygettext3
21.04
KB
-rwxr-xr-x
pygettext3.7
21.04
KB
-rwxr-xr-x
python
3.51
MB
-rwxr-xr-x
python2
3.51
MB
-rwxr-xr-x
python2.7
3.51
MB
-rwxr-xr-x
python3
4.65
MB
-rwxr-xr-x
python3.7
4.65
MB
-rwxr-xr-x
python3.7m
4.65
MB
-rwxr-xr-x
python3m
4.65
MB
-rwxr-xr-x
pyversions
14.76
KB
-rwxr-xr-x
querybts
10.75
KB
-rwxr-xr-x
ranlib
63.1
KB
-rwxr-xr-x
rcp
98.14
KB
-rwxr-xr-x
rdma
107.16
KB
-rwxr-xr-x
readelf
583.06
KB
-rwxr-xr-x
realpath
46.69
KB
-rwxr-xr-x
recode-sr-latin
14.4
KB
-rwxr-xr-x
rename.ul
22.07
KB
-rwxr-xr-x
renice
14.07
KB
-rwxr-xr-x
replace
3.34
MB
-rwxr-xr-x
report-hw
2.05
KB
-rwxr-xr-x
reportbug
105.14
KB
-rwxr-xr-x
reset
30
KB
-rwxr-xr-x
resizecons
22.58
KB
-rwxr-xr-x
resizepart
58.08
KB
-rwxr-xr-x
resolve_stack_dump
3.37
MB
-rwxr-xr-x
resolvectl
114.22
KB
-rwxr-xr-x
resolveip
3.36
MB
-rwxr-xr-x
rev
14.07
KB
-rwxr-xr-x
rgrep
30
B
-rwxr-xr-x
rlogin
714.79
KB
-rwxr-xr-x
rmic
6.34
KB
-rwxr-xr-x
rmid
6.34
KB
-rwxr-xr-x
rmiregistry
6.34
KB
-rwxr-xr-x
rotatelogs
26.07
KB
-rwxr-xr-x
routef
208
B
-rwxr-xr-x
routel
1.62
KB
-rwxr-xr-x
rpcgen
90.98
KB
-rwxr-xr-x
rpcinfo
34.16
KB
-rwxr-xr-x
rsh
714.79
KB
-rwxr-xr-x
rsync
488.37
KB
-rwxr-xr-x
rtstat
22.74
KB
-rwxr-xr-x
run-mailcap
17.74
KB
-rwxr-xr-x
run-with-aspell
57
B
-rwxr-xr-x
runcon
38.72
KB
-rwxr-xr-x
rview
2.58
MB
-rwxr-xr-x
rvim
2.58
MB
-rwxr-xr-x
sane-find-scanner
114.7
KB
-rwxr-xr-x
savelog
10.22
KB
-rwxr-xr-x
scanimage
50.77
KB
-rwxr-xr-x
schemagen
6.34
KB
-rwxr-xr-x
scp
98.14
KB
-rwxr-xr-x
screendump
14.29
KB
-rwxr-xr-x
script
50.08
KB
-rwxr-xr-x
scriptreplay
30.08
KB
-rwxr-xr-x
sdiff
50.77
KB
-rwxr-xr-x
see
17.74
KB
-rwxr-xr-x
select-default-iwrap
474
B
-rwxr-xr-x
select-editor
2.38
KB
-rwxr-xr-x
sensible-browser
1.18
KB
-rwxr-xr-x
sensible-editor
1.08
KB
-rwxr-xr-x
sensible-pager
433
B
-rwxr-xr-x
seq
50.69
KB
-rwxr-xr-x
serialver
6.34
KB
-rwxr-xr-x
servertool
6.34
KB
-rwxr-xr-x
setarch
22.34
KB
-rwxr-xr-x
setfacl
38.68
KB
-rwxr-xr-x
setkeycodes
14.3
KB
-rwxr-xr-x
setleds
14.29
KB
-rwxr-xr-x
setlogcons
14.3
KB
-rwxr-xr-x
setmetamode
14.34
KB
-rwxr-xr-x
setpci
22.54
KB
-rwxr-xr-x
setpriv
42.08
KB
-rwxr-xr-x
setsid
14.07
KB
-rwxr-xr-x
setterm
42.08
KB
-rwxr-xr-x
setvtrgb
14.42
KB
-rwxr-xr-x
sftp
150.35
KB
-rwxr-xr-x
sg
43.4
KB
-rwsr-xr-x
sha1sum
50.72
KB
-rwxr-xr-x
sha224sum
54.72
KB
-rwxr-xr-x
sha256sum
54.72
KB
-rwxr-xr-x
sha384sum
62.72
KB
-rwxr-xr-x
sha512sum
62.72
KB
-rwxr-xr-x
shasum
9.74
KB
-rwxr-xr-x
showconsolefont
18.38
KB
-rwxr-xr-x
showkey
18.34
KB
-rwxr-xr-x
shred
58.94
KB
-rwxr-xr-x
shtool
138.76
KB
-rwxr-xr-x
shtoolize
15.16
KB
-rwxr-xr-x
shuf
58.81
KB
-rwxr-xr-x
size
34.97
KB
-rwxr-xr-x
skill
26.08
KB
-rwxr-xr-x
slabtop
18.08
KB
-rwxr-xr-x
slogin
714.79
KB
-rwxr-xr-x
smime_keys
30.08
KB
-rwxr-xr-x
snice
26.08
KB
-rwxr-xr-x
socat
369.43
KB
-rwxr-xr-x
soelim
42.2
KB
-rwxr-xr-x
sort
111.45
KB
-rwxr-xr-x
sotruss
4.18
KB
-rwxr-xr-x
splain
18.7
KB
-rwxr-xr-x
split
59.32
KB
-rwxr-xr-x
splitfont
14.19
KB
-rwxr-xr-x
sprof
26.69
KB
-rwxr-xr-x
sq
5.99
KB
-rwxr-xr-x
ssh
714.79
KB
-rwxr-xr-x
ssh-add
334.13
KB
-rwxr-xr-x
ssh-agent
314.13
KB
-rwxr-sr-x
ssh-argv0
1.42
KB
-rwxr-xr-x
ssh-copy-id
10.41
KB
-rwxr-xr-x
ssh-keygen
406.15
KB
-rwxr-xr-x
ssh-keyscan
410.15
KB
-rwxr-xr-x
stat
79.03
KB
-rwxr-xr-x
stdbuf
50.69
KB
-rwxr-xr-x
strings
31.13
KB
-rwxr-xr-x
strip
175.43
KB
-rwxr-xr-x
sudo
153.51
KB
-rwsr-xr-x
sudoedit
153.51
KB
-rwsr-xr-x
sudoreplay
62.84
KB
-rwxr-xr-x
sum
42.73
KB
-rwxr-xr-x
symcryptrun
118.73
KB
-rwxr-xr-x
systemd-analyze
1.38
MB
-rwxr-xr-x
systemd-cat
14.08
KB
-rwxr-xr-x
systemd-cgls
18.17
KB
-rwxr-xr-x
systemd-cgtop
38.09
KB
-rwxr-xr-x
systemd-delta
26.07
KB
-rwxr-xr-x
systemd-detect-virt
14.06
KB
-rwxr-xr-x
systemd-id128
14.06
KB
-rwxr-xr-x
systemd-mount
46.29
KB
-rwxr-xr-x
systemd-path
18.06
KB
-rwxr-xr-x
systemd-resolve
114.22
KB
-rwxr-xr-x
systemd-run
50.27
KB
-rwxr-xr-x
systemd-socket-activate
26.07
KB
-rwxr-xr-x
systemd-stdio-bridge
18.07
KB
-rwxr-xr-x
systemd-umount
46.29
KB
-rwxr-xr-x
tabs
17.99
KB
-rwxr-xr-x
tac
42.72
KB
-rwxr-xr-x
tail
70.91
KB
-rwxr-xr-x
tasksel
16.1
KB
-rwxr-xr-x
taskset
34.08
KB
-rwxr-xr-x
tbl
138.2
KB
-rwxr-xr-x
tee
38.72
KB
-rwxr-xr-x
telnet
113.37
KB
-rwxr-xr-x
telnet.netkit
113.37
KB
-rwxr-xr-x
test
50.66
KB
-rwxr-xr-x
texi2any
52.78
KB
-rwxr-xr-x
texi2dvi
60.31
KB
-rwxr-xr-x
texi2pdf
1.27
KB
-rwxr-xr-x
texindex
3.96
KB
-rwxr-xr-x
tic
86.11
KB
-rwxr-xr-x
time
14.73
KB
-rwxr-xr-x
timedatectl
38.07
KB
-rwxr-xr-x
timeout
43.26
KB
-rwxr-xr-x
tload
14.09
KB
-rwxr-xr-x
tnameserv
6.39
KB
-rwxr-xr-x
toe
21.99
KB
-rwxr-xr-x
top
113.89
KB
-rwxr-xr-x
touch
94.88
KB
-rwxr-xr-x
tput
22.02
KB
-rwxr-xr-x
tr
50.69
KB
-rwxr-xr-x
traceproto
2.82
KB
-rwxr-xr-x
traceproto.db
2.82
KB
-rwxr-xr-x
traceroute
67.16
KB
-rwxr-xr-x
traceroute-nanog
1.58
KB
-rwxr-xr-x
traceroute.db
67.16
KB
-rwxr-xr-x
traceroute6
67.16
KB
-rwxr-xr-x
traceroute6.db
67.16
KB
-rwxr-xr-x
troff
723.59
KB
-rwxr-xr-x
truncate
42.66
KB
-rwxr-xr-x
tryaffix
4.8
KB
-rwxr-xr-x
tset
30
KB
-rwxr-xr-x
tsort
42.66
KB
-rwxr-xr-x
tty
34.63
KB
-rwxr-xr-x
txixml2texi
14.67
KB
-rwxr-xr-x
tzselect
15.01
KB
-rwxr-xr-x
ucf
39.73
KB
-rwxr-xr-x
ucfq
18.91
KB
-rwxr-xr-x
ucfr
10.47
KB
-rwxr-xr-x
ul
14.3
KB
-rwxr-xr-x
umax_pp
179.07
KB
-rwxr-xr-x
unattended-upgrade
83.83
KB
-rwxr-xr-x
unattended-upgrades
83.83
KB
-rwxr-xr-x
unexpand
42.69
KB
-rwxr-xr-x
unicode_stop
530
B
-rwxr-xr-x
uniq
50.75
KB
-rwxr-xr-x
unix2dos
50.02
KB
-rwxr-xr-x
unix2mac
50.02
KB
-rwxr-xr-x
unlink
34.59
KB
-rwxr-xr-x
unlzma
79.29
KB
-rwxr-xr-x
unmkinitramfs
3.51
KB
-rwxr-xr-x
unpack200
101.48
KB
-rwxr-xr-x
unpigz
114.2
KB
-rwxr-xr-x
unshare
26.27
KB
-rwxr-xr-x
unsq
5.99
KB
-rwxr-xr-x
unxz
79.29
KB
-rwxr-xr-x
unzip
178.84
KB
-rwxr-xr-x
unzipsfx
82.66
KB
-rwxr-xr-x
update-alternatives
54.25
KB
-rwxr-xr-x
update-mime-database
55.19
KB
-rwxr-xr-x
update-perl-sax-parsers
6.03
KB
-rwxr-xr-x
updatedb
46.82
KB
-rwxr-xr-x
updatedb.mlocate
46.82
KB
-rwxr-xr-x
uptime
10.07
KB
-rwxr-xr-x
users
34.66
KB
-rwxr-xr-x
utmpdump
30.07
KB
-rwxr-xr-x
vi
2.58
MB
-rwxr-xr-x
view
2.58
MB
-rwxr-xr-x
viewres
27.38
KB
-rwxr-xr-x
vim
2.58
MB
-rwxr-xr-x
vim.basic
2.58
MB
-rwxr-xr-x
vim.tiny
1.15
MB
-rwxr-xr-x
vimdiff
2.58
MB
-rwxr-xr-x
vimtutor
2.07
KB
-rwxr-xr-x
vmstat
34.09
KB
-rwxr-xr-x
volname
5.99
KB
-rwxr-xr-x
w
18.07
KB
-rwxr-xr-x
w.procps
18.07
KB
-rwxr-xr-x
w3m
1.4
MB
-rwxr-xr-x
w3mman
1.18
KB
-rwxr-xr-x
wall
34.08
KB
-rwxr-xr-x
watch
26.41
KB
-rwxr-xr-x
watchgnupg
17.99
KB
-rwxr-xr-x
wc
46.76
KB
-rwxr-xr-x
wget
455.56
KB
-rwxr-xr-x
whatis
54.98
KB
-rwxr-xr-x
whereis
30.51
KB
-rwxr-xr-x
which
946
B
-rwxr-xr-x
whiptail
26.7
KB
-rwxr-xr-x
who
54.81
KB
-rwxr-xr-x
whoami
34.63
KB
-rwxr-xr-x
whois
153.27
KB
-rwxr-xr-x
word-list-compress
13.99
KB
-rwxr-xr-x
write
14.39
KB
-rwxr-sr-x
wsgen
6.34
KB
-rwxr-xr-x
wsimport
6.34
KB
-rwxr-xr-x
wsrep_sst_common
54.05
KB
-rwxr-xr-x
wsrep_sst_mariabackup
50.87
KB
-rwxr-xr-x
wsrep_sst_mysqldump
7.67
KB
-rwxr-xr-x
wsrep_sst_rsync
32.17
KB
-rwxr-xr-x
wsrep_sst_rsync_wan
32.17
KB
-rwxr-xr-x
www-browser
1.4
MB
-rwxr-xr-x
x86_64
22.34
KB
-rwxr-xr-x
x86_64-linux-gnu-addr2line
31.09
KB
-rwxr-xr-x
x86_64-linux-gnu-ar
63.07
KB
-rwxr-xr-x
x86_64-linux-gnu-as
872.93
KB
-rwxr-xr-x
x86_64-linux-gnu-c++filt
30.69
KB
-rwxr-xr-x
x86_64-linux-gnu-cpp
1.05
MB
-rwxr-xr-x
x86_64-linux-gnu-cpp-4.9
814.43
KB
-rwxr-xr-x
x86_64-linux-gnu-cpp-6
930.77
KB
-rwxr-xr-x
x86_64-linux-gnu-cpp-8
1.05
MB
-rwxr-xr-x
x86_64-linux-gnu-dwp
2.74
MB
-rwxr-xr-x
x86_64-linux-gnu-elfedit
38.84
KB
-rwxr-xr-x
x86_64-linux-gnu-g++
1.05
MB
-rwxr-xr-x
x86_64-linux-gnu-g++-8
1.05
MB
-rwxr-xr-x
x86_64-linux-gnu-gcc
1.05
MB
-rwxr-xr-x
x86_64-linux-gnu-gcc-4.9
813.49
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-6
926.77
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-8
1.05
MB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ar
34.47
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ar-4.9
24.25
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ar-6
26.53
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ar-8
34.47
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-nm
34.47
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-nm-4.9
24.19
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-nm-6
26.53
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-nm-8
34.47
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ranlib
34.47
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ranlib-4....
24.19
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ranlib-6
26.53
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ranlib-8
34.47
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov
672.09
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-4.9
440.43
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-6
507.93
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-8
672.09
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-dump
511.95
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-dump-6
439.86
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-dump-8
511.95
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-tool
548.02
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-tool-6
463.92
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-tool-8
548.02
KB
-rwxr-xr-x
x86_64-linux-gnu-gold
2.97
MB
-rwxr-xr-x
x86_64-linux-gnu-gprof
96.39
KB
-rwxr-xr-x
x86_64-linux-gnu-ld
1.7
MB
-rwxr-xr-x
x86_64-linux-gnu-ld.bfd
1.7
MB
-rwxr-xr-x
x86_64-linux-gnu-ld.gold
2.97
MB
-rwxr-xr-x
x86_64-linux-gnu-nm
47.91
KB
-rwxr-xr-x
x86_64-linux-gnu-objcopy
175.42
KB
-rwxr-xr-x
x86_64-linux-gnu-objdump
345.55
KB
-rwxr-xr-x
x86_64-linux-gnu-pkg-config
2
KB
-rwxr-xr-x
x86_64-linux-gnu-ranlib
63.1
KB
-rwxr-xr-x
x86_64-linux-gnu-readelf
583.06
KB
-rwxr-xr-x
x86_64-linux-gnu-size
34.97
KB
-rwxr-xr-x
x86_64-linux-gnu-strings
31.13
KB
-rwxr-xr-x
x86_64-linux-gnu-strip
175.43
KB
-rwxr-xr-x
x86_64-pc-linux-gnu-pkg-config
54.83
KB
-rwxr-xr-x
xargs
70.21
KB
-rwxr-xr-x
xauth
47.45
KB
-rwxr-xr-x
xdg-user-dir
234
B
-rwxr-xr-x
xdg-user-dirs-update
26.07
KB
-rwxr-xr-x
xdpyinfo
31.49
KB
-rwxr-xr-x
xdriinfo
10.19
KB
-rwxr-xr-x
xev
30.96
KB
-rwxr-xr-x
xfd
32.33
KB
-rwxr-xr-x
xfontsel
40.33
KB
-rwxr-xr-x
xgettext
269.8
KB
-rwxr-xr-x
xjc
6.34
KB
-rwxr-xr-x
xkill
14.32
KB
-rwxr-xr-x
xlsatoms
10.26
KB
-rwxr-xr-x
xlsclients
14.34
KB
-rwxr-xr-x
xlsfonts
18.44
KB
-rwxr-xr-x
xmessage
23.33
KB
-rwxr-xr-x
xprop
40.9
KB
-rwxr-xr-x
xsubpp
5.04
KB
-rwxr-xr-x
xvinfo
14.26
KB
-rwxr-xr-x
xwininfo
42.78
KB
-rwxr-xr-x
xxd
18.12
KB
-rwxr-xr-x
xz
79.29
KB
-rwxr-xr-x
xzcat
79.29
KB
-rwxr-xr-x
xzcmp
6.48
KB
-rwxr-xr-x
xzdiff
6.48
KB
-rwxr-xr-x
xzegrep
5.76
KB
-rwxr-xr-x
xzfgrep
5.76
KB
-rwxr-xr-x
xzgrep
5.76
KB
-rwxr-xr-x
xzless
1.76
KB
-rwxr-xr-x
xzmore
2.11
KB
-rwxr-xr-x
yes
34.59
KB
-rwxr-xr-x
zdump
18.4
KB
-rwxr-xr-x
zipdetails
47.36
KB
-rwxr-xr-x
zipgrep
2.88
KB
-rwxr-xr-x
zipinfo
178.84
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : makeinfo
#! /usr/bin/perl # texi2any: Texinfo converter. # # Copyright 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 # 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/>. # # Original author: Patrice Dumas <pertusus@free.fr> # Parts (also from Patrice Dumas) come from texi2html.pl or texi2html.init. # for POSIX::setlocale and File::Spec require 5.00405; use strict; # for file names portability use File::Spec; # to determine the path separator and null file use Config; # for dirname and fileparse use File::Basename; #use Cwd; use Getopt::Long qw(GetOptions); # for carp #use Carp; Getopt::Long::Configure("gnu_getopt"); # This big BEGIN block deals with finding modules and # some dependencies that we ship # * in source or # * installed or # * installed relative to the script BEGIN { # emulate -w $^W = 1; my ($real_command_name, $command_directory, $command_suffix) = fileparse($0, '.pl'); my $updir = File::Spec->updir(); # These are substituted by the Makefile to create "texi2any". my $datadir = '/usr/share'; my $package = 'texinfo'; my $packagedir = '/usr/lib/texinfo'; if ($datadir eq '@' .'datadir@' or $package eq '@' . 'PACKAGE@' or $packagedir eq '@' .'pkglibdir@' or defined($ENV{'TEXINFO_DEV_SOURCE'}) and $ENV{'TEXINFO_DEV_SOURCE'} ne '0') { # Use uninstalled modules # To find Texinfo::ModulePath if (!defined($ENV{'top_builddir'})) { $ENV{'top_builddir'} = File::Spec->catdir($command_directory, $updir); } unshift @INC, File::Spec->catdir($ENV{'top_builddir'}, 'tp'); if (defined($ENV{'top_srcdir'})) { my $lib_dir = File::Spec->catdir($ENV{'top_srcdir'}, 'tp'); unshift @INC, $lib_dir; } require Texinfo::ModulePath; Texinfo::ModulePath::init(); } else { # Look for modules in their installed locations. my $lib_dir = File::Spec->catdir($datadir, $package); # try to make package relocatable, will only work if # standard relative paths are used if (! -f File::Spec->catfile($lib_dir, 'Texinfo', 'Parser.pm') and -f File::Spec->catfile($command_directory, $updir, 'share', 'texinfo', 'Texinfo', 'Parser.pm')) { $lib_dir = File::Spec->catdir($command_directory, $updir, 'share', 'texinfo'); } unshift @INC, $lib_dir; require Texinfo::ModulePath; Texinfo::ModulePath::init($lib_dir, $packagedir); } } # end BEGIN BEGIN { my $enable_xs = 'yes'; if ($enable_xs eq 'no') { package Texinfo::XSLoader; our $disable_XS; $disable_XS = 1; } } use Locale::Messages; use Texinfo::Common; use Texinfo::Convert::Converter; my ($real_command_name, $command_directory, $command_suffix) = fileparse($0, '.pl'); # this associates the command line options to the arrays set during # command line parsing. my @css_files = (); my @css_refs = (); my $cmdline_options = { 'CSS_FILES' => \@css_files, 'CSS_REFS' => \@css_refs }; # determine the path separators my $path_separator = $Config{'path_sep'}; $path_separator = ':' if (!defined($path_separator)); my $quoted_path_separator = quotemeta($path_separator); # Paths and file names my $curdir = File::Spec->curdir(); my $updir = File::Spec->updir(); # set by configure, prefix for the sysconfdir and so on # This could be used in the eval my $prefix = '/usr'; my $datarootdir; my $sysconfdir; my $pkgdatadir; my $datadir; my $fallback_prefix = File::Spec->catdir(File::Spec->rootdir(), 'usr', 'local'); # We need to eval as $prefix has to be expanded. However when we haven't # run configure @sysconfdir will be expanded as an array, thus we verify # whether configure was run or not if ('/usr/etc' ne '@' . 'sysconfdir@') { $sysconfdir = eval '"/usr/etc"'; } else { $sysconfdir = File::Spec->catdir($fallback_prefix, 'etc'); } if ('/usr/share' ne '@' . 'datarootdir@') { $datarootdir = eval '"/usr/share"'; } else { $datarootdir = File::Spec->catdir($fallback_prefix, 'share'); } if ('/usr/share' ne '@' . 'datadir@' and 'texinfo' ne '@' . 'PACKAGE@') { $datadir = eval '"/usr/share"'; my $package = 'texinfo'; $pkgdatadir = File::Spec->catdir($datadir, $package); } else { $datadir = File::Spec->catdir($fallback_prefix, 'share'); $pkgdatadir = File::Spec->catdir($datadir, 'texinfo'); } # work-around in case libintl-perl do not do it itself # see http://www.gnu.org/software/gettext/manual/html_node/The-LANGUAGE-variable.html#The-LANGUAGE-variable if ((defined($ENV{"LC_ALL"}) and $ENV{"LC_ALL"} =~ /^(C|POSIX)$/) or (defined($ENV{"LANG"}) and $ENV{"LANG"} =~ /^(C|POSIX)$/)) { delete $ENV{"LANGUAGE"} if defined($ENV{"LANGUAGE"}); } #my $messages_textdomain = 'texinfo'; my $messages_textdomain = 'texinfo'; $messages_textdomain = 'texinfo' if ($messages_textdomain eq '@'.'PACKAGE@'); my $strings_textdomain = 'texinfo' . '_document'; $strings_textdomain = 'texinfo_document' if ($strings_textdomain eq '@'.'PACKAGE@' . '_document'); sub __($) { my $msgid = shift; return Locale::Messages::dgettext($messages_textdomain, $msgid); } sub __p($$) { my $context = shift; my $msgid = shift; return Locale::Messages::dpgettext($messages_textdomain, $context, $msgid); } my $srcdir; if (defined($ENV{'top_srcdir'})) { $srcdir = File::Spec->catdir($ENV{'top_srcdir'}, 'tp'); } else { $srcdir = $command_directory; } my $libsrcdir = File::Spec->catdir($srcdir, 'maintain'); # we want a reliable way to switch locale, so we don't use the system # gettext. Locale::Messages->select_package('gettext_pp'); #my @search_locale_dirs = ("$datadir/locale", (map $_ . '/LocaleData', @INC), # qw (/usr/share/locale /usr/local/share/locale)); my @search_locale_dirs = (); if (($command_suffix eq '.pl' and !(defined($ENV{'TEXINFO_DEV_SOURCE'}) and $ENV{'TEXINFO_DEV_SOURCE'} eq 0)) or $ENV{'TEXINFO_DEV_SOURCE'}) { # in case of build from the source directory, out of source build, # this helps to locate the locales. my $locales_dir_found = 0; @search_locale_dirs = ( File::Spec->catdir($libsrcdir, $updir, 'LocaleData'), File::Spec->catdir($curdir, 'LocaleData'), File::Spec->catdir($updir, $updir, $updir, 'tp', 'LocaleData'), File::Spec->catdir($updir, $updir, 'tp', 'LocaleData')); foreach my $locales_dir (@search_locale_dirs) { if (-d $locales_dir) { Locale::Messages::bindtextdomain ($strings_textdomain, $locales_dir); # the messages in this domain are not regenerated automatically, # only when calling ./maintain/regenerate_perl_module_files.sh Locale::Messages::bindtextdomain ($messages_textdomain, $locales_dir); $locales_dir_found = 1; last; } } if (!$locales_dir_found) { warn "Locales dir for document strings not found (@search_locale_dirs)\n"; } } else { Locale::Messages::bindtextdomain ($strings_textdomain, File::Spec->catdir($datadir, 'locale')); Locale::Messages::bindtextdomain ($messages_textdomain, File::Spec->catdir($datadir, 'locale')); } #Locale::Messages::bindtextdomain ($messages_textdomain, # File::Spec->catdir($datadir, 'locale')); # Version setting is complicated, because we cope with # * script with configure values substituted or not # * script shipped as part of texinfo or as a standalone perl module # When shipped as a perl modules, $hardcoded_version is set to undef here # by a sed one liner. The consequence is that configure.ac is not used # to retrieve the version number. # Otherwise this is only used as a safety value, and should never be used # in practice as a regexp extracts the version from configure.ac. my $hardcoded_version = "0.00-hardcoded"; # Version set in configure.ac my $configured_version = '6.5'; if ($configured_version eq '@' . 'PACKAGE_VERSION@') { # if not configured, and $hardcoded_version is set search for the version # in configure.ac if (defined($hardcoded_version)) { if (open (CONFIGURE, "< ".File::Spec->catfile($srcdir, $updir, 'configure.ac'))) { while (<CONFIGURE>) { if (/^AC_INIT\(\[[^\]]+\]\s*,\s*\[([^\]]+)\]\s*,/) { $configured_version = "$1+dev"; # +dev to distinguish from installed last; } } close (CONFIGURE); } # This should never be used, but is a safety value $configured_version = $hardcoded_version if (!defined($configured_version)); } else { # used in the standalone perl module, as $hardcoded_version is undef # and it should never be configured in that setup require Texinfo::Parser; $configured_version = $Texinfo::Parser::VERSION; } } # Compare the version of this file with the version of the modules # it is using. If they are different, don't go any further. This # can happen if multiple versions of texi2any are installed under a # different names, e.g. with the --program-suffix option to 'configure'. # The version in Common.pm is checked because that file has been present # since Texinfo 5.0 (the first release with texi2any in Perl). if ($configured_version ne $Texinfo::Common::VERSION and $configured_version ne $Texinfo::Common::VERSION."+dev") { warn "This is texi2any $configured_version but modules ". "for texi2any $Texinfo::Common::VERSION found!\n"; die "Your installation of Texinfo is broken; aborting.\n"; } my $configured_package = 'texinfo'; $configured_package = 'Texinfo' if ($configured_package eq '@' . 'PACKAGE@'); my $configured_name = 'GNU Texinfo'; $configured_name = $configured_package if ($configured_name eq '@' .'PACKAGE_NAME@'); my $configured_name_version = "$configured_name $configured_version"; my $configured_url = 'http://www.gnu.org/software/texinfo/'; $configured_url = 'http://www.gnu.org/software/texinfo/' if ($configured_url eq '@' .'PACKAGE_URL@'); my $texinfo_dtd_version = '6.4'; # $hardcoded_version is undef for a standalone perl module if ($texinfo_dtd_version eq '@' . 'TEXINFO_DTD_VERSION@') { $texinfo_dtd_version = undef; if (defined($hardcoded_version)) { if (open (CONFIGURE, "< ".File::Spec->catfile($srcdir, $updir, 'configure.ac'))) { while (<CONFIGURE>) { if (/^TEXINFO_DTD_VERSION=([0-9]\S*)/) { $texinfo_dtd_version = "$1"; last; } } close (CONFIGURE); } } } # Used in case it is not hardcoded in configure and for standalone perl module $texinfo_dtd_version = $configured_version if (!defined($texinfo_dtd_version)); # defaults for options relevant in the main program, not undef, and also # defaults for all the converters. # Other relevant options (undef) are NO_WARN FORCE OUTFILE # Others are set in the converters (SHOW_MENU). my $converter_default_options = { 'ERROR_LIMIT' => 100, 'TEXI2DVI' => 'texi2dvi', 'PACKAGE_VERSION' => $configured_version, 'PACKAGE' => $configured_package, 'PACKAGE_NAME' => $configured_name, 'PACKAGE_AND_VERSION' => $configured_name_version, 'PACKAGE_URL' => $configured_url, 'PROGRAM' => $real_command_name, 'TEXINFO_DTD_VERSION' => $texinfo_dtd_version, }; # determine configuration directories. my $conf_file_name = 'Config' ; my $texinfo_htmlxref = 'htmlxref.cnf'; # directories for texinfo configuration files my @language_config_dirs = File::Spec->catdir($curdir, '.texinfo'); push @language_config_dirs, File::Spec->catdir($ENV{'HOME'}, '.texinfo') if (defined($ENV{'HOME'})); push @language_config_dirs, File::Spec->catdir($sysconfdir, 'texinfo') if (defined($sysconfdir)); push @language_config_dirs, File::Spec->catdir($datadir, 'texinfo') if (defined($datadir)); my @texinfo_config_dirs = ($curdir, @language_config_dirs); my @program_config_dirs; my @program_init_dirs; my $program_name = 'texi2any'; @program_config_dirs = ($curdir, File::Spec->catdir($curdir, ".$program_name")); push @program_config_dirs, File::Spec->catdir($ENV{'HOME'}, ".$program_name") if (defined($ENV{'HOME'})); push @program_config_dirs, File::Spec->catdir($sysconfdir, $program_name) if (defined($sysconfdir)); push @program_config_dirs, File::Spec->catdir($datadir, $program_name) if (defined($datadir)); @program_init_dirs = @program_config_dirs; foreach my $texinfo_config_dir (@language_config_dirs) { push @program_init_dirs, File::Spec->catdir($texinfo_config_dir, 'init'); } # Namespace for configuration { package Texinfo::Config; #use Carp; # passed from main program my $cmdline_options; my $default_options; # used in main program our $options = {}; sub _load_config($$) { $default_options = shift; $cmdline_options = shift; #print STDERR "cmdline_options: ".join('|',keys(%$cmdline_options))."\n"; } sub _load_init_file($) { my $file = shift; require Texinfo::Convert::HTML; eval { require($file) ;}; my $e = $@; if ($e ne '') { main::document_warn(sprintf(main::__("error loading %s: %s\n"), $file, $e)); } } # FIXME: maybe use an opaque return status that can be used to retrieve # an error message? sub set_from_init_file($$) { my $var = shift; my $value = shift; if (!Texinfo::Common::valid_option($var)) { # carp may be better, but infortunately, it points to the routine that # loads the file, and not to the init file. main::document_warn(sprintf(main::__("%s: unknown variable %s"), 'set_from_init_file', $var)); return 0; } elsif (Texinfo::Common::obsolete_option($var)) { main::document_warn(sprintf(main::__("%s: obsolete variable %s\n"), 'set_from_init_file', $var)); } return 0 if (defined($cmdline_options->{$var})); delete $default_options->{$var}; $options->{$var} = $value; return 1; } sub set_from_cmdline($$) { my $var = shift; my $value = shift; delete $options->{$var}; delete $default_options->{$var}; if (!Texinfo::Common::valid_option($var)) { main::document_warn(sprintf(main::__("%s: unknown variable %s\n"), 'set_from_cmdline', $var)); return 0; } elsif (Texinfo::Common::obsolete_option($var)) { main::document_warn(sprintf(main::__("obsolete variable %s\n"), 'set_from_cmdline', $var)); } $cmdline_options->{$var} = $value; return 1; } # This also could get and set some @-command results. # FIXME But it does not take into account what happens during conversion, # for that something like $converter->get_conf(...) has to be used. sub get_conf($) { my $var = shift; if (exists($cmdline_options->{$var})) { return $cmdline_options->{$var}; } elsif (exists($options->{$var})) { return $options->{$var}; } elsif (exists($default_options->{$var})) { return $default_options->{$var}; } else { return undef; } } } # back in main program namespace # file: file name to locate. It can be a file path. # directories: a reference on a array containing a list of directories to # search the file in. # all_files: if true collect all the files with that name, otherwise stop # at first match. sub locate_init_file($$$) { my $file = shift; my $directories = shift; my $all_files = shift; if (File::Spec->file_name_is_absolute($file)) { return $file if (-e $file and -r $file); } else { my @files; foreach my $dir (@$directories) { next unless (-d $dir); my $possible_file = File::Spec->catfile($dir, $file); if ($all_files) { push (@files, $possible_file) if (-e $possible_file and -r $possible_file); } else { return $possible_file if (-e $possible_file and -r $possible_file); } } return @files if ($all_files); } return undef; } sub locate_and_load_init_file($$) { my $filename = shift; my $directories = shift; my $file = locate_init_file($filename, $directories, 0); if (defined($file)) { Texinfo::Config::_load_init_file($file); } else { document_warn(sprintf(__("could not read init file %s"), $filename)); } } # read initialization files foreach my $file (locate_init_file($conf_file_name, [ reverse(@program_config_dirs) ], 1)) { Texinfo::Config::_load_init_file($file); } sub set_from_cmdline($$) { return &Texinfo::Config::set_from_cmdline(@_); } sub set_from_init_file($$) { return &Texinfo::Config::set_from_init_file(@_); } sub get_conf($) { return &Texinfo::Config::get_conf(@_); } my @input_file_suffixes = ('.txi','.texinfo','.texi','.txinfo',''); my @texi2dvi_args = (); my $format = 'info'; # this is the format associated with the output format, which is replaced # when the output format changes. It may also be removed if there is the # corresponding --no-ifformat. my $default_expanded_format = [ $format ]; my @conf_dirs = (); my @include_dirs = (); my @prepend_dirs = (); # options for all the files my $parser_default_options = {'expanded_formats' => [], 'values' => {'txicommandconditionals' => 1}, 'gettext' => \&__, 'pgettext' => \&__p,}; Texinfo::Config::_load_config($converter_default_options, $cmdline_options); sub set_expansion($$) { my $region = shift; my $set = shift; $set = 1 if (!defined($set)); if ($set) { push @{$parser_default_options->{'expanded_formats'}}, $region unless (grep {$_ eq $region} @{$parser_default_options->{'expanded_formats'}}); } else { @{$parser_default_options->{'expanded_formats'}} = grep {$_ ne $region} @{$parser_default_options->{'expanded_formats'}}; @{$default_expanded_format} = grep {$_ ne $region} @{$default_expanded_format}; } } my $format_from_command_line = 0; my %format_command_line_names = ( 'xml' => 'texinfoxml', ); my %formats_table = ( 'info' => { 'nodes_tree' => 1, 'floats' => 1, 'module' => 'Texinfo::Convert::Info' }, 'plaintext' => { 'nodes_tree' => 1, 'floats' => 1, 'split' => 1, 'module' => 'Texinfo::Convert::Plaintext' }, 'html' => { 'nodes_tree' => 1, 'floats' => 1, 'split' => 1, 'internal_links' => 1, 'simple_menu' => 1, 'move_index_entries_after_items' => 1, 'no_warn_non_empty_parts' => 1, 'module' => 'Texinfo::Convert::HTML' }, 'texinfoxml' => { 'nodes_tree' => 1, 'module' => 'Texinfo::Convert::TexinfoXML', 'floats' => 1, }, 'texinfosxml' => { 'nodes_tree' => 1, 'module' => 'Texinfo::Convert::TexinfoSXML', 'floats' => 1, }, 'ixinsxml' => { 'nodes_tree' => 1, 'module' => 'Texinfo::Convert::IXINSXML' }, 'docbook' => { 'move_index_entries_after_items' => 1, 'no_warn_non_empty_parts' => 1, 'module' => 'Texinfo::Convert::DocBook' }, 'pdf' => { 'texi2dvi_format' => 1, }, 'ps' => { 'texi2dvi_format' => 1, }, 'dvi' => { 'texi2dvi_format' => 1, }, 'dvipdf' => { 'texi2dvi_format' => 1, }, 'debugtree' => { 'split' => 1, 'module' => 'DebugTexinfo::DebugTree' }, 'textcontent' => { 'module' => 'Texinfo::Convert::TextContent' }, 'rawtext' => { 'module' => 'Texinfo::Convert::Text' }, 'plaintexinfo' => { 'module' => 'Texinfo::Convert::PlainTexinfo' }, 'parse' => { }, 'structure' => { 'nodes_tree' => 1, 'floats' => 1, 'split' => 1, }, ); my $call_texi2dvi = 0; # previous_format should be in argument if there is a possibility of error. # as a fallback, the $format global variable is used. sub set_format($;$$) { my $set_format = shift; my $previous_format = shift; $previous_format = $format if (!defined($previous_format)); my $do_not_override_command_line = shift; my $new_format; if ($format_command_line_names{$set_format}) { $new_format = $format_command_line_names{$set_format}; } else { $new_format = $set_format; } my $expanded_format = $set_format; if (!$formats_table{$new_format}) { document_warn(sprintf(__("ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'\n"), $new_format)); $new_format = $previous_format; } else { if ($format_from_command_line and $do_not_override_command_line) { $new_format = $previous_format; } else { if ($formats_table{$new_format}->{'texi2dvi_format'}) { $call_texi2dvi = 1; push @texi2dvi_args, '--'.$new_format; $expanded_format = 'tex'; } if ($Texinfo::Common::texinfo_output_formats{$expanded_format}) { if ($expanded_format eq 'plaintext') { $default_expanded_format = [$expanded_format, 'info'] } else { $default_expanded_format = [$expanded_format] } } $format_from_command_line = 1 unless ($do_not_override_command_line); } } return $new_format; } sub set_global_format($) { my $set_format = shift; $format = set_format($set_format); } sub document_warn($) { return if (get_conf('NO_WARN')); my $text = shift; chomp ($text); warn(sprintf(__p("program name: warning: warning_message", "%s: warning: %s\n"), $real_command_name, $text)); } sub _exit($$) { my $error_count = shift; my $opened_files = shift; if ($error_count and $opened_files and !get_conf('FORCE')) { while (@$opened_files) { my $opened_file = shift (@$opened_files); unlink ($opened_file); } } exit (1) if ($error_count and (!get_conf('FORCE') or $error_count > get_conf('ERROR_LIMIT'))); } sub handle_errors($$$) { my $self = shift; my $error_count = shift; my $opened_files = shift; my ($errors, $new_error_count) = $self->errors(); $error_count += $new_error_count if ($new_error_count); foreach my $error_message (@$errors) { warn $error_message->{'error_line'} if ($error_message->{'type'} eq 'error' or !get_conf('NO_WARN')); } _exit($error_count, $opened_files); return $error_count; } sub _get_converter_default($) { my $option = shift; return $Texinfo::Convert::Converter::all_converters_defaults{$option} if (defined($Texinfo::Convert::Converter::all_converters_defaults{$option})); return undef; } sub makeinfo_help() { my $makeinfo_help = sprintf(__("Usage: %s [OPTION]... TEXINFO-FILE...\n"), $real_command_name . $command_suffix) ."\n". __("Translate Texinfo source documentation to various other formats, by default Info files suitable for reading online with Emacs or standalone GNU Info. This program is commonly installed as both `makeinfo' and `texi2any'; the behavior is identical, and does not depend on the installed name.\n") ."\n"; $makeinfo_help .= sprintf(__("General options: --document-language=STR locale to use in translating Texinfo keywords for the output document (default C). --error-limit=NUM quit after NUM errors (default %d). --force preserve output even if errors. --help display this help and exit. --no-validate suppress node cross-reference validation. --no-warn suppress warnings (but not errors). --conf-dir=DIR search also for initialization files in DIR. --init-file=FILE load FILE to modify the default behavior. -c, --set-customization-variable VAR=VAL set customization variable VAR to value VAL. -v, --verbose explain what is being done. --version display version information and exit.\n"), get_conf('ERROR_LIMIT')) ."\n"; $makeinfo_help .= __("Output format selection (default is to produce Info): --docbook output Docbook XML rather than Info. --html output HTML rather than Info. --plaintext output plain text rather than Info. --xml output Texinfo XML rather than Info. --dvi, --dvipdf, --ps, --pdf call texi2dvi to generate given output, after checking validity of TEXINFO-FILE.\n") ."\n"; $makeinfo_help .= __("General output options: -E, --macro-expand=FILE output macro-expanded source to FILE, ignoring any \@setfilename. --no-headers suppress node separators, Node: lines, and menus from Info output (thus producing plain text) or from HTML (thus producing shorter output). Also, if producing Info, write to standard output by default. --no-split suppress any splitting of the output; generate only one output file. --[no-]number-sections output chapter and sectioning numbers; default is on. -o, --output=DEST output to DEST. With split output, create DEST as a directory and put the output files there. With non-split output, if DEST is already a directory or ends with a /, put the output file there. Otherwise, DEST names the output file.\n") ."\n"; $makeinfo_help .= sprintf(__("Options for Info and plain text: --disable-encoding do not output accented and special characters in Info output based on \@documentencoding. --enable-encoding override --disable-encoding (default). --fill-column=NUM break Info lines at NUM characters (default %d). --footnote-style=STYLE output footnotes in Info according to STYLE: `separate' to put them in their own node; `end' to put them at the end of the node, in which they are defined (this is the default). --paragraph-indent=VAL indent Info paragraphs by VAL spaces (default %d). If VAL is `none', do not indent; if VAL is `asis', preserve existing indentation. --split-size=NUM split Info files at size NUM (default %d).\n"), _get_converter_default('fillcolumn'), _get_converter_default('paragraphindent'), _get_converter_default('SPLIT_SIZE')) ."\n"; $makeinfo_help .= __("Options for HTML: --css-include=FILE include FILE in HTML <style> output; read stdin if FILE is -. --css-ref=URL generate CSS reference to URL. --internal-links=FILE produce list of internal links in FILE. --split=SPLIT split at SPLIT, where SPLIT may be `chapter', `section' or `node'. --transliterate-file-names use file names in ASCII transliteration. --node-files produce redirection files for nodes and anchors; default is set only if split.\n") ."\n"; $makeinfo_help .= __("Options for XML and Docbook: --output-indent=VAL does nothing, retained for compatibility.\n") ."\n"; $makeinfo_help .= __("Options for DVI/PS/PDF: --Xopt=OPT pass OPT to texi2dvi; can be repeated.\n") ."\n"; $makeinfo_help .= __("Input file options: --commands-in-node-names does nothing, retained for compatibility. -D VAR define the variable VAR, as with \@set. -D 'VAR VAL' define VAR to VAL (one shell argument). -I DIR append DIR to the \@include search path. -P DIR prepend DIR to the \@include search path. -U VAR undefine the variable VAR, as with \@clear.\n") ."\n"; $makeinfo_help .= __("Conditional processing in input: --ifdocbook process \@ifdocbook and \@docbook even if not generating Docbook. --ifhtml process \@ifhtml and \@html even if not generating HTML. --ifinfo process \@ifinfo even if not generating Info. --ifplaintext process \@ifplaintext even if not generating plain text. --iftex process \@iftex and \@tex. --ifxml process \@ifxml and \@xml. --no-ifdocbook do not process \@ifdocbook and \@docbook text. --no-ifhtml do not process \@ifhtml and \@html text. --no-ifinfo do not process \@ifinfo text. --no-ifplaintext do not process \@ifplaintext text. --no-iftex do not process \@iftex and \@tex text. --no-ifxml do not process \@ifxml and \@xml text. Also, for the --no-ifFORMAT options, do process \@ifnotFORMAT text.\n") ."\n"; $makeinfo_help .= __(" The defaults for the \@if... conditionals depend on the output format: if generating Docbook, --ifdocbook is on and the others are off; if generating HTML, --ifhtml is on and the others are off; if generating Info, --ifinfo is on and the others are off; if generating plain text, --ifplaintext is on and the others are off; if generating XML, --ifxml is on and the others are off.\n") ."\n"; $makeinfo_help .= __("Examples: makeinfo foo.texi write Info to foo's \@setfilename makeinfo --html foo.texi write HTML to \@setfilename makeinfo --xml foo.texi write Texinfo XML to \@setfilename makeinfo --docbook foo.texi write Docbook XML to \@setfilename makeinfo --plaintext foo.texi write plain text to standard output makeinfo --pdf foo.texi write PDF using texi2dvi makeinfo --html --no-headers foo.texi write html without node lines, menus makeinfo --number-sections foo.texi write Info with numbered sections makeinfo --no-split foo.texi write one Info file however big\n") ."\n"; $makeinfo_help .= __("Email bug reports to bug-texinfo\@gnu.org, general questions and discussion to help-texinfo\@gnu.org. Texinfo home page: http://www.gnu.org/software/texinfo/") ."\n"; return $makeinfo_help; } my $Xopt_arg_nr = 0; my $latex2html_file = 'latex2html.pm'; my $result_options = Getopt::Long::GetOptions ( 'help|h' => sub { print makeinfo_help(); exit 0; }, 'version|V' => sub {print "$program_name (GNU texinfo) $configured_version\n\n"; printf __("Copyright (C) %s Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.\n"), "2017"; exit 0;}, 'macro-expand|E=s' => sub { set_from_cmdline('MACRO_EXPAND', $_[1]); }, 'ifhtml!' => sub { set_expansion('html', $_[1]); }, 'ifinfo!' => sub { set_expansion('info', $_[1]); }, 'ifxml!' => sub { set_expansion('xml', $_[1]); }, 'ifdocbook!' => sub { set_expansion('docbook', $_[1]); }, 'iftex!' => sub { set_expansion('tex', $_[1]); }, 'ifplaintext!' => sub { set_expansion('plaintext', $_[1]); }, 'I=s' => sub { push @texi2dvi_args, ('-'.$_[0], $_[1]); push @include_dirs, split(/$quoted_path_separator/, $_[1]); }, 'conf-dir=s' => sub { push @conf_dirs, split(/$quoted_path_separator/, $_[1]); }, 'P=s' => sub { unshift @prepend_dirs, split(/$quoted_path_separator/, $_[1]); }, 'number-sections!' => sub { set_from_cmdline('NUMBER_SECTIONS', $_[1]); }, 'number-footnotes!' => sub { set_from_cmdline('NUMBER_FOOTNOTES', $_[1]); }, 'node-files!' => sub { set_from_cmdline('NODE_FILES', $_[1]); }, 'footnote-style=s' => sub { if ($_[1] eq 'end' or $_[1] eq 'separate') { set_from_cmdline('footnotestyle', $_[1]); } else { die sprintf(__("%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"), $real_command_name, $_[1]); } }, 'split=s' => sub { my $split = $_[1]; my @messages = Texinfo::Common::warn_unknown_split($_[1], \&__); if (@messages) { foreach my $message (@messages) { document_warn($message); } $split = 'node'; } set_from_cmdline('SPLIT', $split); }, 'no-split' => sub { set_from_cmdline('SPLIT', ''); set_from_cmdline('SPLIT_SIZE', undef);}, 'headers!' => sub { set_from_cmdline('HEADERS', $_[1]); set_from_cmdline('SHOW_MENU', $_[1]); $format = 'plaintext' if (!$_[1] and $format eq 'info'); }, 'output|out|o=s' => sub { my $var = 'OUTFILE'; if ($_[1] =~ m:/$: or -d $_[1]) { set_from_cmdline($var, undef); $var = 'SUBDIR'; } set_from_cmdline($var, $_[1]); set_from_cmdline('OUT', $_[1]); push @texi2dvi_args, '-o', $_[1]; }, 'no-validate|no-pointer-validate' => sub { set_from_cmdline('novalidate',$_[1]); $parser_default_options->{'info'}->{'novalidate'} = $_[1]; }, 'no-warn' => sub { set_from_cmdline('NO_WARN', $_[1]); }, 'verbose|v!' => sub {set_from_cmdline('VERBOSE', $_[1]); push @texi2dvi_args, '--verbose'; }, 'document-language=s' => sub { set_from_cmdline('documentlanguage', $_[1]); $parser_default_options->{'documentlanguage'} = $_[1]; my @messages = Texinfo::Common::warn_unknown_language($_[1], \&__); foreach my $message (@messages) { document_warn($message); } }, 'D=s' => sub { my $var = $_[1]; my @field = split (/\s+/, $var, 2); if (@field == 1) { $parser_default_options->{'values'}->{$var} = 1; } else { $parser_default_options->{'values'}->{$field[0]} = $field[1]; } }, 'U=s' => sub {delete $parser_default_options->{'values'}->{$_[1]};}, 'init-file=s' => sub { locate_and_load_init_file($_[1], [ @conf_dirs, @program_init_dirs ]); }, 'set-customization-variable|c=s' => sub { my $var_val = $_[1]; if ($var_val =~ s/^(\w+)\s*=?\s*//) { my $var = $1; my $value = $var_val; if ($value =~ /^undef$/i) { $value = undef; } # special format if ($var eq 'TEXINFO_OUTPUT_FORMAT') { $format = set_format($value, $format, 1); } elsif ($var eq 'TEXI2HTML') { $format = set_format('html'); $parser_default_options->{'values'}->{'texi2html'} = 1; } set_from_cmdline($var, $value); # FIXME do that here or when all command line options are processed? if ($var eq 'L2H' and get_conf('L2H')) { locate_and_load_init_file($latex2html_file, [ @conf_dirs, @program_init_dirs ]); } } }, 'css-include=s' => \@css_files, 'css-ref=s' => \@css_refs, 'transliterate-file-names!' => sub {set_from_cmdline('TRANSLITERATE_FILE_NAMES', $_[1]);}, 'error-limit|e=i' => sub { set_from_cmdline('ERROR_LIMIT', $_[1]); }, 'split-size=s' => sub {set_from_cmdline('SPLIT_SIZE', $_[1])}, 'paragraph-indent|p=s' => sub { my $value = $_[1]; if ($value =~ /^([0-9]+)$/ or $value eq 'none' or $value eq 'asis') { set_from_cmdline('paragraphindent', $_[1]); } else { die sprintf(__("%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"), $real_command_name, $value); } }, 'fill-column|f=i' => sub {set_from_cmdline('FILLCOLUMN',$_[1]);}, 'enable-encoding' => sub {set_from_cmdline('ENABLE_ENCODING',$_[1]); $parser_default_options->{'ENABLE_ENCODING'} = $_[1];}, 'disable-encoding' => sub {set_from_cmdline('ENABLE_ENCODING', 0); $parser_default_options->{'ENABLE_ENCODING'} = 0;}, 'internal-links=s' => sub {set_from_cmdline('INTERNAL_LINKS', $_[1]);}, 'force|F' => sub {set_from_cmdline('FORCE', $_[1]);}, 'commands-in-node-names' => sub { ;}, 'output-indent=i' => sub { ;}, 'reference-limit=i' => sub { ;}, 'Xopt=s' => sub {push @texi2dvi_args, $_[1]; $Xopt_arg_nr++}, 'silent|quiet' => sub {set_from_cmdline('SILENT', $_[1]); push @texi2dvi_args, '--'.$_[0];}, 'plaintext' => sub {$format = set_format($_[0].'');}, 'html' => sub {$format = set_format($_[0].'');}, 'info' => sub {$format = set_format($_[0].'');}, 'docbook' => sub {$format = set_format($_[0].'');}, 'xml' => sub {$format = set_format($_[0].'');}, 'dvi' => sub {$format = set_format($_[0].'');}, 'dvipdf' => sub {$format = set_format($_[0].'');}, 'ps' => sub {$format = set_format($_[0].'');}, 'pdf' => sub {$format = set_format($_[0].'');}, 'debug=i' => sub {set_from_cmdline('DEBUG', $_[1]); $parser_default_options->{'DEBUG'} = $_[1]; push @texi2dvi_args, '--'.$_[0]; }, ); exit 1 if (!$result_options); # For tests, set some strings to values not changing with releases my %test_conf = ( 'PACKAGE_VERSION' => '', 'PACKAGE' => 'texinfo', 'PACKAGE_NAME' => 'texinfo', 'PACKAGE_AND_VERSION' => 'texinfo', 'PACKAGE_URL' => 'http://www.gnu.org/software/texinfo/', # maybe don't set this? 'PROGRAM' => 'texi2any', ); if (get_conf('TEST')) { foreach my $conf (keys (%test_conf)) { $converter_default_options->{$conf} = $test_conf{$conf}; } } my %format_names = ( 'info' => 'Info', 'html' => 'HTML', 'docbook' => 'DocBook', 'texinfoxml' => 'Texinfo XML', 'plaintext' => 'Plain Text', ); sub format_name($) { my $format = shift; if ($format_names{$format}) { return $format_names{$format}; } else { return $format; } } if (defined($ENV{'TEXINFO_OUTPUT_FORMAT'}) and $ENV{'TEXINFO_OUTPUT_FORMAT'} ne '') { $format = set_format($ENV{'TEXINFO_OUTPUT_FORMAT'}, $format, 1); } if ($call_texi2dvi) { if (defined(get_conf('OUT')) and @ARGV > 1) { die sprintf(__('%s: when generating %s, only one input FILE may be specified with -o'."\n"), $real_command_name, format_name($format)); } } elsif($Xopt_arg_nr) { document_warn(__('--Xopt option without printed output')); } require Texinfo::Parser; require Texinfo::Structuring; require Texinfo::Transformations; # Avoid loading these modules until down here to speed up the case # when they are not needed. my %tree_transformations; if (get_conf('TREE_TRANSFORMATIONS')) { my @transformations = split /,/, get_conf('TREE_TRANSFORMATIONS'); foreach my $transformation (@transformations) { if (Texinfo::Common::valid_tree_transformation($transformation)) { $tree_transformations{$transformation} = 1; } else { document_warn(sprintf(__('unknown tree transformation %s'), $transformation)); } } } if (get_conf('SPLIT') and !$formats_table{$format}->{'split'}) { document_warn(sprintf(__('ignoring splitting for format %s'), format_name($format))); set_from_cmdline('SPLIT', ''); } foreach my $expanded_format (@{$default_expanded_format}) { push @{$parser_default_options->{'expanded_formats'}}, $expanded_format unless (grep {$_ eq $expanded_format} @{$parser_default_options->{'expanded_formats'}}); } my $converter_class; my %converter_defaults; if (defined($formats_table{$format}->{'module'})) { # Speed up initialization by only loading the module we need. eval "require $formats_table{$format}->{'module'};" or die "$@"; eval '$formats_table{$format}->{\'converter\'} = sub{'. $formats_table{$format}->{'module'} .'->converter(@_)};'; } # This gets the class right, even though there is a sub... if (defined($formats_table{$format}->{'converter'})) { $converter_class = ref(&{$formats_table{$format}->{'converter'}}); %converter_defaults = $converter_class->converter_defaults(); } # FIXME should this be set when the --set is set too? The corresponding # code is ready above, but commented out. # using no warnings is wrong, but a way to avoid a spurious warning. no warnings 'once'; foreach my $parser_settable_option ( keys(%Texinfo::Parser::default_customization_values)) { if (defined(get_conf($parser_settable_option))) { $parser_default_options->{$parser_settable_option} = get_conf($parser_settable_option); } elsif (defined($converter_class) and defined($converter_defaults{$parser_settable_option})) { $parser_default_options->{$parser_settable_option} = $converter_defaults{$parser_settable_option}; } } ## using no warnings is wrong, but a way to avoid a spurious warning. #no warnings 'once'; # The configuration options are upper-cased when considered as # customization variables, and lower-cased when passed to the Parser foreach my $parser_option (map {uc($_)} (keys (%Texinfo::Common::default_parser_state_configuration))) { $parser_default_options->{lc($parser_option)} = get_conf($parser_option) if (defined(get_conf($parser_option))); } # Main processing, process all the files given on the command line my @input_files = @ARGV; # use STDIN if not a tty, like makeinfo does @input_files = ('-') if (!scalar(@input_files) and !-t STDIN); die sprintf(__("%s: missing file argument.\n"), $real_command_name) .sprintf(__("Try `%s --help' for more information.\n"), $real_command_name) unless (scalar(@input_files) >= 1); my $file_number = -1; my @opened_files = (); my %unclosed_files; my $error_count = 0; # main processing while(@input_files) { $file_number++; my $input_file_arg = shift(@input_files); my $input_file_name; # try to concatenate with different suffixes. The last suffix is '' # such that the plain file name is checked. foreach my $suffix (@input_file_suffixes) { if (-e $input_file_arg.$suffix) { $input_file_name = $input_file_arg.$suffix; last; } } # in case no file was found, still set the file name $input_file_name = $input_file_arg if (!defined($input_file_name)); my ($input_filename, $input_directory, $suffix) = fileparse($input_file_name); if (!defined($input_directory) or $input_directory eq '') { $input_directory = $curdir; } my $input_file_base = $input_file_name; $input_file_base =~ s/\.te?x(i|info)?$//; my @htmlxref_dirs; if (get_conf('TEST')) { # to have reproducible tests, do not use system or user # directories if TEST is set. @htmlxref_dirs = File::Spec->catdir($curdir, '.texinfo'); } else { @htmlxref_dirs = @language_config_dirs; } if ($input_directory ne '.' and $input_directory ne '') { unshift @htmlxref_dirs, $input_directory; } unshift @htmlxref_dirs, '.'; my @texinfo_htmlxref_files; my $init_file_from_conf = get_conf('HTMLXREF'); if ($init_file_from_conf) { @texinfo_htmlxref_files = ( $init_file_from_conf ); } else { @texinfo_htmlxref_files = locate_init_file ($texinfo_htmlxref, \@htmlxref_dirs, 1); } my $parser_options = { %$parser_default_options }; $parser_options->{'include_directories'} = [@include_dirs]; my @prependended_include_directories = ('.'); push @prependended_include_directories, $input_directory if ($input_directory ne '.'); unshift @{$parser_options->{'include_directories'}}, @prependended_include_directories; unshift @{$parser_options->{'include_directories'}}, @prepend_dirs; my $parser = Texinfo::Parser::parser($parser_options); my $tree = $parser->parse_texi_file($input_file_name); #my $global_commands = $parser->global_commands_information(); #print STDERR join('|', keys(%$global_commands))."\n"; if (defined($tree) and (defined(get_conf('DUMP_TREE')) or (get_conf('DEBUG') and get_conf('DEBUG') >= 10))) { # this is very wrong, but a way to avoid a spurious warning. no warnings 'once'; local $Data::Dumper::Purity = 1; no warnings 'once'; local $Data::Dumper::Indent = 1; print STDERR Data::Dumper->Dump([$tree]); } if (!defined($tree) or $format eq 'parse') { handle_errors($parser, $error_count, \@opened_files); next; } if ($tree_transformations{'fill_gaps_in_sectioning'}) { my ($filled_contents, $added_sections) = Texinfo::Transformations::fill_gaps_in_sectioning($tree); if (!defined($filled_contents)) { document_warn(__("fill_gaps_in_sectioning transformation return no result. No section?")); } else { $tree->{'contents'} = $filled_contents; } } if ((get_conf('SIMPLE_MENU') and $formats_table{$format}->{'simple_menu'}) or $tree_transformations{'simple_menus'}) { $parser->Texinfo::Transformations::set_menus_to_simple_menu(); } if (defined(get_conf('MACRO_EXPAND')) and $file_number == 0) { require Texinfo::Convert::Texinfo; my $texinfo_text = Texinfo::Convert::Texinfo::convert($tree, 1); #print STDERR "$texinfo_text\n"; my $macro_expand_file = get_conf('MACRO_EXPAND'); my $macro_expand_fh = Texinfo::Common::open_out($parser, $macro_expand_file, $parser->{'INPUT_PERL_ENCODING'}); my $error_macro_expand_file; if (defined($macro_expand_fh)) { print $macro_expand_fh $texinfo_text; if (!close($macro_expand_fh)) { document_warn(sprintf(__("error on closing macro expand file %s: %s\n"), $macro_expand_file, $!)); $error_macro_expand_file = 1; } $parser->Texinfo::Convert::Converter::register_close_file($macro_expand_file); } else { document_warn(sprintf(__("could not open %s for writing: %s\n"), $macro_expand_file, $!)); $error_macro_expand_file = 1; } if ($error_macro_expand_file) { $error_count++; _exit($error_count, \@opened_files); } } if (get_conf('DUMP_TEXI') or $formats_table{$format}->{'texi2dvi_format'}) { handle_errors($parser, $error_count, \@opened_files); next; } if ($formats_table{$format}->{'move_index_entries_after_items'} or $tree_transformations{'move_index_entries_after_items'}) { Texinfo::Common::move_index_entries_after_items_in_tree($tree); } if ($tree_transformations{'insert_nodes_for_sectioning_commands'}) { my ($modified_contents, $added_nodes) = Texinfo::Transformations::insert_nodes_for_sectioning_commands($parser, $tree); if (!defined($modified_contents)) { document_warn(__( "insert_nodes_for_sectioning_commands transformation return no result. No section?")); } else { $tree->{'contents'} = $modified_contents; } } Texinfo::Structuring::associate_internal_references($parser); # every format needs the sectioning structure my $structure = Texinfo::Structuring::sectioning_structure($parser, $tree); if ($structure and !$formats_table{$format}->{'no_warn_non_empty_parts'}) { Texinfo::Structuring::warn_non_empty_parts($parser); } if ($tree_transformations{'complete_tree_nodes_menus'}) { Texinfo::Transformations::complete_tree_nodes_menus($parser, $tree); } if ($tree_transformations{'regenerate_master_menu'}) { Texinfo::Transformations::regenerate_master_menu($parser); } # this can be done for every format, since information is already gathered my $floats = $parser->floats_information(); my $top_node; if ($formats_table{$format}->{'nodes_tree'}) { $top_node = Texinfo::Structuring::nodes_tree($parser); } if ($formats_table{$format}->{'floats'}) { Texinfo::Structuring::number_floats($floats); } $error_count = handle_errors($parser, $error_count, \@opened_files); if ($format eq 'structure') { next; } if ($file_number != 0) { delete $cmdline_options->{'OUTFILE'} if exists($cmdline_options->{'OUTFILE'}); delete $cmdline_options->{'OUT'} if exists($cmdline_options->{'OUT'}); delete $cmdline_options->{'PREFIX'} if exists($cmdline_options->{'PREFIX'}); delete $cmdline_options->{'SUBDIR'} if (exists($cmdline_options->{'SUBDIR'}) and get_conf('SPLIT')); } my $converter_options = { %$converter_default_options, %$cmdline_options, %$Texinfo::Config::options }; $converter_options->{'parser'} = $parser; $converter_options->{'output_format'} = $format; $converter_options->{'htmlxref_files'} = \@texinfo_htmlxref_files; my $converter = &{$formats_table{$format}->{'converter'}}($converter_options); $converter->output($tree); push @opened_files, $converter->converter_opened_files(); handle_errors($converter, $error_count, \@opened_files); my $converter_unclosed_files = $converter->converter_unclosed_files(); if ($converter_unclosed_files) { foreach my $unclosed_file (keys(%$converter_unclosed_files)) { if ($unclosed_file eq '-') { $unclosed_files{$unclosed_file} = $converter_unclosed_files->{$unclosed_file}; } else { if (!close($converter_unclosed_files->{$unclosed_file})) { warn(sprintf(__("%s: error on closing %s: %s\n"), $real_command_name, $unclosed_file, $!)); $error_count++; _exit($error_count, \@opened_files); } } } } if (defined(get_conf('INTERNAL_LINKS')) and $file_number == 0 and $formats_table{$format}->{'internal_links'}) { my $internal_links_text = $converter->output_internal_links(); # always create a file, even if empty. $internal_links_text = '' if (!defined($internal_links_text)); my $internal_links_file = get_conf('INTERNAL_LINKS'); my $internal_links_fh = Texinfo::Common::open_out($converter, $internal_links_file); my $error_internal_links_file; if (defined ($internal_links_fh)) { print $internal_links_fh $internal_links_text; if (!close ($internal_links_fh)) { warn(sprintf(__("%s: error on closing internal links file %s: %s\n"), $real_command_name, $internal_links_file, $!)); $error_internal_links_file = 1; } $converter->register_close_file($internal_links_file); } else { warn(sprintf(__("%s: could not open %s for writing: %s\n"), $real_command_name, $internal_links_file, $!)); $error_internal_links_file = 1; } if ($error_internal_links_file) { $error_count++; _exit($error_count, \@opened_files); } } if (defined(get_conf('SORT_ELEMENT_COUNT')) and $file_number == 0) { my $converter_element_count_file = Texinfo::Convert::TextContent->converter($converter_options); my $use_sections = (! $formats_table{$format}->{'nodes_tree'} or (defined($converter->get_conf('USE_NODES')) and !$converter->get_conf('USE_NODES'))); my ($sorted_name_counts_array, $sort_element_count_text) = Texinfo::Convert::Converter::sort_element_counts( $converter_element_count_file, $tree, $use_sections, get_conf('SORT_ELEMENT_COUNT_WORDS')); my $sort_element_count_file = get_conf('SORT_ELEMENT_COUNT'); my $sort_element_count_fh = Texinfo::Common::open_out($converter, $sort_element_count_file); my $error_sort_element_count_file; if (defined ($sort_element_count_fh)) { print $sort_element_count_fh $sort_element_count_text; if (!close ($sort_element_count_fh)) { warn(sprintf(__("%s: error on closing internal links file %s: %s\n"), $real_command_name, $sort_element_count_file, $!)); $error_sort_element_count_file = 1; } $converter->register_close_file($sort_element_count_file); } else { warn(sprintf(__("%s: could not open %s for writing: %s\n"), $real_command_name, $sort_element_count_file, $!)); $error_sort_element_count_file = 1; } if ($error_sort_element_count_file) { $error_count++; _exit($error_count, \@opened_files); } } } foreach my $unclosed_file (keys(%unclosed_files)) { if (!close($unclosed_files{$unclosed_file})) { warn(sprintf(__("%s: error on closing %s: %s\n"), $real_command_name, $unclosed_file, $!)); $error_count++; _exit($error_count, \@opened_files); } } if ($call_texi2dvi) { if (get_conf('DEBUG') or get_conf('VERBOSE')) { print STDERR "EXEC ".join('|', (get_conf('TEXI2DVI'), @texi2dvi_args, @ARGV)) ."\n"; } exec { get_conf('TEXI2DVI') } (get_conf('TEXI2DVI'), @texi2dvi_args, @ARGV); } 1;
Close